<?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>121806</bug_id>
          
          <creation_ts>2013-09-23 15:02:45 -0700</creation_ts>
          <short_desc>Initial implementation of text-decoration-skip ink</short_desc>
          <delta_ts>2013-11-02 02:47:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>92801</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bruno.abinader</cc>
    
    <cc>brunoabinader</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932306</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-09-23 15:02:45 -0700</bug_when>
    <thetext>Initial implementation of text-decoration-skip ink</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932325</commentid>
    <comment_count>1</comment_count>
      <attachid>212399</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-09-23 15:37:20 -0700</bug_when>
    <thetext>Created attachment 212399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932338</commentid>
    <comment_count>2</comment_count>
      <attachid>212399</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-09-23 16:13:00 -0700</bug_when>
    <thetext>Comment on attachment 212399
Patch

Attachment 212399 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/1947169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932340</commentid>
    <comment_count>3</comment_count>
      <attachid>212399</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-09-23 16:14:26 -0700</bug_when>
    <thetext>Comment on attachment 212399
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1275
&gt; +            ctm.setE(0.0);

These two lines aren&apos;t quite right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932354</commentid>
    <comment_count>4</comment_count>
      <attachid>212399</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-09-23 16:52:41 -0700</bug_when>
    <thetext>Comment on attachment 212399
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-zoomed.html
&gt; +               fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink.html
&gt; +               fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html

Tests should be listed below the description of the change.

&gt; Source/WebCore/ChangeLog:13
&gt; +        The implementation draws text with a thick stroke into a mask,
&gt; +        then uses the mask to draw underlines.

This needs more words. You should link to the spec, say whether it&apos;s on by default, and summarize how the implementation works, and the major changes you had to make.

Basically someone who has no knowledge of text-decoration or the code should be able to get a good understanding of the change by reading this.

&gt; Source/WebCore/ChangeLog:46
&gt; +        * Configurations/FeatureDefines.xcconfig:
&gt; +        * css/CSSComputedStyleDeclaration.cpp:
&gt; +        (WebCore::renderTextDecorationSkipFlagsToCSSValue):
&gt; +        (WebCore::ComputedStyleExtractor::propertyValue):
&gt; +        * css/CSSParser.cpp:
&gt; +        (WebCore::CSSParser::parseValue):
&gt; +        (WebCore::CSSParser::parseTextDecorationSkip):
&gt; +        * css/CSSParser.h:
&gt; +        * css/CSSPrimitiveValueMappings.h:
&gt; +        (WebCore::CSSPrimitiveValue::operator TextDecorationSkip):
&gt; +        * css/CSSPropertyNames.in:
&gt; +        * css/CSSValueKeywords.in:
&gt; +        * css/DeprecatedStyleBuilder.cpp:
&gt; +        (WebCore::ApplyPropertyTextDecorationSkip::applyValue):
&gt; +        (WebCore::ApplyPropertyTextDecorationSkip::createHandler):
&gt; +        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
&gt; +        * css/StyleResolver.cpp:
&gt; +        (WebCore::StyleResolver::applyProperty):
&gt; +        * rendering/InlineTextBox.cpp:
&gt; +        (WebCore::InlineTextBox::paintText):
&gt; +        (WebCore::InlineTextBox::paint):
&gt; +        (WebCore::computeUnderlineOffset):
&gt; +        (WebCore::InlineTextBox::paintDecoration):
&gt; +        * rendering/InlineTextBox.h:
&gt; +        * rendering/style/RenderStyle.h:
&gt; +        * rendering/style/RenderStyleConstants.h:
&gt; +        (WebCore::operator| ):
&gt; +        (WebCore::operator|= ):
&gt; +        * rendering/style/StyleRareInheritedData.cpp:
&gt; +        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
&gt; +        (WebCore::StyleRareInheritedData::operator==):
&gt; +        * rendering/style/StyleRareInheritedData.h:

Any of the per-file changes that are non-obvious should be explained here.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:535
&gt; +struct PaintTextArguments {
&gt; +    GraphicsContext* context;
&gt; +    bool paintSelectedTextOnly;
&gt; +    bool paintSelectedTextSeparately;
&gt; +    float textStrokeWidth;
&gt; +    Color textStrokeColor;
&gt; +    Color textFillColor;
&gt; +    RenderStyle* styleToUse;
&gt; +    const Font&amp; font;
&gt; +    int sPos;
&gt; +    int ePos;
&gt; +    int length;
&gt; +    const AtomicString&amp; emphasisMark;
&gt; +    Color emphasisMarkColor;
&gt; +    RenderCombineText* combinedText;
&gt; +    TextRun&amp; textRun;
&gt; +    FloatRect&amp; boxRect;
&gt; +    FloatPoint&amp; textOrigin;
&gt; +    const ShadowData* textShadow;
&gt; +    int emphasisMarkOffset;
&gt; +    float selectionStrokeWidth;
&gt; +    Color selectionFillColor;
&gt; +    const ShadowData* selectionShadow;
&gt; +    Color selectionEmphasisMarkColor;
&gt; +    Color selectionStrokeColor;
&gt; +};

This is pretty gross. Should some of this code be factored into a new class?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:537
&gt; +void InlineTextBox::paintText(PaintTextArguments* args)

If args is required, it should be a reference.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:619
&gt; +    if (!paintSelectedTextOnly) {
&gt; +        // For stroked painting, we have to change the text drawing mode. It&apos;s probably dangerous to leave that mutated as a side
&gt; +        // effect, so only when we know we&apos;re stroking, do a save/restore.
&gt; +        GraphicsContextStateSaver stateSaver(*context, textStrokeWidth &gt; 0);
&gt; +
&gt; +        updateGraphicsContext(context, textFillColor, textStrokeColor, textStrokeWidth, styleToUse-&gt;colorSpace());
&gt; +        if (!paintSelectedTextSeparately || ePos &lt;= sPos) {
&gt; +            // FIXME: Truncate right-to-left text correctly.
&gt; +            paintTextWithShadows(context, font, textRun, nullAtom, 0, 0, length, length, textOrigin, boxRect, textShadow, textStrokeWidth &gt; 0, isHorizontal());
&gt; +        } else
&gt; +            paintTextWithShadows(context, font, textRun, nullAtom, 0, ePos, sPos, length, textOrigin, boxRect, textShadow, textStrokeWidth &gt; 0, isHorizontal());
&gt; +
&gt; +        if (!emphasisMark.isEmpty()) {
&gt; +            updateGraphicsContext(context, emphasisMarkColor, textStrokeColor, textStrokeWidth, styleToUse-&gt;colorSpace());
&gt; +
&gt; +            DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&amp;objectReplacementCharacter, 1));
&gt; +            TextRun&amp; emphasisMarkTextRun = combinedText ? objectReplacementCharacterTextRun : textRun;
&gt; +            FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOrigin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : textOrigin;
&gt; +            if (combinedText)
&gt; +                context-&gt;concatCTM(rotation(boxRect, Clockwise));
&gt; +
&gt; +            if (!paintSelectedTextSeparately || ePos &lt;= sPos) {
&gt; +                // FIXME: Truncate right-to-left text correctly.
&gt; +                paintTextWithShadows(context, combinedText ? combinedText-&gt;originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, 0, length, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth &gt; 0, isHorizontal());
&gt; +            } else
&gt; +                paintTextWithShadows(context, combinedText ? combinedText-&gt;originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, ePos, sPos, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth &gt; 0, isHorizontal());
&gt; +
&gt; +            if (combinedText)
&gt; +                context-&gt;concatCTM(rotation(boxRect, Counterclockwise));
&gt; +        }
&gt; +    }
&gt; +
&gt; +    if ((paintSelectedTextOnly || paintSelectedTextSeparately) &amp;&amp; sPos &lt; ePos) {
&gt; +        // paint only the text that is selected
&gt; +        GraphicsContextStateSaver stateSaver(*context, selectionStrokeWidth &gt; 0);
&gt; +
&gt; +        updateGraphicsContext(context, selectionFillColor, selectionStrokeColor, selectionStrokeWidth, styleToUse-&gt;colorSpace());
&gt; +        paintTextWithShadows(context, font, textRun, nullAtom, 0, sPos, ePos, length, textOrigin, boxRect, selectionShadow, selectionStrokeWidth &gt; 0, isHorizontal());
&gt; +        if (!emphasisMark.isEmpty()) {
&gt; +            updateGraphicsContext(context, selectionEmphasisMarkColor, textStrokeColor, textStrokeWidth, styleToUse-&gt;colorSpace());
&gt; +
&gt; +            DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&amp;objectReplacementCharacter, 1));
&gt; +            TextRun&amp; emphasisMarkTextRun = combinedText ? objectReplacementCharacterTextRun : textRun;
&gt; +            FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOrigin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : textOrigin;
&gt; +            if (combinedText)
&gt; +                context-&gt;concatCTM(rotation(boxRect, Clockwise));
&gt; +
&gt; +            paintTextWithShadows(context, combinedText ? combinedText-&gt;originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, sPos, ePos, length, emphasisMarkTextOrigin, boxRect, selectionShadow, selectionStrokeWidth &gt; 0, isHorizontal());
&gt; +
&gt; +            if (combinedText)
&gt; +                context-&gt;concatCTM(rotation(boxRect, Counterclockwise));
&gt; +        }
&gt; +    }
&gt; +}

Are there any behavior changes in this big chunk of code that got moved?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:850
&gt; +    PaintTextArguments arguments = {context, paintSelectedTextOnly, paintSelectedTextSeparately, textStrokeWidth, textStrokeColor, textFillColor, styleToUse, font, sPos, ePos, length, emphasisMark, emphasisMarkColor, combinedText, textRun, boxRect, textOrigin, textShadow, emphasisMarkOffset, selectionStrokeWidth, selectionFillColor, selectionShadow, selectionEmphasisMarkColor, selectionStrokeColor};

PaintTextArguments could have a ctor.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:859
&gt; +        // Clobbers |arguments|

Evil.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1047
&gt; +    const int gap = max&lt;int&gt;(1, ceilf(textDecorationThickness * 3.0 / 4.0));

You shouldn&apos;t make changes to hardcoded values without justification. Also, in theory, this would require a lot of pixel tests to be rebaselined.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1058
&gt; +        return inlineTextBox-&gt;logicalHeight() + gap + max&lt;float&gt;(offset, 0.0f);

You can just say  max&lt;float&gt;(offset, 0);

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1194
&gt; +    const float textDecorationThickness = args-&gt;font.size() / 12.0f;

More magical hardcoded values being changed.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1269
&gt; +        if (clipDecorationToMask) {
&gt; +            context-&gt;save();

Use GraphicsContextStateSaver.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1272
&gt; +            AffineTransform ctm = context-&gt;getCTM(GraphicsContext::DefinitelyIncludeDeviceScale);

We discussed how to just use the ctm&apos;s scale.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1281
&gt; +            OwnPtr&lt;ImageBuffer&gt; imageBuffer = ImageBuffer::create(enclosingDeviceRect.size());

I think this should be createCompatibleBuffer() (but note that it takes the device scale into account).

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1282
&gt; +            GraphicsContext* maskContext = imageBuffer-&gt;context();

What if the buffer allocation fails. Did you test crazy context scaling?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1283
&gt; +            maskContext-&gt;setShouldAntialias(true);

Isn&apos;t it true by default?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1349
&gt; +        if (clipDecorationToMask)
&gt; +            context-&gt;restore();

GraphicsContextStateSaver does this for you.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:376
&gt; +enum TextDecorationSkip {
&gt; +    TextDecorationSkipNone = 0x0, TextDecorationSkipInk = 0x4
&gt; +};
&gt; +inline TextDecorationSkip operator| (TextDecorationSkip a, TextDecorationSkip b) { return TextDecorationSkip(int(a) | int(b)); }
&gt; +inline TextDecorationSkip&amp; operator|= (TextDecorationSkip&amp; a, TextDecorationSkip b) { return a = a | b; }

I don&apos;t really like this approach (even though I see us doing it for TextDecoration etc). I think it&apos;s better to explicitly list the bit shifting:

enum Thing {
  First = 1 &lt;&lt; 0,
  Second = 1 &lt;&lt; 1,
...}

typedef unsigned Things; Or there may be a cooler C++y way to do this now.

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:127
&gt; +    unsigned m_textDecorationSkip : 5; // TextDecorationSkip

You only need 3 bits, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934051</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-09-27 13:04:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/15100907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934095</commentid>
    <comment_count>6</comment_count>
    <who name="Bruno Abinader">brunoabinader</who>
    <bug_when>2013-09-27 14:47:15 -0700</bug_when>
    <thetext>*** Bug 95856 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938600</commentid>
    <comment_count>7</comment_count>
      <attachid>212399</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-10 16:19:36 -0700</bug_when>
    <thetext>Comment on attachment 212399
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +               fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html
&gt; 
&gt; Tests should be listed below the description of the change.

Done.

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        then uses the mask to draw underlines.
&gt; 
&gt; This needs more words. You should link to the spec, say whether it&apos;s on by default, and summarize how the implementation works, and the major changes you had to make.
&gt; 
&gt; Basically someone who has no knowledge of text-decoration or the code should be able to get a good understanding of the change by reading this.

I&apos;ve added more of an explanation

&gt;&gt; Source/WebCore/ChangeLog:46
&gt;&gt; +        * rendering/style/StyleRareInheritedData.h:
&gt; 
&gt; Any of the per-file changes that are non-obvious should be explained here.

I think all of the per-file changes are fairly obvious, except for the changes to InlineTextBox. However, I think the description of the entire change does a good job at explaining the changes to InlineTextBox. Let me know if I should be more explicit than I already am.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:535
&gt;&gt; +};
&gt; 
&gt; This is pretty gross. Should some of this code be factored into a new class?

I put it into a new class with a  constructor. I feel like this class should probably stay within this .cpp file though, since it wouldn&apos;t be used anywhere else. This class only has semantic meaning with respect to PaintText() - it doesn&apos;t signify any structural piece of a webpage. Let me know if you think I should move it into its own file.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:537
&gt;&gt; +void InlineTextBox::paintText(PaintTextArguments* args)
&gt; 
&gt; If args is required, it should be a reference.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:619
&gt;&gt; +}
&gt; 
&gt; Are there any behavior changes in this big chunk of code that got moved?

Nope. Pure copy and paste.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:850
&gt;&gt; +    PaintTextArguments arguments = {context, paintSelectedTextOnly, paintSelectedTextSeparately, textStrokeWidth, textStrokeColor, textFillColor, styleToUse, font, sPos, ePos, length, emphasisMark, emphasisMarkColor, combinedText, textRun, boxRect, textOrigin, textShadow, emphasisMarkOffset, selectionStrokeWidth, selectionFillColor, selectionShadow, selectionEmphasisMarkColor, selectionStrokeColor};
&gt; 
&gt; PaintTextArguments could have a ctor.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:859
&gt;&gt; +        // Clobbers |arguments|
&gt; 
&gt; Evil.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1047
&gt;&gt; +    const int gap = max&lt;int&gt;(1, ceilf(textDecorationThickness * 3.0 / 4.0));
&gt; 
&gt; You shouldn&apos;t make changes to hardcoded values without justification. Also, in theory, this would require a lot of pixel tests to be rebaselined.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1058
&gt;&gt; +        return inlineTextBox-&gt;logicalHeight() + gap + max&lt;float&gt;(offset, 0.0f);
&gt; 
&gt; You can just say  max&lt;float&gt;(offset, 0);

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1194
&gt;&gt; +    const float textDecorationThickness = args-&gt;font.size() / 12.0f;
&gt; 
&gt; More magical hardcoded values being changed.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1269
&gt;&gt; +            context-&gt;save();
&gt; 
&gt; Use GraphicsContextStateSaver.

I don&apos;t think I can do that, because the code that I want to surround with save()/restore() doesn&apos;t have lexical scope. I want to restore in after drawing the underline but before drawing the line through. I think adding an extra pair of {}s to create a new block would be worse than just explicitly calling save() and restore()

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1272
&gt;&gt; +            AffineTransform ctm = context-&gt;getCTM(GraphicsContext::DefinitelyIncludeDeviceScale);
&gt; 
&gt; We discussed how to just use the ctm&apos;s scale.

After talking to Dean about this, I think I have a better solution.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1275
&gt;&gt; +            ctm.setE(0.0);
&gt; 
&gt; These two lines aren&apos;t quite right.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1281
&gt;&gt; +            OwnPtr&lt;ImageBuffer&gt; imageBuffer = ImageBuffer::create(enclosingDeviceRect.size());
&gt; 
&gt; I think this should be createCompatibleBuffer() (but note that it takes the device scale into account).

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1282
&gt;&gt; +            GraphicsContext* maskContext = imageBuffer-&gt;context();
&gt; 
&gt; What if the buffer allocation fails. Did you test crazy context scaling?

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1283
&gt;&gt; +            maskContext-&gt;setShouldAntialias(true);
&gt; 
&gt; Isn&apos;t it true by default?

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1349
&gt;&gt; +            context-&gt;restore();
&gt; 
&gt; GraphicsContextStateSaver does this for you.

See above.

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:376
&gt;&gt; +inline TextDecorationSkip&amp; operator|= (TextDecorationSkip&amp; a, TextDecorationSkip b) { return a = a | b; }
&gt; 
&gt; I don&apos;t really like this approach (even though I see us doing it for TextDecoration etc). I think it&apos;s better to explicitly list the bit shifting:
&gt; 
&gt; enum Thing {
&gt;   First = 1 &lt;&lt; 0,
&gt;   Second = 1 &lt;&lt; 1,
&gt; ...}
&gt; 
&gt; typedef unsigned Things; Or there may be a cooler C++y way to do this now.

Done.

&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:127
&gt;&gt; +    unsigned m_textDecorationSkip : 5; // TextDecorationSkip
&gt; 
&gt; You only need 3 bits, right?

there are 5 values for text-decoration-skip, and the user can specify any subset of them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938976</commentid>
    <comment_count>8</comment_count>
      <attachid>214024</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-11 14:54:08 -0700</bug_when>
    <thetext>Created attachment 214024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938977</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-11 14:56:18 -0700</bug_when>
    <thetext>Attachment 214024 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-zoomed-expected.html&apos;, u&apos;LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-zoomed.html&apos;, u&apos;LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt&apos;, u&apos;LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Configurations/FeatureDefines.xcconfig&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSPropertyNames.in&apos;, u&apos;Source/WebCore/css/CSSValueKeywords.in&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/rendering/InlineTextBox.cpp&apos;, u&apos;Source/WebCore/rendering/InlineTextBox.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyle.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyleConstants.h&apos;, u&apos;Source/WebCore/rendering/style/StyleRareInheritedData.cpp&apos;, u&apos;Source/WebCore/rendering/style/StyleRareInheritedData.h&apos;, u&apos;Source/WebKit/mac/Configurations/FeatureDefines.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/FeatureDefines.xcconfig&apos;, u&apos;Tools/Scripts/webkitperl/FeatureList.pm&apos;]&quot; exit_code: 1
Source/WebCore/css/DeprecatedStyleBuilder.cpp:1274:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939119</commentid>
    <comment_count>10</comment_count>
      <attachid>214024</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-12 14:06:44 -0700</bug_when>
    <thetext>Comment on attachment 214024
Patch

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

&gt;&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1274
&gt;&gt; +    static TextDecorationSkip valueToDecorationSkip(CSSValue* value) {
&gt; 
&gt; Place brace on its own line for function definitions.  [whitespace/braces] [4]

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939120</commentid>
    <comment_count>11</comment_count>
      <attachid>214065</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-12 14:07:28 -0700</bug_when>
    <thetext>Created attachment 214065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939160</commentid>
    <comment_count>12</comment_count>
      <attachid>214065</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-12 18:09:00 -0700</bug_when>
    <thetext>Comment on attachment 214065
Patch

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

Patch does not apply, so you&apos;ll need to rebase it. I took a quick look and have a few comments, mostly on coding style.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2371
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/css/CSSParser.cpp:2377
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/css/CSSParser.h:289
&gt;  #if ENABLE(CSS3_TEXT)
&gt;      bool parseTextUnderlinePosition(bool important);
&gt; -#endif
&gt; +#endif // CSS3_TEXT
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    bool parseTextDecorationSkip(bool important);
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1291
&gt; +    static TextDecorationSkip valueToDecorationSkip(CSSValue* value)
&gt; +    {
&gt; +        CSSPrimitiveValue* pv = static_cast&lt;CSSPrimitiveValue*&gt;(value);
&gt; +
&gt; +        ASSERT(pv-&gt;isValueID());
&gt; +
&gt; +        switch (pv-&gt;getValueID()) {
&gt; +        case CSSValueNone:
&gt; +            return TextDecorationSkipNone;
&gt; +        case CSSValueInk:
&gt; +            return TextDecorationSkipInk;
&gt; +        default:
&gt; +            break;
&gt; +        }
&gt; +
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return TextDecorationSkipNone;
&gt; +    }

Since the argument is never null, it should be a reference rather than a pointer. Since the function works only on a CSSPrimitiveValue, the typecast should be done at the call site, so the argument should be CSSPrimitiveValue&amp;.

Please don’t use abbreviations made out of letters instead of words, such as &quot;pv&quot;, for variable names in WebKit code. The code would be easier to read if the variable was named primitiveValue.

&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1300
&gt; +        TextDecorationSkip t = RenderStyle::initialTextDecorationSkip();

The name &quot;t&quot; doesn’t make sense. We avoid single letter variable names except for certain traditional places. I suggest the name &quot;skip&quot; here, since that&apos;s the term we chose in CSS. Or something else made with words.

&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1304
&gt; +            CSSValue* item = i.value();
&gt; +            ASSERT_WITH_SECURITY_IMPLICATION(item-&gt;isPrimitiveValue());
&gt; +            t |= valueToDecorationSkip(item);

The assertion should be done inside a casting function, toCSSPrimitiveValue, so we don’t have to write it out here.

Is there a rule against listing the same thing over and over again? &quot;ink ink ink ink ink&quot;? If so, where is that enforced? If not, then we should have test cases for that.

&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:2324
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    setPropertyHandler(CSSPropertyWebkitTextDecorationSkip, ApplyPropertyTextDecorationSkip::createHandler());
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/css/StyleResolver.cpp:3051
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    case CSSPropertyWebkitTextDecorationSkip:
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:521
&gt; +struct PaintTextArguments {
&gt; +    PaintTextArguments(GraphicsContext* context, bool paintSelectedTextOnly, bool paintSelectedTextSeparately, const Font&amp; font,
&gt; +    int sPos, int ePos, int length, const AtomicString&amp; emphasisMark, RenderCombineText* combinedText, TextRun&amp; textRun,
&gt; +    FloatRect&amp; boxRect, FloatPoint&amp; textOrigin, const ShadowData* textShadow, int emphasisMarkOffset, const ShadowData* selectionShadow,
&gt; +    TextPaintStyle&amp; textPaintStyle, TextPaintStyle&amp; selectionPaintStyle)
&gt; +        : m_context(context)
&gt; +        , m_paintSelectedTextOnly(paintSelectedTextOnly)
&gt; +        , m_paintSelectedTextSeparately(paintSelectedTextSeparately)
&gt; +        , m_font(font)
&gt; +        , m_sPos(sPos)
&gt; +        , m_ePos(ePos)
&gt; +        , m_length(length)
&gt; +        , m_emphasisMark(emphasisMark)
&gt; +        , m_combinedText(combinedText)
&gt; +        , m_textRun(textRun)
&gt; +        , m_boxRect(boxRect)
&gt; +        , m_textOrigin(textOrigin)
&gt; +        , m_textShadow(textShadow)
&gt; +        , m_emphasisMarkOffset(emphasisMarkOffset)
&gt; +        , m_selectionShadow(selectionShadow)
&gt; +        , m_textPaintStyle(textPaintStyle)
&gt; +        , m_selectionPaintStyle(selectionPaintStyle)
&gt; +    {
&gt; +    }
&gt; +    GraphicsContext* m_context;
&gt; +    bool m_paintSelectedTextOnly;
&gt; +    bool m_paintSelectedTextSeparately;
&gt; +    const Font&amp; m_font;
&gt; +    int m_sPos;
&gt; +    int m_ePos;
&gt; +    int m_length;
&gt; +    const AtomicString&amp; m_emphasisMark;
&gt; +    RenderCombineText* m_combinedText;
&gt; +    TextRun&amp; m_textRun;
&gt; +    FloatRect&amp; m_boxRect;
&gt; +    FloatPoint&amp; m_textOrigin;
&gt; +    const ShadowData* m_textShadow;
&gt; +    int m_emphasisMarkOffset;
&gt; +    const ShadowData* m_selectionShadow;
&gt; +    TextPaintStyle&amp; m_textPaintStyle;
&gt; +    TextPaintStyle&amp; m_selectionPaintStyle;
&gt; +};

This is a poor pattern. If we are going to have a struct with lots of members like this, they should not have &quot;m_&quot; prefixes. Those are for members of classes, where there is competition between the function members and the data members. But here using &quot;m_&quot; just makes it harder to read the code using the class.

GraphicsContext* should be a reference, since it’s never null. Maybe some of the others as well.

But also, putting all this state into an &quot;arguments to a function&quot; struct tells us that perhaps we need a class. Or that these should be in more logical groupings in some smaller structs. This mechanical approach where the struct is literally just &quot;all the arguments to the function&quot; is unlikely to be the right way to factor it.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:543
&gt; +    GraphicsContext*&amp; context = args.m_context;
&gt; +    const bool&amp; paintSelectedTextOnly = args.m_paintSelectedTextOnly;
&gt; +    const bool&amp; paintSelectedTextSeparately = args.m_paintSelectedTextSeparately;
&gt; +    const Font&amp; font = args.m_font;
&gt; +    const int&amp; sPos = args.m_sPos;
&gt; +    const int&amp; ePos = args.m_ePos;
&gt; +    const int&amp; length = args.m_length;
&gt; +    const AtomicString&amp; emphasisMark = args.m_emphasisMark;
&gt; +    RenderCombineText*&amp; combinedText = args.m_combinedText;
&gt; +    TextRun&amp; textRun = args.m_textRun;
&gt; +    const FloatRect&amp; boxRect = args.m_boxRect;
&gt; +    const FloatPoint&amp; boxOrigin = boxRect.location();
&gt; +    const FloatPoint&amp; textOrigin = args.m_textOrigin;
&gt; +    const ShadowData*&amp; textShadow = args.m_textShadow;
&gt; +    const int&amp; emphasisMarkOffset = args.m_emphasisMarkOffset;
&gt; +    const ShadowData*&amp; selectionShadow = args.m_selectionShadow;
&gt; +    const TextPaintStyle&amp; textPaintStyle = args.m_textPaintStyle;
&gt; +    const TextPaintStyle&amp; selectionPaintStyle = args.m_selectionPaintStyle;

This is messy and tells me we don’t have this quite right. It doesn’t make sense to move all this data en masse from the arguments to local variables better. We should use the arguments directly in the code or use a different pattern.

It’s silly to use a const bool&amp; or a const int&amp; for this; it&apos;s a waste to follow a pointer each time to get back to the argument structure. So if we were doing something like this then we should use const&amp; only where the object is more less expensive to copy than a pointer is.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1093
&gt; +void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&amp; boxOrigin, TextDecoration deco, TextDecorationStyle decorationStyle, const ShadowData* shadow, PaintTextArguments&amp; args)

args is a confusing variable name here, since those are not all the args

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1173
&gt; +        TextDecorationSkip textDecorationSkip = lineStyle.textDecorationSkip();
&gt; +        bool clipDecorationToMask = textDecorationSkip == TextDecorationSkipInk;

There’s no need to put lineStyle.textDecorationSkip() into a local variable.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1207
&gt; +                args.m_textPaintStyle.strokeWidth += 1.0f;
&gt; +                args.m_selectionPaintStyle.strokeWidth += 1.0f;

Where does this constant of &quot;1&quot; come from? I think it should be a constant so we can make clearer what it means. I assume it’s an artistic choice about how far away from the text stroke the underlines should stop.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1209
&gt; +                args.m_textShadow = 0;
&gt; +                args.m_selectionShadow = 0;

nullptr instead of 0

&gt; Source/WebCore/rendering/InlineTextBox.h:36
&gt;  struct CompositionUnderline;
&gt;  class DocumentMarker;
&gt; +struct PaintTextArguments;
&gt; +class RenderCombineText;

Our usual way to do this is to list all classes first in alphabetical order, then a blank line, then all structs in alphabetical order.

&gt; Source/WebCore/rendering/InlineTextBox.h:186
&gt; +    void paintText(PaintTextArguments&amp; args);
&gt; +    void paintDecoration(GraphicsContext*, const FloatPoint&amp; boxOrigin, TextDecoration, TextDecorationStyle, const ShadowData*, PaintTextArguments&amp; args);

The name &quot;args&quot; should be omitted here. We only include argument names when the add clarity to the meaning of the arguments.

&gt; Source/WebCore/rendering/style/RenderStyle.h:589
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    TextDecorationSkip textDecorationSkip() const { return static_cast&lt;TextDecorationSkip&gt;(rareInheritedData-&gt;m_textDecorationSkip); }
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1174
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    void setTextDecorationSkip(TextDecorationSkip v) { SET_VAR(rareInheritedData, m_textDecorationSkip, v); }
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

I suggest the name &quot;skip&quot; instead of &quot;v&quot; for the argument.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1698
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    static TextDecorationSkip initialTextDecorationSkip() { return TextDecorationSkipNone; }
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:384
&gt; +    TextDecorationSkipNone = 0x0, TextDecorationSkipInk = 0x4

Where does the &quot;4&quot; value come from? I think the value should be (1 &lt;&lt; 0) to make it clear this is a bit mask. And to avoid creating the mystery of the two skipped bits!

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:387
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.cpp:120
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +    , m_textDecorationSkip(RenderStyle::initialTextDecorationSkip())
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.cpp:329
&gt; +#if ENABLE(CSS3_TEXT_DECORATION)
&gt; +        &amp;&amp; m_textDecorationSkip == o.m_textDecorationSkip
&gt; +#endif // CSS3_TEXT_DECORATION

Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939161</commentid>
    <comment_count>13</comment_count>
      <attachid>214065</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-12 18:09:39 -0700</bug_when>
    <thetext>Comment on attachment 214065
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1193
&gt; +            savedContext = args.m_context;
&gt; +            savedTextStrokeWidth = args.m_textPaintStyle.strokeWidth;
&gt; +            savedSelectionStrokeWidth = args.m_selectionPaintStyle.strokeWidth;
&gt; +            savedTextShadow = args.m_textShadow;
&gt; +            savedSelectionShadow = args.m_selectionShadow;

This set of things that needs to be saved and restored seems like a good candidate to be in a separate struct. Then the would be a single line of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939165</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-12 18:20:52 -0700</bug_when>
    <thetext>Generally it looks like this is going in a good direction. Keep it up!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940080</commentid>
    <comment_count>15</comment_count>
      <attachid>214065</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-15 12:22:46 -0700</bug_when>
    <thetext>Comment on attachment 214065
Patch

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

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2371
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2377
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/css/CSSParser.h:289
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1291
&gt;&gt; +    }
&gt; 
&gt; Since the argument is never null, it should be a reference rather than a pointer. Since the function works only on a CSSPrimitiveValue, the typecast should be done at the call site, so the argument should be CSSPrimitiveValue&amp;.
&gt; 
&gt; Please don’t use abbreviations made out of letters instead of words, such as &quot;pv&quot;, for variable names in WebKit code. The code would be easier to read if the variable was named primitiveValue.

applyValue() has to match the signature of WebCore::PropertyHandler::ApplyFunction. I&apos;ve changed valueToDecorationSkip.

Done.

&gt;&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1300
&gt;&gt; +        TextDecorationSkip t = RenderStyle::initialTextDecorationSkip();
&gt; 
&gt; The name &quot;t&quot; doesn’t make sense. We avoid single letter variable names except for certain traditional places. I suggest the name &quot;skip&quot; here, since that&apos;s the term we chose in CSS. Or something else made with words.

Done.

&gt;&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:2324
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:3051
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1093
&gt;&gt; +void InlineTextBox::paintDecoration(GraphicsContext* context, const FloatPoint&amp; boxOrigin, TextDecoration deco, TextDecorationStyle decorationStyle, const ShadowData* shadow, PaintTextArguments&amp; args)
&gt; 
&gt; args is a confusing variable name here, since those are not all the args

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1173
&gt;&gt; +        bool clipDecorationToMask = textDecorationSkip == TextDecorationSkipInk;
&gt; 
&gt; There’s no need to put lineStyle.textDecorationSkip() into a local variable.

I actually did this on purpose, since there is a logical difference between &quot;use a mask&quot; and &quot;text-decoration-skip: ink is applied&quot; Eventually boolean computation will be more complicated when other things require using a mask.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1193
&gt;&gt; +            savedSelectionShadow = args.m_selectionShadow;
&gt; 
&gt; This set of things that needs to be saved and restored seems like a good candidate to be in a separate struct. Then the would be a single line of code.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1207
&gt;&gt; +                args.m_selectionPaintStyle.strokeWidth += 1.0f;
&gt; 
&gt; Where does this constant of &quot;1&quot; come from? I think it should be a constant so we can make clearer what it means. I assume it’s an artistic choice about how far away from the text stroke the underlines should stop.

Yep. Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1209
&gt;&gt; +                args.m_selectionShadow = 0;
&gt; 
&gt; nullptr instead of 0

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.h:36
&gt;&gt; +class RenderCombineText;
&gt; 
&gt; Our usual way to do this is to list all classes first in alphabetical order, then a blank line, then all structs in alphabetical order.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.h:186
&gt;&gt; +    void paintDecoration(GraphicsContext*, const FloatPoint&amp; boxOrigin, TextDecoration, TextDecorationStyle, const ShadowData*, PaintTextArguments&amp; args);
&gt; 
&gt; The name &quot;args&quot; should be omitted here. We only include argument names when the add clarity to the meaning of the arguments.

Done.

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:589
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:1174
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.
&gt; 
&gt; I suggest the name &quot;skip&quot; instead of &quot;v&quot; for the argument.

Done.

Done.

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:1698
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:384
&gt;&gt; +    TextDecorationSkipNone = 0x0, TextDecorationSkipInk = 0x4
&gt; 
&gt; Where does the &quot;4&quot; value come from? I think the value should be (1 &lt;&lt; 0) to make it clear this is a bit mask. And to avoid creating the mystery of the two skipped bits!

It came from the spec. &quot;ink&quot; is the 3rd item in the list of available options, so i made it the 3rd bit. I&apos;ll change it.

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:387
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.cpp:120
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.

&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.cpp:329
&gt;&gt; +#endif // CSS3_TEXT_DECORATION
&gt; 
&gt; Comments on the #endif on these short #if sequences make the code harder to read rather than easier. Please omit them.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940081</commentid>
    <comment_count>16</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-15 12:23:13 -0700</bug_when>
    <thetext>Partial comment responses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940174</commentid>
    <comment_count>17</comment_count>
      <attachid>214065</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-15 15:49:48 -0700</bug_when>
    <thetext>Comment on attachment 214065
Patch

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

&gt;&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:1304
&gt;&gt; +            t |= valueToDecorationSkip(item);
&gt; 
&gt; The assertion should be done inside a casting function, toCSSPrimitiveValue, so we don’t have to write it out here.
&gt; 
&gt; Is there a rule against listing the same thing over and over again? &quot;ink ink ink ink ink&quot;? If so, where is that enforced? If not, then we should have test cases for that.

Done.

The spec says &quot;A double bar (||) separates two or more options: one or more of them must occur, in any order.&quot; I&apos;d guess that this means there can be duplicates. Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:521
&gt;&gt; +};
&gt; 
&gt; This is a poor pattern. If we are going to have a struct with lots of members like this, they should not have &quot;m_&quot; prefixes. Those are for members of classes, where there is competition between the function members and the data members. But here using &quot;m_&quot; just makes it harder to read the code using the class.
&gt; 
&gt; GraphicsContext* should be a reference, since it’s never null. Maybe some of the others as well.
&gt; 
&gt; But also, putting all this state into an &quot;arguments to a function&quot; struct tells us that perhaps we need a class. Or that these should be in more logical groupings in some smaller structs. This mechanical approach where the struct is literally just &quot;all the arguments to the function&quot; is unlikely to be the right way to factor it.

I&apos;ve made this a class.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:543
&gt;&gt; +    const TextPaintStyle&amp; selectionPaintStyle = args.m_selectionPaintStyle;
&gt; 
&gt; This is messy and tells me we don’t have this quite right. It doesn’t make sense to move all this data en masse from the arguments to local variables better. We should use the arguments directly in the code or use a different pattern.
&gt; 
&gt; It’s silly to use a const bool&amp; or a const int&amp; for this; it&apos;s a waste to follow a pointer each time to get back to the argument structure. So if we were doing something like this then we should use const&amp; only where the object is more less expensive to copy than a pointer is.

That&apos;s why I made them references, so there wasn&apos;t &quot;args.&quot; littered everywhere.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940189</commentid>
    <comment_count>18</comment_count>
      <attachid>214319</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-15 16:43:10 -0700</bug_when>
    <thetext>Created attachment 214319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940282</commentid>
    <comment_count>19</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-10-15 23:28:41 -0700</bug_when>
    <thetext>Please post a rebased patch; bots can&apos;t apply it.

(In reply to comment #18)
&gt; Created an attachment (id=214319) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940394</commentid>
    <comment_count>20</comment_count>
      <attachid>214065</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-16 09:09:32 -0700</bug_when>
    <thetext>Comment on attachment 214065
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:543
&gt;&gt;&gt; +    const TextPaintStyle&amp; selectionPaintStyle = args.m_selectionPaintStyle;
&gt;&gt; 
&gt;&gt; This is messy and tells me we don’t have this quite right. It doesn’t make sense to move all this data en masse from the arguments to local variables better. We should use the arguments directly in the code or use a different pattern.
&gt;&gt; 
&gt;&gt; It’s silly to use a const bool&amp; or a const int&amp; for this; it&apos;s a waste to follow a pointer each time to get back to the argument structure. So if we were doing something like this then we should use const&amp; only where the object is more less expensive to copy than a pointer is.
&gt; 
&gt; That&apos;s why I made them references, so there wasn&apos;t &quot;args.&quot; littered everywhere.
&gt; 
&gt; Done.

Obsolete in the new patch, but I don’t understand the “why I made them references” comment. I believe that const bool&amp; x = args.x will always perform more poorly than bool x = args.x and has no benefits unless we want to track changes to args.x. But perhaps I am mistaken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940421</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-16 10:34:24 -0700</bug_when>
    <thetext>Darin: I believe you&apos;re right. My comment was only about scoping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940441</commentid>
    <comment_count>22</comment_count>
      <attachid>214375</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-16 10:54:28 -0700</bug_when>
    <thetext>Created attachment 214375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940464</commentid>
    <comment_count>23</comment_count>
      <attachid>214375</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-16 11:38:50 -0700</bug_when>
    <thetext>Comment on attachment 214375
Patch

Attachment 214375 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/4110288</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940473</commentid>
    <comment_count>24</comment_count>
      <attachid>214375</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-10-16 11:57:34 -0700</bug_when>
    <thetext>Comment on attachment 214375
Patch

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

Looks like you just missed the &quot;AllInOne&quot; file. r- to correct that.

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        * Configurations/FeatureDefines.xcconfig:

What&apos;s this all about?  Looks like a leftover ChangeLog

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:11634
&gt; +      &lt;ExcludedFromBuild Condition=&quot;&apos;$(Configuration)|$(Platform)&apos;==&apos;Production|x64&apos;&quot;&gt;true&lt;/ExcludedFromBuild&gt;

If you mark it as &quot;don&apos;t build&quot; here, you need to add it to &quot;RenderingAllInOne.cpp&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940475</commentid>
    <comment_count>25</comment_count>
      <attachid>214383</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-16 12:00:12 -0700</bug_when>
    <thetext>Created attachment 214383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940480</commentid>
    <comment_count>26</comment_count>
      <attachid>214375</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-10-16 12:09:26 -0700</bug_when>
    <thetext>Comment on attachment 214375
Patch

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

&gt; Source/WebCore/ChangeLog:27
&gt; +

This patch is large enough that everything below ought to have description of what&apos;s going on. The above overview is good, but we need more detail below. Also, the caveats you place as comments in the code ought to be in the Changelog instead, since for the most part it is obvious from the code that only &quot;ink&quot; is being handled.

&gt; Source/WebCore/css/CSSParser.h:286
&gt; +#endif // CSS3_TEXT

Comment unneeded.

&gt; LayoutTests/ChangeLog:11
&gt; +        * fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-multiple-expected.txt: Added.

Needs description was the test is for.

&gt; LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-zoomed-expected.html:23
&gt; +  aliasing near the character

The description should be clarified a bit, either here or in the Changelog, that because the character is being blown up, the underline and moat are scaled appropriately as well, thus proper skip:ink impl means we would see no underline. So the expected results would be the same as if it were not underlined at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940481</commentid>
    <comment_count>27</comment_count>
      <attachid>214383</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-16 12:09:50 -0700</bug_when>
    <thetext>Comment on attachment 214383
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1009
&gt; +        if (clipDecorationToMask) {
&gt; +            context-&gt;save();

Look at GraphicsContextStateSaver.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1017
&gt; +            IntRect enclosingDeviceRect = enclosingIntRect(ctm.mapQuad(boxRect).boundingBox());
&gt; +
&gt; +            OwnPtr&lt;ImageBuffer&gt; imageBuffer = context-&gt;createCompatibleBuffer(enclosingDeviceRect.size());

Does this do the right thing in rotated contexts?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1023
&gt; +                maskContext-&gt;concatCTM(ctm);

Did createCompatibleBuffer() already put the device scale into the CTM? If so, you might be multiplying the device scale in twice. Did you test on retina?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1031
&gt; +                context-&gt;concatCTM(ctm.inverse());
&gt; +                context-&gt;clipToImageBuffer(imageBuffer.get(), enclosingDeviceRect);

I don&apos;t get why you concat the inverse of the CTM. This is basically converting back to base space.

&gt; Source/WebCore/rendering/TextPainter.cpp:58
&gt; +    bool opaque = fillColor.alpha() == 255;

color.hasAlpha()

&gt; Source/WebCore/rendering/TextPainter.cpp:73
&gt; +            if (emphasisMark.isEmpty())
&gt; +                context-&gt;drawText(font, textRun, textOrigin + extraOffset, startOffset, endOffset);
&gt; +            else
&gt; +                context-&gt;drawEmphasisMarks(font, textRun, emphasisMark, textOrigin + extraOffset + IntSize(0, emphasisMarkOffset), startOffset, endOffset);

This pattern occurs three times. Move it into a function?

&gt; Source/WebCore/rendering/TextPainter.h:56
&gt; +    const FloatRect&amp; boxRect() { return m_boxRect; }

Should be a const function.

&gt; Source/WebCore/rendering/TextPainter.h:58
&gt; +    void paintThickTextInMask(GraphicsContext&amp;);

Not sure why it needs &quot;thick&quot; in the name. Why not pass in the &quot;thickness&quot;? Also, the implementation doesn&apos;t paint into a mask, right?

&gt; Source/WebCore/rendering/TextPainter.h:65
&gt; +    int m_sPos;
&gt; +    int m_ePos;

Names are too mysterious.

&gt; Source/WebCore/rendering/TextPainter.h:72
&gt; +    int m_emphasisMarkOffset;

Why not a float?

&gt; Source/WebCore/rendering/TextPainter.h:73
&gt; +    bool m_horizontal;

What is horizontal?

&gt; LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-multiple.html:11
&gt; +    stylesheet.insertRule(&quot;.p { -webkit-text-decoration-skip: ink ink ink ink ink; }&quot;, 0);

We normally have a single test with &quot;parsing&quot; in the name that test multiple variants of the property value. Here, you should test stuff like &quot;garbage ink&quot;, &quot;garbage&quot;, &quot;ink garbage ink&quot;.

&gt; LayoutTests/platform/mac/TestExpectations:832
&gt; +webkit.org/b/58491 fast/css3-text/css3-text-decoration/text-decoration-skip [ Pass ]

Why did you add a Pass here? You don&apos;t need to add anything for a new test that passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940844</commentid>
    <comment_count>28</comment_count>
      <attachid>214383</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-17 11:01:36 -0700</bug_when>
    <thetext>Comment on attachment 214383
Patch

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

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1009
&gt;&gt; +            context-&gt;save();
&gt; 
&gt; Look at GraphicsContextStateSaver.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1017
&gt;&gt; +            OwnPtr&lt;ImageBuffer&gt; imageBuffer = context-&gt;createCompatibleBuffer(enclosingDeviceRect.size());
&gt; 
&gt; Does this do the right thing in rotated contexts?

Yes, though we&apos;ve discussed how to change this.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1023
&gt;&gt; +                maskContext-&gt;concatCTM(ctm);
&gt; 
&gt; Did createCompatibleBuffer() already put the device scale into the CTM? If so, you might be multiplying the device scale in twice. Did you test on retina?

We discussed this offline.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1031
&gt;&gt; +                context-&gt;clipToImageBuffer(imageBuffer.get(), enclosingDeviceRect);
&gt; 
&gt; I don&apos;t get why you concat the inverse of the CTM. This is basically converting back to base space.

We talked about this offline.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:58
&gt;&gt; +    bool opaque = fillColor.alpha() == 255;
&gt; 
&gt; color.hasAlpha()

This is cut-and-paste, but I can change that. Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:73
&gt;&gt; +                context-&gt;drawEmphasisMarks(font, textRun, emphasisMark, textOrigin + extraOffset + IntSize(0, emphasisMarkOffset), startOffset, endOffset);
&gt; 
&gt; This pattern occurs three times. Move it into a function?

This is cut-and-paste, but I can change that. Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:56
&gt;&gt; +    const FloatRect&amp; boxRect() { return m_boxRect; }
&gt; 
&gt; Should be a const function.

Good catch. Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:58
&gt;&gt; +    void paintThickTextInMask(GraphicsContext&amp;);
&gt; 
&gt; Not sure why it needs &quot;thick&quot; in the name. Why not pass in the &quot;thickness&quot;? Also, the implementation doesn&apos;t paint into a mask, right?

The implementation paints into the given GraphicsContext. Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:65
&gt;&gt; +    int m_ePos;
&gt; 
&gt; Names are too mysterious.

Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:72
&gt;&gt; +    int m_emphasisMarkOffset;
&gt; 
&gt; Why not a float?

This was cut-and-paste. I didn&apos;t want to change any semantics.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:73
&gt;&gt; +    bool m_horizontal;
&gt; 
&gt; What is horizontal?

The InlineTextBox (InlineTextBox::IsHorizontal). I&apos;ll change the variable name to be clearer. Done.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-multiple.html:11
&gt;&gt; +    stylesheet.insertRule(&quot;.p { -webkit-text-decoration-skip: ink ink ink ink ink; }&quot;, 0);
&gt; 
&gt; We normally have a single test with &quot;parsing&quot; in the name that test multiple variants of the property value. Here, you should test stuff like &quot;garbage ink&quot;, &quot;garbage&quot;, &quot;ink garbage ink&quot;.

Done.

&gt;&gt; LayoutTests/platform/mac/TestExpectations:832
&gt;&gt; +webkit.org/b/58491 fast/css3-text/css3-text-decoration/text-decoration-skip [ Pass ]
&gt; 
&gt; Why did you add a Pass here? You don&apos;t need to add anything for a new test that passes.

See the line above it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941056</commentid>
    <comment_count>29</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-10-17 17:29:53 -0700</bug_when>
    <thetext>Patch doesn&apos;t redraw when the CSS property is changed or removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945976</commentid>
    <comment_count>30</comment_count>
      <attachid>215747</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 12:16:41 -0700</bug_when>
    <thetext>Created attachment 215747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945991</commentid>
    <comment_count>31</comment_count>
      <attachid>215747</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-01 13:19:10 -0700</bug_when>
    <thetext>Comment on attachment 215747
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:783
&gt; +        return inlineTextBox-&gt;logicalHeight() + gap + max&lt;float&gt;(offset, 0);

I think we explicitly do std:max nowadays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945996</commentid>
    <comment_count>32</comment_count>
      <attachid>215747</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-01 13:28:00 -0700</bug_when>
    <thetext>Comment on attachment 215747
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        3. Redraw text into this ImageBuffer with a thicker stroke

Just Draw, it&apos;s not drawing again.

&gt; Source/WebCore/ChangeLog:14
&gt; +        6. Un-apply the mask

One does not really un-apply a mask.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:814
&gt; +static float getWavyStrokeControlPointDistance(float strokeThickness)
&gt; +{
&gt; +    return 3 * max&lt;float&gt;(2, strokeThickness);
&gt; +}
&gt; +
&gt; +static float getWavyStrokeStep(float strokeThickness)

We only use getFoo for functions with out params.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:923
&gt; +static FloatRect getSingleDecorationBoundingBox(GraphicsContext&amp; context, const float textDecorationThickness,

&quot;get&quot; again.

What does &quot;single decoration&quot; mean? A comment would clarify.

We don&apos;t tend to use &quot;const&quot; on POD types in function arguments.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:940
&gt; +        FloatPoint start(localOrigin.x(), localOrigin.y() + yOffset);
&gt; +        FloatPoint end = start + FloatSize(width, 0);
&gt; +        context.adjustLineToPixelBoundaries(start, end, textDecorationThickness, context.strokeStyle());
&gt; +        float controlPointDistance = getWavyStrokeControlPointDistance(textDecorationThickness);
&gt; +        float step = getWavyStrokeStep(textDecorationThickness);
&gt; +        adjustStepToDecorationLength(step, controlPointDistance, width);
&gt; +        controlPointDistance += textDecorationThickness;
&gt; +        FloatPoint boundingBoxOrigin = start - FloatSize(0, controlPointDistance);
&gt; +        FloatSize boundingBoxSize = FloatSize(width, 2 * controlPointDistance);
&gt; +        boundingBox.unite(FloatRect(boundingBoxOrigin, boundingBoxSize));

Some blank lines would help to break up this wall of code.

Maybe combine getWavyStrokeControlPointDistance and getWavyStrokeStep into one function?

boundingBox.unite here is confusing.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:944
&gt; +        boundingBox.unite(context.computeLineBoundsForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset), width, isPrinting));

Confusing to .unite() here because nothing has previously set the rect.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:951
&gt; +static FloatRect getDecorationBoundingBox(InlineTextBox&amp; inlineTextBox, GraphicsContext&amp; context, TextDecoration deco, const float textDecorationThickness, const float width, const float doubleOffset, const TextDecorationStyle decorationStyle, const FloatPoint localOrigin, const RenderStyle&amp; lineStyle, const bool isPrinting, const int baseline)

&quot;get&quot; again. Don&apos;t abbreviate &quot;deco&quot;. Don&apos;t use const on POD.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:963
&gt; +        boundingBox.unite(getSingleDecorationBoundingBox(context, textDecorationThickness, width, localOrigin, decorationStyle, isPrinting, underlineOffset + doubleOffset, underlineOffset, baseline + 1));
&gt; +    }
&gt; +    if (deco &amp; TextDecorationOverline)
&gt; +        boundingBox.unite(getSingleDecorationBoundingBox(context, textDecorationThickness, width, localOrigin, decorationStyle, isPrinting, -doubleOffset, 0, -doubleOffset));
&gt; +    if (deco &amp; TextDecorationLineThrough)
&gt; +        boundingBox.unite(getSingleDecorationBoundingBox(context, textDecorationThickness, width, localOrigin, decorationStyle, isPrinting, 2 * baseline / 3, 2 * baseline / 3, doubleOffset + 2 * baseline / 3));

Don&apos;t use .unite unless you mean it.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1045
&gt; +        TextDecorationSkip textDecorationSkip = lineStyle.textDecorationSkip();

I, like Darin before me, don&apos;t see the need for a separate variable.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1051
&gt; +            const float skipInkGapWidth = 1.f;

No need for .f

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1055
&gt; +            const FloatRect underlineRect = getDecorationBoundingBox(*this, *context, deco, textDecorationThickness, width, doubleOffset, decorationStyle, localOrigin, lineStyle, isPrinting, baseline);

We don&apos;t tend to use const on local variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946021</commentid>
    <comment_count>33</comment_count>
      <attachid>215747</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 14:06:25 -0700</bug_when>
    <thetext>Comment on attachment 215747
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        3. Redraw text into this ImageBuffer with a thicker stroke
&gt; 
&gt; Just Draw, it&apos;s not drawing again.

Done.

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        6. Un-apply the mask
&gt; 
&gt; One does not really un-apply a mask.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:783
&gt;&gt; +        return inlineTextBox-&gt;logicalHeight() + gap + max&lt;float&gt;(offset, 0);
&gt; 
&gt; I think we explicitly do std:max nowadays.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:814
&gt;&gt; +static float getWavyStrokeStep(float strokeThickness)
&gt; 
&gt; We only use getFoo for functions with out params.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:923
&gt;&gt; +static FloatRect getSingleDecorationBoundingBox(GraphicsContext&amp; context, const float textDecorationThickness,
&gt; 
&gt; &quot;get&quot; again.
&gt; 
&gt; What does &quot;single decoration&quot; mean? A comment would clarify.
&gt; 
&gt; We don&apos;t tend to use &quot;const&quot; on POD types in function arguments.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:940
&gt;&gt; +        boundingBox.unite(FloatRect(boundingBoxOrigin, boundingBoxSize));
&gt; 
&gt; Some blank lines would help to break up this wall of code.
&gt; 
&gt; Maybe combine getWavyStrokeControlPointDistance and getWavyStrokeStep into one function?
&gt; 
&gt; boundingBox.unite here is confusing.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:944
&gt;&gt; +        boundingBox.unite(context.computeLineBoundsForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset), width, isPrinting));
&gt; 
&gt; Confusing to .unite() here because nothing has previously set the rect.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:951
&gt;&gt; +static FloatRect getDecorationBoundingBox(InlineTextBox&amp; inlineTextBox, GraphicsContext&amp; context, TextDecoration deco, const float textDecorationThickness, const float width, const float doubleOffset, const TextDecorationStyle decorationStyle, const FloatPoint localOrigin, const RenderStyle&amp; lineStyle, const bool isPrinting, const int baseline)
&gt; 
&gt; &quot;get&quot; again. Don&apos;t abbreviate &quot;deco&quot;. Don&apos;t use const on POD.

Done

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:963
&gt;&gt; +        boundingBox.unite(getSingleDecorationBoundingBox(context, textDecorationThickness, width, localOrigin, decorationStyle, isPrinting, 2 * baseline / 3, 2 * baseline / 3, doubleOffset + 2 * baseline / 3));
&gt; 
&gt; Don&apos;t use .unite unless you mean it.

I believe in this function, unite is okay.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1045
&gt;&gt; +        TextDecorationSkip textDecorationSkip = lineStyle.textDecorationSkip();
&gt; 
&gt; I, like Darin before me, don&apos;t see the need for a separate variable.

I misunderstood Darin&apos;s comment. Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1051
&gt;&gt; +            const float skipInkGapWidth = 1.f;
&gt; 
&gt; No need for .f

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1055
&gt;&gt; +            const FloatRect underlineRect = getDecorationBoundingBox(*this, *context, deco, textDecorationThickness, width, doubleOffset, decorationStyle, localOrigin, lineStyle, isPrinting, baseline);
&gt; 
&gt; We don&apos;t tend to use const on local variables.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946025</commentid>
    <comment_count>34</comment_count>
      <attachid>215761</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 14:11:03 -0700</bug_when>
    <thetext>Created attachment 215761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946036</commentid>
    <comment_count>35</comment_count>
      <attachid>215761</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-01 14:28:40 -0700</bug_when>
    <thetext>Comment on attachment 215761
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:809
&gt; +static void populateWavyStrokeParameters(float strokeThickness, float&amp; controlPointDistance, float&amp; step)

It&apos;s OK to use get now because you have out params.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946037</commentid>
    <comment_count>36</comment_count>
      <attachid>215763</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 14:37:53 -0700</bug_when>
    <thetext>Created attachment 215763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946040</commentid>
    <comment_count>37</comment_count>
      <attachid>215763</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-01 14:50:40 -0700</bug_when>
    <thetext>Comment on attachment 215763
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:816
&gt; +    controlPointDistance = 3 * max&lt;float&gt;(2, strokeThickness);

std::max

&gt; Source/WebCore/rendering/InlineTextBox.cpp:821
&gt; +    step = 2 * max&lt;float&gt;(2, strokeThickness);

std::max

&gt; Source/WebCore/rendering/InlineTextBox.cpp:923
&gt; +/*
&gt; + * Because finding the bounding box of an underline is structurally similar to finding
&gt; + * the bounding box of a strokethrough, we can pull out the computation and parameterize
&gt; + * by the location of the decoration (yOffset, underlineOffset, and doubleOffset).
&gt; + */

Should be a “//“ comment, not a “/* */“ comment.

Isn’t it normally called strikethrough rather than strokethrough?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:926
&gt; +static FloatRect boundingBoxForSingleDecoration(GraphicsContext&amp; context, float textDecorationThickness,
&gt; +    float width, const FloatPoint localOrigin, TextDecorationStyle decorationStyle,
&gt; +    bool isPrinting, float yOffset, float underlineOffset, float doubleOffset)

const FloatPoint is wrong. Just FloatPoint, or const FloatPoint&amp; if we thought that was better for performance (we don’t).

&gt; Source/WebCore/rendering/InlineTextBox.cpp:936
&gt; +        float controlPointDistance, step;

We normally don’t define more than one local in a line like this, although I think it looks OK here.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:950
&gt; +        boundingBox = context.computeLineBoundsForText(FloatPoint(localOrigin.x(), localOrigin.y() + underlineOffset), width, isPrinting);
&gt; +        if (decorationStyle == TextDecorationStyleDouble)
&gt; +            boundingBox.unite(context.computeLineBoundsForText(FloatPoint(localOrigin.x(), localOrigin.y() + doubleOffset), width, isPrinting));

Might write this as localOrigin + FloatSize(0, underlineOffset) and localOrigin + FloatSize(0, doubleOffset) instead.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:959
&gt; +        TextUnderlinePosition underlinePosition = lineStyle.textUnderlinePosition();

Not all that helpful to have this local. I would just evaluate this in the next line.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:960
&gt; +        const int underlineOffset = computeUnderlineOffset(underlinePosition, lineStyle.fontMetrics(), &amp;inlineTextBox, textDecorationThickness);

Remove the const here.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1063
&gt; +                GraphicsContext* maskContext = imageBuffer-&gt;context();

Should use a reference instead of pointer here since this is never null.

&gt; Source/WebCore/rendering/InlineTextBox.h:173
&gt; +    void paintDecoration(GraphicsContext*, const FloatPoint&amp; boxOrigin, TextDecoration, TextDecorationStyle, const ShadowData*, TextPainter&amp;);

Over time these functions should all take GraphicsContext&amp; instead of GraphicsContext*. Would be nice to do it for this function since we had to touch all call sites anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946066</commentid>
    <comment_count>38</comment_count>
      <attachid>215763</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 15:47:20 -0700</bug_when>
    <thetext>Comment on attachment 215763
Patch

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

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:816
&gt;&gt; +    controlPointDistance = 3 * max&lt;float&gt;(2, strokeThickness);
&gt; 
&gt; std::max

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:821
&gt;&gt; +    step = 2 * max&lt;float&gt;(2, strokeThickness);
&gt; 
&gt; std::max

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:923
&gt;&gt; + */
&gt; 
&gt; Should be a “//“ comment, not a “/* */“ comment.
&gt; 
&gt; Isn’t it normally called strikethrough rather than strokethrough?

Done.

Typo. Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:926
&gt;&gt; +    bool isPrinting, float yOffset, float underlineOffset, float doubleOffset)
&gt; 
&gt; const FloatPoint is wrong. Just FloatPoint, or const FloatPoint&amp; if we thought that was better for performance (we don’t).

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:936
&gt;&gt; +        float controlPointDistance, step;
&gt; 
&gt; We normally don’t define more than one local in a line like this, although I think it looks OK here.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:950
&gt;&gt; +            boundingBox.unite(context.computeLineBoundsForText(FloatPoint(localOrigin.x(), localOrigin.y() + doubleOffset), width, isPrinting));
&gt; 
&gt; Might write this as localOrigin + FloatSize(0, underlineOffset) and localOrigin + FloatSize(0, doubleOffset) instead.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:959
&gt;&gt; +        TextUnderlinePosition underlinePosition = lineStyle.textUnderlinePosition();
&gt; 
&gt; Not all that helpful to have this local. I would just evaluate this in the next line.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:960
&gt;&gt; +        const int underlineOffset = computeUnderlineOffset(underlinePosition, lineStyle.fontMetrics(), &amp;inlineTextBox, textDecorationThickness);
&gt; 
&gt; Remove the const here.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1063
&gt;&gt; +                GraphicsContext* maskContext = imageBuffer-&gt;context();
&gt; 
&gt; Should use a reference instead of pointer here since this is never null.

Done.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.h:173
&gt;&gt; +    void paintDecoration(GraphicsContext*, const FloatPoint&amp; boxOrigin, TextDecoration, TextDecorationStyle, const ShadowData*, TextPainter&amp;);
&gt; 
&gt; Over time these functions should all take GraphicsContext&amp; instead of GraphicsContext*. Would be nice to do it for this function since we had to touch all call sites anyway.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946067</commentid>
    <comment_count>39</comment_count>
      <attachid>215771</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 15:48:31 -0700</bug_when>
    <thetext>Created attachment 215771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946070</commentid>
    <comment_count>40</comment_count>
      <attachid>215771</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-01 15:53:53 -0700</bug_when>
    <thetext>Comment on attachment 215771
Patch

Attachment 215771 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/19558107</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946071</commentid>
    <comment_count>41</comment_count>
      <attachid>215771</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-01 15:55:43 -0700</bug_when>
    <thetext>Comment on attachment 215771
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1098
&gt;              context-&gt;drawLineForText(FloatPoint(localOrigin.x(), localOrigin.y() + baseline + 1), width, isPrinting);

Missed the context-&gt; here, otherwise looks ready to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946073</commentid>
    <comment_count>42</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 15:58:38 -0700</bug_when>
    <thetext>%*@)*%#@ Xcode! It compiled, I swear!

Patch incoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946076</commentid>
    <comment_count>43</comment_count>
      <attachid>215774</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-11-01 16:00:51 -0700</bug_when>
    <thetext>Created attachment 215774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946103</commentid>
    <comment_count>44</comment_count>
      <attachid>215774</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-01 16:45:05 -0700</bug_when>
    <thetext>Comment on attachment 215774
Patch

Clearing flags on attachment: 215774

Committed r158467: &lt;http://trac.webkit.org/changeset/158467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946104</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-01 16:45:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946199</commentid>
    <comment_count>46</comment_count>
      <attachid>215774</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-02 02:47:00 -0700</bug_when>
    <thetext>Comment on attachment 215774
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:926
&gt; +static FloatRect boundingBoxForSingleDecoration(GraphicsContext&amp; context, float textDecorationThickness,
&gt; +    float width, FloatPoint localOrigin, TextDecorationStyle decorationStyle,
&gt; +    bool isPrinting, float yOffset, float underlineOffset, float doubleOffset)
&gt; +{

It is bit sad that all this code is added to already InlineTextBox. The simple line path should be able to share the same text painting code. Maybe some of this could be factored out?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212399</attachid>
            <date>2013-09-23 15:37:20 -0700</date>
            <delta_ts>2013-10-11 14:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20130923153719.patch</filename>
            <type>text/plain</type>
            <size>44909</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzczZmQzZTExMmIzMDJj
ODViYTJlMDZhY2Q0ZjMwODBhZDU5ODJmYS4uNDU4MDhhMDE3MzEzMTc1NGM0Njc2N2Y4MjMzMzY5
OTYzMDUwZjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTA5LTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24t
c2tpcC1pbmstem9vbWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lw
LWluay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAu
aHRtbAorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBkcmF3cyB0ZXh0IHdpdGggYSB0aGlj
ayBzdHJva2UgaW50byBhIG1hc2ssCisgICAgICAgIHRoZW4gdXNlcyB0aGUgbWFzayB0byBkcmF3
IHVuZGVybGluZXMuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
VGV4dERlY29yYXRpb25Ta2lwKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAg
ICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvblNraXApOgorICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRz
LmluOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmFwcGx5VmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRl
SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXBy
ZWNhdGVkU3R5bGVCdWlsZGVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAgICAgICAg
KiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVU
ZXh0Qm94OjpwYWludFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVVuZGVybGluZU9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcnwgKToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yfD0gKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmg6CisKIDIwMTMtMDktMjMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBSZW5kZXJPYmplY3Q6OmZpcnN0L2xhc3RDaGlsZCB0
byBSZW5kZXJPYmplY3Q6OmZpcnN0L2xhc3RDaGlsZFNsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMjI5MzlmYWQwYWI1
MmZhNTk1MTQ3YTg0MTBiODk5MTJjNmZhYmI0NC4uODlkYjA2ZmVlZWJhNzQyNDRkY2Q3YTI3NmM1
OWMwZjk5MGE5MzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0MjYsNiArMTQyNiwxOSBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NWYWx1ZShU
ZXh0RGVjb3JhdAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwogfQorCitzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKFRl
eHREZWNvcmF0aW9uU2tpcCB0ZXh0RGVjb3JhdGlvblNraXApCit7CisgICAgc3dpdGNoICh0ZXh0
RGVjb3JhdGlvblNraXApIHsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcE5vbmU6CisgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwor
ICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwSW5rOgorICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5rKTsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhw
bGljaXRJbml0aWFsVmFsdWUoKTsKK30KICNlbmRpZiAvLyBDU1MzX1RFWFQKIAogc3RhdGljIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGZpbGxSZXBlYXRUb0NTU1ZhbHVlKEVGaWxsUmVwZWF0IHhSZXBl
YXQsIEVGaWxsUmVwZWF0IHlSZXBlYXQpCkBAIC0yMzI4LDYgKzIzNDEsOCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydAogICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHREZWNvcmF0aW9uU3R5
bGVGbGFnc1RvQ1NTVmFsdWUoc3R5bGUtPnRleHREZWNvcmF0aW9uU3R5bGUoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkNvbG9yOgogICAgICAgICAgICAg
cmV0dXJuIGN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcihzdHlsZS5nZXQoKSwgc3R5bGUtPnRleHRE
ZWNvcmF0aW9uQ29sb3IoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvblNraXA6CisgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lw
RmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLT50ZXh0RGVjb3JhdGlvblNraXAoKSk7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0QWxpZ25MYXN0OgogICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT50ZXh0QWxpZ25MYXN0KCkpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEp1c3RpZnk6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGQxNzkzMWU4ZDA4MDU1ZWM4Y2ZlYmQyZTVjY2Y3YTRjNjhhZDBjYzkuLjM0ZWVl
MGQ4MWViYzVmYTNmNWRjMTc3YmRkYjg5NDk5N2Y3NDJiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC0yMzYyLDYgKzIzNjIsMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVTb2xpZCB8fCBpZCA9PSBDU1NWYWx1ZURvdWJsZSB8fCBpZCA9PSBDU1NWYWx1ZURv
dHRlZCB8fCBpZCA9PSBDU1NWYWx1ZURhc2hlZCB8fCBpZCA9PSBDU1NWYWx1ZVdhdnkpCiAgICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOworICAgIAorICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNraXA6CisgICAgICAgIC8vIG5v
bmUgfCBbIG9iamVjdHMgfHwgc3BhY2VzIHx8IGluayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlv
biBdCisgICAgICAgIHJldHVybiBwYXJzZVRleHREZWNvcmF0aW9uU2tpcChpbXBvcnRhbnQpOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlvbjoKICAgICAg
ICAgLy8gYXV0byB8IGFscGhhYmV0aWMgfCB1bmRlcgpAQCAtOTY1MCw2ICs5NjU0LDI1IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGltcG9ydGFudCkK
ICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0
RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgLy8gVGhlIHRleHQtZGVjb3Jh
dGlvbi1za2lwIHByb3BlcnR5IGhhcyBzeW50YXggIm5vbmUgfCBbIG9iamVjdHMgfHwgc3BhY2Vz
IHx8IGluayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlvbiBdIi4KKyAgICAvLyBIb3dldmVyLCBv
bmx5ICdub25lJyBhbmQgJ2luaycgYXJlIGltcGxlbWVudGVkIHlldCwgc28gd2Ugd2lsbCBwYXJz
ZSBzeW50YXggIm5vbmUgfCBpbmsiIGZvciBub3cuCisgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVl
ID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBzd2l0Y2ggKHZhbHVlLT5pZCkgeworICAg
IGNhc2UgQ1NTVmFsdWVOb25lOgorICAgIGNhc2UgQ1NTVmFsdWVJbms6CisgICAgICAgIGlmICht
X3ZhbHVlTGlzdC0+bmV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwLCBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSwgaW1wb3J0YW50KTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KICNlbmRpZiAvLyBDU1MzX1RFWFQKIAogYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVGV4dEVtcGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKaW5kZXggNzE5NDkxNjFjOGQ1ZDFjMzg2YjVmYjM2NmNkZjJhNGFiYzg2ZTEzYy4uNjkz
MzE5NGFkOTc1NTExZDVlZGUzNDJlYTg1NWNmZTJlYzhhNzIxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaApAQCAtMjgyLDcgKzI4Miw4IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVGV4dERlY29y
YXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKICNpZiBFTkFCTEUo
Q1NTM19URVhUKQogICAgIGJvb2wgcGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBv
cnRhbnQpOwotI2VuZGlmCisgICAgYm9vbCBwYXJzZVRleHREZWNvcmF0aW9uU2tpcChib29sIGlt
cG9ydGFudCk7CisjZW5kaWYgLy8gQ1NTM19URVhUCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZVRleHRJbmRlbnQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDc5YWRmYTU5YTRlNWJhZWUzZjhhYmUwNDM2YWQ1
ZmU1OGQwYjRmYzYuLjE2Y2VjZDA0MzQxNTBkNzNkMWM2ZWMzY2I3M2U1NTZkMWFmZjkzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAt
MjYyOSw2ICsyNjI5LDIzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gVGV4dERlY29y
YXRpb25TdHlsZVNvbGlkOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25Ta2lwKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNW
YWx1ZUlEKCkpOworCisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENT
U1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcE5vbmU7CisgICAg
Y2FzZSBDU1NWYWx1ZUluazoKKyAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcEluazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9uZTsKK30KKwogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRVbmRl
cmxpbmVQb3NpdGlvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDBhNTU1ZDM4YzQ2YmE0ZGIwZDg1
ZDFjNzExN2U5Njk1NjVlMDhlYTQuLmE2YjI1YjUxODE4OTFhMTA1NTg5NGFjYzc0MzAyN2Y2OWE1
NGI1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0zODcsNiAr
Mzg3LDcgQEAgei1pbmRleAogLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tbGluZQogLXdlYmtpdC10
ZXh0LWRlY29yYXRpb24tc3R5bGUKIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLWNvbG9yCistd2Vi
a2l0LXRleHQtZGVjb3JhdGlvbi1za2lwIFtJbmhlcml0ZWRdCiAtd2Via2l0LXRleHQtYWxpZ24t
bGFzdCBbSW5oZXJpdGVkXQogLXdlYmtpdC10ZXh0LWp1c3RpZnkgW0luaGVyaXRlZF0KIC13ZWJr
aXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb24gW0luaGVyaXRlZF0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggMGI0YzkyYWM1ODI0YzI2YmRiOTRmMzJjNjFlNGU4MWEz
NDcxMzhlNy4uZWFhY2ZlZGU2NmM0Y2YwYWY2NWRhZGY1NDU2OTkyYTU3OTg1NDJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTQ2OSw2ICs0NjksNyBAQCB0aGlu
CiB1bmRlcmxpbmUKICNpZiBkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1Mz
X1RFWFQKIHdhdnkKK2luawogI2VuZGlmCiAtd2Via2l0LW5vd3JhcAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggZmY1ODUyMDU3ZjI5MTM4
MzBjNTFhODlmNGVmM2U0YTQ1ZTY0MGU3ZC4uNzRjYTg4OTBlMjEyYWM0N2Y2NTBlOTc5Y2NkYTQ2
ZmNmOTZiODBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWls
ZGVyLmNwcApAQCAtMTI4MSw2ICsxMjgxLDMzIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCisjaWYg
RU5BQkxFKENTUzNfVEVYVCkKK2NsYXNzIEFwcGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXAg
eworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5
bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIFRleHREZWNv
cmF0aW9uU2tpcCB0ID0gKnN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwor
ICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dERlY29yYXRpb25Ta2lw
KHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVGV4dERlY29y
YXRpb25Ta2lwIHQgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcCgpOwor
ICAgICAgICBmb3IgKENTU1ZhbHVlTGlzdEl0ZXJhdG9yIGkodmFsdWUpOyBpLmhhc01vcmUoKTsg
aS5hZHZhbmNlKCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gaS52YWx1ZSgpOwor
ICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKTsKKyAgICAgICAgICAgIHQgfD0gKnN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0VGV4dERlY29yYXRpb25Ta2lwKHQpOworICAgIH0KKyAgICBzdGF0aWMgUHJvcGVydHlI
YW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhh
bmRsZXIgPSBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8VGV4dERlY29yYXRpb25Ta2lwLCAmUmVu
ZGVyU3R5bGU6OnRleHREZWNvcmF0aW9uU2tpcCwgVGV4dERlY29yYXRpb25Ta2lwLCAmUmVuZGVy
U3R5bGU6OnNldFRleHREZWNvcmF0aW9uU2tpcCwgVGV4dERlY29yYXRpb25Ta2lwLCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXA+OjpjcmVhdGVIYW5kbGVyKCk7CisgICAg
ICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFu
ZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307CisjZW5kaWYK
KwogY2xhc3MgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVJbmNyZW1lbnQgewogcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQpAQCAtMjI4NSw2ICsyMzEyLDcgQEAgRGVwcmVjYXRl
ZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Db2xvciwgQXBwbHlQcm9wZXJ0
eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQsICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25D
b2xvciwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RGVjb3JhdGlvbkNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldFZpc2l0ZWRMaW5rVGV4dERlY29yYXRpb25Db2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcj46
OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Vi
a2l0VGV4dEFsaWduTGFzdCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEFsaWduTGFzdCwgJlJl
bmRlclN0eWxlOjp0ZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OnNl
dFRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRB
bGlnbkxhc3Q+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQ
cm9wZXJ0eVdlYmtpdFRleHRKdXN0aWZ5LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0SnVzdGlm
eSwgJlJlbmRlclN0eWxlOjp0ZXh0SnVzdGlmeSwgVGV4dEp1c3RpZnksICZSZW5kZXJTdHlsZTo6
c2V0VGV4dEp1c3RpZnksIFRleHRKdXN0aWZ5LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SnVz
dGlmeT46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3Bl
cnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwLCBBcHBseVByb3BlcnR5VGV4dERlY29yYXRpb25T
a2lwOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlvbiwgQXBwbHlQcm9wZXJ0eVRleHRVbmRlcmxpbmVQ
b3NpdGlvbjo6Y3JlYXRlSGFuZGxlcigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKICAgICBzZXRQ
cm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCAzMGVmMWM2MWQ5YjA4ZWNkYzQwODMxNTU5NmU0ZjRjOGI1MjI0MTk2Li41NGQ2YWU4ZGZj
MTQ1MjVjODcwNDExYjMzYzcyYjBhZDNiMDA1Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC0zMDExLDYgKzMwMTEsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkxpbmU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uU3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRE
ZWNvcmF0aW9uQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9u
U2tpcDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEFsaWduTGFzdDoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dEp1c3RpZnk6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHRVbmRlcmxpbmVQb3NpdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcAppbmRleCBjNDcxNjczMzdmMzM4MjIzOGJkOTE4OWM3ZGJiNTY5YTBhY2U2ZjYw
Li4xOWNjODNkY2ViZDlkYjM0MmRmYmVmOWNmYmViNDU2N2M4YzEzZTI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJI
aXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1h
cmtlci5oIgpAQCAtNTA2LDYgKzUwNywxMTcgQEAgc3RhdGljIGlubGluZSBBZmZpbmVUcmFuc2Zv
cm0gcm90YXRpb24oY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBSb3RhdGlvbkRpcmVjdGkKICAg
ICAgICAgOiBBZmZpbmVUcmFuc2Zvcm0oMCwgLTEsIDEsIDAsIGJveFJlY3QueCgpIC0gYm94UmVj
dC5tYXhZKCksIGJveFJlY3QueCgpICsgYm94UmVjdC5tYXhZKCkpOwogfQogCitzdHJ1Y3QgUGFp
bnRUZXh0QXJndW1lbnRzIHsKKyAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQ7CisgICAgYm9v
bCBwYWludFNlbGVjdGVkVGV4dE9ubHk7CisgICAgYm9vbCBwYWludFNlbGVjdGVkVGV4dFNlcGFy
YXRlbHk7CisgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOworICAgIENvbG9yIHRleHRTdHJva2VD
b2xvcjsKKyAgICBDb2xvciB0ZXh0RmlsbENvbG9yOworICAgIFJlbmRlclN0eWxlKiBzdHlsZVRv
VXNlOworICAgIGNvbnN0IEZvbnQmIGZvbnQ7CisgICAgaW50IHNQb3M7CisgICAgaW50IGVQb3M7
CisgICAgaW50IGxlbmd0aDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lzTWFyazsK
KyAgICBDb2xvciBlbXBoYXNpc01hcmtDb2xvcjsKKyAgICBSZW5kZXJDb21iaW5lVGV4dCogY29t
YmluZWRUZXh0OworICAgIFRleHRSdW4mIHRleHRSdW47CisgICAgRmxvYXRSZWN0JiBib3hSZWN0
OworICAgIEZsb2F0UG9pbnQmIHRleHRPcmlnaW47CisgICAgY29uc3QgU2hhZG93RGF0YSogdGV4
dFNoYWRvdzsKKyAgICBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0OworICAgIGZsb2F0IHNlbGVjdGlv
blN0cm9rZVdpZHRoOworICAgIENvbG9yIHNlbGVjdGlvbkZpbGxDb2xvcjsKKyAgICBjb25zdCBT
aGFkb3dEYXRhKiBzZWxlY3Rpb25TaGFkb3c7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFzaXNN
YXJrQ29sb3I7CisgICAgQ29sb3Igc2VsZWN0aW9uU3Ryb2tlQ29sb3I7Cit9OworCit2b2lkIElu
bGluZVRleHRCb3g6OnBhaW50VGV4dChQYWludFRleHRBcmd1bWVudHMqIGFyZ3MpCit7CisgICAg
Ly8gU2V0IHVwIGFyZ3VtZW50cyBmcm9tIHRoZSBQYWludFRleHRBcmd1bWVudHMKKyAgICBHcmFw
aGljc0NvbnRleHQqJiBjb250ZXh0ID0gYXJncy0+Y29udGV4dDsKKyAgICBjb25zdCBib29sJiBw
YWludFNlbGVjdGVkVGV4dE9ubHkgPSBhcmdzLT5wYWludFNlbGVjdGVkVGV4dE9ubHk7CisgICAg
Y29uc3QgYm9vbCYgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gYXJncy0+cGFpbnRTZWxl
Y3RlZFRleHRTZXBhcmF0ZWx5OworICAgIGNvbnN0IGZsb2F0JiB0ZXh0U3Ryb2tlV2lkdGggPSBh
cmdzLT50ZXh0U3Ryb2tlV2lkdGg7CisgICAgY29uc3QgQ29sb3ImIHRleHRTdHJva2VDb2xvciA9
IGFyZ3MtPnRleHRTdHJva2VDb2xvcjsKKyAgICBjb25zdCBDb2xvciYgdGV4dEZpbGxDb2xvciA9
IGFyZ3MtPnRleHRGaWxsQ29sb3I7CisgICAgUmVuZGVyU3R5bGUqJiBzdHlsZVRvVXNlID0gYXJn
cy0+c3R5bGVUb1VzZTsKKyAgICBjb25zdCBGb250JiBmb250ID0gYXJncy0+Zm9udDsKKyAgICBj
b25zdCBpbnQmIHNQb3MgPSBhcmdzLT5zUG9zOworICAgIGNvbnN0IGludCYgZVBvcyA9IGFyZ3Mt
PmVQb3M7CisgICAgY29uc3QgaW50JiBsZW5ndGggPSBhcmdzLT5sZW5ndGg7CisgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmsgPSBhcmdzLT5lbXBoYXNpc01hcms7CisgICAgY29u
c3QgQ29sb3ImIGVtcGhhc2lzTWFya0NvbG9yID0gYXJncy0+ZW1waGFzaXNNYXJrQ29sb3I7Cisg
ICAgUmVuZGVyQ29tYmluZVRleHQqJiBjb21iaW5lZFRleHQgPSBhcmdzLT5jb21iaW5lZFRleHQ7
CisgICAgVGV4dFJ1biYgdGV4dFJ1biA9IGFyZ3MtPnRleHRSdW47CisgICAgY29uc3QgRmxvYXRS
ZWN0JiBib3hSZWN0ID0gYXJncy0+Ym94UmVjdDsKKyAgICBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4gPSBib3hSZWN0LmxvY2F0aW9uKCk7CisgICAgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9y
aWdpbiA9IGFyZ3MtPnRleHRPcmlnaW47CisgICAgY29uc3QgU2hhZG93RGF0YSomIHRleHRTaGFk
b3cgPSBhcmdzLT50ZXh0U2hhZG93OworICAgIGNvbnN0IGludCYgZW1waGFzaXNNYXJrT2Zmc2V0
ID0gYXJncy0+ZW1waGFzaXNNYXJrT2Zmc2V0OworICAgIGNvbnN0IGZsb2F0JiBzZWxlY3Rpb25T
dHJva2VXaWR0aCA9IGFyZ3MtPnNlbGVjdGlvblN0cm9rZVdpZHRoOworICAgIGNvbnN0IENvbG9y
JiBzZWxlY3Rpb25GaWxsQ29sb3IgPSBhcmdzLT5zZWxlY3Rpb25GaWxsQ29sb3I7CisgICAgY29u
c3QgU2hhZG93RGF0YSomIHNlbGVjdGlvblNoYWRvdyA9IGFyZ3MtPnNlbGVjdGlvblNoYWRvdzsK
KyAgICBjb25zdCBDb2xvciYgc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IgPSBhcmdzLT5zZWxl
Y3Rpb25FbXBoYXNpc01hcmtDb2xvcjsKKyAgICBjb25zdCBDb2xvciYgc2VsZWN0aW9uU3Ryb2tl
Q29sb3IgPSBhcmdzLT5zZWxlY3Rpb25TdHJva2VDb2xvcjsKKworICAgIGlmICghcGFpbnRTZWxl
Y3RlZFRleHRPbmx5KSB7CisgICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZl
IHRvIGNoYW5nZSB0aGUgdGV4dCBkcmF3aW5nIG1vZGUuIEl0J3MgcHJvYmFibHkgZGFuZ2Vyb3Vz
IHRvIGxlYXZlIHRoYXQgbXV0YXRlZCBhcyBhIHNpZGUKKyAgICAgICAgLy8gZWZmZWN0LCBzbyBv
bmx5IHdoZW4gd2Uga25vdyB3ZSdyZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCisgICAg
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCwgdGV4dFN0
cm9rZVdpZHRoID4gMCk7CisKKyAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQs
IHRleHRGaWxsQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRv
VXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJh
dGVseSB8fCBlUG9zIDw9IHNQb3MpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSBy
aWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNo
YWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIGxlbmd0aCwgbGVu
Z3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAw
LCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcGFpbnRUZXh0
V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQ
b3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdp
ZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworCisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIGVt
cGhhc2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVU
b1VzZS0+Y29sb3JTcGFjZSgpKTsKKworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChU
ZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1Rl
eHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4g
OiB0ZXh0UnVuOworICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2lu
ID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgYm94UmVjdC53aWR0
aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0
ZXh0T3JpZ2luOworICAgICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAg
ICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisKKyAg
ICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1Bv
cykgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRl
eHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBl
bXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgMCwg
bGVuZ3RoLCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFk
b3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGNvbWJp
bmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBoYXNpc01h
cmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgZVBvcywgc1Bvcywg
bGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0
U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisKKyAgICAgICAgICAgIGlmIChjb21i
aW5lZFRleHQpCisgICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJv
eFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgo
cGFpbnRTZWxlY3RlZFRleHRPbmx5IHx8IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSkgJiYg
c1BvcyA8IGVQb3MpIHsKKyAgICAgICAgLy8gcGFpbnQgb25seSB0aGUgdGV4dCB0aGF0IGlzIHNl
bGVjdGVkCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29u
dGV4dCwgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwKTsKKworICAgICAgICB1cGRhdGVHcmFwaGlj
c0NvbnRleHQoY29udGV4dCwgc2VsZWN0aW9uRmlsbENvbG9yLCBzZWxlY3Rpb25TdHJva2VDb2xv
ciwgc2VsZWN0aW9uU3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7CisgICAg
ICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9t
LCAwLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNo
YWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAg
IGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhp
Y3NDb250ZXh0KGNvbnRleHQsIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tl
Q29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKKworICAg
ICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENo
YXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAg
ICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4gOiB0ZXh0UnVuOworICAgICAgICAgICAgRmxv
YXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2lu
dChib3hPcmlnaW4ueCgpICsgYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZv
bnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0ZXh0T3JpZ2luOworICAgICAgICAgICAgaWYg
KGNvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRp
b24oYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFk
b3dzKGNvbnRleHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkg
OiBmb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09m
ZnNldCwgc1BvcywgZVBvcywgbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBib3hSZWN0
LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFs
KCkpOworCisgICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQorICAgICAgICAgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgTGF5b3V0VW5pdCAv
KmxpbmVUb3AqLywgTGF5b3V0VW5pdCAvKmxpbmVCb3R0b20qLykKIHsKICAgICBpZiAoaXNMaW5l
QnJlYWsoKSB8fCAhcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCgmcmVuZGVyZXIoKSkg
fHwgcmVuZGVyZXIoKS5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSB8fApAQCAtNzM1
LDU5ICs4NDcsOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgaWYgKCFlbXBoYXNpc01h
cmsuaXNFbXB0eSgpKQogICAgICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSBlbXBoYXNpc01hcmtQ
b3NpdGlvbiA9PSBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIgPyAtZm9udC5mb250TWV0cmljcygp
LmFzY2VudCgpIC0gZm9udC5lbXBoYXNpc01hcmtEZXNjZW50KGVtcGhhc2lzTWFyaykgOiBmb250
LmZvbnRNZXRyaWNzKCkuZGVzY2VudCgpICsgZm9udC5lbXBoYXNpc01hcmtBc2NlbnQoZW1waGFz
aXNNYXJrKTsKIAotICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KSB7Ci0gICAgICAgIC8v
IEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5nZSB0aGUgdGV4dCBkcmF3aW5n
IG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2ZSB0aGF0IG11dGF0ZWQgYXMg
YSBzaWRlCi0gICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVuIHdlIGtub3cgd2UncmUgc3Ry
b2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHRleHRTdHJva2VXaWR0aCA+IDApOwotCi0gICAgICAg
IHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0ZXh0RmlsbENvbG9yLCB0ZXh0U3Ryb2tl
Q29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKLSAgICAg
ICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3Rs
eS4KLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRS
dW4sIG51bGxBdG9tLCAwLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwg
dGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQs
IHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJv
eFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsK
LQotICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVw
ZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBlbXBoYXNpc01hcmtDb2xvciwgdGV4dFN0cm9r
ZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Ci0KLSAg
ICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7Ci0gICAg
ICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gY29tYmluZWRUZXh0ID8gb2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4dFJ1bjsKLSAgICAgICAgICAgIEZs
b2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNvbWJpbmVkVGV4dCA/IEZsb2F0UG9p
bnQoYm94T3JpZ2luLngoKSArIGJveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBm
b250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogdGV4dE9yaWdpbjsKLSAgICAgICAgICAgIGlm
IChjb21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0
aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwotCi0gICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0
ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQb3MpIHsKLSAgICAgICAgICAgICAgICAvLyBG
SVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KLSAgICAgICAgICAg
ICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5l
ZFRleHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFz
aXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIDAsIGxlbmd0aCwgbGVuZ3RoLCBlbXBoYXNpc01h
cmtUZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBp
c0hvcml6b250YWwoKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBwYWlu
dFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9y
aWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBl
bXBoYXNpc01hcmtPZmZzZXQsIGVQb3MsIHNQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9u
dGFsKCkpOwotCi0gICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQotICAgICAgICAgICAgICAg
IGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKHBhaW50U2VsZWN0ZWRUZXh0T25seSB8fCBw
YWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkpICYmIHNQb3MgPCBlUG9zKSB7Ci0gICAgICAgIC8v
IHBhaW50IG9ubHkgdGhlIHRleHQgdGhhdCBpcyBzZWxlY3RlZAotICAgICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHNlbGVjdGlvblN0cm9rZVdpZHRo
ID4gMCk7Ci0KLSAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNlbGVjdGlv
bkZpbGxDb2xvciwgc2VsZWN0aW9uU3Ryb2tlQ29sb3IsIHNlbGVjdGlvblN0cm9rZVdpZHRoLCBz
dHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhj
b250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1BvcywgZVBvcywgbGVuZ3RoLCB0
ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOwotICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzZWxlY3Rp
b25FbXBoYXNpc01hcmtDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0
eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Ci0KLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJl
cGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7Ci0gICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01h
cmtUZXh0UnVuID0gY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0
UnVuIDogdGV4dFJ1bjsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiA9IGNvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIGJveFJlY3Qu
d2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkp
IDogdGV4dE9yaWdpbjsKLSAgICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0gICAgICAgICAg
ICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwot
Ci0gICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQg
PyBjb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1
biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIHNQb3MsIGVQb3MsIGxlbmd0aCwg
ZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rp
b25TdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQotICAgICAgICAgICAgaWYgKGNv
bWJpbmVkVGV4dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24o
Ym94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwotICAgICAgICB9Ci0gICAgfQorICAgIFBhaW50
VGV4dEFyZ3VtZW50cyBhcmd1bWVudHMgPSB7Y29udGV4dCwgcGFpbnRTZWxlY3RlZFRleHRPbmx5
LCBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHksIHRleHRTdHJva2VXaWR0aCwgdGV4dFN0cm9r
ZUNvbG9yLCB0ZXh0RmlsbENvbG9yLCBzdHlsZVRvVXNlLCBmb250LCBzUG9zLCBlUG9zLCBsZW5n
dGgsIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrQ29sb3IsIGNvbWJpbmVkVGV4dCwgdGV4dFJ1
biwgYm94UmVjdCwgdGV4dE9yaWdpbiwgdGV4dFNoYWRvdywgZW1waGFzaXNNYXJrT2Zmc2V0LCBz
ZWxlY3Rpb25TdHJva2VXaWR0aCwgc2VsZWN0aW9uRmlsbENvbG9yLCBzZWxlY3Rpb25TaGFkb3cs
IHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yLCBzZWxlY3Rpb25TdHJva2VDb2xvcn07CisgICAg
cGFpbnRUZXh0KCZhcmd1bWVudHMpOwogCiAgICAgLy8gUGFpbnQgZGVjb3JhdGlvbnMKICAgICBU
ZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbnMgPSBzdHlsZVRvVXNlLT50ZXh0RGVjb3JhdGlv
bnNJbkVmZmVjdCgpOwpAQCAtNzk1LDcgKzg1Niw4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwK
ICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHRleHRGaWxsQ29sb3IsIHRl
eHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkp
OwogICAgICAgICBpZiAoY29tYmluZWRUZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0
Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwotICAgICAgICBwYWludERlY29yYXRp
b24oY29udGV4dCwgYm94T3JpZ2luLCB0ZXh0RGVjb3JhdGlvbnMsIHN0eWxlVG9Vc2UtPnRleHRE
ZWNvcmF0aW9uU3R5bGUoKSwgdGV4dFNoYWRvdyk7CisgICAgICAgIC8vIENsb2JiZXJzIHxhcmd1
bWVudHN8CisgICAgICAgIHBhaW50RGVjb3JhdGlvbihjb250ZXh0LCBib3hPcmlnaW4sIHRleHRE
ZWNvcmF0aW9ucywgc3R5bGVUb1VzZS0+dGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93
LCAmYXJndW1lbnRzKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7CiAg
ICAgfQpAQCAtOTgyLDcgKzEwNDQsNyBAQCBzdGF0aWMgaW50IGNvbXB1dGVVbmRlcmxpbmVPZmZz
ZXQoY29uc3QgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uLAogewogICAg
IC8vIENvbXB1dGUgdGhlIGdhcCBiZXR3ZWVuIHRoZSBmb250IGFuZCB0aGUgdW5kZXJsaW5lLiBV
c2UgYXQgbGVhc3Qgb25lCiAgICAgLy8gcGl4ZWwgZ2FwLCBpZiB1bmRlcmxpbmUgaXMgdGhpY2sg
dGhlbiB1c2UgYSBiaWdnZXIgZ2FwLgotICAgIGNvbnN0IGludCBnYXAgPSBtYXg8aW50PigxLCBj
ZWlsZih0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyAvIDIuMCkpOworICAgIGNvbnN0IGludCBnYXAg
PSBtYXg8aW50PigxLCBjZWlsZih0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyAqIDMuMCAvIDQuMCkp
OwogCiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIFRleHRVbmRlcmxpbmVQ
b3NpdGlvbkF1dG8gc2hvdWxkIGRlZmF1bHQgdG8gJ2FscGhhYmV0aWMnIGZvciBob3Jpem9udGFs
IHRleHQKICAgICAvLyBhbmQgdG8gJ3VuZGVyIExlZnQnIGZvciB2ZXJ0aWNhbCB0ZXh0IChlLmcu
IGphcGFuZXNlKS4gV2Ugc3VwcG9ydCBvbmx5IGhvcml6b250YWwgdGV4dCBmb3Igbm93LgpAQCAt
OTkzLDkgKzEwNTUsNyBAQCBzdGF0aWMgaW50IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoY29uc3Qg
VGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uLAogICAgIGNhc2UgVGV4dFVu
ZGVybGluZVBvc2l0aW9uVW5kZXI6IHsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJsaW5lIHJl
bGF0aXZlIHRvIHRoZSB1bmRlciBlZGdlIG9mIHRoZSBsb3dlc3QgZWxlbWVudCdzIGNvbnRlbnQg
Ym94LgogICAgICAgICBjb25zdCBmbG9hdCBvZmZzZXQgPSBpbmxpbmVUZXh0Qm94LT5yb290KCku
bWF4TG9naWNhbFRvcCgpIC0gaW5saW5lVGV4dEJveC0+bG9naWNhbFRvcCgpOwotICAgICAgICBp
ZiAob2Zmc2V0ID4gMCkKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2Fs
SGVpZ2h0KCkgKyBnYXAgKyBvZmZzZXQ7Ci0gICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5s
b2dpY2FsSGVpZ2h0KCkgKyBnYXA7CisgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dp
Y2FsSGVpZ2h0KCkgKyBnYXAgKyBtYXg8ZmxvYXQ+KG9mZnNldCwgMC4wZik7CiAgICAgfQogICAg
IH0KIApAQCAtMTEyOCwxMCArMTE4OCwxMCBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5VGV4dERl
Y29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwgRgogfQog
I2VuZGlmIC8vIENTUzNfVEVYVAogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlv
bihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
VGV4dERlY29yYXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUs
IGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNv
cmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25T
dHlsZSwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBQYWludFRleHRBcmd1bWVudHMqIGFyZ3Mp
CiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbXByb3ZlIHRoaXMgcnVsZSBhbmQgbm90IGFs
d2F5cyBqdXN0IGFzc3VtZSAxLgotICAgIGNvbnN0IGZsb2F0IHRleHREZWNvcmF0aW9uVGhpY2tu
ZXNzID0gMS5mOworICAgIGNvbnN0IGZsb2F0IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzID0gYXJn
cy0+Zm9udC5zaXplKCkgLyAxMi4wZjsKIAogICAgIGlmIChtX3RydW5jYXRpb24gPT0gY0Z1bGxU
cnVuY2F0aW9uKQogICAgICAgICByZXR1cm47CkBAIC0xMjAwLDcgKzEyNjAsNDQgQEAgdm9pZCBJ
bmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBGbG9hdFBvaW50JgogCiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKICAgICAgICAgLy8gT2Zm
c2V0IGJldHdlZW4gbGluZXMgLSBhbHdheXMgbm9uLXplcm8sIHNvIGxpbmVzIG5ldmVyIGNyb3Nz
IGVhY2ggb3RoZXIuCi0gICAgICAgIGZsb2F0IGRvdWJsZU9mZnNldCA9IHRleHREZWNvcmF0aW9u
VGhpY2tuZXNzICsgMS5mOworICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQgPSAyLjBmICogdGV4
dERlY29yYXRpb25UaGlja25lc3M7CisgICAgICAgIAorICAgICAgICBUZXh0RGVjb3JhdGlvblNr
aXAgdGV4dERlY29yYXRpb25Ta2lwID0gc3R5bGVUb1VzZS0+dGV4dERlY29yYXRpb25Ta2lwKCk7
CisgICAgICAgIGJvb2wgY2xpcERlY29yYXRpb25Ub01hc2sgPSB0ZXh0RGVjb3JhdGlvblNraXAg
PT0gVGV4dERlY29yYXRpb25Ta2lwSW5rOworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBEZWNv
cmF0aW9uVG9NYXNrKSB7CisgICAgICAgICAgICBjb250ZXh0LT5zYXZlKCk7CisKKyAgICAgICAg
ICAgIC8vIENhbGN1bGF0ZSB0aGUgZXh0ZW50IG9mIGFyZ3MtPmJveFJlY3QgaW4gZGV2aWNlLXNw
YWNlIChub3QgdXNlci1zcGFjZSkKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG0gPSBj
b250ZXh0LT5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURldmljZVNj
YWxlKTsKKyAgICAgICAgICAgIEFTU0VSVChjdG0uaXNJbnZlcnRpYmxlKCkpOworICAgICAgICAg
ICAgLy8gVW4tdHJhbnNsYXRlIG91cnNlbGYKKyAgICAgICAgICAgIGN0bS5zZXRFKDAuMCk7Cisg
ICAgICAgICAgICBjdG0uc2V0RigwLjApOworICAgICAgICAgICAgRmxvYXRSZWN0IGRldmljZVJl
Y3QgPSBjdG0ubWFwUmVjdChhcmdzLT5ib3hSZWN0KTsKKyAgICAgICAgICAgIEludFJlY3QgZW5j
bG9zaW5nRGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZGV2aWNlUmVjdCk7CisgICAgICAg
ICAgICBGbG9hdFJlY3QgaW1hZ2VCdWZmZXJCb3VuZGluZ0JveEluVXNlclNwYWNlID0gY3RtLmlu
dmVyc2UoKS5tYXBSZWN0KEZsb2F0UmVjdChlbmNsb3NpbmdEZXZpY2VSZWN0KSk7CisKKyAgICAg
ICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKGVuY2xvc2luZ0RldmljZVJlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIEdyYXBoaWNzQ29u
dGV4dCogbWFza0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgICAgICAgICAg
bWFza0NvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh0cnVlKTsKKyAgICAgICAgICAgIG1hc2tD
b250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsK
KyAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRMaW5lSm9pbihSb3VuZEpvaW4pOworICAgICAg
ICAgICAgbWFza0NvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAgICAgICAgbWFza0NvbnRl
eHQtPnRyYW5zbGF0ZShGbG9hdFBvaW50KCkgLSBpbWFnZUJ1ZmZlckJvdW5kaW5nQm94SW5Vc2Vy
U3BhY2UubG9jYXRpb24oKSk7CisgICAgICAgICAgICBtYXNrQ29udGV4dC0+ZmlsbFJlY3QoYXJn
cy0+Ym94UmVjdCk7CisgICAgICAgICAgICBtYXNrQ29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0
aW9uKENvbXBvc2l0ZUNsZWFyKTsKKworICAgICAgICAgICAgYXJncy0+Y29udGV4dCA9IG1hc2tD
b250ZXh0OworICAgICAgICAgICAgYXJncy0+dGV4dFN0cm9rZVdpZHRoICs9IHRleHREZWNvcmF0
aW9uVGhpY2tuZXNzOworICAgICAgICAgICAgYXJncy0+c2VsZWN0aW9uU3Ryb2tlV2lkdGggKz0g
dGV4dERlY29yYXRpb25UaGlja25lc3M7CisgICAgICAgICAgICBhcmdzLT50ZXh0U2hhZG93ID0g
MDsKKyAgICAgICAgICAgIGFyZ3MtPnNlbGVjdGlvblNoYWRvdyA9IDA7CisgICAgICAgICAgICBw
YWludFRleHQoYXJncyk7CisKKyAgICAgICAgICAgIGNvbnRleHQtPmNsaXBUb0ltYWdlQnVmZmVy
KGltYWdlQnVmZmVyLmdldCgpLCBpbWFnZUJ1ZmZlckJvdW5kaW5nQm94SW5Vc2VyU3BhY2UpOwor
ICAgICAgICAgICAgCisgICAgICAgIH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKICAgICAgICAgY29u
dGV4dC0+c2V0U3Ryb2tlU3R5bGUodGV4dERlY29yYXRpb25TdHlsZVRvU3Ryb2tlU3R5bGUoZGVj
b3JhdGlvblN0eWxlKSk7CiAgICAgICAgIGlmIChkZWNvICYgVGV4dERlY29yYXRpb25VbmRlcmxp
bmUpIHsKQEAgLTEyMTcsOCArMTMxNCw5IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNv
cmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxP
cmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQpLCB3aWR0aCwgaXNQ
cmludGluZyk7CiAKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3TGluZUZvclRleHQoRmxv
YXRQb2ludChsb2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNl
dCksIHdpZHRoLCBpc1ByaW50aW5nKTsKKyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgaWYgKGRlY29yYXRpb25TdHlsZSA9PSBUZXh0RGVjb3JhdGlvblN0eWxlRG91YmxlKQog
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChs
b2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCArIGRvdWJs
ZU9mZnNldCksIHdpZHRoLCBpc1ByaW50aW5nKTsKICAgICAgICAgICAgIH0KQEAgLTEyNDYsNiAr
MTM0NCwxMCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICB9CiAjZW5kaWYg
Ly8gQ1NTM19URVhUCiAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICBp
ZiAoY2xpcERlY29yYXRpb25Ub01hc2spCisgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7
CisjZW5kaWYKICAgICAgICAgaWYgKGRlY28gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoKSB7
CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihsaW5ldGhyb3VnaCwgY29sb3JT
cGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5oCmluZGV4IGY2MmMwZTM1YmViOTJjOGY0NWM4NTlhN2QxYjk1ZWZiMDY2Zjdh
YzcuLjQ1MThhMTkzOWFhMGM4NDY5NWI3NWQ3MGMyZTljNDVhYjg5ZTkyN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIGNsYXNzIERvY3Vt
ZW50TWFya2VyOworc3RydWN0IFBhaW50VGV4dEFyZ3VtZW50czsKK2NsYXNzIFJlbmRlckNvbWJp
bmVUZXh0OwogCiBjb25zdCB1bnNpZ25lZCBzaG9ydCBjTm9UcnVuY2F0aW9uID0gVVNIUlRfTUFY
OwogY29uc3QgdW5zaWduZWQgc2hvcnQgY0Z1bGxUcnVuY2F0aW9uID0gVVNIUlRfTUFYIC0gMTsK
QEAgLTE4Myw3ICsxODUsOCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBi
b3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFk
b3dEYXRhKik7CisgICAgdm9pZCBwYWludFRleHQoUGFpbnRUZXh0QXJndW1lbnRzKiBhcmdzKTsK
KyAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBv
aW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25z
dCBTaGFkb3dEYXRhKiwgUGFpbnRUZXh0QXJndW1lbnRzKiBhcmdzKTsKICAgICB2b2lkIHBhaW50
U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
UmVuZGVyU3R5bGUqLCBjb25zdCBGb250JiwgQ29sb3IgdGV4dENvbG9yKTsKICAgICB2b2lkIHBh
aW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94
T3JpZ2luLCBEb2N1bWVudE1hcmtlciosIFJlbmRlclN0eWxlKiwgY29uc3QgRm9udCYsIGJvb2wg
Z3JhbW1hcik7CiAgICAgdm9pZCBwYWludFRleHRNYXRjaE1hcmtlcihHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIERvY3VtZW50TWFya2VyKiwgUmVuZGVyU3R5
bGUqLCBjb25zdCBGb250Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IDMwYWZkZGM0MzI5ZjgyZWNmYzczOTBhOWMxYmQzYTQ4YjhhYjZkMmYu
LmIxMmNlYmUwOGZjYjdmZDg0ZGM1YjYyYWY3NmI2MDQ1MGViZjdmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01ODAsNiArNTgwLDcgQEAg
cHVibGljOgogICAgIFRleHREZWNvcmF0aW9uU3R5bGUgdGV4dERlY29yYXRpb25TdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHREZWNvcmF0aW9uU3R5bGU+KHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU3R5bGUpOyB9CiAgICAgVGV4dEFsaWduTGFzdCB0
ZXh0QWxpZ25MYXN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEFsaWduTGFzdD4o
cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEFsaWduTGFzdCk7IH0KICAgICBUZXh0SnVzdGlmeSB0
ZXh0SnVzdGlmeSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRKdXN0aWZ5PihyYXJl
SW5oZXJpdGVkRGF0YS0+bV90ZXh0SnVzdGlmeSk7IH0KKyAgICBUZXh0RGVjb3JhdGlvblNraXAg
dGV4dERlY29yYXRpb25Ta2lwKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dERlY29y
YXRpb25Ta2lwPihyYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblNraXApOyB9CiAg
ICAgVGV4dFVuZGVybGluZVBvc2l0aW9uIHRleHRVbmRlcmxpbmVQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFRleHRVbmRlcmxpbmVQb3NpdGlvbj4ocmFyZUluaGVyaXRlZERh
dGEtPm1fdGV4dFVuZGVybGluZVBvc2l0aW9uKTsgfQogI2Vsc2UKICAgICBUZXh0RGVjb3JhdGlv
blN0eWxlIHRleHREZWNvcmF0aW9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBUZXh0RGVjb3JhdGlv
blN0eWxlU29saWQ7IH0KQEAgLTExNTcsNiArMTE1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFRleHREZWNvcmF0aW9uU3R5bGUoVGV4dERlY29yYXRpb25TdHlsZSB2KSB7IFNFVF9WQVIocmFy
ZU5vbkluaGVyaXRlZERhdGEsIG1fdGV4dERlY29yYXRpb25TdHlsZSwgdik7IH0KICAgICB2b2lk
IHNldFRleHRBbGlnbkxhc3QoVGV4dEFsaWduTGFzdCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRl
ZERhdGEsIG1fdGV4dEFsaWduTGFzdCwgdik7IH0KICAgICB2b2lkIHNldFRleHRKdXN0aWZ5KFRl
eHRKdXN0aWZ5IHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90ZXh0SnVzdGlmeSwg
dik7IH0KKyAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uU2tpcChUZXh0RGVjb3JhdGlvblNraXAg
dikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHREZWNvcmF0aW9uU2tpcCwgdik7
IH0KICAgICB2b2lkIHNldFRleHRVbmRlcmxpbmVQb3NpdGlvbihUZXh0VW5kZXJsaW5lUG9zaXRp
b24gdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRVbmRlcmxpbmVQb3NpdGlv
biwgdik7IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKICAgICB2b2lkIHNldERpcmVjdGlvbihUZXh0
RGlyZWN0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl9kaXJlY3Rpb24gPSB2OyB9CkBAIC0xNjY0
LDYgKzE2NjYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRleHREZWNvcmF0aW9uU3R5bGUgaW5p
dGlhbFRleHREZWNvcmF0aW9uU3R5bGUoKSB7IHJldHVybiBUZXh0RGVjb3JhdGlvblN0eWxlU29s
aWQ7IH0KICAgICBzdGF0aWMgVGV4dEFsaWduTGFzdCBpbml0aWFsVGV4dEFsaWduTGFzdCgpIHsg
cmV0dXJuIFRleHRBbGlnbkxhc3RBdXRvOyB9CiAgICAgc3RhdGljIFRleHRKdXN0aWZ5IGluaXRp
YWxUZXh0SnVzdGlmeSgpIHsgcmV0dXJuIFRleHRKdXN0aWZ5QXV0bzsgfQorICAgIHN0YXRpYyBU
ZXh0RGVjb3JhdGlvblNraXAgaW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcCgpIHsgcmV0dXJuIFRl
eHREZWNvcmF0aW9uU2tpcE5vbmU7IH0KICAgICBzdGF0aWMgVGV4dFVuZGVybGluZVBvc2l0aW9u
IGluaXRpYWxUZXh0VW5kZXJsaW5lUG9zaXRpb24oKSB7IHJldHVybiBUZXh0VW5kZXJsaW5lUG9z
aXRpb25BdXRvOyB9CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAgICAgc3RhdGljIGZsb2F0IGluaXRp
YWxab29tKCkgeyByZXR1cm4gMS4wZjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBlMGYzOTcyMTI2ZmIyNTM0
N2ZhZGZlN2Q4YTc0YzE4NTJkMTU3NzE2Li45YTY4ZGIzMTMxM2ViZWUzNTAzMjY0YmEwYWM5YmUw
MzE0MGZiZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMzY5LDYgKzM2OSwxMiBAQCBlbnVtIFRleHRBbGln
bkxhc3QgewogICAgIFRleHRBbGlnbkxhc3RBdXRvLCBUZXh0QWxpZ25MYXN0U3RhcnQsIFRleHRB
bGlnbkxhc3RFbmQsIFRleHRBbGlnbkxhc3RMZWZ0LCBUZXh0QWxpZ25MYXN0UmlnaHQsIFRleHRB
bGlnbkxhc3RDZW50ZXIsIFRleHRBbGlnbkxhc3RKdXN0aWZ5CiB9OwogCitlbnVtIFRleHREZWNv
cmF0aW9uU2tpcCB7CisgICAgVGV4dERlY29yYXRpb25Ta2lwTm9uZSA9IDB4MCwgVGV4dERlY29y
YXRpb25Ta2lwSW5rID0gMHg0Cit9OworaW5saW5lIFRleHREZWNvcmF0aW9uU2tpcCBvcGVyYXRv
cnwgKFRleHREZWNvcmF0aW9uU2tpcCBhLCBUZXh0RGVjb3JhdGlvblNraXAgYikgeyByZXR1cm4g
VGV4dERlY29yYXRpb25Ta2lwKGludChhKSB8IGludChiKSk7IH0KK2lubGluZSBUZXh0RGVjb3Jh
dGlvblNraXAmIG9wZXJhdG9yfD0gKFRleHREZWNvcmF0aW9uU2tpcCYgYSwgVGV4dERlY29yYXRp
b25Ta2lwIGIpIHsgcmV0dXJuIGEgPSBhIHwgYjsgfQorCiBlbnVtIFRleHRVbmRlcmxpbmVQb3Np
dGlvbiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdXBwb3J0IGZvciAndW5kZXIgbGVmdCcg
YW5kICd1bmRlciByaWdodCcgdmFsdWVzLgogICAgIFRleHRVbmRlcmxpbmVQb3NpdGlvbkF1dG8g
PSAweDEsIFRleHRVbmRlcmxpbmVQb3NpdGlvbkFscGhhYmV0aWMgPSAweDIsIFRleHRVbmRlcmxp
bmVQb3NpdGlvblVuZGVyID0gMHg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggNTZkYjNlODIzOWRl
ZDY3YjVmMTM2NDgxNTI1ODE4ZTRiNzMyNDY1Zi4uMjQ4ZTAzNTFjMGJlMWJmMzQzM2E0ODEzNWYz
NjQzZDZiMDkyMmIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTEwLDYgKzExMCw3IEBAIFN0
eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogI2lmIEVOQUJM
RShDU1MzX1RFWFQpCiAgICAgLCBtX3RleHRBbGlnbkxhc3QoUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0QWxpZ25MYXN0KCkpCiAgICAgLCBtX3RleHRKdXN0aWZ5KFJlbmRlclN0eWxlOjppbml0aWFs
VGV4dEp1c3RpZnkoKSkKKyAgICAsIG1fdGV4dERlY29yYXRpb25Ta2lwKFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dERlY29yYXRpb25Ta2lwKCkpCiAgICAgLCBtX3RleHRVbmRlcmxpbmVQb3NpdGlv
bihSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRVbmRlcmxpbmVQb3NpdGlvbigpKQogI2VuZGlmIC8v
IENTUzNfVEVYVAogICAgICwgbV9ydWJ5UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxSdWJ5
UG9zaXRpb24oKSkKQEAgLTE4OCw2ICsxODksNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAj
aWYgRU5BQkxFKENTUzNfVEVYVCkKICAgICAsIG1fdGV4dEFsaWduTGFzdChvLm1fdGV4dEFsaWdu
TGFzdCkKICAgICAsIG1fdGV4dEp1c3RpZnkoby5tX3RleHRKdXN0aWZ5KQorICAgICwgbV90ZXh0
RGVjb3JhdGlvblNraXAoby5tX3RleHREZWNvcmF0aW9uU2tpcCkKICAgICAsIG1fdGV4dFVuZGVy
bGluZVBvc2l0aW9uKG8ubV90ZXh0VW5kZXJsaW5lUG9zaXRpb24pCiAjZW5kaWYgLy8gQ1NTM19U
RVhUCiAgICAgLCBtX3J1YnlQb3NpdGlvbihvLm1fcnVieVBvc2l0aW9uKQpAQCAtMzA0LDYgKzMw
Niw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogI2lmIEVOQUJMRShDU1MzX1RFWFQpCiAgICAg
ICAgICYmIG1fdGV4dEFsaWduTGFzdCA9PSBvLm1fdGV4dEFsaWduTGFzdAogICAgICAgICAmJiBt
X3RleHRKdXN0aWZ5ID09IG8ubV90ZXh0SnVzdGlmeQorICAgICAgICAmJiBtX3RleHREZWNvcmF0
aW9uU2tpcCA9PSBvLm1fdGV4dERlY29yYXRpb25Ta2lwCiAgICAgICAgICYmIG1fdGV4dFVuZGVy
bGluZVBvc2l0aW9uID09IG8ubV90ZXh0VW5kZXJsaW5lUG9zaXRpb24KICNlbmRpZiAvLyBDU1Mz
X1RFWFQKICAgICAgICAgJiYgbV9ydWJ5UG9zaXRpb24gPT0gby5tX3J1YnlQb3NpdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmgKaW5kZXggNTAxMDU1M2NkNTE0NzNjMTlhZTBlMjhiNDhmMmQ3NGVjOWI1NzNmYS4u
NTk2ZGI2ZjExOTM4YTJmNDU5YjE4ZGViMWIxZmRiZTQ5YjYwNTM4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
CkBAIC0xMjQsNiArMTI0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1MzX1RFWFQpCiAgICAg
dW5zaWduZWQgbV90ZXh0QWxpZ25MYXN0IDogMzsgLy8gVGV4dEFsaWduTGFzdAogICAgIHVuc2ln
bmVkIG1fdGV4dEp1c3RpZnkgOiAzOyAvLyBUZXh0SnVzdGlmeQorICAgIHVuc2lnbmVkIG1fdGV4
dERlY29yYXRpb25Ta2lwIDogNTsgLy8gVGV4dERlY29yYXRpb25Ta2lwCiAgICAgdW5zaWduZWQg
bV90ZXh0VW5kZXJsaW5lUG9zaXRpb24gOiAzOyAvLyBUZXh0VW5kZXJsaW5lUG9zaXRpb24KICNl
bmRpZiAvLyBDU1MzX1RFWFQKICAgICB1bnNpZ25lZCBtX3J1YnlQb3NpdGlvbiA6IDE7IC8vIFJ1
YnlQb3NpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDY4ZmNjYzkzZTBmN2FjOTYyN2FlMWFmNDAyNTZhZDBkNDQyMzZk
ZGUuLjAwMjMxMzg1MmNjZDVmNzA2YTlhOTAzMDQ3Y2Y2MTM0NDc4Nzg0YzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMy0wOS0yMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0
aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVj
b3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sOiBBZGRlZC4K
KwogMjAxMy0wOS0yMyAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+
CiAKICAgICAgICAgW1RleG1hcF0gUmVsb2FkaW5nIGEgd2ViZ2wgcGFnZSBkb2Vzbid0IHdvcmsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24v
dGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjI3MDg2ZmI1OGViMmExMzM4MWJiMzExOWM5YWQ2MjA3Y2M1OWMwYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8
aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRl
cmxpbmVkICJwIiBhcyB2aWV3ZWQgdGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFyb3VuZAorICB0aGUg
ZGVzY2VuZGVyLiBUaGVyZSBzaG91bGQgYmUgbm8gdW5kZXJsaW5lIHZpc2libGUuCisgIDxkaXYg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDIxMHB4
OyBoZWlnaHQ6IDIwMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogLTQyNXB4OyB0b3A6IC0xMTUwcHg7Ij4KKyAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNp
emU6IDEwMDBwdDsiPmxwbDwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWlu
ay16b29tZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lw
LWluay16b29tZWQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjg1YThiYWQ2OTYwMzRhNWQw
OTAyMDBiOWFjMGQyYjBkZGVlZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4
dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgICNiaWdz
a2V3IHsKKyAgICAgIHdpZHRoOiAyMHB4OworICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgbWFy
Z2luOiAyMDAwcHg7CisgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgICBmb250LXNpemU6
IDEycHQ7CisgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNhOworICAgICAgLXdlYmtpdC10cmFu
c2Zvcm06c2NhbGUoMTYwLCAxNjApOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6ZWQgInAi
IGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIu
IFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBsYXJnZXIu
IFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBtYXNrIGlz
IGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJlY2lzaW9u
LgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0IGJlIGEg
bmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdoZXJlIGl0
IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVyZSB3b3Vs
ZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJhY3Rlcgor
ICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRo
OiAzOTVweDsgaGVpZ2h0OiA2MDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgbGVmdDogLTEwNTVweDsgdG9wOiAtMjcwMHB4OyI+CisgICAgICA8ZGl2IGlkPSJiaWdz
a2V3Ij5scGw8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVj
b3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9v
bWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2E5NWRjMzRlZDMxNTNlZjY4NTQ1MGM3MzZiZjQzMThlM2FhYjUwNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16
b29tZWQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgIDxzdHlsZT4KKyAgICAjYmlnc2tldyB7CisgICAgICB3aWR0aDogMjBweDsKKyAgICAg
IGhlaWdodDogMjBweDsKKyAgICAgIG1hcmdpbjogMjAwMHB4OworICAgICAgZm9udC1zdHlsZTog
aXRhbGljOworICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6IGhlbHZl
dGljYTsKKyAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworICAgICAgLXdlYmtpdC10
ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUo
MTYwLCAxNjApOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9s
bG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0
aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMg
aW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMg
dGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQg
d2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJlY2lzaW9uLgorICBJZiB3ZSBk
b24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0IGJlIGEgbmljZSBjcmlzcCBl
ZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdoZXJlIGl0IGdldHMgbWFza2Vk
IG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdl
IGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJhY3RlcgorICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAzOTVweDsgaGVp
Z2h0OiA2MDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
LTEwNTVweDsgdG9wOiAtMjcwMHB4OyI+CisgICAgICA8ZGl2IGlkPSJiaWdza2V3Ij5scGw8L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzlhYzkxNDFmOTFj
YmRmMWFjMmE4MmYwNThlZmFmNWM5YjhjNTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgIFRoZSBmb2xsb3dp
bmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93
IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIuIFRoZXJlIHNob3VsZCBiZSBubyB1bmRlcmxp
bmUgdmlzaWJsZS4KKyAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBvdmVyZmxvdzog
aGlkZGVuOyB3aWR0aDogMjEwcHg7IGhlaWdodDogMjAwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtNDI1cHg7IHRvcDogLTExNTBweDsiPgorICAgICAg
PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAtd2Via2l0LXRleHQtZGVj
b3JhdGlvbi1za2lwOiBpbms7IGZvbnQtc2l6ZTogMTAwMHB0OyI+bHBsPC9zcGFuPgorICAgIDwv
ZGl2PgorICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lw
L3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM1ZWUzNTFhNDdlNTExM2Q4ZjQ3ZWIzYjg0N2FjNzI3N2ZhNDU2N2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBjc3NSdWxlLnR5cGUgaXMgY3NzUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAnKSBpcyAiaW5rIgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkYjYxYjhkZDk0OGRmODU4ZGYwMjE5NTc4MTk3MzcwMjJmOTkzNmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRt
bApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg
dmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAg
ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpOworICAgIHN0eWxlc2hlZXQg
PSBzdHlsZUVsZW1lbnQuc2hlZXQ7CisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIucCB7IC13
ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluazsgfSIsIDApOworICAgIGNzc1J1bGUgPSBz
dHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCk7CisgICAgc2hvdWxkQmUoImNzc1J1bGUudHlwZSIs
ICJjc3NSdWxlLlNUWUxFX1JVTEUiKTsKKyAgICBkZWNsYXJhdGlvbiA9IGNzc1J1bGUuc3R5bGU7
CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmxlbmd0aCIsICIxIik7CisgICAgc2hvdWxkQmUo
ImRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNr
aXAnKSIsICJcImlua1wiIik7CisgIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214024</attachid>
            <date>2013-10-11 14:54:08 -0700</date>
            <delta_ts>2013-10-12 14:07:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131011145407.patch</filename>
            <type>text/plain</type>
            <size>70325</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5YWZmNDgyZWI0YmIz
NDdhZWU3M2RhZWUyMTdhNzBmOTYzNzAxOS4uMThjNTM5ZDNhNjdmZDhkNGVjODFmNjU3MjZiMzIw
MDkwMGI5MDYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTA5LTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
cy10ZXh0LWRlY29yLTMvI3RleHQtZGVjb3JhdGlvbi1za2lwLXByb3BlcnR5CisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBhIG5ldyBDU1MgcHJvcGVydHkgIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9u
LXNraXAiCisgICAgICAgIGFuZCBhIG5ldyB2YWx1ZSAiaW5rIi4gSWYgdGhpcyBuZXcgcHJvcGVy
dHkgYW5kIHZhbHVlIGFwcGx5IHRvIGFuCisgICAgICAgIElubGluZVRleHRCb3gsIGEgbWFzayBp
cyBhcHBsaWVkIHRvIHRoZSB1bmRlcmxpbmUgZHJhd2luZyBjb2RlLgorICAgICAgICBUaGlzIG1h
c2sgaXMgY3JlYXRlZCBieSBpbmNyZWFzaW5nIHRoZSBjb250ZXh0J3Mgc3Ryb2tlIHdpZHRoLCB0
aGVuCisgICAgICAgIHJlZHJhd2luZyB0aGUgdGV4dCB0aGF0IHdpbGwgYXBwZWFyIGFib3ZlIHRo
ZSB1bmRlcmxpbmUuIFRoaXMgbWFzaywKKyAgICAgICAgd2hlbiBhcHBsaWVkIHRvIHRoZSB1bmRl
cmxpbmUsIHdpbGwgY3JlYXRlIGEgdmlzdWFsIG1vYXQgYXJvdW5kIHRoZQorICAgICAgICBsZXR0
ZXJzIHdoZXJlIHRoZSB1bmRlcmxpbmUgd2lsbCBub3QgZHJhdy4KKworICAgICAgICBUaGlzIHBh
dGNoIG1vZGlmaWVzIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBzbyB0aGF0IHRoZQor
ICAgICAgICBmdW5jdGlvbiBpcyBhd2FyZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGRyYXcg
dGhlIHRleHQgdGhhdAorICAgICAgICB0aGUgZGVjb3JhdGlvbiBpcyBkZWNvcmF0aW5nLiBUaGVz
ZSBwYXJhbWV0ZXJzIGFyZSBnYXRoZXJlZAorICAgICAgICBpbnRvIGEgc3RydWN0IHdoaWNoIElu
bGluZVRleHRCb3g6OnBhaW50VGV4dCBoYXMgYmVlbiBtb2RpZmllZAorICAgICAgICB0byBhY2Nl
cHQuIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBtb2RpZmllcyB0aGlzIHN0cnVjdAor
ICAgICAgICBhbmQgY2FsbHMgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0IGl0c2VsZiB0byBjcmVh
dGUgdGhlIG1hc2suCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16
b29tZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29y
YXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKToKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dERlY29yYXRp
b25Ta2lwKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvblNraXApOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAg
ICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRlSGFuZGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVC
dWlsZGVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWlu
dFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29tcHV0ZVVuZGVybGluZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcnwgKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yfD0gKToK
KwogMjAxMy0xMC0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1NzI5Ny4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBhOTJmNTIzYTkxYzI1YzcxNGFkODY5OTNjNWNlYWQzZDM2MzY1ZTI2Li4w
NzFlMjEzM2Y5OTA3MmE4NjMyMTNjZWU1ODIwNjdiZTAwZDM3YzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC01OCw2ICs1OCw3IEBAIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJ
T05TX1VOUFJFRklYRUQgPSBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VCiBFTkFC
TEVfQ1NTX1ZBUklBQkxFUyA9IDsKIEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTID0gOwog
RU5BQkxFX0NTUzNfVEVYVCA9IDsKK0VOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiA9IEVOQUJM
RV9DU1MzX1RFWFRfREVDT1JBVElPTjsKIEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyA9IDsK
IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSA9IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWTsKIEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgPSA7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NT
U19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikg
JChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRf
TE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAk
KEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9U
VExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1F
TlQpICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
U0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09S
S0VSUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAk
KEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkg
JChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5H
KSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVD
T1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVW
SUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklM
VEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAk
KEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJ
QUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5F
X0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1Rf
RUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19F
TEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FC
TEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVf
SElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9T
RUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFH
RV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lO
X1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJP
TUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVM
X0xBWU9VVCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBM
QVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURf
SFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklU
KSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTky
ZjUyM2E5MWMyNWM3MTRhZDg2OTkzYzVjZWFkM2QzNjM2NWUyNi4uMDcxZTIxMzNmOTkwNzJhODYz
MjEzY2VlNTgyMDY3YmUwMGQzN2MzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5B
QkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJB
TlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NT
UzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxF
X0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsK
QEAgLTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVf
RlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19Q
Uk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9Q
T1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAk
KEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VC
X0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
Ul9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVG
SU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJM
RV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1Bf
TkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9O
UykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NT
U19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5Q
UkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05B
TF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElP
TikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09O
U1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVO
QUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9U
SU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05E
QVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBM
RVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZF
TkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xF
R0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9H
UkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5U
UykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNP
Tl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1f
TkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCBmYjc5N2JkNzNlZDI2ZTFiOWUzZWNjMTNhMDZhZDI0ZWIwMWNkNjA1
Li45ZDEyMmNjYmY4MzUzMzNhNjM1ZDBjYjA3ZDU4ZDJkNDM2YjkwZTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQz
Myw2ICsxNDMzLDIxIEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVj
b3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0CiB9CiAjZW5kaWYgLy8gQ1NT
M19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKFRl
eHREZWNvcmF0aW9uU2tpcCB0ZXh0RGVjb3JhdGlvblNraXApCit7CisgICAgc3dpdGNoICh0ZXh0
RGVjb3JhdGlvblNraXApIHsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcE5vbmU6CisgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwor
ICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwSW5rOgorICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5rKTsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhw
bGljaXRJbml0aWFsVmFsdWUoKTsKK30KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgor
CiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZmlsbFJlcGVhdFRvQ1NTVmFsdWUoRUZpbGxS
ZXBlYXQgeFJlcGVhdCwgRUZpbGxSZXBlYXQgeVJlcGVhdCkKIHsKICAgICAvLyBGb3IgYmFja3dh
cmRzIGNvbXBhdGliaWxpdHksIGlmIGJvdGggdmFsdWVzIGFyZSBlcXVhbCwganVzdCByZXR1cm4g
b25lIG9mIHRoZW0uIEFuZApAQCAtMjM1MCw2ICsyMzY1LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRp
b246CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUt
PnRleHRVbmRlcmxpbmVQb3NpdGlvbigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RGVjb3JhdGlvblNraXA6CisgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGV4dERlY29yYXRp
b25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLT50ZXh0RGVjb3JhdGlvblNraXAoKSk7CisjZW5k
aWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHREZWNvcmF0aW9uc0luRWZmZWN0OgogICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHRE
ZWNvcmF0aW9uRmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLT50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgp
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCmluZGV4IDYxM2E0MzZjNzhiMTA0M2QwMzlkMGNiYThlM2ZlYzRlMTM5
NmQ0YzcuLmEzMjFiNDEzMzEyY2ZlNjc1MjZiZGE1MGFlYzkwYjVmYTM2NDNiMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yMzcwLDYgKzIzNzAsMTIgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAg
ICByZXR1cm4gcGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oaW1wb3J0YW50KTsKICNlbmRpZiAv
LyBDU1MzX1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwOgorICAgICAgICAvLyBub25lIHwg
WyBvYmplY3RzIHx8IHNwYWNlcyB8fCBpbmsgfHwgZWRnZXMgfHwgYm94LWRlY29yYXRpb24gXQor
ICAgICAgICByZXR1cm4gcGFyc2VUZXh0RGVjb3JhdGlvblNraXAoaW1wb3J0YW50KTsKKyNlbmRp
ZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVpvb206ICAg
ICAgICAgIC8vIG5vcm1hbCB8IHJlc2V0IHwgZG9jdW1lbnQgfCA8bnVtYmVyPiB8IDxwZXJjZW50
YWdlPiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09
IENTU1ZhbHVlUmVzZXQgfHwgaWQgPT0gQ1NTVmFsdWVEb2N1bWVudCkKICAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTk3NDYsNiArOTc1MiwyNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRhbnQpCiB9CiAjZW5kaWYg
Ly8gQ1NTM19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitib29sIENT
U1BhcnNlcjo6cGFyc2VUZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQpCit7CisgICAg
Ly8gVGhlIHRleHQtZGVjb3JhdGlvbi1za2lwIHByb3BlcnR5IGhhcyBzeW50YXggIm5vbmUgfCBb
IG9iamVjdHMgfHwgc3BhY2VzIHx8IGluayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlvbiBdIi4K
KyAgICAvLyBIb3dldmVyLCBvbmx5ICdub25lJyBhbmQgJ2luaycgYXJlIGltcGxlbWVudGVkIHll
dCwgc28gd2Ugd2lsbCBwYXJzZSBzeW50YXggIm5vbmUgfCBpbmsiIGZvciBub3cuCisgICAgQ1NT
UGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBzd2l0Y2gg
KHZhbHVlLT5pZCkgeworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgIGNhc2UgQ1NTVmFsdWVJ
bms6CisgICAgICAgIGlmIChtX3ZhbHVlTGlzdC0+bmV4dCgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29y
YXRpb25Ta2lwLCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlk
KSwgaW1wb3J0YW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBDU1MzX1RF
WFRfREVDT1JBVElPTgorCiBib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShi
b29sIGltcG9ydGFudCkKIHsKICAgICB1bnNpZ25lZCB2YWx1ZUxpc3RTaXplID0gbV92YWx1ZUxp
c3QtPnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAyNDUyZDRmNzA1YmRhMmYzNDRj
ZGYyYzU2M2JhZmY3MjM5NTZhYzg2Li42MDE0YjA3MzA5MmQ3NjQzZTEzMWJlODIxZDNjMmQ3MzBl
N2RkZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yODMsNyArMjgzLDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIHBhcnNlVGV4dERlY29yYXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQogICAgIGJvb2wgcGFyc2VUZXh0
VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRhbnQpOwotI2VuZGlmCisjZW5kaWYgLy8gQ1NT
M19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIGJvb2wgcGFyc2VU
ZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQpOworI2VuZGlmIC8vIENTUzNfVEVYVF9E
RUNPUkFUSU9OCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggYjczMGIxODk5
MzRmYmVmZDRiMDRjZWM4MjVmM2Y0NGI0YmFmNDZkYS4uM2E0OTU4ZGY5MzExMmM2MGE0MDM3OGM2
OWMyMzI3MTVhMDFhYjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTM5Myw2ICszOTMsOSBAQCB6LWluZGV4CiAtd2Via2l0LXRleHQtanVzdGlmeSBbSW5oZXJp
dGVkXQogLXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiBbSW5oZXJpdGVkXQogI2VuZGlm
CisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICYmIEVOQUJMRV9DU1Mz
X1RFWFRfREVDT1JBVElPTgorLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCBbSW5oZXJpdGVk
XQorI2VuZGlmCiAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0IFtJbmhlcml0ZWRd
CiAtd2Via2l0LXRleHQtZW1waGFzaXMgW0luaGVyaXRlZF0KIC1lcHViLXRleHQtZW1waGFzaXMg
PSAtd2Via2l0LXRleHQtZW1waGFzaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KaW5kZXggMGI0YzkyYWM1ODI0YzI2YmRiOTRmMzJjNjFlNGU4MWEzNDcxMzhlNy4uOGE5NDA2
MWI4MTAxYzRhZTZkZDQwNmFmMTA2MjhjMGU3OGZjYmExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KQEAgLTQ3MCw2ICs0NzAsOSBAQCB1bmRlcmxpbmUKICNpZiBkZWZp
bmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RFWFQKIHdhdnkKICNlbmRpZgor
I2lmIGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OKSAmJiBFTkFCTEVfQ1NTM19U
RVhUX0RFQ09SQVRJT04KK2luaworI2VuZGlmCiAtd2Via2l0LW5vd3JhcAogCiAvLyBDU1MzIFZh
bHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmlu
ZGV4IGEyN2Q3ZTE2MzExNDFmODJiZThmZTJmNmY3MmY0NWI3MWRlYzZiNzEuLjM0ZmZmMjliZmE0
ZWQ2MGFjM2M3ZDQ2NDY1YTFkZmQ3NjMxNGQxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTEyNjksNiArMTI2OSw0OSBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK2NsYXNzIEFw
cGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXAgeworICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlv
blNraXAgdmFsdWVUb0RlY29yYXRpb25Ta2lwKENTU1ZhbHVlKiB2YWx1ZSkgeworICAgICAgICBD
U1NQcmltaXRpdmVWYWx1ZSogcHYgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKTsKKworICAgICAgICBBU1NFUlQocHYtPmlzVmFsdWVJRCgpKTsKKworICAgICAgICBzd2l0
Y2ggKHB2LT5nZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9uZTsKKyAgICAgICAgY2FzZSBDU1NW
YWx1ZUluazoKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBJbms7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9u
ZTsKKyAgICB9CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0
eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCisgICAg
eworICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgeworICAgICAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dERlY29yYXRpb25Ta2lwKHZhbHVlVG9EZWNv
cmF0aW9uU2tpcCh2YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgVGV4dERlY29yYXRpb25Ta2lwIHQgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHREZWNv
cmF0aW9uU2tpcCgpOworICAgICAgICBmb3IgKENTU1ZhbHVlTGlzdEl0ZXJhdG9yIGkodmFsdWUp
OyBpLmhhc01vcmUoKTsgaS5hZHZhbmNlKCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVt
ID0gaS52YWx1ZSgpOworICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKKyAgICAgICAgICAgIHQgfD0gdmFsdWVUb0Rl
Y29yYXRpb25Ta2lwKGl0ZW0pOworICAgICAgICB9CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCktPnNldFRleHREZWNvcmF0aW9uU2tpcCh0KTsKKyAgICB9CisgICAgc3RhdGljIFByb3Bl
cnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAgIFByb3BlcnR5SGFuZGxl
ciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPFRleHREZWNvcmF0aW9uU2tpcCwg
JlJlbmRlclN0eWxlOjp0ZXh0RGVjb3JhdGlvblNraXAsIFRleHREZWNvcmF0aW9uU2tpcCwgJlJl
bmRlclN0eWxlOjpzZXRUZXh0RGVjb3JhdGlvblNraXAsIFRleHREZWNvcmF0aW9uU2tpcCwgJlJl
bmRlclN0eWxlOjppbml0aWFsVGV4dERlY29yYXRpb25Ta2lwPjo6Y3JlYXRlSGFuZGxlcigpOwor
ICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKGhhbmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCks
IGhhbmRsZXIuaW5pdGlhbEZ1bmN0aW9uKCksICZhcHBseVZhbHVlKTsKKyAgICB9Cit9OworI2Vu
ZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCisKIGNsYXNzIEFwcGx5UHJvcGVydHlNYXJxdWVl
SW5jcmVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3Bl
cnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKQEAg
LTIyNzUsNiArMjMxOCw5IEBAIERlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRK
dXN0aWZ5LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0SnVzdGlmeSwgJlJlbmRlclN0eWxlOjp0
ZXh0SnVzdGlmeSwgVGV4dEp1c3RpZnksICZSZW5kZXJTdHlsZTo6c2V0VGV4dEp1c3RpZnksIFRl
eHRKdXN0aWZ5LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SnVzdGlmeT46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dFVuZGVy
bGluZVBvc2l0aW9uLCBBcHBseVByb3BlcnR5VGV4dFVuZGVybGluZVBvc2l0aW9uOjpjcmVhdGVI
YW5kbGVyKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVD
T1JBVElPTikKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvblNraXAsIEFwcGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmNyZWF0ZUhhbmRs
ZXIoKSk7CisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICBzZXRQcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y3Jl
YXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0T3Zl
cmZsb3csIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjp0
ZXh0T3ZlcmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjpzZXRUZXh0T3ZlcmZsb3cs
IFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93Pjo6Y3JlYXRl
SGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0UmVuZGVy
aW5nLCBBcHBseVByb3BlcnR5Rm9udDxUZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlv
bjo6dGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRSZW5kZXJpbmdN
b2RlLCBBdXRvVGV4dFJlbmRlcmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMTZhMTA1NmJhMDcyYzU5MTdlZDdjNzQ2YjU3Y2I0Nzlm
MDJkNmYzMy4uNjNiMzY0YWIwZTVlYTIyZDZhNjYzNzkxMGQzMjU5YmMxYWExZWZhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMzA0Niw2ICszMDQ2LDkgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2
YWx1ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEp1c3RpZnk6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlvbjoKICNlbmRpZiAvLyBDU1MzX1RF
WFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFRleHREZWNvcmF0aW9uU2tpcDoKKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElP
TgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcjoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzUG9zaXRpb246CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRFbXBoYXNpc1N0eWxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCmluZGV4IGI0M2U4YmE4MDc1MWRiZDBkOTQ3YmY3MGU1YjhhY2QyODNl
N2RhYTEuLjcxZTQ4OGU3YWJhODI4ZmJkMjFjYmViNDA3ZTYzMWU4ODVhYjE2OTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3Vt
ZW50TWFya2VyLmgiCkBAIC00NzYsNiArNDc3LDEyNiBAQCBzdGF0aWMgaW5saW5lIEFmZmluZVRy
YW5zZm9ybSByb3RhdGlvbihjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIFJvdGF0aW9uRGlyZWN0
aQogICAgICAgICA6IEFmZmluZVRyYW5zZm9ybSgwLCAtMSwgMSwgMCwgYm94UmVjdC54KCkgLSBi
b3hSZWN0Lm1heFkoKSwgYm94UmVjdC54KCkgKyBib3hSZWN0Lm1heFkoKSk7CiB9CiAKK3N0cnVj
dCBQYWludFRleHRBcmd1bWVudHMgeworICAgIFBhaW50VGV4dEFyZ3VtZW50cyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5LCBib29sIHBhaW50U2Vs
ZWN0ZWRUZXh0U2VwYXJhdGVseSwgY29uc3QgRm9udCYgZm9udCwKKyAgICBpbnQgc1BvcywgaW50
IGVQb3MsIGludCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBSZW5k
ZXJDb21iaW5lVGV4dCogY29tYmluZWRUZXh0LCBUZXh0UnVuJiB0ZXh0UnVuLAorICAgIEZsb2F0
UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwgY29uc3QgU2hhZG93RGF0YSog
dGV4dFNoYWRvdywgaW50IGVtcGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogc2Vs
ZWN0aW9uU2hhZG93LAorICAgIFRleHRQYWludFN0eWxlJiB0ZXh0UGFpbnRTdHlsZSwgVGV4dFBh
aW50U3R5bGUmIHNlbGVjdGlvblBhaW50U3R5bGUpCisgICAgICAgIDogbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgICAgICwgbV9wYWludFNlbGVjdGVkVGV4dE9ubHkocGFpbnRTZWxlY3RlZFRleHRP
bmx5KQorICAgICAgICAsIG1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KHBhaW50U2VsZWN0
ZWRUZXh0U2VwYXJhdGVseSkKKyAgICAgICAgLCBtX2ZvbnQoZm9udCkKKyAgICAgICAgLCBtX3NQ
b3Moc1BvcykKKyAgICAgICAgLCBtX2VQb3MoZVBvcykKKyAgICAgICAgLCBtX2xlbmd0aChsZW5n
dGgpCisgICAgICAgICwgbV9lbXBoYXNpc01hcmsoZW1waGFzaXNNYXJrKQorICAgICAgICAsIG1f
Y29tYmluZWRUZXh0KGNvbWJpbmVkVGV4dCkKKyAgICAgICAgLCBtX3RleHRSdW4odGV4dFJ1bikK
KyAgICAgICAgLCBtX2JveFJlY3QoYm94UmVjdCkKKyAgICAgICAgLCBtX3RleHRPcmlnaW4odGV4
dE9yaWdpbikKKyAgICAgICAgLCBtX3RleHRTaGFkb3codGV4dFNoYWRvdykKKyAgICAgICAgLCBt
X2VtcGhhc2lzTWFya09mZnNldChlbXBoYXNpc01hcmtPZmZzZXQpCisgICAgICAgICwgbV9zZWxl
Y3Rpb25TaGFkb3coc2VsZWN0aW9uU2hhZG93KQorICAgICAgICAsIG1fdGV4dFBhaW50U3R5bGUo
dGV4dFBhaW50U3R5bGUpCisgICAgICAgICwgbV9zZWxlY3Rpb25QYWludFN0eWxlKHNlbGVjdGlv
blBhaW50U3R5bGUpCisgICAgeworICAgIH0KKyAgICBHcmFwaGljc0NvbnRleHQqIG1fY29udGV4
dDsKKyAgICBib29sIG1fcGFpbnRTZWxlY3RlZFRleHRPbmx5OworICAgIGJvb2wgbV9wYWludFNl
bGVjdGVkVGV4dFNlcGFyYXRlbHk7CisgICAgY29uc3QgRm9udCYgbV9mb250OworICAgIGludCBt
X3NQb3M7CisgICAgaW50IG1fZVBvczsKKyAgICBpbnQgbV9sZW5ndGg7CisgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBtX2VtcGhhc2lzTWFyazsKKyAgICBSZW5kZXJDb21iaW5lVGV4dCogbV9jb21i
aW5lZFRleHQ7CisgICAgVGV4dFJ1biYgbV90ZXh0UnVuOworICAgIEZsb2F0UmVjdCYgbV9ib3hS
ZWN0OworICAgIEZsb2F0UG9pbnQmIG1fdGV4dE9yaWdpbjsKKyAgICBjb25zdCBTaGFkb3dEYXRh
KiBtX3RleHRTaGFkb3c7CisgICAgaW50IG1fZW1waGFzaXNNYXJrT2Zmc2V0OworICAgIGNvbnN0
IFNoYWRvd0RhdGEqIG1fc2VsZWN0aW9uU2hhZG93OworICAgIFRleHRQYWludFN0eWxlJiBtX3Rl
eHRQYWludFN0eWxlOworICAgIFRleHRQYWludFN0eWxlJiBtX3NlbGVjdGlvblBhaW50U3R5bGU7
Cit9OworCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50VGV4dChQYWludFRleHRBcmd1bWVudHMm
IGFyZ3MpCit7CisgICAgLy8gU2V0IHVwIGFyZ3VtZW50cyBmcm9tIHRoZSBQYWludFRleHRBcmd1
bWVudHMKKyAgICBHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0ID0gYXJncy5tX2NvbnRleHQ7Cisg
ICAgY29uc3QgYm9vbCYgcGFpbnRTZWxlY3RlZFRleHRPbmx5ID0gYXJncy5tX3BhaW50U2VsZWN0
ZWRUZXh0T25seTsKKyAgICBjb25zdCBib29sJiBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkg
PSBhcmdzLm1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5OworICAgIGNvbnN0IEZvbnQmIGZv
bnQgPSBhcmdzLm1fZm9udDsKKyAgICBjb25zdCBpbnQmIHNQb3MgPSBhcmdzLm1fc1BvczsKKyAg
ICBjb25zdCBpbnQmIGVQb3MgPSBhcmdzLm1fZVBvczsKKyAgICBjb25zdCBpbnQmIGxlbmd0aCA9
IGFyZ3MubV9sZW5ndGg7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmsgPSBh
cmdzLm1fZW1waGFzaXNNYXJrOworICAgIFJlbmRlckNvbWJpbmVUZXh0KiYgY29tYmluZWRUZXh0
ID0gYXJncy5tX2NvbWJpbmVkVGV4dDsKKyAgICBUZXh0UnVuJiB0ZXh0UnVuID0gYXJncy5tX3Rl
eHRSdW47CisgICAgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0ID0gYXJncy5tX2JveFJlY3Q7Cisg
ICAgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luID0gYm94UmVjdC5sb2NhdGlvbigpOworICAg
IGNvbnN0IEZsb2F0UG9pbnQmIHRleHRPcmlnaW4gPSBhcmdzLm1fdGV4dE9yaWdpbjsKKyAgICBj
b25zdCBTaGFkb3dEYXRhKiYgdGV4dFNoYWRvdyA9IGFyZ3MubV90ZXh0U2hhZG93OworICAgIGNv
bnN0IGludCYgZW1waGFzaXNNYXJrT2Zmc2V0ID0gYXJncy5tX2VtcGhhc2lzTWFya09mZnNldDsK
KyAgICBjb25zdCBTaGFkb3dEYXRhKiYgc2VsZWN0aW9uU2hhZG93ID0gYXJncy5tX3NlbGVjdGlv
blNoYWRvdzsKKyAgICBjb25zdCBUZXh0UGFpbnRTdHlsZSYgdGV4dFBhaW50U3R5bGUgPSBhcmdz
Lm1fdGV4dFBhaW50U3R5bGU7CisgICAgY29uc3QgVGV4dFBhaW50U3R5bGUmIHNlbGVjdGlvblBh
aW50U3R5bGUgPSBhcmdzLm1fc2VsZWN0aW9uUGFpbnRTdHlsZTsKKworICAgIGlmICghcGFpbnRT
ZWxlY3RlZFRleHRPbmx5KSB7CisgICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBo
YXZlIHRvIGNoYW5nZSB0aGUgdGV4dCBkcmF3aW5nIG1vZGUuIEl0J3MgcHJvYmFibHkgZGFuZ2Vy
b3VzIHRvIGxlYXZlIHRoYXQgbXV0YXRlZCBhcyBhIHNpZGUKKyAgICAgICAgLy8gZWZmZWN0LCBz
byBvbmx5IHdoZW4gd2Uga25vdyB3ZSdyZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCwgdGV4
dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwKTsKKworICAgICAgICB1cGRhdGVHcmFwaGljc0Nv
bnRleHQoKmNvbnRleHQsIHRleHRQYWludFN0eWxlKTsKKyAgICAgICAgaWYgKCFwYWludFNlbGVj
dGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgIHBh
aW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCAw
LCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFBh
aW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1
biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwg
dGV4dFNoYWRvdywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwo
KSk7CisKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHRleHRQYWludFN0eWxlLCBVc2VFbXBo
YXNpc01hcmtDb2xvcik7CisKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1
biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVu
ID0gY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4
dFJ1bjsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNv
bWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIGJveFJlY3Qud2lkdGgoKSAv
IDIsIGJveE9yaWdpbi55KCkgKyBmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogdGV4dE9y
aWdpbjsKKyAgICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCisgICAgICAgICAgICAgICAgY29u
dGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOworCisgICAgICAg
ICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQb3MpIHsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNv
cnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBj
b21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFz
aXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIDAsIGxlbmd0
aCwgbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0
ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQs
IGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBo
YXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgZVBvcywg
c1BvcywgbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93
LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKworICAg
ICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25j
YXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKChwYWludFNlbGVjdGVkVGV4dE9ubHkgfHwgcGFpbnRTZWxlY3RlZFRl
eHRTZXBhcmF0ZWx5KSAmJiBzUG9zIDwgZVBvcykgeworICAgICAgICAvLyBwYWludCBvbmx5IHRo
ZSB0ZXh0IHRoYXQgaXMgc2VsZWN0ZWQKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKCpjb250ZXh0LCBzZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID4g
MCk7CisKKyAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCpjb250ZXh0LCBzZWxlY3Rpb25Q
YWludFN0eWxlKTsKKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwg
dGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94
UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID4g
MCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgc2VsZWN0aW9u
UGFpbnRTdHlsZSwgVXNlRW1waGFzaXNNYXJrQ29sb3IpOworCisgICAgICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwg
KCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICAgICAgVGV4dFJ1biYg
ZW1waGFzaXNNYXJrVGV4dFJ1biA9IGNvbWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hh
cmFjdGVyVGV4dFJ1biA6IHRleHRSdW47CisgICAgICAgICAgICBGbG9hdFBvaW50IGVtcGhhc2lz
TWFya1RleHRPcmlnaW4gPSBjb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkg
KyBib3hSZWN0LndpZHRoKCkgLyAyLCBib3hPcmlnaW4ueSgpICsgZm9udC5mb250TWV0cmljcygp
LmFzY2VudCgpKSA6IHRleHRPcmlnaW47CisgICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQor
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDbG9j
a3dpc2UpKTsKKworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgY29t
YmluZWRUZXh0ID8gY29tYmluZWRUZXh0LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVtcGhhc2lz
TWFya1RleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBzUG9zLCBlUG9z
LCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRv
dywgc2VsZWN0aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsK
KworICAgICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBjb250ZXh0
LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOworICAgICAg
ICB9CisgICAgfQorfQorCiB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIExheW91dFVuaXQgLypsaW5l
VG9wKi8sIExheW91dFVuaXQgLypsaW5lQm90dG9tKi8pCiB7CiAgICAgaWYgKGlzTGluZUJyZWFr
KCkgfHwgIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QocmVuZGVyZXIoKSkgfHwgcmVu
ZGVyZXIoKS5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRQpAQCAtNjI4LDU5ICs3NDks
OCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAKICAgICBjb25zdCBTaGFkb3dEYXRhKiB0ZXh0
U2hhZG93ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0KCkgPyAwIDogbGluZVN0eWxlLnRleHRT
aGFkb3coKTsKIAotICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KSB7Ci0gICAgICAgIC8v
IEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5nZSB0aGUgdGV4dCBkcmF3aW5n
IG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2ZSB0aGF0IG11dGF0ZWQgYXMg
YSBzaWRlCi0gICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVuIHdlIGtub3cgd2UncmUgc3Ry
b2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCk7
Ci0KLSAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCpjb250ZXh0LCB0ZXh0UGFpbnRTdHls
ZSk7Ci0gICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3MgPD0g
c1BvcykgewotICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4
dCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBm
b250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4s
IGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNI
b3Jpem9udGFsKCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhT
aGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBs
ZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0
cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCi0gICAgICAgIGlmICghZW1waGFzaXNN
YXJrLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCpjb250
ZXh0LCB0ZXh0UGFpbnRTdHlsZSwgVXNlRW1waGFzaXNNYXJrQ29sb3IpOwotCi0gICAgICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
VGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOwotICAgICAgICAgICAg
VGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9IGNvbWJpbmVkVGV4dCA/IG9iamVjdFJlcGxh
Y2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IHRleHRSdW47Ci0gICAgICAgICAgICBGbG9hdFBvaW50
IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBjb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9y
aWdpbi54KCkgKyBib3hSZWN0LndpZHRoKCkgLyAyLCBib3hPcmlnaW4ueSgpICsgZm9udC5mb250
TWV0cmljcygpLmFzY2VudCgpKSA6IHRleHRPcmlnaW47Ci0gICAgICAgICAgICBpZiAoY29tYmlu
ZWRUZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hS
ZWN0LCBDbG9ja3dpc2UpKTsKLQotICAgICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNl
cGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRy
dW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCi0gICAgICAgICAgICAgICAgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0LT5v
cmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVtcGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFyaywg
ZW1waGFzaXNNYXJrT2Zmc2V0LCAwLCBsZW5ndGgsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAw
LCBpc0hvcml6b250YWwoKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBw
YWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQt
Pm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJr
LCBlbXBoYXNpc01hcmtPZmZzZXQsIGVQb3MsIHNQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4
dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGgg
PiAwLCBpc0hvcml6b250YWwoKSk7Ci0KLSAgICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0g
ICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50
ZXJjbG9ja3dpc2UpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgocGFpbnRTZWxlY3Rl
ZFRleHRPbmx5IHx8IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSkgJiYgc1BvcyA8IGVQb3Mp
IHsKLSAgICAgICAgLy8gcGFpbnQgb25seSB0aGUgdGV4dCB0aGF0IGlzIHNlbGVjdGVkCi0gICAg
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCwgc2VsZWN0
aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDApOwotCi0gICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqY29udGV4dCwgc2VsZWN0aW9uUGFpbnRTdHlsZSk7Ci0gICAgICAgIHBhaW50VGV4
dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBzUG9zLCBl
UG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0
aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLSAgICAgICAg
aWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB1cGRhdGVHcmFwaGlj
c0NvbnRleHQoKmNvbnRleHQsIHNlbGVjdGlvblBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0Nv
bG9yKTsKLQotICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RS
ZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIs
IDEpKTsKLSAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBjb21iaW5l
ZFRleHQgPyBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4gOiB0ZXh0UnVuOwotICAg
ICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gY29tYmluZWRUZXh0
ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3Jp
Z2luLnkoKSArIGZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0ZXh0T3JpZ2luOwotICAg
ICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25j
YXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ2xvY2t3aXNlKSk7Ci0KLSAgICAgICAgICAgIHBhaW50
VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3Jp
Z2luYWxGb250KCkgOiBmb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVt
cGhhc2lzTWFya09mZnNldCwgc1BvcywgZVBvcywgbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3Jp
Z2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tl
V2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0KLSAgICAgICAgICAgIGlmIChjb21iaW5lZFRl
eHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3Qs
IENvdW50ZXJjbG9ja3dpc2UpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBQYWludFRleHRBcmd1
bWVudHMgYXJndW1lbnRzKGNvbnRleHQsIHBhaW50U2VsZWN0ZWRUZXh0T25seSwgcGFpbnRTZWxl
Y3RlZFRleHRTZXBhcmF0ZWx5LCBmb250LCBzUG9zLCBlUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFy
aywgY29tYmluZWRUZXh0LCB0ZXh0UnVuLCBib3hSZWN0LCB0ZXh0T3JpZ2luLCB0ZXh0U2hhZG93
LCBlbXBoYXNpc01hcmtPZmZzZXQsIHNlbGVjdGlvblNoYWRvdywgdGV4dFBhaW50U3R5bGUsIHNl
bGVjdGlvblBhaW50U3R5bGUpOworICAgIHBhaW50VGV4dChhcmd1bWVudHMpOwogCiAgICAgLy8g
UGFpbnQgZGVjb3JhdGlvbnMKICAgICBUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbnMgPSBs
aW5lU3R5bGUudGV4dERlY29yYXRpb25zSW5FZmZlY3QoKTsKQEAgLTY4OCw3ICs3NTgsOCBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29u
dGV4dCwgdGV4dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRUZXh0KQogICAgICAg
ICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwot
ICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0ZXh0RGVjb3JhdGlv
bnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFkb3cpOworCisgICAg
ICAgIHBhaW50RGVjb3JhdGlvbihjb250ZXh0LCBib3hPcmlnaW4sIHRleHREZWNvcmF0aW9ucywg
bGluZVN0eWxlLnRleHREZWNvcmF0aW9uU3R5bGUoKSwgdGV4dFNoYWRvdywgYXJndW1lbnRzKTsK
ICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENU
TShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7CiAgICAgfQpAQCAtODg2LDkg
Kzk1Nyw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZVVuZGVybGluZU9mZnNldChjb25zdCBUZXh0VW5k
ZXJsaW5lUG9zaXRpb24gdW5kZXJsaW5lUG9zaXRpb24sCiAgICAgY2FzZSBUZXh0VW5kZXJsaW5l
UG9zaXRpb25VbmRlcjogewogICAgICAgICAvLyBQb3NpdGlvbiB1bmRlcmxpbmUgcmVsYXRpdmUg
dG8gdGhlIHVuZGVyIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50J3MgY29udGVudCBib3guCiAg
ICAgICAgIGNvbnN0IGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRCb3gtPnJvb3QoKS5tYXhMb2dp
Y2FsVG9wKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsVG9wKCk7Ci0gICAgICAgIGlmIChvZmZz
ZXQgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxvZ2ljYWxIZWlnaHQo
KSArIGdhcCArIG9mZnNldDsKLSAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxvZ2ljYWxI
ZWlnaHQoKSArIGdhcDsKKyAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxvZ2ljYWxIZWln
aHQoKSArIGdhcCArIG1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAgICB9CiAgICAgfQogCkBAIC0x
MDIxLDggKzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgc3Ryb2tlV2F2eVRleHREZWNvcmF0aW9uKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgRmxvYXRQb2ludCYgcDEsIEYKIH0KICNlbmRpZiAvLyBD
U1MzX1RFWFQKIAotdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0
aW9uIGRlY28sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFk
b3dEYXRhKiBzaGFkb3cpCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERl
Y29yYXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdywgUGFpbnRUZXh0QXJndW1lbnRzJiBhcmdzKQogeworI2lmICFF
TkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworI2Vu
ZGlmCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbXByb3ZlIHRoaXMgcnVsZSBhbmQgbm90IGFs
d2F5cyBqdXN0IGFzc3VtZSAxLgogICAgIGNvbnN0IGZsb2F0IHRleHREZWNvcmF0aW9uVGhpY2tu
ZXNzID0gMS5mOwogCkBAIC0xMDk1LDYgKzExNjcsNTUgQEAgdm9pZCBJbmxpbmVUZXh0Qm94Ojpw
YWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50
JgogICAgICAgICAvLyBPZmZzZXQgYmV0d2VlbiBsaW5lcyAtIGFsd2F5cyBub24temVybywgc28g
bGluZXMgbmV2ZXIgY3Jvc3MgZWFjaCBvdGhlci4KICAgICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0
ID0gdGV4dERlY29yYXRpb25UaGlja25lc3MgKyAxLmY7CiAjZW5kaWYgLy8gQ1NTM19URVhUCisg
ICAgICAgIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgVGV4dERl
Y29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCA9IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlv
blNraXAoKTsKKyAgICAgICAgYm9vbCBjbGlwRGVjb3JhdGlvblRvTWFzayA9IHRleHREZWNvcmF0
aW9uU2tpcCA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7CisgICAgICAgIAorICAgICAgICBHcmFw
aGljc0NvbnRleHQqIHNhdmVkQ29udGV4dDsKKyAgICAgICAgZmxvYXQgc2F2ZWRUZXh0U3Ryb2tl
V2lkdGg7CisgICAgICAgIGZsb2F0IHNhdmVkU2VsZWN0aW9uU3Ryb2tlV2lkdGg7CisgICAgICAg
IGNvbnN0IFNoYWRvd0RhdGEqIHNhdmVkVGV4dFNoYWRvdzsKKyAgICAgICAgY29uc3QgU2hhZG93
RGF0YSogc2F2ZWRTZWxlY3Rpb25TaGFkb3c7CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcERl
Y29yYXRpb25Ub01hc2spIHsKKyAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKKworICAgICAg
ICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBleHRlbnQgb2YgYXJncy5ib3hSZWN0IGluIGRldmljZS1z
cGFjZSAobm90IHVzZXItc3BhY2UpCisgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtID0g
Y29udGV4dC0+Z2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VT
Y2FsZSk7CisgICAgICAgICAgICBBU1NFUlQoY3RtLmlzSW52ZXJ0aWJsZSgpKTsKKyAgICAgICAg
ICAgIEludFJlY3QgZW5jbG9zaW5nRGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoY3RtLm1h
cFF1YWQoYXJncy5tX2JveFJlY3QpLmJvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBzYXZlZENvbnRleHQgPSBhcmdzLm1fY29udGV4dDsKKyAgICAgICAgICAgIHNhdmVk
VGV4dFN0cm9rZVdpZHRoID0gYXJncy5tX3RleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoOworICAg
ICAgICAgICAgc2F2ZWRTZWxlY3Rpb25TdHJva2VXaWR0aCA9IGFyZ3MubV9zZWxlY3Rpb25QYWlu
dFN0eWxlLnN0cm9rZVdpZHRoOworICAgICAgICAgICAgc2F2ZWRUZXh0U2hhZG93ID0gYXJncy5t
X3RleHRTaGFkb3c7CisgICAgICAgICAgICBzYXZlZFNlbGVjdGlvblNoYWRvdyA9IGFyZ3MubV9z
ZWxlY3Rpb25TaGFkb3c7CisKKyAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VC
dWZmZXIgPSBjb250ZXh0LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGVuY2xvc2luZ0RldmljZVJl
Y3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZlci5nZXQoKSkgeworICAgICAg
ICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6
OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4
dC0+c2V0TGluZUpvaW4oUm91bmRKb2luKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC0+
dHJhbnNsYXRlKEZsb2F0UG9pbnQoKSAtIGVuY2xvc2luZ0RldmljZVJlY3QubG9jYXRpb24oKSk7
CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAgICAg
ICAgICAgIG1hc2tDb250ZXh0LT5maWxsUmVjdChhcmdzLm1fYm94UmVjdCk7CisgICAgICAgICAg
ICAgICAgbWFza0NvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDbGVhcik7
CisKKyAgICAgICAgICAgICAgICBhcmdzLm1fY29udGV4dCA9IG1hc2tDb250ZXh0OworICAgICAg
ICAgICAgICAgIGFyZ3MubV90ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCArPSAxLjBmOworICAg
ICAgICAgICAgICAgIGFyZ3MubV9zZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoICs9IDEu
MGY7CisgICAgICAgICAgICAgICAgYXJncy5tX3RleHRTaGFkb3cgPSAwOworICAgICAgICAgICAg
ICAgIGFyZ3MubV9zZWxlY3Rpb25TaGFkb3cgPSAwOworICAgICAgICAgICAgICAgIHBhaW50VGV4
dChhcmdzKTsKKworICAgICAgICAgICAgICAgIC8vIEFwcGx5IG1hc2sgaW4gZGV2aWNlIHNwYWNl
IHNvIHRoZSBxdWFkIGlzIGF4aXMtYWxpZ25lZAorICAgICAgICAgICAgICAgIGNvbnRleHQtPmNv
bmNhdENUTShjdG0uaW52ZXJzZSgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jbGlwVG9J
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlci5nZXQoKSwgZW5jbG9zaW5nRGV2aWNlUmVjdCk7CisgICAg
ICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKGN0bSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICAgICBjb250ZXh0LT5z
ZXRTdHJva2VTdHlsZSh0ZXh0RGVjb3JhdGlvblN0eWxlVG9TdHJva2VTdHlsZShkZWNvcmF0aW9u
U3R5bGUpKTsKICAgICAgICAgaWYgKGRlY28gJiBUZXh0RGVjb3JhdGlvblVuZGVybGluZSkgewog
ICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IodW5kZXJsaW5lLCBjb2xvclNwYWNl
KTsKQEAgLTExMzksNiArMTI2MCwxNiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3Jh
dGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAg
ICAgICB9CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTM19U
RVhUX0RFQ09SQVRJT04pCisgICAgICAgIGlmIChjbGlwRGVjb3JhdGlvblRvTWFzaykgeworICAg
ICAgICAgICAgYXJncy5tX2NvbnRleHQgPSBzYXZlZENvbnRleHQ7CisgICAgICAgICAgICBhcmdz
Lm1fdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPSBzYXZlZFRleHRTdHJva2VXaWR0aDsKKyAg
ICAgICAgICAgIGFyZ3MubV9zZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID0gc2F2ZWRT
ZWxlY3Rpb25TdHJva2VXaWR0aDsKKyAgICAgICAgICAgIGFyZ3MubV90ZXh0U2hhZG93ID0gc2F2
ZWRUZXh0U2hhZG93OworICAgICAgICAgICAgYXJncy5tX3NlbGVjdGlvblNoYWRvdyA9IHNhdmVk
U2VsZWN0aW9uU2hhZG93OworICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAg
ICB9CisjZW5kaWYKICAgICAgICAgaWYgKGRlY28gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdo
KSB7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihsaW5ldGhyb3VnaCwgY29s
b3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5oCmluZGV4IDE1NDE5YzQ1OTdmMzM3MWZmYmU0MmQ0MTY1M2RjYjFlMmU1
NTJmNzQuLjM3YWY1YTEwY2YyYjI1OGRmNjhmM2UzNzE1MWY0Y2ZkOWFiY2RkOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtMzIsNiArMzIsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIGNsYXNzIERv
Y3VtZW50TWFya2VyOworc3RydWN0IFBhaW50VGV4dEFyZ3VtZW50czsKK2NsYXNzIFJlbmRlckNv
bWJpbmVUZXh0OwogCiBjb25zdCB1bnNpZ25lZCBzaG9ydCBjTm9UcnVuY2F0aW9uID0gVVNIUlRf
TUFYOwogY29uc3QgdW5zaWduZWQgc2hvcnQgY0Z1bGxUcnVuY2F0aW9uID0gVVNIUlRfTUFYIC0g
MTsKQEAgLTE4MCw3ICsxODIsOCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50
JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25zdCBT
aGFkb3dEYXRhKik7CisgICAgdm9pZCBwYWludFRleHQoUGFpbnRUZXh0QXJndW1lbnRzJiBhcmdz
KTsKKyAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBj
b25zdCBTaGFkb3dEYXRhKiwgUGFpbnRUZXh0QXJndW1lbnRzJiBhcmdzKTsKICAgICB2b2lkIHBh
aW50U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdp
biwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgQ29sb3IgdGV4dENvbG9yKTsKICAg
ICB2b2lkIHBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQ
b2ludCYgYm94T3JpZ2luLCBEb2N1bWVudE1hcmtlciosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29u
c3QgRm9udCYsIGJvb2wgZ3JhbW1hcik7CiAgICAgdm9pZCBwYWludFRleHRNYXRjaE1hcmtlcihH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIERvY3VtZW50TWFy
a2VyKiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGU5M2I0NjM5YTJlMTdhZWQwOTU1
MGQ5MjBjYzJjNjQyMDNiYzZiNmEuLjkyMjE2OGVkZjA5MjBmYzRmOGU3MDAxNzlmM2E2NTFlNGRl
NmE4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CkBAIC01ODQsNiArNTg0LDkgQEAgcHVibGljOgogI2Vsc2UKICAgICBUZXh0RGVjb3JhdGlvblN0
eWxlIHRleHREZWNvcmF0aW9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBUZXh0RGVjb3JhdGlvblN0
eWxlU29saWQ7IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCisgICAgVGV4dERlY29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHREZWNvcmF0aW9uU2tpcD4ocmFyZUluaGVyaXRl
ZERhdGEtPm1fdGV4dERlY29yYXRpb25Ta2lwKTsgfQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNP
UkFUSU9OCiAgICAgaW50IHdvcmRTcGFjaW5nKCkgY29uc3Q7CiAgICAgaW50IGxldHRlclNwYWNp
bmcoKSBjb25zdDsKIApAQCAtMTE2Niw2ICsxMTY5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VGV4dEp1c3RpZnkoVGV4dEp1c3RpZnkgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBt
X3RleHRKdXN0aWZ5LCB2KTsgfQogICAgIHZvaWQgc2V0VGV4dFVuZGVybGluZVBvc2l0aW9uKFRl
eHRVbmRlcmxpbmVQb3NpdGlvbiB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1fdGV4
dFVuZGVybGluZVBvc2l0aW9uLCB2KTsgfQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJM
RShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uU2tpcChU
ZXh0RGVjb3JhdGlvblNraXAgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRE
ZWNvcmF0aW9uU2tpcCwgdik7IH0KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAg
IHZvaWQgc2V0RGlyZWN0aW9uKFRleHREaXJlY3Rpb24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2Rp
cmVjdGlvbiA9IHY7IH0KICNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKICAgICB2b2lk
IHNldFNwZWNpZmllZExpbmVIZWlnaHQoTGVuZ3RoIHYpOwpAQCAtMTY4Nyw2ICsxNjkzLDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyBUZXh0SnVzdGlmeSBpbml0aWFsVGV4dEp1c3RpZnkoKSB7IHJl
dHVybiBUZXh0SnVzdGlmeUF1dG87IH0KICAgICBzdGF0aWMgVGV4dFVuZGVybGluZVBvc2l0aW9u
IGluaXRpYWxUZXh0VW5kZXJsaW5lUG9zaXRpb24oKSB7IHJldHVybiBUZXh0VW5kZXJsaW5lUG9z
aXRpb25BdXRvOyB9CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9E
RUNPUkFUSU9OKQorICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlvblNraXAgaW5pdGlhbFRleHREZWNv
cmF0aW9uU2tpcCgpIHsgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcE5vbmU7IH0KKyNlbmRpZiAv
LyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsWm9vbSgpIHsg
cmV0dXJuIDEuMGY7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxPdXRsaW5lT2Zmc2V0KCkgeyBy
ZXR1cm4gMDsgfQogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsT3BhY2l0eSgpIHsgcmV0dXJuIDEu
MGY7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgKaW5kZXggZjI2ZTVhNzAzM2JhMzhmZjVmMzRmYmQxNWY5NTdhOGEwM2Ey
MGRhYy4uZmY1YzAxNGVmODAwYWUyZTIwMDQ5YWJjZDQ2ODU2YThiMjA1NmI0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKQEAgLTM3OSw2ICszNzksMTMgQEAgZW51bSBUZXh0SnVzdGlmeSB7CiB9OwogI2VuZGlmIC8v
IENTUzNfVEVYVAogCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorZW51bSBUZXh0
RGVjb3JhdGlvblNraXBJdGVtcyB7CisgICAgVGV4dERlY29yYXRpb25Ta2lwTm9uZSA9IDB4MCwg
VGV4dERlY29yYXRpb25Ta2lwSW5rID0gMHg0Cit9OwordHlwZWRlZiB1bnNpZ25lZCBUZXh0RGVj
b3JhdGlvblNraXA7CisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KKwogZW51bSBFUGFn
ZUJyZWFrIHsKICAgICBQQkFVVE8sIFBCQUxXQVlTLCBQQkFWT0lECiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
Y3BwCmluZGV4IDBmY2ZiMDhjZjkyNjMyMzhlYWM1ZTgxMWFiZTMwYWNlNzE0YjFiODQuLmRkMjE1
ODNjZGZkMDA4Yzg1NmE3NGFjOWJiMzVhZjM4ZWYwNzFlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAK
QEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IFNhbWVTaXplQXNTdHlsZVJhcmVJbmhlcml0ZWREYXRh
IDogcHVibGljIFJlZkNvdW50ZWQ8U2FtZVNpemVBc1N0eWxlUmFyZUkKICAgICBMZW5ndGggbGVu
Z3Roc1sxXTsKICAgICBmbG9hdCBzZWNvbmRGbG9hdDsKICAgICB1bnNpZ25lZCBtX2JpdGZpZWxk
c1syXTsKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgdW5zaWduZWQgbV9i
aXRmaWVsZHNFeHRyYTsKKyNlbmRpZgogICAgIHNob3J0IHBhZ2VkTWVkaWFTaG9ydHNbMl07CiAg
ICAgdW5zaWduZWQgdW5zaWduZWRzWzFdOwogICAgIHNob3J0IGh5cGhlbmF0aW9uU2hvcnRzWzNd
OwpAQCAtMTEyLDYgKzExNSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGEoKQogICAgICwgbV90ZXh0SnVzdGlmeShSZW5kZXJTdHlsZTo6aW5pdGlhbFRl
eHRKdXN0aWZ5KCkpCiAgICAgLCBtX3RleHRVbmRlcmxpbmVQb3NpdGlvbihSZW5kZXJTdHlsZTo6
aW5pdGlhbFRleHRVbmRlcmxpbmVQb3NpdGlvbigpKQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lm
IEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAsIG1fdGV4dERlY29yYXRpb25Ta2lw
KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dERlY29yYXRpb25Ta2lwKCkpCisjZW5kaWYgLy8gQ1NT
M19URVhUX0RFQ09SQVRJT04KICAgICAsIG1fcnVieVBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0
aWFsUnVieVBvc2l0aW9uKCkpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICwgdG91Y2hDYWxsb3V0
RW5hYmxlZChSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQ2FsbG91dEVuYWJsZWQoKSkKQEAgLTE5
Myw2ICsxOTksOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAgICAgLCBtX3RleHRKdXN0aWZ5
KG8ubV90ZXh0SnVzdGlmeSkKICAgICAsIG1fdGV4dFVuZGVybGluZVBvc2l0aW9uKG8ubV90ZXh0
VW5kZXJsaW5lUG9zaXRpb24pCiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNf
VEVYVF9ERUNPUkFUSU9OKQorICAgICwgbV90ZXh0RGVjb3JhdGlvblNraXAoby5tX3RleHREZWNv
cmF0aW9uU2tpcCkKKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICwgbV9ydWJ5
UG9zaXRpb24oby5tX3J1YnlQb3NpdGlvbikKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCB0b3Vj
aENhbGxvdXRFbmFibGVkKG8udG91Y2hDYWxsb3V0RW5hYmxlZCkKQEAgLTMxNSw2ICszMjQsOSBA
QCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgbV90ZXh0SnVzdGlmeSA9PSBvLm1f
dGV4dEp1c3RpZnkKICAgICAgICAgJiYgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24gPT0gby5tX3Rl
eHRVbmRlcmxpbmVQb3NpdGlvbgogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1Mz
X1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgJiYgbV90ZXh0RGVjb3JhdGlvblNraXAgPT0gby5t
X3RleHREZWNvcmF0aW9uU2tpcAorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAg
ICAgICYmIG1fcnVieVBvc2l0aW9uID09IG8ubV9ydWJ5UG9zaXRpb24KICAgICAgICAgJiYgbV9s
aW5lU25hcCA9PSBvLm1fbGluZVNuYXAKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5oCmluZGV4IDg5MDhiNTU5NjQzOTgzMzQ4YjIyMGU0YjVjOTU2MzUyODU5ODU5N2YuLjhi
OTRiMTE3NzFjZDNkYTRkYzcyYjM3NDQxZDRkYWE1Mzg0YzRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApA
QCAtMTI2LDYgKzEyNiw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBtX3RleHRKdXN0aWZ5IDog
MzsgLy8gVGV4dEp1c3RpZnkKICAgICB1bnNpZ25lZCBtX3RleHRVbmRlcmxpbmVQb3NpdGlvbiA6
IDM7IC8vIFRleHRVbmRlcmxpbmVQb3NpdGlvbgogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVO
QUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICB1bnNpZ25lZCBtX3RleHREZWNvcmF0aW9u
U2tpcCA6IDU7IC8vIFRleHREZWNvcmF0aW9uU2tpcAorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNP
UkFUSU9OCiAgICAgdW5zaWduZWQgbV9ydWJ5UG9zaXRpb24gOiAxOyAvLyBSdWJ5UG9zaXRpb24K
IAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9tYWMvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTkyZjUyM2E5MWMyNWM3
MTRhZDg2OTkzYzVjZWFkM2QzNjM2NWUyNi4uMDcxZTIxMzNmOTkwNzJhODYzMjEzY2VlNTgyMDY3
YmUwMGQzN2MzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5BQkxFX0NT
U19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NTUzNfQ09O
RElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NTUzNfVEVY
VF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxFX0NTUzNf
VEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsKQEAgLTE4
Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVfRlRMX0pJ
VCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFC
TEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFC
TEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVf
Q1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1Nf
U0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElP
TikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJM
RV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJM
RV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5f
UEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BP
VkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVH
QUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElP
KSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFC
TEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChF
TkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChF
TkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJ
TUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01F
RElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00p
ICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVO
QUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1ZH
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxF
X1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxF
X1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1F
T1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18k
KFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5W
QVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lP
TlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChF
TkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElD
S1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhF
RCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxF
UykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTikgJChF
TkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAk
KEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JU
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNU
T1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9G
T05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBB
RCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9U
SFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBU
KSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19F
TEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChF
TkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVE
X1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFT
RSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5H
KSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hT
TFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwppbmRleCBhOTJmNTIzYTkxYzI1YzcxNGFkODY5OTNjNWNlYWQzZDM2MzY1ZTI2
Li4zOTc4Nzg2MmM0NmU3ZGY3YTQ5ZmY4N2I0NzNkYmYyMDk5NzFlZTUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtNTgsNiArNTgsNyBAQCBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJ
WEVEID0gRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVQogRU5BQkxFX0NTU19WQVJJ
QUJMRVMgPSA7CiBFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyA9IDsKIEVOQUJMRV9DU1Mz
X1RFWFQgPSA7CitFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04gPSBFTkFCTEVfQ1NTX1RFWFRf
REVDT1JBVElPTjsKIEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyA9IDsKIEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSA9IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWTsKIEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIgPSA7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxFX1hTTFQgPSBFTkFC
TEVfWFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFC
TEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQo
RU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1B
VElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19D
T05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRf
TElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9T
Q0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RP
UllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRFJB
R0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5B
QkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJB
TUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lORElFX1VJ
KSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVO
VCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVf
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BM
VUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxF
X1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BF
RUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJQ
SVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVB
REVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5B
QkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
T1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRM
X0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
QU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFC
TEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikg
JChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1Nf
U0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNG
T1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5B
QkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5B
QkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FO
VkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVU
X1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChF
TkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
V0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVO
VF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZ
X0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9W
SURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5B
QkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFC
TEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NI
QURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhF
U0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQp
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIp
ICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NT
U19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxF
X1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVf
REVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQppbmRleCA4OGNjMzJjZjM4M2FjYTA0OTRmZGIyYjM2MTg1NjkzYWQzYjBlZTNkLi45
NGQxY2UzYzA3NGUzMzQxMGMwMTZhMjMxMzQ3MGQ5MjIyOGU2N2Q3IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC01Miw2ICs1Miw3IEBAIG15ICgKICAgICAkY3Nw
TmV4dFN1cHBvcnQsCiAgICAgJGNzczNDb25kaXRpb25hbFJ1bGVzU3VwcG9ydCwKICAgICAkY3Nz
M1RleHRTdXBwb3J0LAorICAgICRjc3MzVGV4dERlY29yYXRpb25TdXBwb3J0LAogICAgICRjc3Mz
VGV4dExpbmVCcmVha1N1cHBvcnQsCiAgICAgJGNzczRJbWFnZXNTdXBwb3J0LAogICAgICRjc3NC
b3hEZWNvcmF0aW9uQnJlYWtTdXBwb3J0LApAQCAtMTk5LDYgKzIwMCw5IEBAIG15IEBmZWF0dXJl
cyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0IiwgZGVzYyA9PiAiVG9nZ2xlIENTUzMg
VGV4dCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVYVCIsIGRlZmF1
bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkY3NzM1RleHRTdXBwb3J0IH0s
CiAKKyAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0LWRlY29yYXRpb24iLCBkZXNjID0+ICJUb2dn
bGUgQ1NTMyBUZXh0IERlY29yYXRpb24gc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9DU1MzX1RFWFRfREVDT1JBVElPTiIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjc3MzVGV4
dERlY29yYXRpb25TdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0LWxpbmUt
YnJlYWsiLCBkZXNjID0+ICJUb2dnbGUgQ1NTMyBUZXh0IExpbmUgQnJlYWsgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyIsIGRlZmF1bHQgPT4g
MCwgdmFsdWUgPT4gXCRjc3MzVGV4dExpbmVCcmVha1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5MmMx
MTY5MWYxNTMwOWM3NTY3OGVlYWY4NDRlYmY2OTQ3YmQyNjcuLjUzODJlMzhkMWRmNjdjNTg2MjMy
NjVhODg2M2ZmZTM2ZWI2OThlZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wOS0yMyAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEluaXRp
YWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0aW9uLXNraXAgaW5rCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1z
a2lwLWluay1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24t
c2tpcC1pbmstem9vbWVkLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVj
b3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNv
cmF0aW9uLXNraXAtaW5rLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1z
a2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3Jh
dGlvbi1za2lwLXJvdW5kdHJpcC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMC0xMSAgQmVtIEpvbmVz
LUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYXBlc10gTmV3IHBv
c2l0aW9uaW5nIG1vZGVsOiBOZWdhdGl2ZSBtYXJnaW5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2Q3ZDUwMmFkMzUxZjcyMzlhN2QzMWRhNWU3ZGNiYmFhMTdhMjIyMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgIDxzdHlsZT4KKyAgICAjYmlnc2tldyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICBsZWZ0OiAtMTU2cHg7CisgICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZvbnQtc3R5
bGU6IGl0YWxpYzsKKyAgICAgIGZvbnQtc2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFtaWx5OiBo
ZWx2ZXRpY2E7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMzcpOworICAgICAgLXdl
YmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgYW4gdW5kZXJsaW5lZCBpdGFs
aWNpemVkICJwIiBhcyB2aWV3ZWQgdGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFyb3VuZAorICB0aGUg
ZGVzY2VuZGVyLiBUaGUgInAiIGlzIGluIDEycHQgc2l6ZSwgYnV0IGlzIGJsb3duIHVwIHRvIG11
Y2ggbGFyZ2VyLiBUaGlzIHRlc3RzIHRoYXQKKyAgdGhlIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgbWFzayBpcyBjYWxjdWxhdGVkIHdpdGggbW9yZSBwcmVjaXNpb24gdGhhbiB1c2VyLXNwYWNl
IHByZWNpc2lvbi4KKyAgSWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLCB0aGVyZSB3
b24ndCBiZSBhIG5pY2UgY3Jpc3AgZWRnZSBvbiB0aGUgc2xvcGUgb2YgdGhlIHVuZGVybGluZQor
ICB3aGVyZSBpdCBnZXRzIG1hc2tlZCBvZmYuIFRoaXMgdGVzdCB3b3VsZCBmYWlsIGJlY2F1c2Ug
dGhlcmUgd291bGQgYmUgZ2FyYmFnZSBnaWFudCBwaXhlbAorICBhbGlhc2luZyBuZWFyIHRoZSBj
aGFyYWN0ZXIKKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBo
aWRkZW47IHdpZHRoOiA4MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9ImJpZ3Nr
ZXciPmxwbDwvZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3Jh
dGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OTQxYWY2M2U5MzExN2QzZGI1OGIyZjgzZDU3NTlmY2I1ZTVlOWI0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4
dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxl
PgorICAgICNiaWdza2V3IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6
IC0xNTZweDsKKyAgICAgIHRvcDogLTQwMHB4OworICAgICAgZm9udC1zdHlsZTogaXRhbGljOwor
ICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6IGhlbHZldGljYTsKKyAg
ICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworICAgICAgLXdlYmtpdC10ZXh0LWRlY29y
YXRpb24tc2tpcDogaW5rOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAg
ICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGlu
ZWQgaXRhbGljaXplZCAicCIgYXMgdmlld2VkIHRocm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQK
KyAgdGhlIGRlc2NlbmRlci4gVGhlICJwIiBpcyBpbiAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1
cCB0byBtdWNoIGxhcmdlci4gVGhpcyB0ZXN0cyB0aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24t
c2tpcDogaW5rIG1hc2sgaXMgY2FsY3VsYXRlZCB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNl
ci1zcGFjZSBwcmVjaXNpb24uCisgIElmIHdlIGRvbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwg
dGhlcmUgd29uJ3QgYmUgYSBuaWNlIGNyaXNwIGVkZ2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRl
cmxpbmUKKyAgd2hlcmUgaXQgZ2V0cyBtYXNrZWQgb2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBi
ZWNhdXNlIHRoZXJlIHdvdWxkIGJlIGdhcmJhZ2UgZ2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVh
ciB0aGUgY2hhcmFjdGVyCisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBvdmVy
ZmxvdzogaGlkZGVuOyB3aWR0aDogODFweDsgaGVpZ2h0OiA0MDBweCI+CisgICAgICA8ZGl2IGlk
PSJiaWdza2V3Ij5scGw8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRp
b24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWVlMzUxYTQ3ZTUxMTNkOGY0N2ViM2I4NDdhYzcyNzdm
YTQ1NjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNr
aXAtcm91bmR0cmlwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1MgY3NzUnVsZS50
eXBlIGlzIGNzc1J1bGUuU1RZTEVfUlVMRQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMQor
UEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LXRleHQtZGVjb3JhdGlv
bi1za2lwJykgaXMgImluayIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtcm91bmR0cmlwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tp
cC1yb3VuZHRyaXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGI2MWI4ZGQ5NDhkZjg1OGRmMDIxOTU3ODE5
NzM3MDIyZjk5MzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtcm91bmR0cmlwLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgorICAgIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzdHlsZSIpOworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVt
ZW50KTsKKyAgICBzdHlsZXNoZWV0ID0gc3R5bGVFbGVtZW50LnNoZWV0OworICAgIHN0eWxlc2hl
ZXQuaW5zZXJ0UnVsZSgiLnAgeyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBpbms7IH0i
LCAwKTsKKyAgICBjc3NSdWxlID0gc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApOworICAgIHNo
b3VsZEJlKCJjc3NSdWxlLnR5cGUiLCAiY3NzUnVsZS5TVFlMRV9SVUxFIik7CisgICAgZGVjbGFy
YXRpb24gPSBjc3NSdWxlLnN0eWxlOworICAgIHNob3VsZEJlKCJkZWNsYXJhdGlvbi5sZW5ndGgi
LCAiMSIpOworICAgIHNob3VsZEJlKCJkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LXRleHQtZGVjb3JhdGlvbi1za2lwJykiLCAiXCJpbmtcIiIpOworICA8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMWZhOWZhMzBmNjkxYjExZTgzNGQ1NjRjNTU0ZjVkNTk3OGFlN2M0MC4uMjcxZGY0YzQ0
YzUwNmQ0NjM4OTM1ZWRlN2QxNDhkY2NlYjFjNjg1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgzMiw2ICs4MzIsNyBAQCB3ZWJraXQub3JnL2IvODkw
NTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KIAogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBu
b3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4
NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCit3ZWJraXQub3JnL2IvNTg0
OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
YWxpZ24tbGFzdAogd2Via2l0Lm9yZy9iLzk5OTQ1IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1q
dXN0aWZ5IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTEyNzU1IGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214065</attachid>
            <date>2013-10-12 14:07:28 -0700</date>
            <delta_ts>2013-10-16 09:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131012140728.patch</filename>
            <type>text/plain</type>
            <size>70330</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5YWZmNDgyZWI0YmIz
NDdhZWU3M2RhZWUyMTdhNzBmOTYzNzAxOS4uMThjNTM5ZDNhNjdmZDhkNGVjODFmNjU3MjZiMzIw
MDkwMGI5MDYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTA5LTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
cy10ZXh0LWRlY29yLTMvI3RleHQtZGVjb3JhdGlvbi1za2lwLXByb3BlcnR5CisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBhIG5ldyBDU1MgcHJvcGVydHkgIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9u
LXNraXAiCisgICAgICAgIGFuZCBhIG5ldyB2YWx1ZSAiaW5rIi4gSWYgdGhpcyBuZXcgcHJvcGVy
dHkgYW5kIHZhbHVlIGFwcGx5IHRvIGFuCisgICAgICAgIElubGluZVRleHRCb3gsIGEgbWFzayBp
cyBhcHBsaWVkIHRvIHRoZSB1bmRlcmxpbmUgZHJhd2luZyBjb2RlLgorICAgICAgICBUaGlzIG1h
c2sgaXMgY3JlYXRlZCBieSBpbmNyZWFzaW5nIHRoZSBjb250ZXh0J3Mgc3Ryb2tlIHdpZHRoLCB0
aGVuCisgICAgICAgIHJlZHJhd2luZyB0aGUgdGV4dCB0aGF0IHdpbGwgYXBwZWFyIGFib3ZlIHRo
ZSB1bmRlcmxpbmUuIFRoaXMgbWFzaywKKyAgICAgICAgd2hlbiBhcHBsaWVkIHRvIHRoZSB1bmRl
cmxpbmUsIHdpbGwgY3JlYXRlIGEgdmlzdWFsIG1vYXQgYXJvdW5kIHRoZQorICAgICAgICBsZXR0
ZXJzIHdoZXJlIHRoZSB1bmRlcmxpbmUgd2lsbCBub3QgZHJhdy4KKworICAgICAgICBUaGlzIHBh
dGNoIG1vZGlmaWVzIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBzbyB0aGF0IHRoZQor
ICAgICAgICBmdW5jdGlvbiBpcyBhd2FyZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGRyYXcg
dGhlIHRleHQgdGhhdAorICAgICAgICB0aGUgZGVjb3JhdGlvbiBpcyBkZWNvcmF0aW5nLiBUaGVz
ZSBwYXJhbWV0ZXJzIGFyZSBnYXRoZXJlZAorICAgICAgICBpbnRvIGEgc3RydWN0IHdoaWNoIElu
bGluZVRleHRCb3g6OnBhaW50VGV4dCBoYXMgYmVlbiBtb2RpZmllZAorICAgICAgICB0byBhY2Nl
cHQuIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBtb2RpZmllcyB0aGlzIHN0cnVjdAor
ICAgICAgICBhbmQgY2FsbHMgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0IGl0c2VsZiB0byBjcmVh
dGUgdGhlIG1hc2suCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16
b29tZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29y
YXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKToKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dERlY29yYXRp
b25Ta2lwKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvblNraXApOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAg
ICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRlSGFuZGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVC
dWlsZGVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWlu
dFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29tcHV0ZVVuZGVybGluZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcnwgKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yfD0gKToK
KwogMjAxMy0xMC0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1NzI5Ny4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBhOTJmNTIzYTkxYzI1YzcxNGFkODY5OTNjNWNlYWQzZDM2MzY1ZTI2Li4w
NzFlMjEzM2Y5OTA3MmE4NjMyMTNjZWU1ODIwNjdiZTAwZDM3YzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC01OCw2ICs1OCw3IEBAIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJ
T05TX1VOUFJFRklYRUQgPSBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VCiBFTkFC
TEVfQ1NTX1ZBUklBQkxFUyA9IDsKIEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTID0gOwog
RU5BQkxFX0NTUzNfVEVYVCA9IDsKK0VOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiA9IEVOQUJM
RV9DU1MzX1RFWFRfREVDT1JBVElPTjsKIEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyA9IDsK
IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSA9IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWTsKIEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgPSA7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NT
U19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikg
JChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRf
TE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAk
KEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9U
VExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1F
TlQpICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
U0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09S
S0VSUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAk
KEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkg
JChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5H
KSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVD
T1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVW
SUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklM
VEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAk
KEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJ
QUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5F
X0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVN
RV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1Rf
RUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19F
TEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FC
TEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVf
SElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9T
RUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFH
RV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lO
X1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJP
TUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVM
X0xBWU9VVCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBM
QVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURf
SFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklU
KSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYTky
ZjUyM2E5MWMyNWM3MTRhZDg2OTkzYzVjZWFkM2QzNjM2NWUyNi4uMDcxZTIxMzNmOTkwNzJhODYz
MjEzY2VlNTgyMDY3YmUwMGQzN2MzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5B
QkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJB
TlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NT
UzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxF
X0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsK
QEAgLTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVf
RlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19Q
Uk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9Q
T1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAk
KEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VC
X0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
Ul9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVG
SU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJM
RV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1Bf
TkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9O
UykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NT
U19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5Q
UkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05B
TF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElP
TikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09O
U1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVO
QUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9U
SU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05E
QVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBM
RVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZF
TkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xF
R0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9H
UkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5U
UykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNP
Tl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1f
TkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCBmYjc5N2JkNzNlZDI2ZTFiOWUzZWNjMTNhMDZhZDI0ZWIwMWNkNjA1
Li45ZDEyMmNjYmY4MzUzMzNhNjM1ZDBjYjA3ZDU4ZDJkNDM2YjkwZTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQz
Myw2ICsxNDMzLDIxIEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVj
b3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0CiB9CiAjZW5kaWYgLy8gQ1NT
M19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKFRl
eHREZWNvcmF0aW9uU2tpcCB0ZXh0RGVjb3JhdGlvblNraXApCit7CisgICAgc3dpdGNoICh0ZXh0
RGVjb3JhdGlvblNraXApIHsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcE5vbmU6CisgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwor
ICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwSW5rOgorICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5rKTsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhw
bGljaXRJbml0aWFsVmFsdWUoKTsKK30KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgor
CiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZmlsbFJlcGVhdFRvQ1NTVmFsdWUoRUZpbGxS
ZXBlYXQgeFJlcGVhdCwgRUZpbGxSZXBlYXQgeVJlcGVhdCkKIHsKICAgICAvLyBGb3IgYmFja3dh
cmRzIGNvbXBhdGliaWxpdHksIGlmIGJvdGggdmFsdWVzIGFyZSBlcXVhbCwganVzdCByZXR1cm4g
b25lIG9mIHRoZW0uIEFuZApAQCAtMjM1MCw2ICsyMzY1LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRp
b246CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUt
PnRleHRVbmRlcmxpbmVQb3NpdGlvbigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RGVjb3JhdGlvblNraXA6CisgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGV4dERlY29yYXRp
b25Ta2lwRmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLT50ZXh0RGVjb3JhdGlvblNraXAoKSk7CisjZW5k
aWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHREZWNvcmF0aW9uc0luRWZmZWN0OgogICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHRE
ZWNvcmF0aW9uRmxhZ3NUb0NTU1ZhbHVlKHN0eWxlLT50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgp
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCmluZGV4IDYxM2E0MzZjNzhiMTA0M2QwMzlkMGNiYThlM2ZlYzRlMTM5
NmQ0YzcuLmEzMjFiNDEzMzEyY2ZlNjc1MjZiZGE1MGFlYzkwYjVmYTM2NDNiMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yMzcwLDYgKzIzNzAsMTIgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAg
ICByZXR1cm4gcGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oaW1wb3J0YW50KTsKICNlbmRpZiAv
LyBDU1MzX1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwOgorICAgICAgICAvLyBub25lIHwg
WyBvYmplY3RzIHx8IHNwYWNlcyB8fCBpbmsgfHwgZWRnZXMgfHwgYm94LWRlY29yYXRpb24gXQor
ICAgICAgICByZXR1cm4gcGFyc2VUZXh0RGVjb3JhdGlvblNraXAoaW1wb3J0YW50KTsKKyNlbmRp
ZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVpvb206ICAg
ICAgICAgIC8vIG5vcm1hbCB8IHJlc2V0IHwgZG9jdW1lbnQgfCA8bnVtYmVyPiB8IDxwZXJjZW50
YWdlPiB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09
IENTU1ZhbHVlUmVzZXQgfHwgaWQgPT0gQ1NTVmFsdWVEb2N1bWVudCkKICAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTk3NDYsNiArOTc1MiwyNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRhbnQpCiB9CiAjZW5kaWYg
Ly8gQ1NTM19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitib29sIENT
U1BhcnNlcjo6cGFyc2VUZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQpCit7CisgICAg
Ly8gVGhlIHRleHQtZGVjb3JhdGlvbi1za2lwIHByb3BlcnR5IGhhcyBzeW50YXggIm5vbmUgfCBb
IG9iamVjdHMgfHwgc3BhY2VzIHx8IGluayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlvbiBdIi4K
KyAgICAvLyBIb3dldmVyLCBvbmx5ICdub25lJyBhbmQgJ2luaycgYXJlIGltcGxlbWVudGVkIHll
dCwgc28gd2Ugd2lsbCBwYXJzZSBzeW50YXggIm5vbmUgfCBpbmsiIGZvciBub3cuCisgICAgQ1NT
UGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBzd2l0Y2gg
KHZhbHVlLT5pZCkgeworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgIGNhc2UgQ1NTVmFsdWVJ
bms6CisgICAgICAgIGlmIChtX3ZhbHVlTGlzdC0+bmV4dCgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29y
YXRpb25Ta2lwLCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlk
KSwgaW1wb3J0YW50KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBDU1MzX1RF
WFRfREVDT1JBVElPTgorCiBib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShi
b29sIGltcG9ydGFudCkKIHsKICAgICB1bnNpZ25lZCB2YWx1ZUxpc3RTaXplID0gbV92YWx1ZUxp
c3QtPnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAyNDUyZDRmNzA1YmRhMmYzNDRj
ZGYyYzU2M2JhZmY3MjM5NTZhYzg2Li42MDE0YjA3MzA5MmQ3NjQzZTEzMWJlODIxZDNjMmQ3MzBl
N2RkZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yODMsNyArMjgzLDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIHBhcnNlVGV4dERlY29yYXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQogICAgIGJvb2wgcGFyc2VUZXh0
VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRhbnQpOwotI2VuZGlmCisjZW5kaWYgLy8gQ1NT
M19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIGJvb2wgcGFyc2VU
ZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQpOworI2VuZGlmIC8vIENTUzNfVEVYVF9E
RUNPUkFUSU9OCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggYjczMGIxODk5
MzRmYmVmZDRiMDRjZWM4MjVmM2Y0NGI0YmFmNDZkYS4uM2E0OTU4ZGY5MzExMmM2MGE0MDM3OGM2
OWMyMzI3MTVhMDFhYjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTM5Myw2ICszOTMsOSBAQCB6LWluZGV4CiAtd2Via2l0LXRleHQtanVzdGlmeSBbSW5oZXJp
dGVkXQogLXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiBbSW5oZXJpdGVkXQogI2VuZGlm
CisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICYmIEVOQUJMRV9DU1Mz
X1RFWFRfREVDT1JBVElPTgorLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCBbSW5oZXJpdGVk
XQorI2VuZGlmCiAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0IFtJbmhlcml0ZWRd
CiAtd2Via2l0LXRleHQtZW1waGFzaXMgW0luaGVyaXRlZF0KIC1lcHViLXRleHQtZW1waGFzaXMg
PSAtd2Via2l0LXRleHQtZW1waGFzaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KaW5kZXggMGI0YzkyYWM1ODI0YzI2YmRiOTRmMzJjNjFlNGU4MWEzNDcxMzhlNy4uOGE5NDA2
MWI4MTAxYzRhZTZkZDQwNmFmMTA2MjhjMGU3OGZjYmExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KQEAgLTQ3MCw2ICs0NzAsOSBAQCB1bmRlcmxpbmUKICNpZiBkZWZp
bmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RFWFQKIHdhdnkKICNlbmRpZgor
I2lmIGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OKSAmJiBFTkFCTEVfQ1NTM19U
RVhUX0RFQ09SQVRJT04KK2luaworI2VuZGlmCiAtd2Via2l0LW5vd3JhcAogCiAvLyBDU1MzIFZh
bHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmlu
ZGV4IGEyN2Q3ZTE2MzExNDFmODJiZThmZTJmNmY3MmY0NWI3MWRlYzZiNzEuLjRhNjQ1MWFlZTU3
YzVlNjNmOTNjOWI2YWI2YTNlNTUwMjdkOTc3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTEyNjksNiArMTI2OSw1MCBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK2NsYXNzIEFw
cGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXAgeworICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlv
blNraXAgdmFsdWVUb0RlY29yYXRpb25Ta2lwKENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwdiA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpOworCisgICAgICAgIEFTU0VSVChwdi0+aXNWYWx1ZUlEKCkpOworCisgICAgICAg
IHN3aXRjaCAocHYtPmdldFZhbHVlSUQoKSkgeworICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToK
KyAgICAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBOb25lOworICAgICAgICBjYXNl
IENTU1ZhbHVlSW5rOgorICAgICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcEluazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNr
aXBOb25lOworICAgIH0KK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1By
b3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkK
KyAgICB7CisgICAgICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RGVjb3JhdGlvblNraXAodmFsdWVU
b0RlY29yYXRpb25Ta2lwKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBUZXh0RGVjb3JhdGlvblNraXAgdCA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4
dERlY29yYXRpb25Ta2lwKCk7CisgICAgICAgIGZvciAoQ1NTVmFsdWVMaXN0SXRlcmF0b3IgaSh2
YWx1ZSk7IGkuaGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgeworICAgICAgICAgICAgQ1NTVmFsdWUq
IGl0ZW0gPSBpLnZhbHVlKCk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOworICAgICAgICAgICAgdCB8PSB2YWx1
ZVRvRGVjb3JhdGlvblNraXAoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKS0+c2V0VGV4dERlY29yYXRpb25Ta2lwKHQpOworICAgIH0KKyAgICBzdGF0aWMg
UHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAgUHJvcGVydHlI
YW5kbGVyIGhhbmRsZXIgPSBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8VGV4dERlY29yYXRpb25T
a2lwLCAmUmVuZGVyU3R5bGU6OnRleHREZWNvcmF0aW9uU2tpcCwgVGV4dERlY29yYXRpb25Ta2lw
LCAmUmVuZGVyU3R5bGU6OnNldFRleHREZWNvcmF0aW9uU2tpcCwgVGV4dERlY29yYXRpb25Ta2lw
LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXA+OjpjcmVhdGVIYW5kbGVy
KCk7CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rp
b24oKSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307
CisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KKwogY2xhc3MgQXBwbHlQcm9wZXJ0eU1h
cnF1ZWVJbmNyZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NT
UHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVl
KQpAQCAtMjI3NSw2ICsyMzE5LDkgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRl
ZFN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
VGV4dEp1c3RpZnksIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRKdXN0aWZ5LCAmUmVuZGVyU3R5
bGU6OnRleHRKdXN0aWZ5LCBUZXh0SnVzdGlmeSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0SnVzdGlm
eSwgVGV4dEp1c3RpZnksICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRKdXN0aWZ5Pjo6Y3JlYXRl
SGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0
VW5kZXJsaW5lUG9zaXRpb24sIEFwcGx5UHJvcGVydHlUZXh0VW5kZXJsaW5lUG9zaXRpb246OmNy
ZWF0ZUhhbmRsZXIoKSk7CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVY
VF9ERUNPUkFUSU9OKQorICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRl
eHREZWNvcmF0aW9uU2tpcCwgQXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRl
SGFuZGxlcigpKTsKKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlUZXh0SW5kZW50
OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRl
eHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5
bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRleHRPdmVy
ZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZsb3c+Ojpj
cmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRS
ZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2Ny
aXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRl
cmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxNmExMDU2YmEwNzJjNTkxN2VkN2M3NDZiNTdj
YjQ3OWYwMmQ2ZjMzLi42M2IzNjRhYjBlNWVhMjJkNmE2NjM3OTEwZDMyNTliYzFhYTFlZmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zMDQ2LDYgKzMwNDYsOSBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFs
dWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0SnVzdGlmeToKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uOgogI2VuZGlmIC8vIENT
UzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwOgorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNP
UkFUSU9OCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNQb3NpdGlvbjoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzU3R5bGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggYjQzZThiYTgwNzUxZGJkMGQ5NDdiZjcwZTViOGFj
ZDI4M2U3ZGFhMS4uNzFlNDg4ZTdhYmE4MjhmYmQyMWNiZWI0MDdlNjMxZTg4NWFiMTY5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcmVk
RG9jdW1lbnRNYXJrZXIuaCIKQEAgLTQ3Niw2ICs0NzcsMTI2IEBAIHN0YXRpYyBpbmxpbmUgQWZm
aW5lVHJhbnNmb3JtIHJvdGF0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwgUm90YXRpb25E
aXJlY3RpCiAgICAgICAgIDogQWZmaW5lVHJhbnNmb3JtKDAsIC0xLCAxLCAwLCBib3hSZWN0Lngo
KSAtIGJveFJlY3QubWF4WSgpLCBib3hSZWN0LngoKSArIGJveFJlY3QubWF4WSgpKTsKIH0KIAor
c3RydWN0IFBhaW50VGV4dEFyZ3VtZW50cyB7CisgICAgUGFpbnRUZXh0QXJndW1lbnRzKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHksIGJvb2wgcGFp
bnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5LCBjb25zdCBGb250JiBmb250LAorICAgIGludCBzUG9z
LCBpbnQgZVBvcywgaW50IGxlbmd0aCwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmss
IFJlbmRlckNvbWJpbmVUZXh0KiBjb21iaW5lZFRleHQsIFRleHRSdW4mIHRleHRSdW4sCisgICAg
RmxvYXRSZWN0JiBib3hSZWN0LCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBjb25zdCBTaGFkb3dE
YXRhKiB0ZXh0U2hhZG93LCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBjb25zdCBTaGFkb3dEYXRh
KiBzZWxlY3Rpb25TaGFkb3csCisgICAgVGV4dFBhaW50U3R5bGUmIHRleHRQYWludFN0eWxlLCBU
ZXh0UGFpbnRTdHlsZSYgc2VsZWN0aW9uUGFpbnRTdHlsZSkKKyAgICAgICAgOiBtX2NvbnRleHQo
Y29udGV4dCkKKyAgICAgICAgLCBtX3BhaW50U2VsZWN0ZWRUZXh0T25seShwYWludFNlbGVjdGVk
VGV4dE9ubHkpCisgICAgICAgICwgbV9wYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkocGFpbnRT
ZWxlY3RlZFRleHRTZXBhcmF0ZWx5KQorICAgICAgICAsIG1fZm9udChmb250KQorICAgICAgICAs
IG1fc1BvcyhzUG9zKQorICAgICAgICAsIG1fZVBvcyhlUG9zKQorICAgICAgICAsIG1fbGVuZ3Ro
KGxlbmd0aCkKKyAgICAgICAgLCBtX2VtcGhhc2lzTWFyayhlbXBoYXNpc01hcmspCisgICAgICAg
ICwgbV9jb21iaW5lZFRleHQoY29tYmluZWRUZXh0KQorICAgICAgICAsIG1fdGV4dFJ1bih0ZXh0
UnVuKQorICAgICAgICAsIG1fYm94UmVjdChib3hSZWN0KQorICAgICAgICAsIG1fdGV4dE9yaWdp
bih0ZXh0T3JpZ2luKQorICAgICAgICAsIG1fdGV4dFNoYWRvdyh0ZXh0U2hhZG93KQorICAgICAg
ICAsIG1fZW1waGFzaXNNYXJrT2Zmc2V0KGVtcGhhc2lzTWFya09mZnNldCkKKyAgICAgICAgLCBt
X3NlbGVjdGlvblNoYWRvdyhzZWxlY3Rpb25TaGFkb3cpCisgICAgICAgICwgbV90ZXh0UGFpbnRT
dHlsZSh0ZXh0UGFpbnRTdHlsZSkKKyAgICAgICAgLCBtX3NlbGVjdGlvblBhaW50U3R5bGUoc2Vs
ZWN0aW9uUGFpbnRTdHlsZSkKKyAgICB7CisgICAgfQorICAgIEdyYXBoaWNzQ29udGV4dCogbV9j
b250ZXh0OworICAgIGJvb2wgbV9wYWludFNlbGVjdGVkVGV4dE9ubHk7CisgICAgYm9vbCBtX3Bh
aW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseTsKKyAgICBjb25zdCBGb250JiBtX2ZvbnQ7CisgICAg
aW50IG1fc1BvczsKKyAgICBpbnQgbV9lUG9zOworICAgIGludCBtX2xlbmd0aDsKKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG1fZW1waGFzaXNNYXJrOworICAgIFJlbmRlckNvbWJpbmVUZXh0KiBt
X2NvbWJpbmVkVGV4dDsKKyAgICBUZXh0UnVuJiBtX3RleHRSdW47CisgICAgRmxvYXRSZWN0JiBt
X2JveFJlY3Q7CisgICAgRmxvYXRQb2ludCYgbV90ZXh0T3JpZ2luOworICAgIGNvbnN0IFNoYWRv
d0RhdGEqIG1fdGV4dFNoYWRvdzsKKyAgICBpbnQgbV9lbXBoYXNpc01hcmtPZmZzZXQ7CisgICAg
Y29uc3QgU2hhZG93RGF0YSogbV9zZWxlY3Rpb25TaGFkb3c7CisgICAgVGV4dFBhaW50U3R5bGUm
IG1fdGV4dFBhaW50U3R5bGU7CisgICAgVGV4dFBhaW50U3R5bGUmIG1fc2VsZWN0aW9uUGFpbnRT
dHlsZTsKK307CisKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0KFBhaW50VGV4dEFyZ3Vt
ZW50cyYgYXJncykKK3sKKyAgICAvLyBTZXQgdXAgYXJndW1lbnRzIGZyb20gdGhlIFBhaW50VGV4
dEFyZ3VtZW50cworICAgIEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQgPSBhcmdzLm1fY29udGV4
dDsKKyAgICBjb25zdCBib29sJiBwYWludFNlbGVjdGVkVGV4dE9ubHkgPSBhcmdzLm1fcGFpbnRT
ZWxlY3RlZFRleHRPbmx5OworICAgIGNvbnN0IGJvb2wmIHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJh
dGVseSA9IGFyZ3MubV9wYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHk7CisgICAgY29uc3QgRm9u
dCYgZm9udCA9IGFyZ3MubV9mb250OworICAgIGNvbnN0IGludCYgc1BvcyA9IGFyZ3MubV9zUG9z
OworICAgIGNvbnN0IGludCYgZVBvcyA9IGFyZ3MubV9lUG9zOworICAgIGNvbnN0IGludCYgbGVu
Z3RoID0gYXJncy5tX2xlbmd0aDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lzTWFy
ayA9IGFyZ3MubV9lbXBoYXNpc01hcms7CisgICAgUmVuZGVyQ29tYmluZVRleHQqJiBjb21iaW5l
ZFRleHQgPSBhcmdzLm1fY29tYmluZWRUZXh0OworICAgIFRleHRSdW4mIHRleHRSdW4gPSBhcmdz
Lm1fdGV4dFJ1bjsKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QgPSBhcmdzLm1fYm94UmVj
dDsKKyAgICBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4gPSBib3hSZWN0LmxvY2F0aW9uKCk7
CisgICAgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiA9IGFyZ3MubV90ZXh0T3JpZ2luOwor
ICAgIGNvbnN0IFNoYWRvd0RhdGEqJiB0ZXh0U2hhZG93ID0gYXJncy5tX3RleHRTaGFkb3c7Cisg
ICAgY29uc3QgaW50JiBlbXBoYXNpc01hcmtPZmZzZXQgPSBhcmdzLm1fZW1waGFzaXNNYXJrT2Zm
c2V0OworICAgIGNvbnN0IFNoYWRvd0RhdGEqJiBzZWxlY3Rpb25TaGFkb3cgPSBhcmdzLm1fc2Vs
ZWN0aW9uU2hhZG93OworICAgIGNvbnN0IFRleHRQYWludFN0eWxlJiB0ZXh0UGFpbnRTdHlsZSA9
IGFyZ3MubV90ZXh0UGFpbnRTdHlsZTsKKyAgICBjb25zdCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0
aW9uUGFpbnRTdHlsZSA9IGFyZ3MubV9zZWxlY3Rpb25QYWludFN0eWxlOworCisgICAgaWYgKCFw
YWludFNlbGVjdGVkVGV4dE9ubHkpIHsKKyAgICAgICAgLy8gRm9yIHN0cm9rZWQgcGFpbnRpbmcs
IHdlIGhhdmUgdG8gY2hhbmdlIHRoZSB0ZXh0IGRyYXdpbmcgbW9kZS4gSXQncyBwcm9iYWJseSBk
YW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFzIGEgc2lkZQorICAgICAgICAvLyBlZmZl
Y3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0cm9raW5nLCBkbyBhIHNhdmUvcmVzdG9y
ZS4KKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0
LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDApOworCisgICAgICAgIHVwZGF0ZUdyYXBo
aWNzQ29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUpOworICAgICAgICBpZiAoIXBhaW50
U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQb3MpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAg
ICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20s
IDAsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0
ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0
ZXh0UnVuLCBudWxsQXRvbSwgMCwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hS
ZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpv
bnRhbCgpKTsKKworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUsIFVz
ZUVtcGhhc2lzTWFya0NvbG9yKTsKKworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChU
ZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXIsIDEpKTsKKyAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1Rl
eHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4g
OiB0ZXh0UnVuOworICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2lu
ID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgYm94UmVjdC53aWR0
aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0
ZXh0T3JpZ2luOworICAgICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAg
ICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisKKyAg
ICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1Bv
cykgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRl
eHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBl
bXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgMCwg
bGVuZ3RoLCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFk
b3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29u
dGV4dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQs
IGVtcGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBl
UG9zLCBzUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRPcmlnaW4sIGJveFJlY3QsIHRleHRT
aGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwor
CisgICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQorICAgICAgICAgICAgICAgIGNvbnRleHQt
PmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoKHBhaW50U2VsZWN0ZWRUZXh0T25seSB8fCBwYWludFNlbGVj
dGVkVGV4dFNlcGFyYXRlbHkpICYmIHNQb3MgPCBlUG9zKSB7CisgICAgICAgIC8vIHBhaW50IG9u
bHkgdGhlIHRleHQgdGhhdCBpcyBzZWxlY3RlZAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHNlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lk
dGggPiAwKTsKKworICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHNlbGVj
dGlvblBhaW50U3R5bGUpOworICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBm
b250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2lu
LCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lk
dGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCpjb250ZXh0LCBzZWxl
Y3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CisKKyAgICAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0
UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBUZXh0
UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1l
bnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4dFJ1bjsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1w
aGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2lu
LngoKSArIGJveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBmb250LmZvbnRNZXRy
aWNzKCkuYXNjZW50KCkpIDogdGV4dE9yaWdpbjsKKyAgICAgICAgICAgIGlmIChjb21iaW5lZFRl
eHQpCisgICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3Qs
IENsb2Nrd2lzZSkpOworCisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0
LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1w
aGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIHNQb3Ms
IGVQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9u
U2hhZG93LCBzZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFs
KCkpOworCisgICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQorICAgICAgICAgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgTGF5b3V0VW5pdCAv
KmxpbmVUb3AqLywgTGF5b3V0VW5pdCAvKmxpbmVCb3R0b20qLykKIHsKICAgICBpZiAoaXNMaW5l
QnJlYWsoKSB8fCAhcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSB8
fCByZW5kZXJlcigpLnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFCkBAIC02MjgsNTkg
Kzc0OSw4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwKIAogICAgIGNvbnN0IFNoYWRvd0RhdGEq
IHRleHRTaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQoKSA/IDAgOiBsaW5lU3R5bGUu
dGV4dFNoYWRvdygpOwogCi0gICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkpIHsKLSAgICAg
ICAgLy8gRm9yIHN0cm9rZWQgcGFpbnRpbmcsIHdlIGhhdmUgdG8gY2hhbmdlIHRoZSB0ZXh0IGRy
YXdpbmcgbW9kZS4gIEl0J3MgcHJvYmFibHkgZGFuZ2Vyb3VzIHRvIGxlYXZlIHRoYXQgbXV0YXRl
ZCBhcyBhIHNpZGUKLSAgICAgICAgLy8gZWZmZWN0LCBzbyBvbmx5IHdoZW4gd2Uga25vdyB3ZSdy
ZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCwgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGgg
PiAwKTsKLQotICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHRleHRQYWlu
dFN0eWxlKTsKLSAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBv
cyA8PSBzUG9zKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVm
dCB0ZXh0IGNvcnJlY3RseS4KLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRl
eHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9y
aWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAw
LCBpc0hvcml6b250YWwoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcGFpbnRUZXh0
V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQ
b3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFBhaW50U3R5
bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0KLSAgICAgICAgaWYgKCFlbXBo
YXNpc01hcmsuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQo
KmNvbnRleHQsIHRleHRQYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7Ci0KLSAgICAg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFy
YWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7Ci0gICAgICAg
ICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gY29tYmluZWRUZXh0ID8gb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4dFJ1bjsKLSAgICAgICAgICAgIEZsb2F0
UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQo
Ym94T3JpZ2luLngoKSArIGJveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBmb250
LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogdGV4dE9yaWdpbjsKLSAgICAgICAgICAgIGlmIChj
b21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9u
KGJveFJlY3QsIENsb2Nrd2lzZSkpOwotCi0gICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRU
ZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQb3MpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KLSAgICAgICAgICAgICAg
ICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRl
eHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNN
YXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIDAsIGxlbmd0aCwgbGVuZ3RoLCBlbXBoYXNpc01hcmtU
ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0
aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVk
VGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNp
c01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgZVBvcywgc1BvcywgbGVuZ3RoLCBlbXBoYXNpc01h
cmtUZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VX
aWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQotICAgICAgICAgICAgaWYgKGNvbWJpbmVkVGV4
dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwg
Q291bnRlcmNsb2Nrd2lzZSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKChwYWludFNl
bGVjdGVkVGV4dE9ubHkgfHwgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KSAmJiBzUG9zIDwg
ZVBvcykgewotICAgICAgICAvLyBwYWludCBvbmx5IHRoZSB0ZXh0IHRoYXQgaXMgc2VsZWN0ZWQK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0LCBz
ZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCk7Ci0KLSAgICAgICAgdXBkYXRlR3Jh
cGhpY3NDb250ZXh0KCpjb250ZXh0LCBzZWxlY3Rpb25QYWludFN0eWxlKTsKLSAgICAgICAgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQ
b3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBz
ZWxlY3Rpb25QYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotICAg
ICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVwZGF0ZUdy
YXBoaWNzQ29udGV4dCgqY29udGV4dCwgc2VsZWN0aW9uUGFpbnRTdHlsZSwgVXNlRW1waGFzaXNN
YXJrQ29sb3IpOwotCi0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4sIG9i
amVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJh
Y3RlciwgMSkpOwotICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9IGNv
bWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IHRleHRSdW47
Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBjb21iaW5l
ZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBib3hSZWN0LndpZHRoKCkgLyAyLCBi
b3hPcmlnaW4ueSgpICsgZm9udC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IHRleHRPcmlnaW47
Ci0gICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQt
PmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDbG9ja3dpc2UpKTsKLQotICAgICAgICAgICAg
cGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0
LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVtcGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFy
aywgZW1waGFzaXNNYXJrT2Zmc2V0LCBzUG9zLCBlUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFya1Rl
eHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uUGFpbnRTdHlsZS5z
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQotICAgICAgICAgICAgaWYgKGNvbWJp
bmVkVGV4dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94
UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwotICAgICAgICB9Ci0gICAgfQorICAgIFBhaW50VGV4
dEFyZ3VtZW50cyBhcmd1bWVudHMoY29udGV4dCwgcGFpbnRTZWxlY3RlZFRleHRPbmx5LCBwYWlu
dFNlbGVjdGVkVGV4dFNlcGFyYXRlbHksIGZvbnQsIHNQb3MsIGVQb3MsIGxlbmd0aCwgZW1waGFz
aXNNYXJrLCBjb21iaW5lZFRleHQsIHRleHRSdW4sIGJveFJlY3QsIHRleHRPcmlnaW4sIHRleHRT
aGFkb3csIGVtcGhhc2lzTWFya09mZnNldCwgc2VsZWN0aW9uU2hhZG93LCB0ZXh0UGFpbnRTdHls
ZSwgc2VsZWN0aW9uUGFpbnRTdHlsZSk7CisgICAgcGFpbnRUZXh0KGFyZ3VtZW50cyk7CiAKICAg
ICAvLyBQYWludCBkZWNvcmF0aW9ucwogICAgIFRleHREZWNvcmF0aW9uIHRleHREZWNvcmF0aW9u
cyA9IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpOwpAQCAtNjg4LDcgKzc1OCw4
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCwKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0
KCpjb250ZXh0LCB0ZXh0UGFpbnRTdHlsZSk7CiAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCiAg
ICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ2xvY2t3aXNl
KSk7Ci0gICAgICAgIHBhaW50RGVjb3JhdGlvbihjb250ZXh0LCBib3hPcmlnaW4sIHRleHREZWNv
cmF0aW9ucywgbGluZVN0eWxlLnRleHREZWNvcmF0aW9uU3R5bGUoKSwgdGV4dFNoYWRvdyk7CisK
KyAgICAgICAgcGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGJveE9yaWdpbiwgdGV4dERlY29yYXRp
b25zLCBsaW5lU3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93LCBhcmd1bWVu
dHMpOwogICAgICAgICBpZiAoY29tYmluZWRUZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29u
Y2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKICAgICB9CkBAIC04
ODYsOSArOTU3LDcgQEAgc3RhdGljIGludCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGNvbnN0IFRl
eHRVbmRlcmxpbmVQb3NpdGlvbiB1bmRlcmxpbmVQb3NpdGlvbiwKICAgICBjYXNlIFRleHRVbmRl
cmxpbmVQb3NpdGlvblVuZGVyOiB7CiAgICAgICAgIC8vIFBvc2l0aW9uIHVuZGVybGluZSByZWxh
dGl2ZSB0byB0aGUgdW5kZXIgZWRnZSBvZiB0aGUgbG93ZXN0IGVsZW1lbnQncyBjb250ZW50IGJv
eC4KICAgICAgICAgY29uc3QgZmxvYXQgb2Zmc2V0ID0gaW5saW5lVGV4dEJveC0+cm9vdCgpLm1h
eExvZ2ljYWxUb3AoKSAtIGlubGluZVRleHRCb3gtPmxvZ2ljYWxUb3AoKTsKLSAgICAgICAgaWYg
KG9mZnNldCA+IDApCi0gICAgICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9naWNhbEhl
aWdodCgpICsgZ2FwICsgb2Zmc2V0OwotICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9n
aWNhbEhlaWdodCgpICsgZ2FwOworICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9naWNh
bEhlaWdodCgpICsgZ2FwICsgbWF4PGZsb2F0PihvZmZzZXQsIDApOwogICAgIH0KICAgICB9CiAK
QEAgLTEwMjEsOCArMTA5MCwxMSBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5VGV4dERlY29yYXRp
b24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwgRgogfQogI2VuZGlm
IC8vIENTUzNfVEVYVAogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERl
Y29yYXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdykKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBU
ZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHlsZSwg
Y29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBQYWludFRleHRBcmd1bWVudHMmIGFyZ3MpCiB7Cisj
aWYgIUVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBVTlVTRURfUEFSQU0oYXJncyk7
CisjZW5kaWYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGltcHJvdmUgdGhpcyBydWxlIGFuZCBu
b3QgYWx3YXlzIGp1c3QgYXNzdW1lIDEuCiAgICAgY29uc3QgZmxvYXQgdGV4dERlY29yYXRpb25U
aGlja25lc3MgPSAxLmY7CiAKQEAgLTEwOTUsNiArMTE2Nyw1NSBAQCB2b2lkIElubGluZVRleHRC
b3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0
UG9pbnQmCiAgICAgICAgIC8vIE9mZnNldCBiZXR3ZWVuIGxpbmVzIC0gYWx3YXlzIG5vbi16ZXJv
LCBzbyBsaW5lcyBuZXZlciBjcm9zcyBlYWNoIG90aGVyLgogICAgICAgICBmbG9hdCBkb3VibGVP
ZmZzZXQgPSB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyArIDEuZjsKICNlbmRpZiAvLyBDU1MzX1RF
WFQKKyAgICAgICAgCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICBU
ZXh0RGVjb3JhdGlvblNraXAgdGV4dERlY29yYXRpb25Ta2lwID0gbGluZVN0eWxlLnRleHREZWNv
cmF0aW9uU2tpcCgpOworICAgICAgICBib29sIGNsaXBEZWNvcmF0aW9uVG9NYXNrID0gdGV4dERl
Y29yYXRpb25Ta2lwID09IFRleHREZWNvcmF0aW9uU2tpcEluazsKKyAgICAgICAgCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dCogc2F2ZWRDb250ZXh0OworICAgICAgICBmbG9hdCBzYXZlZFRleHRT
dHJva2VXaWR0aDsKKyAgICAgICAgZmxvYXQgc2F2ZWRTZWxlY3Rpb25TdHJva2VXaWR0aDsKKyAg
ICAgICAgY29uc3QgU2hhZG93RGF0YSogc2F2ZWRUZXh0U2hhZG93OworICAgICAgICBjb25zdCBT
aGFkb3dEYXRhKiBzYXZlZFNlbGVjdGlvblNoYWRvdzsKKyAgICAgICAgCisgICAgICAgIGlmIChj
bGlwRGVjb3JhdGlvblRvTWFzaykgeworICAgICAgICAgICAgY29udGV4dC0+c2F2ZSgpOworCisg
ICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGV4dGVudCBvZiBhcmdzLmJveFJlY3QgaW4gZGV2
aWNlLXNwYWNlIChub3QgdXNlci1zcGFjZSkKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBj
dG0gPSBjb250ZXh0LT5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURl
dmljZVNjYWxlKTsKKyAgICAgICAgICAgIEFTU0VSVChjdG0uaXNJbnZlcnRpYmxlKCkpOworICAg
ICAgICAgICAgSW50UmVjdCBlbmNsb3NpbmdEZXZpY2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChj
dG0ubWFwUXVhZChhcmdzLm1fYm94UmVjdCkuYm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIHNhdmVkQ29udGV4dCA9IGFyZ3MubV9jb250ZXh0OworICAgICAgICAgICAg
c2F2ZWRUZXh0U3Ryb2tlV2lkdGggPSBhcmdzLm1fdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGg7
CisgICAgICAgICAgICBzYXZlZFNlbGVjdGlvblN0cm9rZVdpZHRoID0gYXJncy5tX3NlbGVjdGlv
blBhaW50U3R5bGUuc3Ryb2tlV2lkdGg7CisgICAgICAgICAgICBzYXZlZFRleHRTaGFkb3cgPSBh
cmdzLm1fdGV4dFNoYWRvdzsKKyAgICAgICAgICAgIHNhdmVkU2VsZWN0aW9uU2hhZG93ID0gYXJn
cy5tX3NlbGVjdGlvblNoYWRvdzsKKworICAgICAgICAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBp
bWFnZUJ1ZmZlciA9IGNvbnRleHQtPmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZW5jbG9zaW5nRGV2
aWNlUmVjdC5zaXplKCkpOworICAgICAgICAgICAgaWYgKGltYWdlQnVmZmVyLmdldCgpKSB7Cisg
ICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBtYXNrQ29udGV4dCA9IGltYWdlQnVmZmVy
LT5jb250ZXh0KCk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPnNldEZpbGxDb2xvcihD
b2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgICAgICAgICAgICAgIG1hc2tD
b250ZXh0LT5zZXRMaW5lSm9pbihSb3VuZEpvaW4pOworICAgICAgICAgICAgICAgIG1hc2tDb250
ZXh0LT50cmFuc2xhdGUoRmxvYXRQb2ludCgpIC0gZW5jbG9zaW5nRGV2aWNlUmVjdC5sb2NhdGlv
bigpKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC0+Y29uY2F0Q1RNKGN0bSk7CisgICAg
ICAgICAgICAgICAgbWFza0NvbnRleHQtPmZpbGxSZWN0KGFyZ3MubV9ib3hSZWN0KTsKKyAgICAg
ICAgICAgICAgICBtYXNrQ29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNs
ZWFyKTsKKworICAgICAgICAgICAgICAgIGFyZ3MubV9jb250ZXh0ID0gbWFza0NvbnRleHQ7Cisg
ICAgICAgICAgICAgICAgYXJncy5tX3RleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoICs9IDEuMGY7
CisgICAgICAgICAgICAgICAgYXJncy5tX3NlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGgg
Kz0gMS4wZjsKKyAgICAgICAgICAgICAgICBhcmdzLm1fdGV4dFNoYWRvdyA9IDA7CisgICAgICAg
ICAgICAgICAgYXJncy5tX3NlbGVjdGlvblNoYWRvdyA9IDA7CisgICAgICAgICAgICAgICAgcGFp
bnRUZXh0KGFyZ3MpOworCisgICAgICAgICAgICAgICAgLy8gQXBwbHkgbWFzayBpbiBkZXZpY2Ug
c3BhY2Ugc28gdGhlIHF1YWQgaXMgYXhpcy1hbGlnbmVkCisgICAgICAgICAgICAgICAgY29udGV4
dC0+Y29uY2F0Q1RNKGN0bS5pbnZlcnNlKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmNs
aXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmdldCgpLCBlbmNsb3NpbmdEZXZpY2VSZWN0KTsK
KyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0oY3RtKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZVN0eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxlKGRlY29y
YXRpb25TdHlsZSkpOwogICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5l
KSB7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcih1bmRlcmxpbmUsIGNvbG9y
U3BhY2UpOwpAQCAtMTEzOSw2ICsxMjYwLDE2IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRE
ZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAg
ICAgICAgICAgIH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKICAgICAgICAgfQorI2lmIEVOQUJMRShD
U1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgaWYgKGNsaXBEZWNvcmF0aW9uVG9NYXNrKSB7
CisgICAgICAgICAgICBhcmdzLm1fY29udGV4dCA9IHNhdmVkQ29udGV4dDsKKyAgICAgICAgICAg
IGFyZ3MubV90ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA9IHNhdmVkVGV4dFN0cm9rZVdpZHRo
OworICAgICAgICAgICAgYXJncy5tX3NlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPSBz
YXZlZFNlbGVjdGlvblN0cm9rZVdpZHRoOworICAgICAgICAgICAgYXJncy5tX3RleHRTaGFkb3cg
PSBzYXZlZFRleHRTaGFkb3c7CisgICAgICAgICAgICBhcmdzLm1fc2VsZWN0aW9uU2hhZG93ID0g
c2F2ZWRTZWxlY3Rpb25TaGFkb3c7CisgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRo
cm91Z2gpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGxpbmV0aHJvdWdo
LCBjb2xvclNwYWNlKTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmgKaW5kZXggMTU0MTljNDU5N2YzMzcxZmZiZTQyZDQxNjUzZGNi
MWUyZTU1MmY3NC4uMzdhZjVhMTBjZjJiMjU4ZGY2OGYzZTM3MTUxZjRjZmQ5YWJjZGQ5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0zMiw2ICszMiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogY2xh
c3MgRG9jdW1lbnRNYXJrZXI7CitzdHJ1Y3QgUGFpbnRUZXh0QXJndW1lbnRzOworY2xhc3MgUmVu
ZGVyQ29tYmluZVRleHQ7CiAKIGNvbnN0IHVuc2lnbmVkIHNob3J0IGNOb1RydW5jYXRpb24gPSBV
U0hSVF9NQVg7CiBjb25zdCB1bnNpZ25lZCBzaG9ydCBjRnVsbFRydW5jYXRpb24gPSBVU0hSVF9N
QVggLSAxOwpAQCAtMTgwLDcgKzE4Miw4IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUsIGNv
bnN0IFNoYWRvd0RhdGEqKTsKKyAgICB2b2lkIHBhaW50VGV4dChQYWludFRleHRBcmd1bWVudHMm
IGFyZ3MpOworICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5
bGUsIGNvbnN0IFNoYWRvd0RhdGEqLCBQYWludFRleHRBcmd1bWVudHMmIGFyZ3MpOwogICAgIHZv
aWQgcGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94
T3JpZ2luLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBDb2xvciB0ZXh0Q29sb3Ip
OwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFBvaW50JiBib3hPcmlnaW4sIERvY3VtZW50TWFya2VyKiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBGb250JiwgYm9vbCBncmFtbWFyKTsKICAgICB2b2lkIHBhaW50VGV4dE1hdGNoTWFy
a2VyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1l
bnRNYXJrZXIqLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZTkzYjQ2MzlhMmUxN2Fl
ZDA5NTUwZDkyMGNjMmM2NDIwM2JjNmI2YS4uOTIyMTY4ZWRmMDkyMGZjNGY4ZTcwMDE3OWYzYTY1
MWU0ZGU2YTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKQEAgLTU4NCw2ICs1ODQsOSBAQCBwdWJsaWM6CiAjZWxzZQogICAgIFRleHREZWNvcmF0
aW9uU3R5bGUgdGV4dERlY29yYXRpb25TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIFRleHREZWNvcmF0
aW9uU3R5bGVTb2xpZDsgfQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RF
WFRfREVDT1JBVElPTikKKyAgICBUZXh0RGVjb3JhdGlvblNraXAgdGV4dERlY29yYXRpb25Ta2lw
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dERlY29yYXRpb25Ta2lwPihyYXJlSW5o
ZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblNraXApOyB9CisjZW5kaWYgLy8gQ1NTM19URVhU
X0RFQ09SQVRJT04KICAgICBpbnQgd29yZFNwYWNpbmcoKSBjb25zdDsKICAgICBpbnQgbGV0dGVy
U3BhY2luZygpIGNvbnN0OwogCkBAIC0xMTY2LDYgKzExNjksOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRUZXh0SnVzdGlmeShUZXh0SnVzdGlmeSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERh
dGEsIG1fdGV4dEp1c3RpZnksIHYpOyB9CiAgICAgdm9pZCBzZXRUZXh0VW5kZXJsaW5lUG9zaXRp
b24oVGV4dFVuZGVybGluZVBvc2l0aW9uIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwg
bV90ZXh0VW5kZXJsaW5lUG9zaXRpb24sIHYpOyB9CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYg
RU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHZvaWQgc2V0VGV4dERlY29yYXRpb25T
a2lwKFRleHREZWNvcmF0aW9uU2tpcCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1f
dGV4dERlY29yYXRpb25Ta2lwLCB2KTsgfQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9O
CiAgICAgdm9pZCBzZXREaXJlY3Rpb24oVGV4dERpcmVjdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFn
cy5fZGlyZWN0aW9uID0gdjsgfQogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogICAg
IHZvaWQgc2V0U3BlY2lmaWVkTGluZUhlaWdodChMZW5ndGggdik7CkBAIC0xNjg3LDYgKzE2OTMs
OSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRleHRKdXN0aWZ5IGluaXRpYWxUZXh0SnVzdGlmeSgp
IHsgcmV0dXJuIFRleHRKdXN0aWZ5QXV0bzsgfQogICAgIHN0YXRpYyBUZXh0VW5kZXJsaW5lUG9z
aXRpb24gaW5pdGlhbFRleHRVbmRlcmxpbmVQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRVbmRlcmxp
bmVQb3NpdGlvbkF1dG87IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19U
RVhUX0RFQ09SQVRJT04pCisgICAgc3RhdGljIFRleHREZWNvcmF0aW9uU2tpcCBpbml0aWFsVGV4
dERlY29yYXRpb25Ta2lwKCkgeyByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9uZTsgfQorI2Vu
ZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxab29t
KCkgeyByZXR1cm4gMS4wZjsgfQogICAgIHN0YXRpYyBpbnQgaW5pdGlhbE91dGxpbmVPZmZzZXQo
KSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxPcGFjaXR5KCkgeyByZXR1
cm4gMS4wZjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBmMjZlNWE3MDMzYmEzOGZmNWYzNGZiZDE1Zjk1N2E4
YTAzYTIwZGFjLi5mZjVjMDE0ZWY4MDBhZTJlMjAwNDlhYmNkNDY4NTZhOGIyMDU2YjQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaApAQCAtMzc5LDYgKzM3OSwxMyBAQCBlbnVtIFRleHRKdXN0aWZ5IHsKIH07CiAjZW5k
aWYgLy8gQ1NTM19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitlbnVt
IFRleHREZWNvcmF0aW9uU2tpcEl0ZW1zIHsKKyAgICBUZXh0RGVjb3JhdGlvblNraXBOb25lID0g
MHgwLCBUZXh0RGVjb3JhdGlvblNraXBJbmsgPSAweDQKK307Cit0eXBlZGVmIHVuc2lnbmVkIFRl
eHREZWNvcmF0aW9uU2tpcDsKKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiBlbnVt
IEVQYWdlQnJlYWsgewogICAgIFBCQVVUTywgUEJBTFdBWVMsIFBCQVZPSUQKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggMGZjZmIwOGNmOTI2MzIzOGVhYzVlODExYWJlMzBhY2U3MTRiMWI4NC4u
ZGQyMTU4M2NkZmQwMDhjODU2YTc0YWM5YmIzNWFmMzhlZjA3MWU4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgU2FtZVNpemVBc1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxTYW1lU2l6ZUFzU3R5bGVSYXJlSQogICAgIExlbmd0
aCBsZW5ndGhzWzFdOwogICAgIGZsb2F0IHNlY29uZEZsb2F0OwogICAgIHVuc2lnbmVkIG1fYml0
ZmllbGRzWzJdOworI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICB1bnNpZ25l
ZCBtX2JpdGZpZWxkc0V4dHJhOworI2VuZGlmCiAgICAgc2hvcnQgcGFnZWRNZWRpYVNob3J0c1sy
XTsKICAgICB1bnNpZ25lZCB1bnNpZ25lZHNbMV07CiAgICAgc2hvcnQgaHlwaGVuYXRpb25TaG9y
dHNbM107CkBAIC0xMTIsNiArMTE1LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBtX3RleHRKdXN0aWZ5KFJlbmRlclN0eWxlOjppbml0
aWFsVGV4dEp1c3RpZnkoKSkKICAgICAsIG1fdGV4dFVuZGVybGluZVBvc2l0aW9uKFJlbmRlclN0
eWxlOjppbml0aWFsVGV4dFVuZGVybGluZVBvc2l0aW9uKCkpCiAjZW5kaWYgLy8gQ1NTM19URVhU
CisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICwgbV90ZXh0RGVjb3JhdGlv
blNraXAoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXAoKSkKKyNlbmRpZiAv
LyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICwgbV9ydWJ5UG9zaXRpb24oUmVuZGVyU3R5bGU6
OmluaXRpYWxSdWJ5UG9zaXRpb24oKSkKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCB0b3VjaENh
bGxvdXRFbmFibGVkKFJlbmRlclN0eWxlOjppbml0aWFsVG91Y2hDYWxsb3V0RW5hYmxlZCgpKQpA
QCAtMTkzLDYgKzE5OSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIG1fdGV4dEp1
c3RpZnkoby5tX3RleHRKdXN0aWZ5KQogICAgICwgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24oby5t
X3RleHRVbmRlcmxpbmVQb3NpdGlvbikKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUo
Q1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgLCBtX3RleHREZWNvcmF0aW9uU2tpcChvLm1fdGV4
dERlY29yYXRpb25Ta2lwKQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgLCBt
X3J1YnlQb3NpdGlvbihvLm1fcnVieVBvc2l0aW9uKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAs
IHRvdWNoQ2FsbG91dEVuYWJsZWQoby50b3VjaENhbGxvdXRFbmFibGVkKQpAQCAtMzE1LDYgKzMy
NCw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiBtX3RleHRKdXN0aWZ5ID09
IG8ubV90ZXh0SnVzdGlmeQogICAgICAgICAmJiBtX3RleHRVbmRlcmxpbmVQb3NpdGlvbiA9PSBv
Lm1fdGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxF
KENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICAmJiBtX3RleHREZWNvcmF0aW9uU2tpcCA9
PSBvLm1fdGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04K
ICAgICAgICAgJiYgbV9ydWJ5UG9zaXRpb24gPT0gby5tX3J1YnlQb3NpdGlvbgogICAgICAgICAm
JiBtX2xpbmVTbmFwID09IG8ubV9saW5lU25hcAogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmgKaW5kZXggODkwOGI1NTk2NDM5ODMzNDhiMjIwZTRiNWM5NTYzNTI4NTk4NTk3
Zi4uOGI5NGIxMTc3MWNkM2RhNGRjNzJiMzc0NDFkNGRhYTUzODRjNGI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5oCkBAIC0xMjYsNiArMTI2LDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1fdGV4dEp1c3Rp
ZnkgOiAzOyAvLyBUZXh0SnVzdGlmeQogICAgIHVuc2lnbmVkIG1fdGV4dFVuZGVybGluZVBvc2l0
aW9uIDogMzsgLy8gVGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8gQ1NTM19URVhUCisj
aWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHVuc2lnbmVkIG1fdGV4dERlY29y
YXRpb25Ta2lwIDogNTsgLy8gVGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYgLy8gQ1NTM19URVhU
X0RFQ09SQVRJT04KICAgICB1bnNpZ25lZCBtX3J1YnlQb3NpdGlvbiA6IDE7IC8vIFJ1YnlQb3Np
dGlvbgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhOTJmNTIzYTkx
YzI1YzcxNGFkODY5OTNjNWNlYWQzZDM2MzY1ZTI2Li4wNzFlMjEzM2Y5OTA3MmE4NjMyMTNjZWU1
ODIwNjdiZTAwZDM3YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNTgsNiArNTgsNyBAQCBFTkFC
TEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEID0gRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVQogRU5BQkxFX0NTU19WQVJJQUJMRVMgPSA7CiBFTkFCTEVfQ1NT
M19DT05ESVRJT05BTF9SVUxFUyA9IDsKIEVOQUJMRV9DU1MzX1RFWFQgPSA7CitFTkFCTEVfQ1NT
M19URVhUX0RFQ09SQVRJT04gPSBFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT047CiBFTkFCTEVf
Q1NTM19URVhUX0xJTkVfQlJFQUsgPSA7CiBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgPSBFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFk7CiBFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSID0gOwpA
QCAtMTg2LDQgKzE4Nyw0IEBAIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKIEVOQUJMRV9G
VExfSklUID0gOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BS
T1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxF
X0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BP
U0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQo
RU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVf
RE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJ
RERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMp
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
X1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJf
QVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
KSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9X
X0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChF
TkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01F
RElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhS
X1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJ
TkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxF
X0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9O
RVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01Q
T1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhD
TFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
X1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBS
RUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9O
KSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJ
VFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJf
SVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05T
VFJVQ1RPUikgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5B
QkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
QU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJ
TUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExF
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVH
QUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJ
VF9QTFVHSU4pICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dS
RVNTX0VMRU1FTlQpICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRT
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkg
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RB
VEFCQVNFKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09O
X0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFC
TEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9O
QU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGE5MmY1MjNhOTFjMjVjNzE0YWQ4Njk5M2M1Y2VhZDNkMzYz
NjVlMjYuLjM5Nzg3ODYyYzQ2ZTdkZjdhNDlmZjg3YjQ3M2RiZjIwOTk3MWVlNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC01OCw2ICs1OCw3IEBAIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VO
UFJFRklYRUQgPSBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VCiBFTkFCTEVfQ1NT
X1ZBUklBQkxFUyA9IDsKIEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTID0gOwogRU5BQkxF
X0NTUzNfVEVYVCA9IDsKK0VOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiA9IEVOQUJMRV9DU1Nf
VEVYVF9ERUNPUkFUSU9OOwogRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZID0gRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NV
U1RPTV9TQ0hFTUVfSEFORExFUiA9IDsKQEAgLTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9
IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFT
X1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQo
RU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NT
U19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBF
UykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNf
QU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9D
U1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNf
VEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVf
REVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJ
UkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJM
RV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VW
RU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykg
JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxF
X0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
SUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVf
TUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9F
TEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVO
QUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFC
TEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChF
TkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJ
Q19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRF
RF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxF
X1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJM
RV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVf
REVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5B
QkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURB
UFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAk
KEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVU
SU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxF
X0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19U
UkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykg
JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJ
T04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1Yy
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQ
SV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNT
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxF
X01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9D
T05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlf
Rk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykg
JChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxF
X1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFC
TEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VU
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxF
TUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BB
UlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01P
REVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVB
VFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtCmluZGV4IDg4Y2MzMmNmMzgzYWNhMDQ5NGZkYjJiMzYxODU2OTNhZDNiMGVl
M2QuLjk0ZDFjZTNjMDc0ZTMzNDEwYzAxNmEyMzEzNDcwZDkyMjI4ZTY3ZDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTUyLDYgKzUyLDcgQEAgbXkgKAogICAg
ICRjc3BOZXh0U3VwcG9ydCwKICAgICAkY3NzM0NvbmRpdGlvbmFsUnVsZXNTdXBwb3J0LAogICAg
ICRjc3MzVGV4dFN1cHBvcnQsCisgICAgJGNzczNUZXh0RGVjb3JhdGlvblN1cHBvcnQsCiAgICAg
JGNzczNUZXh0TGluZUJyZWFrU3VwcG9ydCwKICAgICAkY3NzNEltYWdlc1N1cHBvcnQsCiAgICAg
JGNzc0JveERlY29yYXRpb25CcmVha1N1cHBvcnQsCkBAIC0xOTksNiArMjAwLDkgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJjc3MzLXRleHQiLCBkZXNjID0+ICJUb2dnbGUg
Q1NTMyBUZXh0IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTM19URVhUIiwg
ZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCRjc3MzVGV4dFN1cHBv
cnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJjc3MzLXRleHQtZGVjb3JhdGlvbiIsIGRlc2MgPT4g
IlRvZ2dsZSBDU1MzIFRleHQgRGVjb3JhdGlvbiBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNz
czNUZXh0RGVjb3JhdGlvblN1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJjc3MzLXRleHQt
bGluZS1icmVhayIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MzIFRleHQgTGluZSBCcmVhayBzdXBwb3J0
IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJGNzczNUZXh0TGluZUJyZWFrU3VwcG9ydCB9LAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTkyYzExNjkxZjE1MzA5Yzc1Njc4ZWVhZjg0NGViZjY5NDdiZDI2Ny4uNTM4MmUzOGQxZGY2N2M1
ODYyMzI2NWE4ODYzZmZlMzZlYjY5OGVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA5
LTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3Jh
dGlvbi1za2lwLWluay16b29tZWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4
dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtcm91bmR0cmlwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLmh0bWw6IEFkZGVkLgorCiAyMDEzLTEwLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBO
ZXcgcG9zaXRpb25pbmcgbW9kZWw6IE5lZ2F0aXZlIG1hcmdpbnMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3Jh
dGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZDdkNTAyYWQzNTFmNzIzOWE3ZDMxZGE1ZTdkY2JiYWExN2EyMjIyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29y
YXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21l
ZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgICNiaWdza2V3IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgIGxlZnQ6IC0xNTZweDsKKyAgICAgIHRvcDogLTQwMHB4OworICAgICAgZm9u
dC1zdHlsZTogaXRhbGljOworICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1p
bHk6IGhlbHZldGljYTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAg
ICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVk
IGl0YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisg
IHRoZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAg
dG8gbXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNr
aXA6IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXIt
c3BhY2UgcHJlY2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRo
ZXJlIHdvbid0IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJs
aW5lCisgIHdoZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVj
YXVzZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIg
dGhlIGNoYXJhY3RlcgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZs
b3c6IGhpZGRlbjsgd2lkdGg6IDgxcHg7IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0i
Ymlnc2tldyI+bHBsPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24v
dGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg5NDFhZjYzZTkzMTE3ZDNkYjU4YjJmODNkNTc1OWZjYjVlNWU5YjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0
bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
c3R5bGU+CisgICAgI2JpZ3NrZXcgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
bGVmdDogLTE1NnB4OworICAgICAgdG9wOiAtNDAwcHg7CisgICAgICBmb250LXN0eWxlOiBpdGFs
aWM7CisgICAgICBmb250LXNpemU6IDEycHQ7CisgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNh
OworICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CisgICAgICAtd2Via2l0LXRleHQt
ZGVjb3JhdGlvbi1za2lwOiBpbms7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMzcp
OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKKyAgICB9CisgIDwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgYW4gdW5k
ZXJsaW5lZCBpdGFsaWNpemVkICJwIiBhcyB2aWV3ZWQgdGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFy
b3VuZAorICB0aGUgZGVzY2VuZGVyLiBUaGUgInAiIGlzIGluIDEycHQgc2l6ZSwgYnV0IGlzIGJs
b3duIHVwIHRvIG11Y2ggbGFyZ2VyLiBUaGlzIHRlc3RzIHRoYXQKKyAgdGhlIHRleHQtZGVjb3Jh
dGlvbi1za2lwOiBpbmsgbWFzayBpcyBjYWxjdWxhdGVkIHdpdGggbW9yZSBwcmVjaXNpb24gdGhh
biB1c2VyLXNwYWNlIHByZWNpc2lvbi4KKyAgSWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcHJlY2lz
aW9uLCB0aGVyZSB3b24ndCBiZSBhIG5pY2UgY3Jpc3AgZWRnZSBvbiB0aGUgc2xvcGUgb2YgdGhl
IHVuZGVybGluZQorICB3aGVyZSBpdCBnZXRzIG1hc2tlZCBvZmYuIFRoaXMgdGVzdCB3b3VsZCBm
YWlsIGJlY2F1c2UgdGhlcmUgd291bGQgYmUgZ2FyYmFnZSBnaWFudCBwaXhlbAorICBhbGlhc2lu
ZyBuZWFyIHRoZSBjaGFyYWN0ZXIKKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7
IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiA4MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxk
aXYgaWQ9ImJpZ3NrZXciPmxwbDwvZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJp
cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVj
b3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRy
aXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZWUzNTFhNDdlNTExM2Q4ZjQ3ZWIzYjg0N2Fj
NzI3N2ZhNDU2N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRp
b24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBjc3NS
dWxlLnR5cGUgaXMgY3NzUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBp
cyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNv
cmF0aW9uLXNraXAnKSBpcyAiaW5rIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRl
Y29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlv
bi1za2lwLXJvdW5kdHJpcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYjYxYjhkZDk0OGRmODU4ZGYwMjE5
NTc4MTk3MzcwMjJmOTkzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRl
Y29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHls
ZUVsZW1lbnQpOworICAgIHN0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hlZXQ7CisgICAgc3R5
bGVzaGVldC5pbnNlcnRSdWxlKCIucCB7IC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IGlu
azsgfSIsIDApOworICAgIGNzc1J1bGUgPSBzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCk7Cisg
ICAgc2hvdWxkQmUoImNzc1J1bGUudHlwZSIsICJjc3NSdWxlLlNUWUxFX1JVTEUiKTsKKyAgICBk
ZWNsYXJhdGlvbiA9IGNzc1J1bGUuc3R5bGU7CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmxl
bmd0aCIsICIxIik7CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAnKSIsICJcImlua1wiIik7CisgIDwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAxZmE5ZmEzMGY2OTFiMTFlODM0ZDU2NGM1NTRmNWQ1OTc4YWU3YzQwLi4yNzFk
ZjRjNDRjNTA2ZDQ2Mzg5MzVlZGU3ZDE0OGRjY2ViMWM2ODU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODMyLDYgKzgzMiw3IEBAIHdlYmtpdC5vcmcv
Yi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogCiAjIENTUzMgVGV4dCBzdXBwb3J0
IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3Jn
L2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KK3dlYmtpdC5vcmcv
Yi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1hbGlnbi1sYXN0CiB3ZWJraXQub3JnL2IvOTk5NDUgZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWp1c3RpZnkgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTI3NTUgZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214319</attachid>
            <date>2013-10-15 16:43:10 -0700</date>
            <delta_ts>2013-10-16 10:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131015164309.patch</filename>
            <type>text/plain</type>
            <size>93429</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjlmYzM3YmMxMmE5NjI4YmI1OWUyZTgyODliYmQxNjZjMDFiNTZkLi4wZWE1YTkyMGYyYTAwOTAx
OWE0MmJkMzVlOTczNDIxNDgyMGFlNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0
aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEzLTEw
LTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2VwYXJhdGUg
b3V0IGFycmF5IGl0ZXJhdGlvbiBpbnRyaW5zaWNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5YWZmNDgyZWI0
YmIzNDdhZWU3M2RhZWUyMTdhNzBmOTYzNzAxOS4uNDQ3M2NiZjkyZDMxMjljZGY5YjQ4NzVmYTNm
ZTU0NDRiNjdiNTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTEwLTE1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlh
bCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RS
L2Nzcy10ZXh0LWRlY29yLTMvI3RleHQtZGVjb3JhdGlvbi1za2lwLXByb3BlcnR5CisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDU1MgcHJvcGVydHkgIi13ZWJraXQtdGV4dC1kZWNvcmF0
aW9uLXNraXAiCisgICAgICAgIGFuZCBhIG5ldyB2YWx1ZSAiaW5rIi4gSWYgdGhpcyBuZXcgcHJv
cGVydHkgYW5kIHZhbHVlIGFwcGx5IHRvIGFuCisgICAgICAgIElubGluZVRleHRCb3gsIGEgbWFz
ayBpcyBhcHBsaWVkIHRvIHRoZSB1bmRlcmxpbmUgZHJhd2luZyBjb2RlLgorICAgICAgICBUaGlz
IG1hc2sgaXMgY3JlYXRlZCBieSBpbmNyZWFzaW5nIHRoZSBjb250ZXh0J3Mgc3Ryb2tlIHdpZHRo
LCB0aGVuCisgICAgICAgIHJlZHJhd2luZyB0aGUgdGV4dCB0aGF0IHdpbGwgYXBwZWFyIGFib3Zl
IHRoZSB1bmRlcmxpbmUuIFRoaXMgbWFzaywKKyAgICAgICAgd2hlbiBhcHBsaWVkIHRvIHRoZSB1
bmRlcmxpbmUsIHdpbGwgY3JlYXRlIGEgdmlzdWFsIG1vYXQgYXJvdW5kIHRoZQorICAgICAgICBs
ZXR0ZXJzIHdoZXJlIHRoZSB1bmRlcmxpbmUgd2lsbCBub3QgZHJhdy4KKworICAgICAgICBUaGlz
IHBhdGNoIG1vZGlmaWVzIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBzbyB0aGF0IHRo
ZQorICAgICAgICBmdW5jdGlvbiBpcyBhd2FyZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGRy
YXcgdGhlIHRleHQgdGhhdAorICAgICAgICB0aGUgZGVjb3JhdGlvbiBpcyBkZWNvcmF0aW5nLiBU
aGVzZSBwYXJhbWV0ZXJzIGFyZSBnYXRoZXJlZAorICAgICAgICBpbnRvIGEgc3RydWN0IHdoaWNo
IElubGluZVRleHRCb3g6OnBhaW50VGV4dCBoYXMgYmVlbiBtb2RpZmllZAorICAgICAgICB0byBh
Y2NlcHQuIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbiBtb2RpZmllcyB0aGlzIHN0cnVj
dAorICAgICAgICBhbmQgY2FsbHMgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0IGl0c2VsZiB0byBj
cmVhdGUgdGhlIG1hc2suCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWlu
ay16b29tZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRl
Y29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0
cmlwLW11bHRpcGxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJv
dW5kdHJpcC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclRl
eHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dERlY29yYXRpb25Ta2lwKToKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL0RlcHJl
Y2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uU2tpcDo6dmFsdWVUb0RlY29yYXRpb25Ta2lwKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmFwcGx5VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRlSGFuZGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVk
U3R5bGVCdWlsZGVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94
OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBh
aW50ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjpUZXh0UGFp
bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpwYWludFRleHRXaXRoU2hhZG93cyk6CisgICAgICAg
IChXZWJDb3JlOjpyb3RhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6cGFp
bnRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjpwYWludFRoaWNrVGV4dElu
TWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrOjpTYXZlZERyYXdpbmdTdGF0ZUZv
ck1hc2spOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFBhaW50ZXI6OmJveFJlY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKwogMjAxMy0xMC0xMSAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE1NzI5Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmOTVlMGRkOGQ3ZTJkOTZhNjVm
ZTFhZmU5MWE2M2Y2MGIwYjgyY2Q4Li4zOTFlNTE3NTdjZDZlNDFlYjFkOWFiMjE4ZTVhNjRiM2Fm
NDhkYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMTAtMTUgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBJbml0aWFs
IGltcGxlbWVudGF0aW9uIG9mIHRleHQtZGVjb3JhdGlvbi1za2lwIGluaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMy0xMC0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMgZm9yY2UgbGF5b3V0IGJlZm9yZSBm
bHVzaGluZyBjb21wb3NpdGluZyBsYXllcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyMmYwNDk3ZjI3Y2VhMmY0
OTcyNmE4OTg2ODg5YWI5MDljMTdlNmU1Li4yMjk1YTllNmY2YjZhZWUyMWE4M2FkY2I0ZTJmZmUz
YWMxNWFlMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMTAtMTUgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBJbml0aWFsIGlt
cGxlbWVudGF0aW9uIG9mIHRleHQtZGVjb3JhdGlvbi1za2lwIGluaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMy0xMC0xMCAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBTZXBhcmF0ZSBkaXNwYXRjaCBjb250
ZXh0IGZyb20gV29ya1F1ZXVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE5MmY1MjNh
OTFjMjVjNzE0YWQ4Njk5M2M1Y2VhZDNkMzYzNjVlMjYuLjA3MWUyMTMzZjk5MDcyYTg2MzIxM2Nl
ZTU4MjA2N2JlMDBkMzdjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4
LDcgQEAgRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwog
RU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOwor
RU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9O
OwogRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZID0gRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUiA9IDsKQEAgLTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
CiBFTkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxF
X0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9O
RVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01Q
T1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhD
TFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
X1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBS
RUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFL
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5U
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVH
SU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9W
MikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9E
UElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVT
UykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
UikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5B
QkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9V
VCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9Q
QVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQo
RU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZF
QVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFC
TEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQo
RU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1B
VElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19D
T05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRf
REVDT1JBVElPTikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9F
VkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxU
RVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9Q
QUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdB
Q1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8p
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJM
RV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVO
QUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAk
KEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykg
JChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVP
VVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQo
UExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzOTFkMzlkMGM2ZGVhYjVm
NWY5MzhjNGQ2N2RhMDE1NGM2YWQyZDAxLi4zZTU0NTQ0NzkwMTI0MWY5YjJhNWU1MWI2MGU5NWYz
ODA4ZDJiMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE3MCw2ICsyMTcwLDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAKICAgICBy
ZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKICAgICByZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUu
Y3BwCisgICAgcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAogICAgIHJlbmRlcmluZy9icmVha19s
aW5lcy5jcHAKIAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGE5MmY1MjNhOTFjMjVjNzE0YWQ4Njk5M2M1Y2VhZDNkMzYzNjVlMjYuLjA3
MWUyMTMzZjk5MDcyYTg2MzIxM2NlZTU4MjA2N2JlMDBkMzdjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01
OCw2ICs1OCw3IEBAIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQg
PSBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VCiBFTkFCTEVfQ1NTX1ZBUklBQkxF
UyA9IDsKIEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTID0gOwogRU5BQkxFX0NTUzNfVEVY
VCA9IDsKK0VOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiA9IEVOQUJMRV9DU1MzX1RFWFRfREVD
T1JBVElPTjsKIEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyA9IDsKIEVOQUJMRV9DVVJTT1Jf
VklTSUJJTElUWSA9IEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWTsKIEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIgPSA7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9C
TE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAk
KEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVf
Q1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5B
QkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElP
TlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05E
SVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElO
RV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hF
TUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
X0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNf
RUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllf
VVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRFJBR0dB
QkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVf
U0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lORElFX1VJKSAk
KEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChF
TkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1BS
T01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklY
X0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNI
KSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVf
U1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1Q
TEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVE
X0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJ
VCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04p
ICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVf
Q1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChF
TkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hB
UEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0RFQ09SQVRJT04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VC
X0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
Ul9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVG
SU5FU18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IGE5MTc3ZmI3YmI0ODdmNzkzZTg4NThjMjg0ZmNjNjM2YjAyMGQ2YmQuLmNlODE1MGJhZDVlNGM4
NzA0YTZhMTY3YjQ1MGU1MzZkY2NhN2E1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNDQ3NCw2ICs0NDc0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50U3R5bGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBh
aW50U3R5bGUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9WZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAzMWNmYmMzN2NlZTM3Yzc2
YjhkOGRiOGUwMjZiNmNiN2EyOGY4MGQwLi5kZjMzNTI5ODI2ODk3ZmM2NGVkMzM2ZmJlYjk1ZmU5
NzFkN2IxODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKQEAgLTExNTk4LDYgKzExNTk4LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRleHRQYWludGVyLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3b3JrZXJzXFNoYXJlZFdvcmtlclJlcG9z
aXRvcnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceG1sXERPTVBhcnNlci5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx4bWxcTmF0aXZlWFBhdGhOU1Jlc29s
dmVyLmNwcCIgLz4KQEAgLTE5NTI3LDYgKzE5NTQxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xUYWJsZUxheW91dC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRleHRQYWludFN0eWxlLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50ZXIuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVC
b3guaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xtYXRobWxcUmVu
ZGVyTWF0aE1MQmxvY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xtYXRobWxcUmVuZGVyTWF0aE1MRmVuY2VkLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggN2QyMGI2
YTVlYTJhZTk2NWI0YTMwNmM1MTIwMWZiNzA3MGQ4YzIxMS4uN2E5N2Q1MGIxYzBkMmMxYmQ0MzQ4
YWZjMGRmZDcwZjFiYzYyYThjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMjczNiw2ICsyNzM2LDkgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHUmVzb3VyY2VzQ3lj
bGVTb2x2ZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50
ZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbWF0aG1sXFJlbmRlck1h
dGhNTEJsb2NrLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xtYXRobWw8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTk0OTIsNiArOTQ5NSw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcVGFibGVMYXlvdXQuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXFRleHRQYWludGVyLmgiPgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guaCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIzNjg0ZWU0MzIxZWUzZWQ2YzMx
MjBmZjdlNjgwODQ0M2Y0MzcwNDguLmM3YTRhN2ZmN2FmNDk2OWUzZmU5NjI3YWQwMDA4NTkxYzlh
ZDU3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTgyOSw2ICs4MjksOCBAQAogCQkxQzExQ0NDNjBBQTYwOTM3MDBEQURCMjAg
LyogRE9NRG9jdW1lbnRGcmFnbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwODlDRDMwQTk4QzQyODAwQTI3NUFBIC8q
IERPTURvY3VtZW50RnJhZ21lbnQuaCAqLzsgfTsKIAkJMUMxMUNDQzcwQUE2MDkzNzAwREFEQjIw
IC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwODlDQ0YwQTk4QzQyNzAwQTI3NUFBIC8qIERP
TUNEQVRBU2VjdGlvbi5oICovOyB9OwogCQkxQzExQ0NDODBBQTYwOTM3MDBEQURCMjAgLyogRE9N
SFRNTEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyRUVCMEFBMzg3Q0IwMEFENjRDNSAvKiBET01IVE1MRWxl
bWVudC5oICovOyB9OworCQkxQzEzMjYyNTE4MERFQUMwMDA5MUE2N0MgLyogVGV4dFBhaW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxMzI2
MjMxODBERUFDMDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmNwcCAqLzsgfTsKKwkJMUMxMzI2MjYx
ODBERUFDMDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzEzMjYyNDE4MERFQUMwMDA5MUE2N0MgLyogVGV4dFBh
aW50ZXIuaCAqLzsgfTsKIAkJMUMyNjQ5N0EwRDdFMjQ4QTAwQkQxMEYyIC8qIERvY3VtZW50TG9h
ZGVyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDMjY0OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi87IH07
CiAJCTFDMjY0OTdDMEQ3RTI0RUMwMEJEMTBGMiAvKiBQYWdlTWFjLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjY0OTdCMEQ3RTI0RUMwMEJEMTBG
MiAvKiBQYWdlTWFjLmNwcCAqLzsgfTsKIAkJMUM0QzhGMDIwQUQ4NUQ4NzAwOTQ3NUNFIC8qIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDNEM4RjAwMEFEODVEODcwMDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTcyNzgsNiArNzI4MCw4IEBACiAJCTFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94
eVNlcnZlckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBy
b3h5U2VydmVyQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZFMTE5
NzBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRkUxMTk4MENCRkZDQzQwMDMwMTdGQSAvKiBK
U1NRTFJlc3VsdFNldFJvd0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTUUxSZXN1bHRTZXRSb3dMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
MTMyNjIzMTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0UGFpbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDMTMyNjI0MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UGFpbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzI2NDk3OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRM
b2FkZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1l
bnRMb2FkZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzI2NDk3QjBE
N0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM0
MzVDRDMxNEU4NTQ0RjAwNEUxMEVBIC8qIEluc3BlY3Rvci5qc29uICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEluc3BlY3Rvci5q
c29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2NjYsNiArMjA2NzAsOCBAQAog
CQkJCUU0QzkxQTBEMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5oICovLAogCQkJ
CTM3RkM5NkRBMTEwNEVENzEwMDNFMUZBRCAvKiBUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3gu
aCAqLywKIAkJCQlCQ0EyNTcxNDEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNh
Y2hlLmggKi8sCisJCQkJMUMxMzI2MjMxODBERUFDMDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmNw
cCAqLywKKwkJCQkxQzEzMjYyNDE4MERFQUMwMDA5MUE2N0MgLyogVGV4dFBhaW50ZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gcmVuZGVyaW5nOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTIyMjM5LDYgKzIyMjQ1LDcgQEAKIAkJCQk4QTE5NTkzNDE0N0VBMTZFMDBEMUVBNjEgLyog
RE9NV2ViS2l0TmFtZWRGbG93SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjRD
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxQzBGRjRFMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9u
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUMxMzI2MjYxODBERUFDMDAwOTFB
NjdDIC8qIFRleHRQYWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUM3RjVFNzBBQUZCQUZC
MDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5ODlERDEw
QUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQwM0I5OTcwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjAzNiw2ICsyNjA0Myw3IEBACiAJCQkJMkQ2RTQ2ODQxN0Q2NjBGNTAwRUNGOEJC
IC8qIFBERkRvY3VtZW50SW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQ5NzEx
RDgyMzQ5MDA2NDU1QjAgLyogSlNET01TdHJpbmdNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM2NDY0OUMxMUQ4MjM4QzAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDMTMyNjI1MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Njk0NTYzQzEyMTREOTdDMDAwN0NCQUUgLyogSlNET01U
b2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUzN0UwMDUxMkRCQzVBNDAwQTZCMjMz
IC8qIEpTRE9NVVJMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCQTBDMDlFQjE4QzcwMDc5
N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZmI3OTdiZDcz
ZWQyNmUxYjllM2VjYzEzYTA2YWQyNGViMDFjZDYwNS4uZWNkNjExOTQ5MDkxN2I2NGE3NGJiZWMz
NTllYjcxYTNjMjA0MDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0MzMsNiArMTQzMywyMSBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NWYWx1
ZShUZXh0RGVjb3JhdAogfQogI2VuZGlmIC8vIENTUzNfVEVYVAogCisjaWYgRU5BQkxFKENTUzNf
VEVYVF9ERUNPUkFUSU9OKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHRE
ZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1ZShUZXh0RGVjb3JhdGlvblNraXAgdGV4dERlY29y
YXRpb25Ta2lwKQoreworICAgIHN3aXRjaCAodGV4dERlY29yYXRpb25Ta2lwKSB7CisgICAgY2Fz
ZSBUZXh0RGVjb3JhdGlvblNraXBOb25lOgorICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCku
Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tp
cEluazoKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1
ZShDU1NWYWx1ZUluayk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Cit9Cisj
ZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KKwogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IGZpbGxSZXBlYXRUb0NTU1ZhbHVlKEVGaWxsUmVwZWF0IHhSZXBlYXQsIEVGaWxsUmVwZWF0
IHlSZXBlYXQpCiB7CiAgICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBpZiBib3Ro
IHZhbHVlcyBhcmUgZXF1YWwsIGp1c3QgcmV0dXJuIG9uZSBvZiB0aGVtLiBBbmQKQEAgLTIzNTAs
NiArMjM2NSwxMCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9y
Ojpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uOgogICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKSk7
CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25Ta2lwOgorICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NWYWx1ZShzdHls
ZS0+dGV4dERlY29yYXRpb25Ta2lwKCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdDoKICAgICAgICAgICAgIHJldHVybiByZW5k
ZXJUZXh0RGVjb3JhdGlvbkZsYWdzVG9DU1NWYWx1ZShzdHlsZS0+dGV4dERlY29yYXRpb25zSW5F
ZmZlY3QoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2MTNhNDM2Yzc4YjEwNDNkMDM5ZDBjYmE4ZTNm
ZWM0ZTEzOTZkNGM3Li4wZjM4NWY2NWNiMWFjYzA4ZDZkZGJiYmJlMDlkMWFiZWE5YmJiZmViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjM3MCw2ICsyMzcwLDEyIEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkK
ICAgICAgICAgcmV0dXJuIHBhcnNlVGV4dFVuZGVybGluZVBvc2l0aW9uKGltcG9ydGFudCk7CiAj
ZW5kaWYgLy8gQ1NTM19URVhUCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uU2tpcDoKKyAgICAgICAgLy8g
bm9uZSB8IFsgb2JqZWN0cyB8fCBzcGFjZXMgfHwgaW5rIHx8IGVkZ2VzIHx8IGJveC1kZWNvcmF0
aW9uIF0KKyAgICAgICAgcmV0dXJuIHBhcnNlVGV4dERlY29yYXRpb25Ta2lwKGltcG9ydGFudCk7
CisjZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlab29tOiAgICAgICAgICAvLyBub3JtYWwg
fCByZXNldCB8IGRvY3VtZW50IHwgPG51bWJlcj4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVJlc2V0IHx8
IGlkID09IENTU1ZhbHVlRG9jdW1lbnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRy
dWU7CkBAIC05NzQ2LDYgKzk3NTIsMjYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVGV4dFVuZGVy
bGluZVBvc2l0aW9uKGJvb2wgaW1wb3J0YW50KQogfQogI2VuZGlmIC8vIENTUzNfVEVYVAogCisj
aWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlVGV4
dERlY29yYXRpb25Ta2lwKGJvb2wgaW1wb3J0YW50KQoreworICAgIC8vIFRoZSB0ZXh0LWRlY29y
YXRpb24tc2tpcCBwcm9wZXJ0eSBoYXMgc3ludGF4ICJub25lIHwgWyBvYmplY3RzIHx8IHNwYWNl
cyB8fCBpbmsgfHwgZWRnZXMgfHwgYm94LWRlY29yYXRpb24gXSIuCisgICAgLy8gSG93ZXZlciwg
b25seSAnbm9uZScgYW5kICdpbmsnIGFyZSBpbXBsZW1lbnRlZCB5ZXQsIHNvIHdlIHdpbGwgcGFy
c2Ugc3ludGF4ICJub25lIHwgaW5rIiBmb3Igbm93LgorICAgIENTU1BhcnNlclZhbHVlKiB2YWx1
ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgZG8geworICAgICAgICBzd2l0Y2ggKHZh
bHVlLT5pZCkgeworICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgY2FzZSBDU1NW
YWx1ZUluazoKKyAgICAgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dERl
Y29yYXRpb25Ta2lwLCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUt
PmlkKSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICgodmFsdWUg
PSBtX3ZhbHVlTGlzdC0+bmV4dCgpKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmIC8v
IENTUzNfVEVYVF9ERUNPUkFUSU9OCisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNp
c1N0eWxlKGJvb2wgaW1wb3J0YW50KQogewogICAgIHVuc2lnbmVkIHZhbHVlTGlzdFNpemUgPSBt
X3ZhbHVlTGlzdC0+c2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDI0NTJkNGY3MDVi
ZGEyZjM0NGNkZjJjNTYzYmFmZjcyMzk1NmFjODYuLjJkYTk3MjlmODM0NmUyZGRkN2FmMzE3OThm
YjRmOGU0YmU2OGUyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI4Myw2ICsyODMsOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZVRleHREZWNvcmF0aW9uKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBib29sIGltcG9ydGFudCk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKICAgICBib29sIHBh
cnNlVGV4dFVuZGVybGluZVBvc2l0aW9uKGJvb2wgaW1wb3J0YW50KTsKKyNlbmRpZiAvLyBDU1Mz
X1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgYm9vbCBwYXJzZVRl
eHREZWNvcmF0aW9uU2tpcChib29sIGltcG9ydGFudCk7CiAjZW5kaWYKIAogICAgIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IHBhcnNlVGV4dEluZGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbgppbmRleCBiNzMwYjE4OTkzNGZiZWZkNGIwNGNlYzgyNWYzZjQ0YjRiYWY0NmRh
Li4zYTQ5NThkZjkzMTEyYzYwYTQwMzc4YzY5YzIzMjcxNWEwMWFiNDljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMzkzLDYgKzM5Myw5IEBAIHotaW5kZXgKIC13
ZWJraXQtdGV4dC1qdXN0aWZ5IFtJbmhlcml0ZWRdCiAtd2Via2l0LXRleHQtdW5kZXJsaW5lLXBv
c2l0aW9uIFtJbmhlcml0ZWRdCiAjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFRf
REVDT1JBVElPTikgJiYgRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OCistd2Via2l0LXRleHQt
ZGVjb3JhdGlvbi1za2lwIFtJbmhlcml0ZWRdCisjZW5kaWYKIC13ZWJraXQtdGV4dC1kZWNvcmF0
aW9ucy1pbi1lZmZlY3QgW0luaGVyaXRlZF0KIC13ZWJraXQtdGV4dC1lbXBoYXNpcyBbSW5oZXJp
dGVkXQogLWVwdWItdGV4dC1lbXBoYXNpcyA9IC13ZWJraXQtdGV4dC1lbXBoYXNpcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAwYjRjOTJhYzU4MjRjMjZiZGI5NGYz
MmM2MWU0ZTgxYTM0NzEzOGU3Li44YTk0MDYxYjgxMDFjNGFlNmRkNDA2YWYxMDYyOGMwZTc4ZmNi
YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNDcwLDYgKzQ3
MCw5IEBAIHVuZGVybGluZQogI2lmIGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkgJiYgRU5BQkxF
X0NTUzNfVEVYVAogd2F2eQogI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUX0RF
Q09SQVRJT04pICYmIEVOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTgoraW5rCisjZW5kaWYKIC13
ZWJraXQtbm93cmFwCiAKIC8vIENTUzMgVmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggYTI3ZDdlMTYzMTE0MWY4MmJlOGZlMmY2Zjcy
ZjQ1YjcxZGVjNmI3MS4uNTI1Mzc4ZGE5M2EwOTQ4NDFmNzNmNTIzNmNkYTc3MzliYmM1YmQ2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAt
MTI2OSw2ICsxMjY5LDQ3IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCisjaWYgRU5BQkxFKENTUzNf
VEVYVF9ERUNPUkFUSU9OKQorY2xhc3MgQXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcCB7
CisgICAgc3RhdGljIFRleHREZWNvcmF0aW9uU2tpcCB2YWx1ZVRvRGVjb3JhdGlvblNraXAoQ1NT
UHJpbWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBy
aW1pdGl2ZVZhbHVlLmlzVmFsdWVJRCgpKTsKKworICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZh
bHVlLmdldFZhbHVlSUQoKSkgeworICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAg
ICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBOb25lOworICAgICAgICBjYXNlIENTU1ZhbHVl
SW5rOgorICAgICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU2tpcEluazsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBOb25lOwor
ICAgIH0KK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQs
IFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RGVjb3JhdGlvblNraXAodmFsdWVUb0RlY29yYXRp
b25Ta2lwKCp0b0NTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlKSkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgVGV4dERlY29yYXRpb25Ta2lwIHNraXAgPSBSZW5kZXJT
dHlsZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcCgpOworICAgICAgICBmb3IgKENTU1ZhbHVl
TGlzdEl0ZXJhdG9yIGkodmFsdWUpOyBpLmhhc01vcmUoKTsgaS5hZHZhbmNlKCkpIHsKKyAgICAg
ICAgICAgIENTU1ZhbHVlKiBpdGVtID0gaS52YWx1ZSgpOworICAgICAgICAgICAgc2tpcCB8PSB2
YWx1ZVRvRGVjb3JhdGlvblNraXAoKnRvQ1NTUHJpbWl0aXZlVmFsdWUoaXRlbSkpOworICAgICAg
ICB9CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHREZWNvcmF0aW9uU2tp
cChza2lwKTsKKyAgICB9CisgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVy
KCkKKyAgICB7CisgICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0
eURlZmF1bHRCYXNlPFRleHREZWNvcmF0aW9uU2tpcCwgJlJlbmRlclN0eWxlOjp0ZXh0RGVjb3Jh
dGlvblNraXAsIFRleHREZWNvcmF0aW9uU2tpcCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RGVjb3Jh
dGlvblNraXAsIFRleHREZWNvcmF0aW9uU2tpcCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dERl
Y29yYXRpb25Ta2lwPjo6Y3JlYXRlSGFuZGxlcigpOworICAgICAgICByZXR1cm4gUHJvcGVydHlI
YW5kbGVyKGhhbmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCksIGhhbmRsZXIuaW5pdGlhbEZ1bmN0aW9u
KCksICZhcHBseVZhbHVlKTsKKyAgICB9Cit9OworI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFU
SU9OCisKIGNsYXNzIEFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0
eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKQEAgLTIyNzUsNiArMjMxNiw5IEBAIERlcHJl
Y2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRKdXN0aWZ5LCBBcHBseVByb3BlcnR5RGVm
YXVsdDxUZXh0SnVzdGlmeSwgJlJlbmRlclN0eWxlOjp0ZXh0SnVzdGlmeSwgVGV4dEp1c3RpZnks
ICZSZW5kZXJTdHlsZTo6c2V0VGV4dEp1c3RpZnksIFRleHRKdXN0aWZ5LCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxUZXh0SnVzdGlmeT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uLCBBcHBseVByb3Bl
cnR5VGV4dFVuZGVybGluZVBvc2l0aW9uOjpjcmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENT
UzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNraXAsIEFwcGx5UHJvcGVy
dHlUZXh0RGVjb3JhdGlvblNraXA6OmNyZWF0ZUhhbmRsZXIoKSk7CisjZW5kaWYKICAgICBzZXRQ
cm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlUZXh0T3ZlcmZsb3csIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRPdmVyZmxvdywgJlJlbmRl
clN0eWxlOjp0ZXh0T3ZlcmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjpzZXRUZXh0
T3ZlcmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93
Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlU
ZXh0UmVuZGVyaW5nLCBBcHBseVByb3BlcnR5Rm9udDxUZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnRE
ZXNjcmlwdGlvbjo6dGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRS
ZW5kZXJpbmdNb2RlLCBBdXRvVGV4dFJlbmRlcmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMTZhMTA1NmJhMDcyYzU5MTdlZDdjNzQ2
YjU3Y2I0NzlmMDJkNmYzMy4uMjE0ZmU5NjA3Y2Y5NjAwODAyNjc3ODNlZDc0NzQxOGVjZGFkNTJl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMzA0Niw2ICszMDQ2LDkg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENT
U1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEp1c3RpZnk6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlvbjoKICNlbmRpZiAv
LyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uU2tpcDoKKyNlbmRpZgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0VGV4dEVtcGhhc2lzUG9zaXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRF
bXBoYXNpc1N0eWxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CmluZGV4IGI0M2U4YmE4MDc1MWRiZDBkOTQ3YmY3MGU1YjhhY2QyODNlN2RhYTEuLjE5YzZhODlm
MDU3ZGQ3NDk3YTJkYWYzZmIxNDJjZWIzNjhkMTk5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1
bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCkBA
IC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dFBhaW50U3R5bGUuaCIKKyNpbmNsdWRl
ICJUZXh0UGFpbnRlci5oIgogI2luY2x1ZGUgImJyZWFrX2xpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCkBAIC0zOTcsNTQgKzM5OSw2IEBAIEZsb2F0U2l6ZSBJbmxpbmVU
ZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwKICAgICByZXR1cm4gZXh0cmFPZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50VGV4
dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmss
IGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwg
aW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwgY29u
c3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQsIGJvb2wgaG9yaXpvbnRhbCkKLXsK
LSAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3IoKTsKLSAgICBDb2xvclNw
YWNlIGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3BhY2UoKTsKLSAgICBib29s
IG9wYXF1ZSA9IGZpbGxDb2xvci5hbHBoYSgpID09IDI1NTsKLSAgICBpZiAoIW9wYXF1ZSkKLSAg
ICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjpibGFjaywgZmlsbENvbG9yU3BhY2Up
OwotCi0gICAgZG8gewotICAgICAgICBJbnRTaXplIGV4dHJhT2Zmc2V0OwotICAgICAgICBpZiAo
c2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShJbmxpbmVU
ZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNoYWRvdywgYm94
UmVjdCwgc3Ryb2tlZCwgb3BhcXVlLCBob3Jpem9udGFsKSk7Ci0gICAgICAgIGVsc2UgaWYgKCFv
cGFxdWUpCi0gICAgICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoZmlsbENvbG9yLCBmaWxs
Q29sb3JTcGFjZSk7Ci0KLSAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNldCkgewot
ICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
Y29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0
LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01h
cmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zm
c2V0KSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkgewotICAgICAgICAgICAgICAgIGlmIChlbXBoYXNpc01h
cmsuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250
LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOwotICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhh
c2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFP
ZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksICAwLCBlbmRPZmZzZXQpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBv
aW50KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmln
aW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7Ci0gICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNN
YXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNl
dCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0
aW9uUG9pbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFzaGFk
b3cpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBpZiAoc2hhZG93LT5uZXh0KCkgfHwg
c3Ryb2tlZCB8fCAhb3BhcXVlKQotICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb250ZXh0LT5jbGVhclNoYWRvdygpOwotCi0gICAgICAg
IHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOwotICAgIH0gd2hpbGUgKHNoYWRvdyB8fCBzdHJva2Vk
IHx8ICFvcGFxdWUpOwotfQotCiBib29sIElubGluZVRleHRCb3g6OmdldEVtcGhhc2lzTWFya1Bv
c2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgVGV4dEVtcGhhc2lzUG9zaXRpb24mIGVt
cGhhc2lzUG9zaXRpb24pIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRy
dWUgaWYgdGhlcmUgYXJlIHRleHQgZW1waGFzaXMgbWFya3MgYW5kIHRoZXkgYXJlIHN1cHByZXNz
ZWQgYnkgcnVieSB0ZXh0LgpAQCAtNjI4LDU5ICs1ODIsOCBAQCB2b2lkIElubGluZVRleHRCb3g6
OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZz
ZXQsCiAKICAgICBjb25zdCBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93ID0gcGFpbnRJbmZvLmZvcmNl
QmxhY2tUZXh0KCkgPyAwIDogbGluZVN0eWxlLnRleHRTaGFkb3coKTsKIAotICAgIGlmICghcGFp
bnRTZWxlY3RlZFRleHRPbmx5KSB7Ci0gICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3
ZSBoYXZlIHRvIGNoYW5nZSB0aGUgdGV4dCBkcmF3aW5nIG1vZGUuICBJdCdzIHByb2JhYmx5IGRh
bmdlcm91cyB0byBsZWF2ZSB0aGF0IG11dGF0ZWQgYXMgYSBzaWRlCi0gICAgICAgIC8vIGVmZmVj
dCwgc28gb25seSB3aGVuIHdlIGtub3cgd2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3Jl
LgotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQs
IHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCk7Ci0KLSAgICAgICAgdXBkYXRlR3JhcGhp
Y3NDb250ZXh0KCpjb250ZXh0LCB0ZXh0UGFpbnRTdHlsZSk7Ci0gICAgICAgIGlmICghcGFpbnRT
ZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1BvcykgewotICAgICAgICAgICAgLy8g
RklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwg
MCwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRl
eHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRl
eHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJl
Y3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9u
dGFsKCkpOwotCi0gICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCpjb250ZXh0LCB0ZXh0UGFpbnRTdHlsZSwgVXNl
RW1waGFzaXNNYXJrQ29sb3IpOwotCi0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFRl
eHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNl
bWVudENoYXJhY3RlciwgMSkpOwotICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4
dFJ1biA9IGNvbWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6
IHRleHRSdW47Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGVtcGhhc2lzTWFya1RleHRPcmlnaW4g
PSBjb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBib3hSZWN0LndpZHRo
KCkgLyAyLCBib3hPcmlnaW4ueSgpICsgZm9udC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IHRl
eHRPcmlnaW47Ci0gICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQotICAgICAgICAgICAgICAg
IGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDbG9ja3dpc2UpKTsKLQotICAg
ICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9z
KSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4
dCBjb3JyZWN0bHkuCi0gICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4
dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVt
cGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCAwLCBs
ZW5ndGgsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRv
dywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0gICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250
ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogZm9udCwg
ZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIGVQ
b3MsIHNQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNo
YWRvdywgdGV4dFBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0K
LSAgICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+
Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGlmICgocGFpbnRTZWxlY3RlZFRleHRPbmx5IHx8IHBhaW50U2VsZWN0
ZWRUZXh0U2VwYXJhdGVseSkgJiYgc1BvcyA8IGVQb3MpIHsKLSAgICAgICAgLy8gcGFpbnQgb25s
eSB0aGUgdGV4dCB0aGF0IGlzIHNlbGVjdGVkCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCwgc2VsZWN0aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0
aCA+IDApOwotCi0gICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgc2VsZWN0
aW9uUGFpbnRTdHlsZSk7Ci0gICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZv
bnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4s
IGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uUGFpbnRTdHlsZS5zdHJva2VXaWR0
aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLSAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHNlbGVj
dGlvblBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0NvbG9yKTsKLQotICAgICAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRS
dW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKLSAgICAgICAgICAgIFRleHRS
dW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclRleHRSdW4gOiB0ZXh0UnVuOwotICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBo
YXNpc01hcmtUZXh0T3JpZ2luID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4u
eCgpICsgYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZvbnQuZm9udE1ldHJp
Y3MoKS5hc2NlbnQoKSkgOiB0ZXh0T3JpZ2luOwotICAgICAgICAgICAgaWYgKGNvbWJpbmVkVGV4
dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwg
Q2xvY2t3aXNlKSk7Ci0KLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQs
IGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBo
YXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgc1Bvcywg
ZVBvcywgbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25T
aGFkb3csIHNlbGVjdGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwo
KSk7Ci0KLSAgICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29u
dGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKLSAg
ICAgICAgfQotICAgIH0KKyAgICBUZXh0UGFpbnRlciB0ZXh0UGFpbnRlcigqY29udGV4dCwgcGFp
bnRTZWxlY3RlZFRleHRPbmx5LCBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHksIGZvbnQsIHNQ
b3MsIGVQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrLCBjb21iaW5lZFRleHQsIHRleHRSdW4sIGJv
eFJlY3QsIHRleHRPcmlnaW4sIGVtcGhhc2lzTWFya09mZnNldCwgdGV4dFNoYWRvdywgc2VsZWN0
aW9uU2hhZG93LCBpc0hvcml6b250YWwoKSwgdGV4dFBhaW50U3R5bGUsIHNlbGVjdGlvblBhaW50
U3R5bGUpOworICAgIHRleHRQYWludGVyLnBhaW50VGV4dCgpOwogCiAgICAgLy8gUGFpbnQgZGVj
b3JhdGlvbnMKICAgICBUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbnMgPSBsaW5lU3R5bGUu
dGV4dERlY29yYXRpb25zSW5FZmZlY3QoKTsKQEAgLTY4OCw3ICs1OTEsOCBAQCB2b2lkIElubGlu
ZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgdGV4
dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRUZXh0KQogICAgICAgICAgICAgY29u
dGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwotICAgICAgICBw
YWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0ZXh0RGVjb3JhdGlvbnMsIGxpbmVT
dHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFkb3cpOworCisgICAgICAgIHBhaW50
RGVjb3JhdGlvbihjb250ZXh0LCBib3hPcmlnaW4sIHRleHREZWNvcmF0aW9ucywgbGluZVN0eWxl
LnRleHREZWNvcmF0aW9uU3R5bGUoKSwgdGV4dFNoYWRvdywgdGV4dFBhaW50ZXIpOwogICAgICAg
ICBpZiAoY29tYmluZWRUZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0
aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKICAgICB9CkBAIC04ODYsOSArNzkwLDcg
QEAgc3RhdGljIGludCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGNvbnN0IFRleHRVbmRlcmxpbmVQ
b3NpdGlvbiB1bmRlcmxpbmVQb3NpdGlvbiwKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlv
blVuZGVyOiB7CiAgICAgICAgIC8vIFBvc2l0aW9uIHVuZGVybGluZSByZWxhdGl2ZSB0byB0aGUg
dW5kZXIgZWRnZSBvZiB0aGUgbG93ZXN0IGVsZW1lbnQncyBjb250ZW50IGJveC4KICAgICAgICAg
Y29uc3QgZmxvYXQgb2Zmc2V0ID0gaW5saW5lVGV4dEJveC0+cm9vdCgpLm1heExvZ2ljYWxUb3Ao
KSAtIGlubGluZVRleHRCb3gtPmxvZ2ljYWxUb3AoKTsKLSAgICAgICAgaWYgKG9mZnNldCA+IDAp
Ci0gICAgICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9naWNhbEhlaWdodCgpICsgZ2Fw
ICsgb2Zmc2V0OwotICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9naWNhbEhlaWdodCgp
ICsgZ2FwOworICAgICAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bG9naWNhbEhlaWdodCgpICsg
Z2FwICsgbWF4PGZsb2F0PihvZmZzZXQsIDApOwogICAgIH0KICAgICB9CiAKQEAgLTEwMjEsOCAr
OTIzLDExIEBAIHN0YXRpYyB2b2lkIHN0cm9rZVdhdnlUZXh0RGVjb3JhdGlvbihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIEZsb2F0UG9pbnQmIHAxLCBGCiB9CiAjZW5kaWYgLy8gQ1NTM19URVhU
CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBUZXh0RGVjb3JhdGlvbiBkZWNv
LCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSog
c2hhZG93KQordm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9u
IGRlY28sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dE
YXRhKiBzaGFkb3csIFRleHRQYWludGVyJiB0ZXh0UGFpbnRlcikKIHsKKyNpZiAhRU5BQkxFKENT
UzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIFVOVVNFRF9QQVJBTSh0ZXh0UGFpbnRlcik7CisjZW5k
aWYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGltcHJvdmUgdGhpcyBydWxlIGFuZCBub3QgYWx3
YXlzIGp1c3QgYXNzdW1lIDEuCiAgICAgY29uc3QgZmxvYXQgdGV4dERlY29yYXRpb25UaGlja25l
c3MgPSAxLmY7CiAKQEAgLTEwOTUsNiArMTAwMCwzOSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBh
aW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQm
CiAgICAgICAgIC8vIE9mZnNldCBiZXR3ZWVuIGxpbmVzIC0gYWx3YXlzIG5vbi16ZXJvLCBzbyBs
aW5lcyBuZXZlciBjcm9zcyBlYWNoIG90aGVyLgogICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQg
PSB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyArIDEuZjsKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyAg
ICAgICAgCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICBUZXh0RGVj
b3JhdGlvblNraXAgdGV4dERlY29yYXRpb25Ta2lwID0gbGluZVN0eWxlLnRleHREZWNvcmF0aW9u
U2tpcCgpOworICAgICAgICBib29sIGNsaXBEZWNvcmF0aW9uVG9NYXNrID0gdGV4dERlY29yYXRp
b25Ta2lwID09IFRleHREZWNvcmF0aW9uU2tpcEluazsKKyAgICAgICAgCisgICAgICAgIGlmIChj
bGlwRGVjb3JhdGlvblRvTWFzaykgeworICAgICAgICAgICAgY29udGV4dC0+c2F2ZSgpOworCisg
ICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGV4dGVudCBvZiBwYWludFRleHRBcmdzLmJveFJl
Y3QgaW4gZGV2aWNlLXNwYWNlIChub3QgdXNlci1zcGFjZSkKKyAgICAgICAgICAgIEFmZmluZVRy
YW5zZm9ybSBjdG0gPSBjb250ZXh0LT5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5
SW5jbHVkZURldmljZVNjYWxlKTsKKyAgICAgICAgICAgIEFTU0VSVChjdG0uaXNJbnZlcnRpYmxl
KCkpOworICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0ID0gdGV4dFBhaW50ZXIu
Ym94UmVjdCgpOworICAgICAgICAgICAgSW50UmVjdCBlbmNsb3NpbmdEZXZpY2VSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChjdG0ubWFwUXVhZChib3hSZWN0KS5ib3VuZGluZ0JveCgpKTsKKworICAg
ICAgICAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IGNvbnRleHQtPmNyZWF0
ZUNvbXBhdGlibGVCdWZmZXIoZW5jbG9zaW5nRGV2aWNlUmVjdC5zaXplKCkpOworICAgICAgICAg
ICAgaWYgKGltYWdlQnVmZmVyLmdldCgpKSB7CisgICAgICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0KiBtYXNrQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7CisgICAgICAgICAgICAg
ICAgbWFza0NvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZp
Y2VSR0IpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRMaW5lSm9pbihSb3VuZEpv
aW4pOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT50cmFuc2xhdGUoRmxvYXRQb2ludCgp
IC0gZW5jbG9zaW5nRGV2aWNlUmVjdC5sb2NhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBtYXNr
Q29udGV4dC0+Y29uY2F0Q1RNKGN0bSk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPmZp
bGxSZWN0KGJveFJlY3QpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRDb21wb3Np
dGVPcGVyYXRpb24oQ29tcG9zaXRlQ2xlYXIpOworCisgICAgICAgICAgICAgICAgdGV4dFBhaW50
ZXIucGFpbnRUaGlja1RleHRJbk1hc2soKm1hc2tDb250ZXh0KTsKKworICAgICAgICAgICAgICAg
IC8vIEFwcGx5IG1hc2sgaW4gZGV2aWNlIHNwYWNlIHNvIHRoZSBxdWFkIGlzIGF4aXMtYWxpZ25l
ZAorICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShjdG0uaW52ZXJzZSgpKTsKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5jbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlci5nZXQo
KSwgZW5jbG9zaW5nRGV2aWNlUmVjdCk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0
Q1RNKGN0bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZiAvLyBDU1MzX1RFWFRf
REVDT1JBVElPTgogICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZSh0ZXh0RGVjb3JhdGlv
blN0eWxlVG9TdHJva2VTdHlsZShkZWNvcmF0aW9uU3R5bGUpKTsKICAgICAgICAgaWYgKGRlY28g
JiBUZXh0RGVjb3JhdGlvblVuZGVybGluZSkgewogICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3IodW5kZXJsaW5lLCBjb2xvclNwYWNlKTsKQEAgLTExMzksNiArMTA3NywxMCBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICB9CiAjZW5kaWYgLy8gQ1NTM19URVhU
CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgICAgIGlm
IChjbGlwRGVjb3JhdGlvblRvTWFzaykKKyAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsK
KyNlbmRpZgogICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHsK
ICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGxpbmV0aHJvdWdoLCBjb2xvclNw
YWNlKTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmgKaW5kZXggMTU0MTljNDU5N2YzMzcxZmZiZTQyZDQxNjUzZGNiMWUyZTU1MmY3
NC4uZGMzMGE0MGVjODQ3ZDM3MjdmMDgyNTE1Njk0YTVkZTY5NmFiN2NjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0zMCw4ICszMCwxMSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIGNsYXNzIERv
Y3VtZW50TWFya2VyOworY2xhc3MgUmVuZGVyQ29tYmluZVRleHQ7CitjbGFzcyBUZXh0UGFpbnRl
cjsKKworc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogCiBjb25zdCB1bnNpZ25lZCBzaG9y
dCBjTm9UcnVuY2F0aW9uID0gVVNIUlRfTUFYOwogY29uc3QgdW5zaWduZWQgc2hvcnQgY0Z1bGxU
cnVuY2F0aW9uID0gVVNIUlRfTUFYIC0gMTsKQEAgLTE4MCw3ICsxODMsNyBAQCBwcm90ZWN0ZWQ6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0
RGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKik7CisgICAgdm9pZCBwYWludERlY29y
YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBUZXh0
RGVjb3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSosIFRleHRQ
YWludGVyJik7CiAgICAgdm9pZCBwYWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYs
IENvbG9yIHRleHRDb2xvcik7CiAgICAgdm9pZCBwYWludERvY3VtZW50TWFya2VyKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBib29sIGdyYW1tYXIpOwogICAgIHZvaWQg
cGFpbnRUZXh0TWF0Y2hNYXJrZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYg
Ym94T3JpZ2luLCBEb2N1bWVudE1hcmtlciosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9u
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDk0NWRkZGNkNjYxMjc3NDQwMzM4NWQ2NDQzOGNjNGJjNTU5ODNjNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKQEAgLTAsMCArMSwx
ODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRQYWludGVyLmgi
CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbmxpbmVUZXh0Qm94
LmgiCisjaW5jbHVkZSAiUmVuZGVyQ29tYmluZVRleHQuaCIKKyNpbmNsdWRlICJUZXh0UGFpbnRT
dHlsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RleHRQYWludGVyOjpUZXh0UGFpbnRl
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5LCBi
b29sIHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSwgY29uc3QgRm9udCYgZm9udCwKKyAgICBp
bnQgc1BvcywgaW50IGVQb3MsIGludCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFz
aXNNYXJrLCBSZW5kZXJDb21iaW5lVGV4dCogY29tYmluZWRUZXh0LCBUZXh0UnVuJiB0ZXh0UnVu
LAorICAgIEZsb2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwgaW50IGVt
cGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdywgY29uc3QgU2hh
ZG93RGF0YSogc2VsZWN0aW9uU2hhZG93LAorICAgIGJvb2wgaG9yaXpvbnRhbCwgVGV4dFBhaW50
U3R5bGUmIHRleHRQYWludFN0eWxlLCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0aW9uUGFpbnRTdHls
ZSkKKyAgICA6IG1fcGFpbnRTZWxlY3RlZFRleHRPbmx5KHBhaW50U2VsZWN0ZWRUZXh0T25seSkK
KyAgICAsIG1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KHBhaW50U2VsZWN0ZWRUZXh0U2Vw
YXJhdGVseSkKKyAgICAsIG1fZm9udChmb250KQorICAgICwgbV9zUG9zKHNQb3MpCisgICAgLCBt
X2VQb3MoZVBvcykKKyAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAsIG1fZW1waGFzaXNNYXJr
KGVtcGhhc2lzTWFyaykKKyAgICAsIG1fY29tYmluZWRUZXh0KGNvbWJpbmVkVGV4dCkKKyAgICAs
IG1fdGV4dFJ1bih0ZXh0UnVuKQorICAgICwgbV9ib3hSZWN0KGJveFJlY3QpCisgICAgLCBtX3Rl
eHRPcmlnaW4odGV4dE9yaWdpbikKKyAgICAsIG1fZW1waGFzaXNNYXJrT2Zmc2V0KGVtcGhhc2lz
TWFya09mZnNldCkKKyAgICAsIG1faG9yaXpvbnRhbChob3Jpem9udGFsKQorICAgICwgbV9zYXZl
ZERyYXdpbmdTdGF0ZUZvck1hc2soJmNvbnRleHQsICZ0ZXh0UGFpbnRTdHlsZSwgJnNlbGVjdGlv
blBhaW50U3R5bGUsIHRleHRTaGFkb3csIHNlbGVjdGlvblNoYWRvdykKK3sKK30KKworc3RhdGlj
IHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNTdHJpbmcm
IGVtcGhhc2lzTWFyaywKKyAgICBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3RhcnRPZmZz
ZXQsIGludCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEZsb2F0UG9pbnQm
IHRleHRPcmlnaW4sIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwKKyAgICBjb25zdCBTaGFkb3dE
YXRhKiBzaGFkb3csIGJvb2wgc3Ryb2tlZCwgYm9vbCBob3Jpem9udGFsKQoreworICAgIENvbG9y
IGZpbGxDb2xvciA9IGNvbnRleHQtPmZpbGxDb2xvcigpOworICAgIENvbG9yU3BhY2UgZmlsbENv
bG9yU3BhY2UgPSBjb250ZXh0LT5maWxsQ29sb3JTcGFjZSgpOworICAgIGJvb2wgb3BhcXVlID0g
ZmlsbENvbG9yLmFscGhhKCkgPT0gMjU1OworICAgIGlmICghb3BhcXVlKQorICAgICAgICBjb250
ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBmaWxsQ29sb3JTcGFjZSk7CisKKyAgICBk
byB7CisgICAgICAgIEludFNpemUgZXh0cmFPZmZzZXQ7CisgICAgICAgIGlmIChzaGFkb3cpCisg
ICAgICAgICAgICBleHRyYU9mZnNldCA9IHJvdW5kZWRJbnRTaXplKElubGluZVRleHRCb3g6OmFw
cGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2hhZG93LCBib3hSZWN0LCBzdHJv
a2VkLCBvcGFxdWUsIGhvcml6b250YWwpKTsKKyAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKKyAg
ICAgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNl
KTsKKworICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0gZW5kT2Zmc2V0KSB7CisgICAgICAgICAg
ICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9y
aWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBzdGFy
dE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChl
bmRPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4s
IHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhm
b250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIElu
dFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJh
T2Zmc2V0LCBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQs
IHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6
ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNoYWRvdykKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChzaGFkb3ctPm5leHQoKSB8fCBzdHJva2VkIHx8
ICFvcGFxdWUpCisgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CisKKyAgICAgICAgc2hhZG93ID0g
c2hhZG93LT5uZXh0KCk7CisgICAgfSB3aGlsZSAoc2hhZG93IHx8IHN0cm9rZWQgfHwgIW9wYXF1
ZSk7Cit9CisKK2VudW0gUm90YXRpb25EaXJlY3Rpb24geyBDb3VudGVyY2xvY2t3aXNlLCBDbG9j
a3dpc2UgfTsKKworc3RhdGljIGlubGluZSBBZmZpbmVUcmFuc2Zvcm0gcm90YXRpb24oY29uc3Qg
RmxvYXRSZWN0JiBib3hSZWN0LCBSb3RhdGlvbkRpcmVjdGlvbiBjbG9ja3dpc2UpCit7CisgICAg
cmV0dXJuIGNsb2Nrd2lzZSA/IEFmZmluZVRyYW5zZm9ybSgwLCAxLCAtMSwgMCwgYm94UmVjdC54
KCkgKyBib3hSZWN0Lm1heFkoKSwgYm94UmVjdC5tYXhZKCkgLSBib3hSZWN0LngoKSkKKyAgICAg
ICAgOiBBZmZpbmVUcmFuc2Zvcm0oMCwgLTEsIDEsIDAsIGJveFJlY3QueCgpIC0gYm94UmVjdC5t
YXhZKCksIGJveFJlY3QueCgpICsgYm94UmVjdC5tYXhZKCkpOworfQorCit2b2lkIFRleHRQYWlu
dGVyOjpwYWludFRleHQoKQoreworICAgIEFTU0VSVChtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFz
ay5tX3RleHRQYWludFN0eWxlKTsKKyAgICBBU1NFUlQobV9zYXZlZERyYXdpbmdTdGF0ZUZvck1h
c2subV9zZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IGJveE9yaWdp
biA9IGJveFJlY3QoKS5sb2NhdGlvbigpOworCisgICAgaWYgKCFtX3BhaW50U2VsZWN0ZWRUZXh0
T25seSkgeworICAgICAgICAvLyBGb3Igc3Ryb2tlZCBwYWludGluZywgd2UgaGF2ZSB0byBjaGFu
Z2UgdGhlIHRleHQgZHJhd2luZyBtb2RlLiBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2
ZSB0aGF0IG11dGF0ZWQgYXMgYSBzaWRlCisgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVu
IHdlIGtub3cgd2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgorICAgICAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JN
YXNrLm1fY29udGV4dCwgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHls
ZS0+c3Ryb2tlV2lkdGggPiAwKTsKKworICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKm1f
c2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgKm1fc2F2ZWREcmF3aW5nU3RhdGVG
b3JNYXNrLm1fdGV4dFBhaW50U3R5bGUpOworICAgICAgICBpZiAoIW1fcGFpbnRTZWxlY3RlZFRl
eHRTZXBhcmF0ZWx5IHx8IG1fZVBvcyA8PSBtX3NQb3MpIHsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgcGFp
bnRUZXh0V2l0aFNoYWRvd3MobV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCBt
X2ZvbnQsIG1fdGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIG1fbGVuZ3RoLCBtX2xlbmd0aCwgbV90
ZXh0T3JpZ2luLCBtX2JveFJlY3QsIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFNo
YWRvdywgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZS0+c3Ryb2tl
V2lkdGggPiAwLCBtX2hvcml6b250YWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHBh
aW50VGV4dFdpdGhTaGFkb3dzKG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwg
bV9mb250LCBtX3RleHRSdW4sIG51bGxBdG9tLCAwLCBtX2VQb3MsIG1fc1BvcywgbV9sZW5ndGgs
IG1fdGV4dE9yaWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3Rl
eHRTaGFkb3csIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUtPnN0
cm9rZVdpZHRoID4gMCwgbV9ob3Jpem9udGFsKTsKKworICAgICAgICBpZiAoIW1fZW1waGFzaXNN
YXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCptX3Nh
dmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICptX3NhdmVkRHJhd2luZ1N0YXRlRm9y
TWFzay5tX3RleHRQYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CisKKyAgICAgICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0
ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAg
ICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RS
ZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4gOiBtX3RleHRSdW47CisgICAgICAgICAgICBGbG9h
dFBvaW50IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9p
bnQoYm94T3JpZ2luLngoKSArIG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSAr
IG1fZm9udC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKKyAgICAgICAg
ICAgIGlmIChtX2NvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBtX3NhdmVkRHJhd2luZ1N0
YXRlRm9yTWFzay5tX2NvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihtX2JveFJlY3QsIENsb2Nr
d2lzZSkpOworCisgICAgICAgICAgICBpZiAoIW1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5
IHx8IG1fZVBvcyA8PSBtX3NQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNh
dGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRl
eHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsIG1fY29t
YmluZWRUZXh0ID8gbV9jb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogbV9mb250LCBlbXBo
YXNpc01hcmtUZXh0UnVuLCBtX2VtcGhhc2lzTWFyaywgbV9lbXBoYXNpc01hcmtPZmZzZXQsIDAs
IG1fbGVuZ3RoLCBtX2xlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgbV9ib3hSZWN0LCBt
X3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRTaGFkb3csIG1fc2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCwgbV9ob3Jpem9udGFs
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFk
b3dzKG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9jb21iaW5lZFRleHQg
PyBtX2NvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBtX2ZvbnQsIGVtcGhhc2lzTWFya1Rl
eHRSdW4sIG1fZW1waGFzaXNNYXJrLCBtX2VtcGhhc2lzTWFya09mZnNldCwgbV9lUG9zLCBtX3NQ
b3MsIG1fbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBtX2JveFJlY3QsIG1fc2F2ZWRE
cmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFNoYWRvdywgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1h
c2subV90ZXh0UGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggPiAwLCBtX2hvcml6b250YWwpOworCisg
ICAgICAgICAgICBpZiAobV9jb21iaW5lZFRleHQpCisgICAgICAgICAgICAgICAgbV9zYXZlZERy
YXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24obV9ib3hSZWN0
LCBDb3VudGVyY2xvY2t3aXNlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKG1fcGFp
bnRTZWxlY3RlZFRleHRPbmx5IHx8IG1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KSAmJiBt
X3NQb3MgPCBtX2VQb3MpIHsKKyAgICAgICAgLy8gcGFpbnQgb25seSB0aGUgdGV4dCB0aGF0IGlz
IHNlbGVjdGVkCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigq
bV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCBtX3NhdmVkRHJhd2luZ1N0YXRl
Rm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCk7CisKKyAgICAg
ICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2Nv
bnRleHQsICptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUp
OworICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFz
ay5tX2NvbnRleHQsIG1fZm9udCwgbV90ZXh0UnVuLCBudWxsQXRvbSwgMCwgbV9zUG9zLCBtX2VQ
b3MsIG1fbGVuZ3RoLCBtX3RleHRPcmlnaW4sIG1fYm94UmVjdCwgbV9zYXZlZERyYXdpbmdTdGF0
ZUZvck1hc2subV9zZWxlY3Rpb25TaGFkb3csIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1f
c2VsZWN0aW9uUGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggPiAwLCBtX2hvcml6b250YWwpOworICAg
ICAgICBpZiAoIW1fZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRl
R3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICpt
X3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUsIFVzZUVtcGhh
c2lzTWFya0NvbG9yKTsKKworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVu
LCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXIsIDEpKTsKKyAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4g
PSBtX2NvbWJpbmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IG1f
dGV4dFJ1bjsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9
IG1fY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0Lndp
ZHRoKCkgLyAyLCBib3hPcmlnaW4ueSgpICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkp
IDogbV90ZXh0T3JpZ2luOworICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQorICAgICAg
ICAgICAgICAgIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dC0+Y29uY2F0Q1RN
KHJvdGF0aW9uKG1fYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisKKyAgICAgICAgICAgIHBhaW50VGV4
dFdpdGhTaGFkb3dzKG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9jb21i
aW5lZFRleHQgPyBtX2NvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBtX2ZvbnQsIGVtcGhh
c2lzTWFya1RleHRSdW4sIG1fZW1waGFzaXNNYXJrLCBtX2VtcGhhc2lzTWFya09mZnNldCwgbV9z
UG9zLCBtX2VQb3MsIG1fbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBtX2JveFJlY3Qs
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9uU2hhZG93LCBtX3NhdmVkRHJh
d2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCwg
bV9ob3Jpem9udGFsKTsKKworICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQorICAgICAg
ICAgICAgICAgIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dC0+Y29uY2F0Q1RN
KHJvdGF0aW9uKG1fYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOworICAgICAgICB9CisgICAg
fQorfQorCit2b2lkIFRleHRQYWludGVyOjpwYWludFRoaWNrVGV4dEluTWFzayhHcmFwaGljc0Nv
bnRleHQmIG1hc2tDb250ZXh0KQoreworICAgIGNvbnN0IGZsb2F0IHNraXBJbmtHYXBXaWR0aCA9
IDEuZjsKKyAgICAKKyAgICBTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2sgc2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrID0gbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2s7CisgICAgCisgICAgQVNTRVJU
KG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUpOworICAgIEFTU0VS
VChtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUpOworICAg
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCA9ICZtYXNrQ29udGV4dDsKKyAg
ICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRQYWludFN0eWxlLT5zdHJva2VXaWR0
aCArPSBza2lwSW5rR2FwV2lkdGg7CisgICAgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9z
ZWxlY3Rpb25QYWludFN0eWxlLT5zdHJva2VXaWR0aCArPSBza2lwSW5rR2FwV2lkdGg7CisgICAg
bV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0U2hhZG93ID0gbnVsbHB0cjsKKyAgICBt
X3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblNoYWRvdyA9IG51bGxwdHI7Cisg
ICAgcGFpbnRUZXh0KCk7CisKKyAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayA9IHNhdmVk
RHJhd2luZ1N0YXRlRm9yTWFzazsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTRjZTZmMTJjZDc2NmY1
MTYzYmFjYTNhZTk4NDM4NDMzNDZjNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFRleHRQYWludGVyX2gKKyNkZWZpbmUgVGV4dFBhaW50ZXJfaAorCisjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckNvbWJpbmVUZXh0
OworCitzdHJ1Y3QgVGV4dFBhaW50U3R5bGU7CisKK3N0cnVjdCBTYXZlZERyYXdpbmdTdGF0ZUZv
ck1hc2sgeworICAgIFNhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIFRleHRQYWludFN0eWxlKiB0ZXh0UGFpbnRTdHlsZSwgVGV4dFBhaW50U3R5bGUqIHNl
bGVjdGlvblBhaW50U3R5bGUsCisgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdywgY29u
c3QgU2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93KQorICAgICAgICA6IG1fY29udGV4dChjb250
ZXh0KQorICAgICAgICAsIG1fdGV4dFBhaW50U3R5bGUodGV4dFBhaW50U3R5bGUpCisgICAgICAg
ICwgbV9zZWxlY3Rpb25QYWludFN0eWxlKHNlbGVjdGlvblBhaW50U3R5bGUpCisgICAgICAgICwg
bV90ZXh0U2hhZG93KHRleHRTaGFkb3cpCisgICAgICAgICwgbV9zZWxlY3Rpb25TaGFkb3coc2Vs
ZWN0aW9uU2hhZG93KQorICAgIHsKKyAgICB9CisgICAgR3JhcGhpY3NDb250ZXh0KiBtX2NvbnRl
eHQ7CisgICAgVGV4dFBhaW50U3R5bGUqIG1fdGV4dFBhaW50U3R5bGU7CisgICAgVGV4dFBhaW50
U3R5bGUqIG1fc2VsZWN0aW9uUGFpbnRTdHlsZTsKKyAgICBjb25zdCBTaGFkb3dEYXRhKiBtX3Rl
eHRTaGFkb3c7CisgICAgY29uc3QgU2hhZG93RGF0YSogbV9zZWxlY3Rpb25TaGFkb3c7Cit9Owor
CitjbGFzcyBUZXh0UGFpbnRlciB7CitwdWJsaWM6CisgICAgVGV4dFBhaW50ZXIoR3JhcGhpY3ND
b250ZXh0JiwgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHksIGJvb2wgcGFpbnRTZWxlY3RlZFRl
eHRTZXBhcmF0ZWx5LCBjb25zdCBGb250JiwKKyAgICBpbnQgc1BvcywgaW50IGVQb3MsIGludCBs
ZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBSZW5kZXJDb21iaW5lVGV4
dCosIFRleHRSdW4mLAorICAgIEZsb2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4dE9y
aWdpbiwgaW50IGVtcGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRv
dywgY29uc3QgU2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93LAorICAgIGJvb2wgaG9yaXpvbnRh
bCwgVGV4dFBhaW50U3R5bGUmIG5vblNlbGVjdGlvblBhaW50U3R5bGUsIFRleHRQYWludFN0eWxl
JiBzZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICAKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJveFJl
Y3QoKSB7IHJldHVybiBtX2JveFJlY3Q7IH0KKyAgICB2b2lkIHBhaW50VGV4dCgpOworICAgIHZv
aWQgcGFpbnRUaGlja1RleHRJbk1hc2soR3JhcGhpY3NDb250ZXh0Jik7CisKK3ByaXZhdGU6Cisg
ICAgYm9vbCBtX3BhaW50U2VsZWN0ZWRUZXh0T25seTsKKyAgICBib29sIG1fcGFpbnRTZWxlY3Rl
ZFRleHRTZXBhcmF0ZWx5OworICAgIGNvbnN0IEZvbnQmIG1fZm9udDsKKyAgICBpbnQgbV9zUG9z
OworICAgIGludCBtX2VQb3M7CisgICAgaW50IG1fbGVuZ3RoOworICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbV9lbXBoYXNpc01hcms7CisgICAgUmVuZGVyQ29tYmluZVRleHQqIG1fY29tYmluZWRU
ZXh0OworICAgIFRleHRSdW4mIG1fdGV4dFJ1bjsKKyAgICBGbG9hdFJlY3QmIG1fYm94UmVjdDsK
KyAgICBGbG9hdFBvaW50JiBtX3RleHRPcmlnaW47CisgICAgaW50IG1fZW1waGFzaXNNYXJrT2Zm
c2V0OworICAgIGJvb2wgbV9ob3Jpem9udGFsOworICAgIFNhdmVkRHJhd2luZ1N0YXRlRm9yTWFz
ayBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFRleHRQYWludGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZTkzYjQ2MzlhMmUxN2FlZDA5NTUwZDkyMGNjMmM2
NDIwM2JjNmI2YS4uZWVjMmFiZDIyM2M4ZGNjZGU2NTcyOWQ4MzAzZjAwM2YzNDA0YWNhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTU4NCw2
ICs1ODQsOSBAQCBwdWJsaWM6CiAjZWxzZQogICAgIFRleHREZWNvcmF0aW9uU3R5bGUgdGV4dERl
Y29yYXRpb25TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGVTb2xpZDsg
fQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikK
KyAgICBUZXh0RGVjb3JhdGlvblNraXAgdGV4dERlY29yYXRpb25Ta2lwKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8VGV4dERlY29yYXRpb25Ta2lwPihyYXJlSW5oZXJpdGVkRGF0YS0+bV90
ZXh0RGVjb3JhdGlvblNraXApOyB9CisjZW5kaWYKICAgICBpbnQgd29yZFNwYWNpbmcoKSBjb25z
dDsKICAgICBpbnQgbGV0dGVyU3BhY2luZygpIGNvbnN0OwogCkBAIC0xMTY2LDYgKzExNjksOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0SnVzdGlmeShUZXh0SnVzdGlmeSB2KSB7IFNFVF9W
QVIocmFyZUluaGVyaXRlZERhdGEsIG1fdGV4dEp1c3RpZnksIHYpOyB9CiAgICAgdm9pZCBzZXRU
ZXh0VW5kZXJsaW5lUG9zaXRpb24oVGV4dFVuZGVybGluZVBvc2l0aW9uIHYpIHsgU0VUX1ZBUihy
YXJlSW5oZXJpdGVkRGF0YSwgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24sIHYpOyB9CiAjZW5kaWYg
Ly8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHZvaWQg
c2V0VGV4dERlY29yYXRpb25Ta2lwKFRleHREZWNvcmF0aW9uU2tpcCBza2lwKSB7IFNFVF9WQVIo
cmFyZUluaGVyaXRlZERhdGEsIG1fdGV4dERlY29yYXRpb25Ta2lwLCBza2lwKTsgfQorI2VuZGlm
CiAgICAgdm9pZCBzZXREaXJlY3Rpb24oVGV4dERpcmVjdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFn
cy5fZGlyZWN0aW9uID0gdjsgfQogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogICAg
IHZvaWQgc2V0U3BlY2lmaWVkTGluZUhlaWdodChMZW5ndGggdik7CkBAIC0xNjg3LDYgKzE2OTMs
OSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRleHRKdXN0aWZ5IGluaXRpYWxUZXh0SnVzdGlmeSgp
IHsgcmV0dXJuIFRleHRKdXN0aWZ5QXV0bzsgfQogICAgIHN0YXRpYyBUZXh0VW5kZXJsaW5lUG9z
aXRpb24gaW5pdGlhbFRleHRVbmRlcmxpbmVQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRVbmRlcmxp
bmVQb3NpdGlvbkF1dG87IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19U
RVhUX0RFQ09SQVRJT04pCisgICAgc3RhdGljIFRleHREZWNvcmF0aW9uU2tpcCBpbml0aWFsVGV4
dERlY29yYXRpb25Ta2lwKCkgeyByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9uZTsgfQorI2Vu
ZGlmCiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxab29tKCkgeyByZXR1cm4gMS4wZjsgfQogICAg
IHN0YXRpYyBpbnQgaW5pdGlhbE91dGxpbmVPZmZzZXQoKSB7IHJldHVybiAwOyB9CiAgICAgc3Rh
dGljIGZsb2F0IGluaXRpYWxPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRl
eCBmMjZlNWE3MDMzYmEzOGZmNWYzNGZiZDE1Zjk1N2E4YTAzYTIwZGFjLi4zYmRlMDdhYTdhYTBl
NjMzOGY0YmI3YjM0NjIyZmQ1Y2UzOTM4NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMzc5LDYgKzM3OSwx
MyBAQCBlbnVtIFRleHRKdXN0aWZ5IHsKIH07CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAKKyNpZiBF
TkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCitlbnVtIFRleHREZWNvcmF0aW9uU2tpcEl0ZW1z
IHsKKyAgICBUZXh0RGVjb3JhdGlvblNraXBOb25lID0gMHgwLCBUZXh0RGVjb3JhdGlvblNraXBJ
bmsgPSAxIDw8IDAKK307Cit0eXBlZGVmIHVuc2lnbmVkIFRleHREZWNvcmF0aW9uU2tpcDsKKyNl
bmRpZgorCiBlbnVtIEVQYWdlQnJlYWsgewogICAgIFBCQVVUTywgUEJBTFdBWVMsIFBCQVZPSUQK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMGZjZmIwOGNmOTI2MzIzOGVhYzVlODExYWJlMzBh
Y2U3MTRiMWI4NC4uNGU0ZmMyOTNhMmQ3MTg1ZGMwZmUwMTYwYjk3NjI3YjE2NTY4YzBlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgU2FtZVNpemVBc1N0eWxl
UmFyZUluaGVyaXRlZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxTYW1lU2l6ZUFzU3R5bGVSYXJl
SQogICAgIExlbmd0aCBsZW5ndGhzWzFdOwogICAgIGZsb2F0IHNlY29uZEZsb2F0OwogICAgIHVu
c2lnbmVkIG1fYml0ZmllbGRzWzJdOworI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikK
KyAgICB1bnNpZ25lZCBtX2JpdGZpZWxkc0V4dHJhOworI2VuZGlmCiAgICAgc2hvcnQgcGFnZWRN
ZWRpYVNob3J0c1syXTsKICAgICB1bnNpZ25lZCB1bnNpZ25lZHNbMV07CiAgICAgc2hvcnQgaHlw
aGVuYXRpb25TaG9ydHNbM107CkBAIC0xMTIsNiArMTE1LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBtX3RleHRKdXN0aWZ5KFJlbmRl
clN0eWxlOjppbml0aWFsVGV4dEp1c3RpZnkoKSkKICAgICAsIG1fdGV4dFVuZGVybGluZVBvc2l0
aW9uKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dFVuZGVybGluZVBvc2l0aW9uKCkpCiAjZW5kaWYg
Ly8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICwgbV90
ZXh0RGVjb3JhdGlvblNraXAoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXAo
KSkKKyNlbmRpZgogICAgICwgbV9ydWJ5UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxSdWJ5
UG9zaXRpb24oKSkKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCB0b3VjaENhbGxvdXRFbmFibGVk
KFJlbmRlclN0eWxlOjppbml0aWFsVG91Y2hDYWxsb3V0RW5hYmxlZCgpKQpAQCAtMTkzLDYgKzE5
OSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIG1fdGV4dEp1c3RpZnkoby5tX3Rl
eHRKdXN0aWZ5KQogICAgICwgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24oby5tX3RleHRVbmRlcmxp
bmVQb3NpdGlvbikKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCisgICAgLCBtX3RleHREZWNvcmF0aW9uU2tpcChvLm1fdGV4dERlY29yYXRpb25T
a2lwKQorI2VuZGlmCiAgICAgLCBtX3J1YnlQb3NpdGlvbihvLm1fcnVieVBvc2l0aW9uKQogI2lm
IFBMQVRGT1JNKElPUykKICAgICAsIHRvdWNoQ2FsbG91dEVuYWJsZWQoby50b3VjaENhbGxvdXRF
bmFibGVkKQpAQCAtMzE1LDYgKzMyNCw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6
b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAg
ICAmJiBtX3RleHRKdXN0aWZ5ID09IG8ubV90ZXh0SnVzdGlmeQogICAgICAgICAmJiBtX3RleHRV
bmRlcmxpbmVQb3NpdGlvbiA9PSBvLm1fdGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8g
Q1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICAmJiBt
X3RleHREZWNvcmF0aW9uU2tpcCA9PSBvLm1fdGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYKICAg
ICAgICAgJiYgbV9ydWJ5UG9zaXRpb24gPT0gby5tX3J1YnlQb3NpdGlvbgogICAgICAgICAmJiBt
X2xpbmVTbmFwID09IG8ubV9saW5lU25hcAogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmgKaW5kZXggODkwOGI1NTk2NDM5ODMzNDhiMjIwZTRiNWM5NTYzNTI4NTk4NTk3Zi4u
YjEyNDlmZDQ4ZmJiOTZlYmFlZmI5OWViMDhiMTY5NDA0Y2JmMzE1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
CkBAIC0xMjYsNiArMTI2LDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1fdGV4dEp1c3RpZnkg
OiAzOyAvLyBUZXh0SnVzdGlmeQogICAgIHVuc2lnbmVkIG1fdGV4dFVuZGVybGluZVBvc2l0aW9u
IDogMzsgLy8gVGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYg
RU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHVuc2lnbmVkIG1fdGV4dERlY29yYXRp
b25Ta2lwIDogNTsgLy8gVGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYKICAgICB1bnNpZ25lZCBt
X3J1YnlQb3NpdGlvbiA6IDE7IC8vIFJ1YnlQb3NpdGlvbgogCiAjaWYgUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCBhOTJmNTIzYTkxYzI1YzcxNGFkODY5OTNjNWNlYWQzZDM2MzY1
ZTI2Li4wNzFlMjEzM2Y5OTA3MmE4NjMyMTNjZWU1ODIwNjdiZTAwZDM3YzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwpAQCAtNTgsNiArNTgsNyBAQCBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9O
U19VTlBSRUZJWEVEID0gRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVQogRU5BQkxF
X0NTU19WQVJJQUJMRVMgPSA7CiBFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyA9IDsKIEVO
QUJMRV9DU1MzX1RFWFQgPSA7CitFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04gPSBFTkFCTEVf
Q1NTM19URVhUX0RFQ09SQVRJT047CiBFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsgPSA7CiBF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgPSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFk7CiBFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSID0gOwpAQCAtMTg2LDQgKzE4Nyw0IEBAIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKIEVOQUJMRV9GVExfSklUID0gOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
QU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFC
TEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikg
JChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1Nf
U0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNG
T1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5B
QkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVO
QUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQo
RU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xP
QURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRM
SU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAk
KEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5U
KSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVf
UFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChF
TkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQo
RU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykg
JChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRF
UlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChF
TkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVf
Q1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFC
TEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQp
ICQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9C
UkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBM
T0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRFJBR0dBQkxF
X1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUFfVjIpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJ
R0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VB
TUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lORElFX1VJKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJD
RSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChF
TkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1BST01J
U0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAk
KEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVUJQSVhFTF9M
QVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVEX0hU
TUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxF
Q1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJ
RVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJT
KSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkg
JChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGE5MmY1
MjNhOTFjMjVjNzE0YWQ4Njk5M2M1Y2VhZDNkMzYzNjVlMjYuLjM5Nzg3ODYyYzQ2ZTdkZjdhNDlm
Zjg3YjQ3M2RiZjIwOTk3MWVlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01OCw2ICs1OCw3IEBAIEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQgPSBFTkFCTEVfQ1NTX1RSQU5T
Rk9STVNfQU5JTUFUSU9OU19VCiBFTkFCTEVfQ1NTX1ZBUklBQkxFUyA9IDsKIEVOQUJMRV9DU1Mz
X0NPTkRJVElPTkFMX1JVTEVTID0gOwogRU5BQkxFX0NTUzNfVEVYVCA9IDsKK0VOQUJMRV9DU1Mz
X1RFWFRfREVDT1JBVElPTiA9IEVOQUJMRV9DU1NfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxFX0NT
UzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsKQEAg
LTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVfRlRM
X0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hF
X1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9Y
WSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9D
U1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJ
VElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVO
QUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RP
TTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURE
RU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChF
TkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElM
UykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykg
JChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BS
T1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVf
U1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5B
QkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5B
QkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJ
QSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9U
SU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5F
U18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVO
QUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9D
QU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVY
VCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykg
JChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19T
VElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVG
SVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9S
VUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTikg
JChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQ
T1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lU
RU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJM
RV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FN
RVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1F
Ul9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FD
WV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVT
U19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykg
JChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRB
QkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxF
X1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFN
RSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGRjNGNkNzhlYzMwOGM4NjUxOWZkYmQxMWE4NzhjZmYwMDY1NWU3OTMuLjI2Njk1ZDE5NzNiNjI0
MGNkODgyMmI5OGVmMDU4MTQ0NmUxYTM3YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1w
bGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbToKKwogMjAxMy0xMC0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgLS02NC1iaXQgdGFyZ2V0
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDg4Y2MzMmNmMzgz
YWNhMDQ5NGZkYjJiMzYxODU2OTNhZDNiMGVlM2QuLjk0ZDFjZTNjMDc0ZTMzNDEwYzAxNmEyMzEz
NDcwZDkyMjI4ZTY3ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
QEAgLTUyLDYgKzUyLDcgQEAgbXkgKAogICAgICRjc3BOZXh0U3VwcG9ydCwKICAgICAkY3NzM0Nv
bmRpdGlvbmFsUnVsZXNTdXBwb3J0LAogICAgICRjc3MzVGV4dFN1cHBvcnQsCisgICAgJGNzczNU
ZXh0RGVjb3JhdGlvblN1cHBvcnQsCiAgICAgJGNzczNUZXh0TGluZUJyZWFrU3VwcG9ydCwKICAg
ICAkY3NzNEltYWdlc1N1cHBvcnQsCiAgICAgJGNzc0JveERlY29yYXRpb25CcmVha1N1cHBvcnQs
CkBAIC0xOTksNiArMjAwLDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJj
c3MzLXRleHQiLCBkZXNjID0+ICJUb2dnbGUgQ1NTMyBUZXh0IHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfQ1NTM19URVhUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygp
KSwgdmFsdWUgPT4gXCRjc3MzVGV4dFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJjc3Mz
LXRleHQtZGVjb3JhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MzIFRleHQgRGVjb3JhdGlvbiBz
dXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OIiwg
ZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNzczNUZXh0RGVjb3JhdGlvblN1cHBvcnQgfSwKKwog
ICAgIHsgb3B0aW9uID0+ICJjc3MzLXRleHQtbGluZS1icmVhayIsIGRlc2MgPT4gIlRvZ2dsZSBD
U1MzIFRleHQgTGluZSBCcmVhayBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NT
UzNfVEVYVF9MSU5FX0JSRUFLIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGNzczNUZXh0TGlu
ZUJyZWFrU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTkyYzExNjkxZjE1MzA5Yzc1Njc4ZWVhZjg0NGVi
ZjY5NDdiZDI2Ny4uZmM4ZDczNTg5MWI4ODZhNTgzYmExMDcwZjU0NTI2OWJkNjM4ZTQxNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTEwLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0
LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJp
cC1tdWx0aXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlv
bi1za2lwLXJvdW5kdHJpcC1tdWx0aXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRl
Y29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMTAtMTEgIEJlbSBKb25lcy1CZXkgIDxiam9u
ZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIE5ldyBwb3NpdGlvbmluZyBt
b2RlbDogTmVnYXRpdmUgbWFyZ2lucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNv
cmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkN2Q1
MDJhZDM1MWY3MjM5YTdkMzFkYTVlN2RjYmJhYTE3YTIyMjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29y
YXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5
bGU+CisgICAgI2JpZ3NrZXcgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgbGVm
dDogLTE1NnB4OworICAgICAgdG9wOiAtNDAwcHg7CisgICAgICBmb250LXN0eWxlOiBpdGFsaWM7
CisgICAgICBmb250LXNpemU6IDEycHQ7CisgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNhOwor
ICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAgICAgIC13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogdG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
CisgIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgaXRhbGljaXplZCAicCIg
YXMgdmlld2VkIHRocm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQKKyAgdGhlIGRlc2NlbmRlci4g
VGhlICJwIiBpcyBpbiAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1cCB0byBtdWNoIGxhcmdlci4g
VGhpcyB0ZXN0cyB0aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIG1hc2sgaXMg
Y2FsY3VsYXRlZCB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNlci1zcGFjZSBwcmVjaXNpb24u
CisgIElmIHdlIGRvbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgdGhlcmUgd29uJ3QgYmUgYSBu
aWNlIGNyaXNwIGVkZ2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRlcmxpbmUKKyAgd2hlcmUgaXQg
Z2V0cyBtYXNrZWQgb2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBiZWNhdXNlIHRoZXJlIHdvdWxk
IGJlIGdhcmJhZ2UgZ2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVhciB0aGUgY2hhcmFjdGVyCisg
ICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0
aDogODFweDsgaGVpZ2h0OiA0MDBweCI+CisgICAgICA8ZGl2IGlkPSJiaWdza2V3Ij5scGw8L2Rp
dj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90
ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk0MWFmNjNl
OTMxMTdkM2RiNThiMmY4M2Q1NzU5ZmNiNWU1ZTliNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAjYmln
c2tldyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiAtMTU2cHg7Cisg
ICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgIGZvbnQt
c2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFtaWx5OiBoZWx2ZXRpY2E7CisgICAgICB0ZXh0LWRl
Y29yYXRpb246IHVuZGVybGluZTsKKyAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6
IGluazsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAgICAtd2Via2l0
LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6
ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNj
ZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBs
YXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBt
YXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJl
Y2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0
IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdo
ZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVy
ZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJh
Y3RlcgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRl
bjsgd2lkdGg6IDgxcHg7IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0iYmlnc2tldyI+
bHBsPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNv
cmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVj
b3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzVlZTM1MWE0N2U1MTEzZDhmNDdlYjNiODQ3YWM3Mjc3ZmE0NTY3ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJp
cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIGNzc1J1bGUudHlwZSBpcyBjc3NS
dWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCcpIGlz
ICJpbmsiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJv
dW5kdHJpcC1tdWx0aXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRp
b24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZWUz
NTFhNDdlNTExM2Q4ZjQ3ZWIzYjg0N2FjNzI3N2ZhNDU2N2YKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29y
YXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBjc3NSdWxlLnR5cGUgaXMgY3NzUnVsZS5TVFlM
RV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAnKSBpcyAiaW5rIgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAt
bXVsdGlwbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJp
cC1tdWx0aXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NmVkNTQ2MDQ0YThmZGExNWJjMjFjNGJiZTBh
MTlmNWU1ZmNkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRp
b24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQpOworICAgIHN0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hlZXQ7CisgICAg
c3R5bGVzaGVldC5pbnNlcnRSdWxlKCIucCB7IC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6
IGluayBpbmsgaW5rIGluayBpbms7IH0iLCAwKTsKKyAgICBjc3NSdWxlID0gc3R5bGVzaGVldC5j
c3NSdWxlcy5pdGVtKDApOworICAgIHNob3VsZEJlKCJjc3NSdWxlLnR5cGUiLCAiY3NzUnVsZS5T
VFlMRV9SVUxFIik7CisgICAgZGVjbGFyYXRpb24gPSBjc3NSdWxlLnN0eWxlOworICAgIHNob3Vs
ZEJlKCJkZWNsYXJhdGlvbi5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJlKCJkZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwJykiLCAiXCJp
bmtcIiIpOworICA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAv
dGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RiNjFiOGRk
OTQ4ZGY4NThkZjAyMTk1NzgxOTczNzAyMmY5OTM2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCkBAIC0wLDAgKzEsMjAg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB2YXIgc3R5bGVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICBkb2N1bWVudC5oZWFkLmFw
cGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisgICAgc3R5bGVzaGVldCA9IHN0eWxlRWxlbWVudC5z
aGVldDsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIi5wIHsgLXdlYmtpdC10ZXh0LWRlY29y
YXRpb24tc2tpcDogaW5rOyB9IiwgMCk7CisgICAgY3NzUnVsZSA9IHN0eWxlc2hlZXQuY3NzUnVs
ZXMuaXRlbSgwKTsKKyAgICBzaG91bGRCZSgiY3NzUnVsZS50eXBlIiwgImNzc1J1bGUuU1RZTEVf
UlVMRSIpOworICAgIGRlY2xhcmF0aW9uID0gY3NzUnVsZS5zdHlsZTsKKyAgICBzaG91bGRCZSgi
ZGVjbGFyYXRpb24ubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24uZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCcpIiwgIlwiaW5rXCIi
KTsKKyAgPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFmYTlmYTMwZjY5MWIxMWU4MzRkNTY0YzU1NGY1ZDU5
NzhhZTdjNDAuLjI3MWRmNGM0NGM1MDZkNDYzODkzNWVkZTdkMTQ4ZGNjZWIxYzY4NTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC04MzIsNiArODMyLDcg
QEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAKICMgQ1NT
MyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhU
KS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bgord2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtZGVjb3JhdGlvbi1za2lwIFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKIHdlYmtpdC5vcmcvYi85OTk0NSBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtanVzdGlmeSBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExMjc1
NSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50IFsgRmFpbHVyZSBJbWFnZU9ubHlGYWls
dXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214375</attachid>
            <date>2013-10-16 10:54:28 -0700</date>
            <delta_ts>2013-10-16 12:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131016105427.patch</filename>
            <type>text/plain</type>
            <size>93931</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2JhNTg1NWRlYmQyNmQyY2M4YjBiMmFhNWRkZTE3NjAwZGRlNTMzLi5lMTUyNzk0YzIyOTZjN2M0
MDAxNTY0MzU0ZWZkYmFiMzk4OTNkYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0
aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEzLTEw
LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2l0aW9u
IHZvaWQgY3RpX29wX3RlYXJfb2ZmKiBtZXRob2RzIHRvIEpJVCBvcGVyYXRpb25zIGZvciAzMiBi
aXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMGM2MDM1NDVjYzVmYjUzNjcyMGRlZWE5YzNhZjhlYTg5ODZhNTBh
OC4uY2NlMjIzOTE0ZDBkOTc1MGQ4NGE5ZDYzMGQ5YjlhZWQ4MTJiMWY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDczIEBACisyMDEzLTEwLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRl
Y29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LWRlY29yLTMvI3RleHQtZGVj
b3JhdGlvbi1za2lwLXByb3BlcnR5CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDU1Mg
cHJvcGVydHkgIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAiCisgICAgICAgIGFuZCBhIG5l
dyB2YWx1ZSAiaW5rIi4gSWYgdGhpcyBuZXcgcHJvcGVydHkgYW5kIHZhbHVlIGFwcGx5IHRvIGFu
CisgICAgICAgIElubGluZVRleHRCb3gsIGEgbWFzayBpcyBhcHBsaWVkIHRvIHRoZSB1bmRlcmxp
bmUgZHJhd2luZyBjb2RlLgorICAgICAgICBUaGlzIG1hc2sgaXMgY3JlYXRlZCBieSBpbmNyZWFz
aW5nIHRoZSBjb250ZXh0J3Mgc3Ryb2tlIHdpZHRoLCB0aGVuCisgICAgICAgIHJlZHJhd2luZyB0
aGUgdGV4dCB0aGF0IHdpbGwgYXBwZWFyIGFib3ZlIHRoZSB1bmRlcmxpbmUuIFRoaXMgbWFzaywK
KyAgICAgICAgd2hlbiBhcHBsaWVkIHRvIHRoZSB1bmRlcmxpbmUsIHdpbGwgY3JlYXRlIGEgdmlz
dWFsIG1vYXQgYXJvdW5kIHRoZQorICAgICAgICBsZXR0ZXJzIHdoZXJlIHRoZSB1bmRlcmxpbmUg
d2lsbCBub3QgZHJhdy4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIElubGluZVRleHRC
b3g6OnBhaW50RGVjb3JhdGlvbiBzbyB0aGF0IHRoZQorICAgICAgICBmdW5jdGlvbiBpcyBhd2Fy
ZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGRyYXcgdGhlIHRleHQgdGhhdAorICAgICAgICB0
aGUgZGVjb3JhdGlvbiBpcyBkZWNvcmF0aW5nLiBUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnYXRoZXJl
ZAorICAgICAgICBpbnRvIGEgc3RydWN0IHdoaWNoIElubGluZVRleHRCb3g6OnBhaW50VGV4dCBo
YXMgYmVlbiBtb2RpZmllZAorICAgICAgICB0byBhY2NlcHQuIElubGluZVRleHRCb3g6OnBhaW50
RGVjb3JhdGlvbiBtb2RpZmllcyB0aGlzIHN0cnVjdAorICAgICAgICBhbmQgY2FsbHMgSW5saW5l
VGV4dEJveDo6cGFpbnRUZXh0IGl0c2VsZiB0byBjcmVhdGUgdGhlIG1hc2suCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLW11bHRpcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlVGV4dERlY29yYXRpb25Ta2lwKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW46CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6dmFsdWVUb0Rl
Y29yYXRpb25Ta2lwKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0RGVjb3Jh
dGlvblNraXA6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRlSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyKToKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRC
b3g6OnBhaW50RGVjb3JhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRleHRQYWludGVyOjpUZXh0UGFpbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpw
YWludFRleHRXaXRoU2hhZG93cyk6CisgICAgICAgIChXZWJDb3JlOjpyb3RhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRQYWludGVyOjpwYWludFRoaWNrVGV4dEluTWFzayk6CisgICAgICAgICogcmVuZGVyaW5n
L1RleHRQYWludGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrOjpTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2spOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFBhaW50ZXI6OmJveFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3Bl
cmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaDoKKwogMjAxMy0xMC0xNiAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBEdXJpbmcgZWRpdGluZywgbWVyZ2UgaW5saW5lIHN0eWxlIHdpdGggb3ZlcnJp
ZGluZyBvdGhlciBhdXRob3Igc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMTgxNWIzMWExZjdl
YzljYzFjNTViY2ZlZWFhNDJlZDJhZTU0YTAyZi4uOTBkMmZiYzE3OTAzMDI3MTAzNDdmM2ZlOGEz
N2RmMTI3NjRjMzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEw
LTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTMtMTAtMTUgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfV0VCX0FOSU1BVElPTlMgZmxh
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDYzZmJiNmYzYjY0MDE1M2FhNWY3ZWI4ZDJjOWY0ODhlZWM5MjNiOWIu
LjVmZDE2YWNiMjM5OGRiZjk1NzE2ZTJkMDI3OTkxMWQ3OWM2MjYxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNv
cmF0aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEz
LTEwLTE2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1dLMl1bRWZsXVtDTWFrZV0gQWRkIHN1cHBvcnQgZm9yIEVOQUJMRV9ORVRXT1JLX1BST0NFU1Mg
dG8gdGhlIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg0OTgxZTQ4
M2YzZmI2M2I2NjU2MzQwNmMyM2NiZDJiNmMzZWJiNDguLmJlNzYxNjIzZTY4Mjc5NDg5NzFiNTli
YTYwNjIxYTZjMmZlNGU2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4
LDcgQEAgRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwog
RU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOwor
RU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9O
OwogRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZID0gRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUiA9IDsKQEAgLTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
CiBFTkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxF
X0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9O
RVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01Q
T1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhD
TFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
X1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBS
RUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFL
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5U
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVH
SU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9W
MikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9E
UElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVT
UykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
UikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5B
QkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9V
VCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9Y
SFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RF
RklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9S
RU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFC
TEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQ
X05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19F
WENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9D
U1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VO
UFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9O
QUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJ
T04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJ
TElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NP
TlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChF
TkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01f
VElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJP
R1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVO
VFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
KSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxf
REFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBU
TykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9Q
QVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNM
VCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1NTlmYTk2MzI3ODg2MDU4MzY3YWRmMzJlMGVkNTVj
NWI1NDNmY2MuLjQxYzY0MzMyOWI2NDVkODBjZDlhNzI0YzZjOGEyNzcyODU0ZjU1ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMTcxLDYgKzIxNzEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcAogICAgIHJlbmRlcmluZy9UZXh0QXV0
b3NpemVyLmNwcAogICAgIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKKyAgICByZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCiAgICAgcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAogCiAgICAg
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODQ5
ODFlNDgzZjNmYjYzYjY2NTYzNDA2YzIzY2JkMmI2YzNlYmI0OC4uYmU3NjE2MjNlNjgyNzk0ODk3
MWI1OWJhNjA2MjFhNmMyZmU0ZTZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5B
QkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJB
TlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NT
UzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxF
X0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsK
QEAgLTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVf
RlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19Q
Uk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9Q
T1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAk
KEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VC
X0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFC
TEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9V
VCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQ
TEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFT
X1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5H
KSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05T
KSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZ
X1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQp
ICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5B
QkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9S
KSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9O
VF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhS
T1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1ND
QUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxF
TUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFC
TEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZTNkMGIxNDg2NTQxMTFiZTBhNzVlMjg0ZTUzZGQ5
MTNlMmUwYTZiLi5kYmJhZDNiMmYwMDAzYjIxNDUzNmQxYzYzMGRlNDZkMzQwYjNiMzMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0NzMsNiArNDQ3Myw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmggXAorCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0UGFpbnRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
UGFpbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVmVydGljYWxQb3NpdGlvbkNh
Y2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxv
Y2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJs
b2NrLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKaW5kZXggNTg1ZGQ0MzBiNDA1MjQ1MmY2YTllMzk3ODJkYjFmNDEyMDkxMTRmYi4uZDI5MDkw
MDZmZWM1MWI0ZWFlZGFjMmZiZmU4M2IzYTgxZDcwYjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMTYxOSw2ICsxMTYxOSwyMCBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xU
ZXh0UGFpbnRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d29ya2Vyc1xTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ceG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAiIC8+CkBAIC0xOTU1MCw2ICsxOTU2NCw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1Jlc291cmNl
c0N5Y2xlU29sdmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
VGFibGVMYXlvdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xU
ZXh0UGFpbnRTdHlsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFRleHRQYWludGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
VHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcbWF0aG1sXFJlbmRlck1hdGhNTEJsb2NrLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbWF0aG1sXFJlbmRlck1hdGhNTEZlbmNlZC5oIiAv
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCmluZGV4IDRkZWVlMDY2M2RhODZhM2YxMWJmZmM1ODc5NTYzNjk5NzYzYTQw
YmEuLmM5NTE3YjlhZGY1ZDc0MGFjZWRhZTAzYjZmZWEwOWFhZGU0OGIwOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTI3MzksNiArMjczOSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3ZnXFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCI+CiAgICAgICA8RmlsdGVyPnJl
bmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFRleHRQYWludGVyLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXG1hdGhtbFxSZW5kZXJNYXRoTUxCbG9jay5jcHAiPgogICAgICAgPEZpbHRlcj5y
ZW5kZXJpbmdcbWF0aG1sPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05NTA0LDYgKzk1
MDcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRhYmxlTGF5b3V0
LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xUZXh0UGFpbnRlci5oIj4KKyAg
ICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94
LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3NTMwYWEyMzlkMzhiNWMwMGNmZTQwMzZkMjY5MzIzM2ZiZjBjYTRlLi43YTAyMWIzZWRj
NGVkN2ZhYTc2MjNlY2I5NjliNThiYjAxOGRjZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MjYsNiArODI2LDggQEAKIAkJ
MUMxMUNDQzYwQUE2MDkzNzAwREFEQjIwIC8qIERPTURvY3VtZW50RnJhZ21lbnQuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
MDg5Q0QzMEE5OEM0MjgwMEEyNzVBQSAvKiBET01Eb2N1bWVudEZyYWdtZW50LmggKi87IH07CiAJ
CTFDMTFDQ0M3MEFBNjA5MzcwMERBREIyMCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5
Q0NGMEE5OEM0MjcwMEEyNzVBQSAvKiBET01DREFUQVNlY3Rpb24uaCAqLzsgfTsKIAkJMUMxMUND
QzgwQUE2MDkzNzAwREFEQjIwIC8qIERPTUhUTUxFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkVFQjBBQTM4
N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVsZW1lbnQuaCAqLzsgfTsKKwkJMUMxMzI2MjUxODBERUFD
MDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTMyNjIzMTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRl
ci5jcHAgKi87IH07CisJCTFDMTMyNjI2MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxMzI2MjQx
ODBERUFDMDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmggKi87IH07CiAJCTFDMjY0OTdBMEQ3RTI0
OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NDk3OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9j
dW1lbnRMb2FkZXJNYWMuY3BwICovOyB9OwogCQkxQzI2NDk3QzBEN0UyNEVDMDBCRDEwRjIgLyog
UGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzI2NDk3QjBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi87IH07CiAJCTFDNEM4
RjAyMEFEODVEODcwMDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzRDOEYwMDBBRDg1RDg3MDA5
NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03MjgzLDYgKzcyODUsOCBAQAogCQkxQUY4RTFD
MTEyNTY3M0UwMDAyMzBGRjcgLyogUHJveHlTZXJ2ZXJDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVNlcnZlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFGRTExOTcwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0
U2V0Um93TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TFJlc3VsdFNldFJvd0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZF
MTE5ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzEzMjYyMzE4MERFQUMwMDA5MUE2N0MgLyogVGV4dFBh
aW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFBhaW50
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzEzMjYyNDE4MERFQUMwMDA5
MUE2N0MgLyogVGV4dFBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGV4dFBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5NzkwRDdF
MjQ4QTAwQkQxMEYyIC8qIERvY3VtZW50TG9hZGVyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYyIC8qIFBhZ2VNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNDM1Q0QzMTRFODU0NEYwMDRFMTBFQSAvKiBJbnNwZWN0
b3IuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBJbnNwZWN0b3IuanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwNzEzLDYgKzIwNzE3LDggQEAKIAkJCQlFNEM5MUEwRDE4MDIzNDMxMDBBMTdGNkQgLyog
VGV4dFBhaW50U3R5bGUuaCAqLywKIAkJCQkzN0ZDOTZEQTExMDRFRDcxMDAzRTFGQUQgLyogVHJh
aWxpbmdGbG9hdHNSb290SW5saW5lQm94LmggKi8sCiAJCQkJQkNBMjU3MTQxMjkzQzAxMDAwN0Ey
NjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oICovLAorCQkJCTFDMTMyNjIzMTgwREVBQzAw
MDkxQTY3QyAvKiBUZXh0UGFpbnRlci5jcHAgKi8sCisJCQkJMUMxMzI2MjQxODBERUFDMDAwOTFB
NjdDIC8qIFRleHRQYWludGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJlbmRlcmluZzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjI4Niw2ICsyMjI5Miw3IEBACiAJCQkJOEEx
OTU5MzQxNDdFQTE2RTAwRDFFQTYxIC8qIERPTVdlYktpdE5hbWVkRmxvd0ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMUMwRkY0QzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDMTMyNjI2MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODVDN0Y1RTcwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1OTg5REQxMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MDNCOTk3MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwODUsNiArMjYwOTIsNyBAQAogCQkJ
CTJENkU0Njg0MTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudEltYWdlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM2NDY0OTcxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDlDMTFEODIzOEMwMDY0NTVCMCAvKiBKU0RP
TVN0cmluZ01hcEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzEzMjYyNTE4MERFQUMw
MDA5MUE2N0MgLyogVGV4dFBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzY5NDU2M0Mx
MjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJFMzdFMDA1MTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RPTVVSTC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDAzQkEwQzA5RUIxOEM3MDA3OTdDN0YgLyogSlNET01XaW5kb3cuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCmluZGV4IDdiYmRjODI2Y2ZmNzFmMjdkY2I2YmIzNWVkMjUzN2QxMjY1ODgwNTYu
LjY5MzdkMGQ2OTc5YzU2ZDI4YjNmNjc3MGE3NmRhNTI2ODQzZGVkMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNDM3
LDYgKzE0MzcsMjEgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNv
cmF0aW9uU3R5bGVGbGFnc1RvQ1NTVmFsdWUoVGV4dERlY29yYXQKIH0KICNlbmRpZiAvLyBDU1Mz
X1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK3N0YXRpYyBQYXNzUmVm
UHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVjb3JhdGlvblNraXBGbGFnc1RvQ1NTVmFsdWUoVGV4
dERlY29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCkKK3sKKyAgICBzd2l0Y2ggKHRleHRE
ZWNvcmF0aW9uU2tpcCkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwTm9uZToKKyAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Cisg
ICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJbms6CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmspOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBs
aWNpdEluaXRpYWxWYWx1ZSgpOworfQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCisK
IHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBmaWxsUmVwZWF0VG9DU1NWYWx1ZShFRmlsbFJl
cGVhdCB4UmVwZWF0LCBFRmlsbFJlcGVhdCB5UmVwZWF0KQogewogICAgIC8vIEZvciBiYWNrd2Fy
ZHMgY29tcGF0aWJpbGl0eSwgaWYgYm90aCB2YWx1ZXMgYXJlIGVxdWFsLCBqdXN0IHJldHVybiBv
bmUgb2YgdGhlbS4gQW5kCkBAIC0yMzU2LDYgKzIzNzEsMTAgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlv
bjoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+
dGV4dFVuZGVybGluZVBvc2l0aW9uKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJM
RShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRl
eHREZWNvcmF0aW9uU2tpcDoKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJUZXh0RGVjb3JhdGlv
blNraXBGbGFnc1RvQ1NTVmFsdWUoc3R5bGUtPnRleHREZWNvcmF0aW9uU2tpcCgpKTsKKyNlbmRp
ZgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3Q6
CiAgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGV4dERlY29yYXRpb25GbGFnc1RvQ1NTVmFsdWUo
c3R5bGUtPnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkpOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZGMy
MzcwYTQ3YzUxNTBmNDM5ZDE3NzFiZDYyZDAyODZlNzVjNzkxZS4uNDEyZTM0MGFiMTNiMDVmYTZj
MGE2ODU2MmUzNDE3YWZkMWRkMDQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIz
NzcsNiArMjM3NywxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHJldHVybiBwYXJzZVRleHRVbmRlcmxp
bmVQb3NpdGlvbihpbXBvcnRhbnQpOwogI2VuZGlmIC8vIENTUzNfVEVYVAogCisjaWYgRU5BQkxF
KENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvblNraXA6CisgICAgICAgIC8vIG5vbmUgfCBbIG9iamVjdHMgfHwgc3BhY2VzIHx8IGlu
ayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlvbiBdCisgICAgICAgIHJldHVybiBwYXJzZVRleHRE
ZWNvcmF0aW9uU2tpcChpbXBvcnRhbnQpOworI2VuZGlmCisKICAgICBjYXNlIENTU1Byb3BlcnR5
Wm9vbTogICAgICAgICAgLy8gbm9ybWFsIHwgcmVzZXQgfCBkb2N1bWVudCB8IDxudW1iZXI+IHwg
PHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwg
fHwgaWQgPT0gQ1NTVmFsdWVSZXNldCB8fCBpZCA9PSBDU1NWYWx1ZURvY3VtZW50KQogICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwpAQCAtOTc2NCw2ICs5NzcwLDI2IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGltcG9ydGFudCkKIH0K
ICNlbmRpZiAvLyBDU1MzX1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikK
K2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHREZWNvcmF0aW9uU2tpcChib29sIGltcG9ydGFudCkK
K3sKKyAgICAvLyBUaGUgdGV4dC1kZWNvcmF0aW9uLXNraXAgcHJvcGVydHkgaGFzIHN5bnRheCAi
bm9uZSB8IFsgb2JqZWN0cyB8fCBzcGFjZXMgfHwgaW5rIHx8IGVkZ2VzIHx8IGJveC1kZWNvcmF0
aW9uIF0iLgorICAgIC8vIEhvd2V2ZXIsIG9ubHkgJ25vbmUnIGFuZCAnaW5rJyBhcmUgaW1wbGVt
ZW50ZWQgeWV0LCBzbyB3ZSB3aWxsIHBhcnNlIHN5bnRheCAibm9uZSB8IGluayIgZm9yIG5vdy4K
KyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAg
IGRvIHsKKyAgICAgICAgc3dpdGNoICh2YWx1ZS0+aWQpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1
ZU5vbmU6CisgICAgICAgIGNhc2UgQ1NTVmFsdWVJbms6CisgICAgICAgICAgICBhZGRQcm9wZXJ0
eShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uU2tpcCwgY3NzVmFsdWVQb29sKCkuY3Jl
YXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCksIGltcG9ydGFudCk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfSB3aGlsZSAoKHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKSkpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiBib29sIENT
U1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShib29sIGltcG9ydGFudCkKIHsKICAgICB1
bnNpZ25lZCB2YWx1ZUxpc3RTaXplID0gbV92YWx1ZUxpc3QtPnNpemUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAppbmRleCAyNDUyZDRmNzA1YmRhMmYzNDRjZGYyYzU2M2JhZmY3MjM5NTZhYzg2Li4y
ZGE5NzI5ZjgzNDZlMmRkZDdhZjMxNzk4ZmI0ZjhlNGJlNjhlMmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCkBAIC0yODMsNiArMjgzLDkgQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VUZXh0RGVj
b3JhdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogI2lmIEVOQUJM
RShDU1MzX1RFWFQpCiAgICAgYm9vbCBwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGlt
cG9ydGFudCk7CisjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNP
UkFUSU9OKQorICAgIGJvb2wgcGFyc2VUZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQp
OwogI2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNDc2ZTU5OWQ5OTc5NmJm
Y2JhYTJhOGY4NzM4ZGEyOGNlYjE4OTc3Mi4uYmNjMjA2YmNkZTc4MmY1MmQ3MjlhMDI1MDY2YWNk
MTViM2M2ODEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTM5
NCw2ICszOTQsOSBAQCB6LWluZGV4CiAtd2Via2l0LXRleHQtanVzdGlmeSBbSW5oZXJpdGVkXQog
LXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiBbSW5oZXJpdGVkXQogI2VuZGlmCisjaWYg
ZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICYmIEVOQUJMRV9DU1MzX1RFWFRf
REVDT1JBVElPTgorLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCBbSW5oZXJpdGVkXQorI2Vu
ZGlmCiAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0IFtJbmhlcml0ZWRdCiAtd2Vi
a2l0LXRleHQtZW1waGFzaXMgW0luaGVyaXRlZF0KIC1lcHViLXRleHQtZW1waGFzaXMgPSAtd2Vi
a2l0LXRleHQtZW1waGFzaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5k
ZXggYzJiNWVlZTU2ZjYxMmFiZmRlNmMwNmE3NDE4NWE2ZjgyZjRkYWIyMC4uMzlmOWViMmY5MjIx
ZjJjMGM0MjhlYjAwMWEwNmQ1MzA1OTljMzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTQ3MCw2ICs0NzAsOSBAQCB1bmRlcmxpbmUKICNpZiBkZWZpbmVkKEVO
QUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RFWFQKIHdhdnkKICNlbmRpZgorI2lmIGRl
ZmluZWQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OKSAmJiBFTkFCTEVfQ1NTM19URVhUX0RF
Q09SQVRJT04KK2luaworI2VuZGlmCiAtd2Via2l0LW5vd3JhcAogCiAvLyBDU1MzIFZhbHVlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDcw
NzQ5MDBhNjA3NzFmZGJkNjgxY2YwODlhNTlkNGVhYmM1MTcyZDUuLjRhZGNhYmZiNGEyZGZhMTBl
ZDQ5MjhkMDg3NThkMjJiZTIxOWU5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTEyNjksNiArMTI2OSw0NyBAQCBwdWJsaWM6CiAgICAg
fQogfTsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK2NsYXNzIEFwcGx5UHJv
cGVydHlUZXh0RGVjb3JhdGlvblNraXAgeworICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlvblNraXAg
dmFsdWVUb0RlY29yYXRpb25Ta2lwKENTU1ByaW1pdGl2ZVZhbHVlJiBwcmltaXRpdmVWYWx1ZSkK
KyAgICB7CisgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS5pc1ZhbHVlSUQoKSk7CisKKyAg
ICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9u
ZTsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUluazoKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGVj
b3JhdGlvblNraXBJbms7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
VGV4dERlY29yYXRpb25Ta2lwTm9uZTsKKyAgICB9CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQg
YXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBD
U1NWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSkgeworICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dERlY29y
YXRpb25Ta2lwKHZhbHVlVG9EZWNvcmF0aW9uU2tpcCgqdG9DU1NQcmltaXRpdmVWYWx1ZSh2YWx1
ZSkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFRleHREZWNv
cmF0aW9uU2tpcCBza2lwID0gUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXAo
KTsKKyAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpKHZhbHVlKTsgaS5oYXNNb3Jl
KCk7IGkuYWR2YW5jZSgpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGkudmFsdWUo
KTsKKyAgICAgICAgICAgIHNraXAgfD0gdmFsdWVUb0RlY29yYXRpb25Ta2lwKCp0b0NTU1ByaW1p
dGl2ZVZhbHVlKGl0ZW0pKTsKKyAgICAgICAgfQorICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLT5zZXRUZXh0RGVjb3JhdGlvblNraXAoc2tpcCk7CisgICAgfQorICAgIHN0YXRpYyBQcm9w
ZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCisgICAgeworICAgICAgICBQcm9wZXJ0eUhhbmRs
ZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxUZXh0RGVjb3JhdGlvblNraXAs
ICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25Ta2lwLCBUZXh0RGVjb3JhdGlvblNraXAsICZS
ZW5kZXJTdHlsZTo6c2V0VGV4dERlY29yYXRpb25Ta2lwLCBUZXh0RGVjb3JhdGlvblNraXAsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcD46OmNyZWF0ZUhhbmRsZXIoKTsK
KyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcihoYW5kbGVyLmluaGVyaXRGdW5jdGlvbigp
LCBoYW5kbGVyLmluaXRpYWxGdW5jdGlvbigpLCAmYXBwbHlWYWx1ZSk7CisgICAgfQorfTsKKyNl
bmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiBjbGFzcyBBcHBseVByb3BlcnR5TWFycXVl
ZUluY3JlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9w
ZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCkBA
IC0yMjc1LDYgKzIzMTYsOSBAQCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5
bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0
SnVzdGlmeSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEp1c3RpZnksICZSZW5kZXJTdHlsZTo6
dGV4dEp1c3RpZnksIFRleHRKdXN0aWZ5LCAmUmVuZGVyU3R5bGU6OnNldFRleHRKdXN0aWZ5LCBU
ZXh0SnVzdGlmeSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEp1c3RpZnk+OjpjcmVhdGVIYW5k
bGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRl
cmxpbmVQb3NpdGlvbiwgQXBwbHlQcm9wZXJ0eVRleHRVbmRlcmxpbmVQb3NpdGlvbjo6Y3JlYXRl
SGFuZGxlcigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dERl
Y29yYXRpb25Ta2lwLCBBcHBseVByb3BlcnR5VGV4dERlY29yYXRpb25Ta2lwOjpjcmVhdGVIYW5k
bGVyKCkpOworI2VuZGlmCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dElu
ZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dE92ZXJmbG93LCBBcHBseVByb3BlcnR5RGVm
YXVsdDxUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6dGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZs
b3csICZSZW5kZXJTdHlsZTo6c2V0VGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZSZW5kZXJT
dHlsZTo6aW5pdGlhbFRleHRPdmVyZmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9wZXJ0eUZvbnQ8
VGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdNb2RlLCAm
Rm9udERlc2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5kZXJpbmc+
OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IGEzYTkxM2U0NDJhNmU2YjdhYWVlOTE1OGU1M2Q4MmNjYWYwMjg2MTAuLmU5Nzk2ZDZiNjdkYmQ2
MmQ4NjkzYjdhMmI5YWNkYTlkZmNjY2U2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTMwNTIsNiArMzA1Miw5IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRKdXN0aWZ5OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5k
ZXJsaW5lUG9zaXRpb246CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVY
VF9ERUNPUkFUSU9OKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNr
aXA6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc1Bvc2l0aW9uOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNTdHlsZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCAyOTY5MGZiYzBiMTMwOTk5MWU2ZGNkOWEz
Y2U2NDU0N2M1MzkxZjIyLi43MmQwYjE0ZWRiMmU2ODBmNGM4YzgzN2FkZmMyODY4YWM3ZjIyODMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyZWREb2N1bWVudE1hcmtlci5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlNWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRl
eHRQYWludFN0eWxlLmgiCisjaW5jbHVkZSAiVGV4dFBhaW50ZXIuaCIKICNpbmNsdWRlICJicmVh
a19saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMzk3LDU0ICsz
OTksNiBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29u
dGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsCiAgICAgcmV0dXJuIGV4dHJhT2Zmc2V0Owog
fQogCi1zdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0
b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3Rh
cnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEZsb2F0
UG9pbnQmIHRleHRPcmlnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgYm9vbCBzdHJv
a2VkLCBib29sIGhvcml6b250YWwpCi17Ci0gICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+
ZmlsbENvbG9yKCk7Ci0gICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNvbnRleHQtPmZp
bGxDb2xvclNwYWNlKCk7Ci0gICAgYm9vbCBvcGFxdWUgPSBmaWxsQ29sb3IuYWxwaGEoKSA9PSAy
NTU7Ci0gICAgaWYgKCFvcGFxdWUpCi0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xv
cjo6YmxhY2ssIGZpbGxDb2xvclNwYWNlKTsKLQotICAgIGRvIHsKLSAgICAgICAgSW50U2l6ZSBl
eHRyYU9mZnNldDsKLSAgICAgICAgaWYgKHNoYWRvdykKLSAgICAgICAgICAgIGV4dHJhT2Zmc2V0
ID0gcm91bmRlZEludFNpemUoSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29u
dGV4dChjb250ZXh0LCBzaGFkb3csIGJveFJlY3QsIHN0cm9rZWQsIG9wYXF1ZSwgaG9yaXpvbnRh
bCkpOwotICAgICAgICBlbHNlIGlmICghb3BhcXVlKQotICAgICAgICAgICAgY29udGV4dC0+c2V0
RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwotCi0gICAgICAgIGlmIChzdGFy
dE9mZnNldCA8PSBlbmRPZmZzZXQpIHsKLSAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4s
IHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3Mo
Zm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJ
bnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGVuZE9mZnNldCA+IDApIHsKLSAgICAg
ICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zm
c2V0LCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lz
TWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtP
ZmZzZXQpLCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChz
dGFydE9mZnNldCA8IHRydW5jYXRpb25Qb2ludCkgewotICAgICAgICAgICAgICAgIGlmIChlbXBo
YXNpc01hcmsuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4
dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCB0
cnVuY2F0aW9uUG9pbnQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJr
LCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNl
dCksICBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICghc2hhZG93KQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8IHN0cm9rZWQgfHwgIW9wYXF1ZSkKLSAgICAgICAgICAg
IGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29udGV4dC0+
Y2xlYXJTaGFkb3coKTsKLQotICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQoKTsKLSAgICB9
IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKLX0KLQogYm9vbCBJbmxpbmVU
ZXh0Qm94OjpnZXRFbXBoYXNpc01hcmtQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IFRleHRFbXBoYXNpc1Bvc2l0aW9uJiBlbXBoYXNpc1Bvc2l0aW9uKSBjb25zdAogewogICAgIC8v
IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSB0ZXh0IGVtcGhhc2lzIG1h
cmtzIGFuZCB0aGV5IGFyZSBzdXBwcmVzc2VkIGJ5IHJ1YnkgdGV4dC4KQEAgLTYyOCw1OSArNTgy
LDggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAogCiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4
dFNoYWRvdyA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCgpID8gMCA6IGxpbmVTdHlsZS50ZXh0
U2hhZG93KCk7CiAKLSAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkgewotICAgICAgICAv
LyBGb3Igc3Ryb2tlZCBwYWludGluZywgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIHRleHQgZHJhd2lu
ZyBtb2RlLiAgSXQncyBwcm9iYWJseSBkYW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFz
IGEgc2lkZQotICAgICAgICAvLyBlZmZlY3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0
cm9raW5nLCBkbyBhIHNhdmUvcmVzdG9yZS4KLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAp
OwotCi0gICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5
bGUpOwotICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9
IHNQb3MpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwg
Zm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2lu
LCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlz
SG9yaXpvbnRhbCgpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgZVBvcywgc1Bvcywg
bGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5z
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQotICAgICAgICBpZiAoIWVtcGhhc2lz
TWFyay5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29u
dGV4dCwgdGV4dFBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0NvbG9yKTsKLQotICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
clRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKLSAgICAgICAgICAg
IFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmplY3RSZXBs
YWNlbWVudENoYXJhY3RlclRleHRSdW4gOiB0ZXh0UnVuOwotICAgICAgICAgICAgRmxvYXRQb2lu
dCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hP
cmlnaW4ueCgpICsgYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZvbnQuZm9u
dE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0ZXh0T3JpZ2luOwotICAgICAgICAgICAgaWYgKGNvbWJp
bmVkVGV4dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94
UmVjdCwgQ2xvY2t3aXNlKSk7Ci0KLSAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRT
ZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1BvcykgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBU
cnVuY2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgotICAgICAgICAgICAgICAgIHBh
aW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+
b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmss
IGVtcGhhc2lzTWFya09mZnNldCwgMCwgbGVuZ3RoLCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRP
cmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4g
MCwgaXNIb3Jpem9udGFsKCkpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
cGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0
LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVtcGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFy
aywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFya1Rl
eHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCi0gICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQot
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3Vu
dGVyY2xvY2t3aXNlKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKHBhaW50U2VsZWN0
ZWRUZXh0T25seSB8fCBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkpICYmIHNQb3MgPCBlUG9z
KSB7Ci0gICAgICAgIC8vIHBhaW50IG9ubHkgdGhlIHRleHQgdGhhdCBpcyBzZWxlY3RlZAotICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHNlbGVj
dGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwKTsKLQotICAgICAgICB1cGRhdGVHcmFwaGlj
c0NvbnRleHQoKmNvbnRleHQsIHNlbGVjdGlvblBhaW50U3R5bGUpOwotICAgICAgICBwYWludFRl
eHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1Bvcywg
ZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVj
dGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0gICAgICAg
IGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdXBkYXRlR3JhcGhp
Y3NDb250ZXh0KCpjb250ZXh0LCBzZWxlY3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtD
b2xvcik7Ci0KLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
LCAxKSk7Ci0gICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gY29tYmlu
ZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4dFJ1bjsKLSAg
ICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNvbWJpbmVkVGV4
dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIGJveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9y
aWdpbi55KCkgKyBmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogdGV4dE9yaWdpbjsKLSAg
ICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+Y29u
Y2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwotCi0gICAgICAgICAgICBwYWlu
dFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9y
aWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBl
bXBoYXNpc01hcmtPZmZzZXQsIHNQb3MsIGVQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25QYWludFN0eWxlLnN0cm9r
ZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCi0gICAgICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0
LCBDb3VudGVyY2xvY2t3aXNlKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgVGV4dFBhaW50ZXIg
dGV4dFBhaW50ZXIoKmNvbnRleHQsIHBhaW50U2VsZWN0ZWRUZXh0T25seSwgcGFpbnRTZWxlY3Rl
ZFRleHRTZXBhcmF0ZWx5LCBmb250LCBzUG9zLCBlUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFyaywg
Y29tYmluZWRUZXh0LCB0ZXh0UnVuLCBib3hSZWN0LCB0ZXh0T3JpZ2luLCBlbXBoYXNpc01hcmtP
ZmZzZXQsIHRleHRTaGFkb3csIHNlbGVjdGlvblNoYWRvdywgaXNIb3Jpem9udGFsKCksIHRleHRQ
YWludFN0eWxlLCBzZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICB0ZXh0UGFpbnRlci5wYWludFRl
eHQoKTsKIAogICAgIC8vIFBhaW50IGRlY29yYXRpb25zCiAgICAgVGV4dERlY29yYXRpb24gdGV4
dERlY29yYXRpb25zID0gbGluZVN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCk7CkBAIC02
ODgsNyArNTkxLDggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAogICAgICAgICB1cGRhdGVHcmFw
aGljc0NvbnRleHQoKmNvbnRleHQsIHRleHRQYWludFN0eWxlKTsKICAgICAgICAgaWYgKGNvbWJp
bmVkVGV4dCkKICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0
LCBDbG9ja3dpc2UpKTsKLSAgICAgICAgcGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGJveE9yaWdp
biwgdGV4dERlY29yYXRpb25zLCBsaW5lU3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0
U2hhZG93KTsKKworICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3csIHRleHRQYWludGVyKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAg
IGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7
CiAgICAgfQpAQCAtODg2LDkgKzc5MCw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZVVuZGVybGluZU9m
ZnNldChjb25zdCBUZXh0VW5kZXJsaW5lUG9zaXRpb24gdW5kZXJsaW5lUG9zaXRpb24sCiAgICAg
Y2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcjogewogICAgICAgICAvLyBQb3NpdGlvbiB1
bmRlcmxpbmUgcmVsYXRpdmUgdG8gdGhlIHVuZGVyIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50
J3MgY29udGVudCBib3guCiAgICAgICAgIGNvbnN0IGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRC
b3gtPnJvb3QoKS5tYXhMb2dpY2FsVG9wKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsVG9wKCk7
Ci0gICAgICAgIGlmIChvZmZzZXQgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRC
b3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIG9mZnNldDsKLSAgICAgICAgcmV0dXJuIGlubGlu
ZVRleHRCb3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcDsKKyAgICAgICAgcmV0dXJuIGlubGluZVRl
eHRCb3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIG1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAg
ICB9CiAgICAgfQogCkBAIC0xMDIxLDggKzkyMywxMSBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5
VGV4dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwg
RgogfQogI2VuZGlmIC8vIENTUzNfVEVYVAogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9y
aWdpbiwgVGV4dERlY29yYXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9u
U3R5bGUsIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYg
Ym94T3JpZ2luLCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29y
YXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBUZXh0UGFpbnRlciYgdGV4dFBh
aW50ZXIpCiB7CisjaWYgIUVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBVTlVTRURf
UEFSQU0odGV4dFBhaW50ZXIpOworI2VuZGlmCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbXBy
b3ZlIHRoaXMgcnVsZSBhbmQgbm90IGFsd2F5cyBqdXN0IGFzc3VtZSAxLgogICAgIGNvbnN0IGZs
b2F0IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzID0gMS5mOwogCkBAIC0xMDk1LDYgKzEwMDAsMzkg
QEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaW50JgogICAgICAgICAvLyBPZmZzZXQgYmV0d2VlbiBsaW5l
cyAtIGFsd2F5cyBub24temVybywgc28gbGluZXMgbmV2ZXIgY3Jvc3MgZWFjaCBvdGhlci4KICAg
ICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERlY29yYXRpb25UaGlja25lc3MgKyAxLmY7
CiAjZW5kaWYgLy8gQ1NTM19URVhUCisgICAgICAgIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVD
T1JBVElPTikKKyAgICAgICAgVGV4dERlY29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCA9
IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKTsKKyAgICAgICAgYm9vbCBjbGlwRGVjb3Jh
dGlvblRvTWFzayA9IHRleHREZWNvcmF0aW9uU2tpcCA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7
CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcERlY29yYXRpb25Ub01hc2spIHsKKyAgICAgICAg
ICAgIGNvbnRleHQtPnNhdmUoKTsKKworICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBleHRl
bnQgb2YgcGFpbnRUZXh0QXJncy5ib3hSZWN0IGluIGRldmljZS1zcGFjZSAobm90IHVzZXItc3Bh
Y2UpCisgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtID0gY29udGV4dC0+Z2V0Q1RNKEdy
YXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7CisgICAgICAgICAg
ICBBU1NFUlQoY3RtLmlzSW52ZXJ0aWJsZSgpKTsKKyAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVj
dCYgYm94UmVjdCA9IHRleHRQYWludGVyLmJveFJlY3QoKTsKKyAgICAgICAgICAgIEludFJlY3Qg
ZW5jbG9zaW5nRGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoY3RtLm1hcFF1YWQoYm94UmVj
dCkuYm91bmRpbmdCb3goKSk7CisKKyAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1h
Z2VCdWZmZXIgPSBjb250ZXh0LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGVuY2xvc2luZ0Rldmlj
ZVJlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZlci5nZXQoKSkgeworICAg
ICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+
Y29udGV4dCgpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29s
b3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29u
dGV4dC0+c2V0TGluZUpvaW4oUm91bmRKb2luKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4
dC0+dHJhbnNsYXRlKEZsb2F0UG9pbnQoKSAtIGVuY2xvc2luZ0RldmljZVJlY3QubG9jYXRpb24o
KSk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAg
ICAgICAgICAgIG1hc2tDb250ZXh0LT5maWxsUmVjdChib3hSZWN0KTsKKyAgICAgICAgICAgICAg
ICBtYXNrQ29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNsZWFyKTsKKwor
ICAgICAgICAgICAgICAgIHRleHRQYWludGVyLnBhaW50VGhpY2tUZXh0SW5NYXNrKCptYXNrQ29u
dGV4dCk7CisKKyAgICAgICAgICAgICAgICAvLyBBcHBseSBtYXNrIGluIGRldmljZSBzcGFjZSBz
byB0aGUgcXVhZCBpcyBheGlzLWFsaWduZWQKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25j
YXRDVE0oY3RtLmludmVyc2UoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+Y2xpcFRvSW1h
Z2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0KCksIGVuY2xvc2luZ0RldmljZVJlY3QpOworICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlU3R5bGUodGV4dERlY29yYXRpb25TdHlsZVRvU3Ryb2tlU3R5bGUoZGVjb3JhdGlvblN0
eWxlKSk7CiAgICAgICAgIGlmIChkZWNvICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpIHsKICAg
ICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHVuZGVybGluZSwgY29sb3JTcGFjZSk7
CkBAIC0xMTM5LDYgKzEwNzcsMTAgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JgogICAgICAgICAg
ICAgfQogI2VuZGlmIC8vIENTUzNfVEVYVAogICAgICAgICB9CisjaWYgRU5BQkxFKENTUzNfVEVY
VF9ERUNPUkFUSU9OKQorICAgICAgICBpZiAoY2xpcERlY29yYXRpb25Ub01hc2spCisgICAgICAg
ICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisjZW5kaWYKICAgICAgICAgaWYgKGRlY28gJiBUZXh0
RGVjb3JhdGlvbkxpbmVUaHJvdWdoKSB7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VD
b2xvcihsaW5ldGhyb3VnaCwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4IDM0NDBlMTNhYjg5OWQ4
NDMzNmMwNzM4YmJiMDRhNmVjZTJjNjEwNTAuLjAyY2RmYzRkMGM5ZWRjYTYwN2FlZmNhYjg5MWFj
MTM2MzAyODdmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApA
QCAtMzAsOCArMzAsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQ29tcG9z
aXRpb25VbmRlcmxpbmU7CiBjbGFzcyBEb2N1bWVudE1hcmtlcjsKK2NsYXNzIFJlbmRlckNvbWJp
bmVUZXh0OworY2xhc3MgVGV4dFBhaW50ZXI7CisKK3N0cnVjdCBDb21wb3NpdGlvblVuZGVybGlu
ZTsKIAogY29uc3QgdW5zaWduZWQgc2hvcnQgY05vVHJ1bmNhdGlvbiA9IFVTSFJUX01BWDsKIGNv
bnN0IHVuc2lnbmVkIHNob3J0IGNGdWxsVHJ1bmNhdGlvbiA9IFVTSFJUX01BWCAtIDE7CkBAIC0x
NjksNyArMTcyLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBw
YWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBUZXh0RGVjb3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0
YSopOworICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUs
IGNvbnN0IFNoYWRvd0RhdGEqLCBUZXh0UGFpbnRlciYpOwogICAgIHZvaWQgcGFpbnRTZWxlY3Rp
b24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBS
ZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBDb2xvciB0ZXh0Q29sb3IpOwogICAgIHZvaWQgcGFp
bnREb2N1bWVudE1hcmtlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIERvY3VtZW50TWFya2VyKiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Jiwg
Ym9vbCBncmFtbWFyKTsKICAgICB2b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dFBhaW50ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NDVkZGRjZDY2MTI3NzQ0MDMzODVkNjQ0MzhjYzRi
YzU1OTgzYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dFBhaW50ZXIuY3BwCkBAIC0wLDAgKzEsMTg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJUZXh0UGFpbnRlci5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgorI2luY2x1ZGUgIlJlbmRlckNvbWJpbmVUZXh0
LmgiCisjaW5jbHVkZSAiVGV4dFBhaW50U3R5bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitUZXh0UGFpbnRlcjo6VGV4dFBhaW50ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBib29s
IHBhaW50U2VsZWN0ZWRUZXh0T25seSwgYm9vbCBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHks
IGNvbnN0IEZvbnQmIGZvbnQsCisgICAgaW50IHNQb3MsIGludCBlUG9zLCBpbnQgbGVuZ3RoLCBj
b25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lzTWFyaywgUmVuZGVyQ29tYmluZVRleHQqIGNvbWJp
bmVkVGV4dCwgVGV4dFJ1biYgdGV4dFJ1biwKKyAgICBGbG9hdFJlY3QmIGJveFJlY3QsIEZsb2F0
UG9pbnQmIHRleHRPcmlnaW4sIGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGNvbnN0IFNoYWRvd0Rh
dGEqIHRleHRTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNoYWRvdywKKyAgICBi
b29sIGhvcml6b250YWwsIFRleHRQYWludFN0eWxlJiB0ZXh0UGFpbnRTdHlsZSwgVGV4dFBhaW50
U3R5bGUmIHNlbGVjdGlvblBhaW50U3R5bGUpCisgICAgOiBtX3BhaW50U2VsZWN0ZWRUZXh0T25s
eShwYWludFNlbGVjdGVkVGV4dE9ubHkpCisgICAgLCBtX3BhaW50U2VsZWN0ZWRUZXh0U2VwYXJh
dGVseShwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkpCisgICAgLCBtX2ZvbnQoZm9udCkKKyAg
ICAsIG1fc1BvcyhzUG9zKQorICAgICwgbV9lUG9zKGVQb3MpCisgICAgLCBtX2xlbmd0aChsZW5n
dGgpCisgICAgLCBtX2VtcGhhc2lzTWFyayhlbXBoYXNpc01hcmspCisgICAgLCBtX2NvbWJpbmVk
VGV4dChjb21iaW5lZFRleHQpCisgICAgLCBtX3RleHRSdW4odGV4dFJ1bikKKyAgICAsIG1fYm94
UmVjdChib3hSZWN0KQorICAgICwgbV90ZXh0T3JpZ2luKHRleHRPcmlnaW4pCisgICAgLCBtX2Vt
cGhhc2lzTWFya09mZnNldChlbXBoYXNpc01hcmtPZmZzZXQpCisgICAgLCBtX2hvcml6b250YWwo
aG9yaXpvbnRhbCkKKyAgICAsIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrKCZjb250ZXh0LCAm
dGV4dFBhaW50U3R5bGUsICZzZWxlY3Rpb25QYWludFN0eWxlLCB0ZXh0U2hhZG93LCBzZWxlY3Rp
b25TaGFkb3cpCit7Cit9CisKK3N0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgdGV4
dFJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmssCisgICAgaW50IGVtcGhhc2lz
TWFya09mZnNldCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgdHJ1bmNhdGlv
blBvaW50LCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBjb25zdCBGbG9hdFJlY3QmIGJv
eFJlY3QsCisgICAgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQsIGJvb2wg
aG9yaXpvbnRhbCkKK3sKKyAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3Io
KTsKKyAgICBDb2xvclNwYWNlIGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3Bh
Y2UoKTsKKyAgICBib29sIG9wYXF1ZSA9IGZpbGxDb2xvci5hbHBoYSgpID09IDI1NTsKKyAgICBp
ZiAoIW9wYXF1ZSkKKyAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjpibGFjaywg
ZmlsbENvbG9yU3BhY2UpOworCisgICAgZG8geworICAgICAgICBJbnRTaXplIGV4dHJhT2Zmc2V0
OworICAgICAgICBpZiAoc2hhZG93KQorICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVk
SW50U2l6ZShJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRl
eHQsIHNoYWRvdywgYm94UmVjdCwgc3Ryb2tlZCwgb3BhcXVlLCBob3Jpem9udGFsKSk7CisgICAg
ICAgIGVsc2UgaWYgKCFvcGFxdWUpCisgICAgICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3Io
ZmlsbENvbG9yLCBmaWxsQ29sb3JTcGFjZSk7CisKKyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9
IGVuZE9mZnNldCkgeworICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdp
biArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0
UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwg
ZW1waGFzaXNNYXJrT2Zmc2V0KSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAg
IGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBl
bmRPZmZzZXQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0
T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksICAw
LCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0
IDwgdHJ1bmNhdGlvblBvaW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRl
eHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Q
b2ludCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmln
aW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIHN0YXJ0
T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCFzaGFkb3cpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoc2hh
ZG93LT5uZXh0KCkgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKQorICAgICAgICAgICAgY29udGV4dC0+
cmVzdG9yZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0LT5jbGVhclNoYWRv
dygpOworCisgICAgICAgIHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOworICAgIH0gd2hpbGUgKHNo
YWRvdyB8fCBzdHJva2VkIHx8ICFvcGFxdWUpOworfQorCitlbnVtIFJvdGF0aW9uRGlyZWN0aW9u
IHsgQ291bnRlcmNsb2Nrd2lzZSwgQ2xvY2t3aXNlIH07CisKK3N0YXRpYyBpbmxpbmUgQWZmaW5l
VHJhbnNmb3JtIHJvdGF0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwgUm90YXRpb25EaXJl
Y3Rpb24gY2xvY2t3aXNlKQoreworICAgIHJldHVybiBjbG9ja3dpc2UgPyBBZmZpbmVUcmFuc2Zv
cm0oMCwgMSwgLTEsIDAsIGJveFJlY3QueCgpICsgYm94UmVjdC5tYXhZKCksIGJveFJlY3QubWF4
WSgpIC0gYm94UmVjdC54KCkpCisgICAgICAgIDogQWZmaW5lVHJhbnNmb3JtKDAsIC0xLCAxLCAw
LCBib3hSZWN0LngoKSAtIGJveFJlY3QubWF4WSgpLCBib3hSZWN0LngoKSArIGJveFJlY3QubWF4
WSgpKTsKK30KKwordm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKK3sKKyAgICBBU1NFUlQo
bV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZSk7CisgICAgQVNTRVJU
KG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9uUGFpbnRTdHlsZSk7CisgICAg
CisgICAgRmxvYXRQb2ludCBib3hPcmlnaW4gPSBib3hSZWN0KCkubG9jYXRpb24oKTsKKworICAg
IGlmICghbV9wYWludFNlbGVjdGVkVGV4dE9ubHkpIHsKKyAgICAgICAgLy8gRm9yIHN0cm9rZWQg
cGFpbnRpbmcsIHdlIGhhdmUgdG8gY2hhbmdlIHRoZSB0ZXh0IGRyYXdpbmcgbW9kZS4gSXQncyBw
cm9iYWJseSBkYW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFzIGEgc2lkZQorICAgICAg
ICAvLyBlZmZlY3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0cm9raW5nLCBkbyBhIHNh
dmUvcmVzdG9yZS4KKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsIG1fc2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCk7CisKKyAgICAgICAg
dXBkYXRlR3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRl
eHQsICptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRQYWludFN0eWxlKTsKKyAgICAg
ICAgaWYgKCFtX3BhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBtX2VQb3MgPD0gbV9zUG9z
KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNv
cnJlY3RseS4KKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKG1fc2F2ZWREcmF3aW5n
U3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9mb250LCBtX3RleHRSdW4sIG51bGxBdG9tLCAwLCAw
LCBtX2xlbmd0aCwgbV9sZW5ndGgsIG1fdGV4dE9yaWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJh
d2luZ1N0YXRlRm9yTWFzay5tX3RleHRTaGFkb3csIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNr
Lm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCwgbV9ob3Jpem9udGFsKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2lu
Z1N0YXRlRm9yTWFzay5tX2NvbnRleHQsIG1fZm9udCwgbV90ZXh0UnVuLCBudWxsQXRvbSwgMCwg
bV9lUG9zLCBtX3NQb3MsIG1fbGVuZ3RoLCBtX3RleHRPcmlnaW4sIG1fYm94UmVjdCwgbV9zYXZl
ZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0U2hhZG93LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9y
TWFzay5tX3RleHRQYWludFN0eWxlLT5zdHJva2VXaWR0aCA+IDAsIG1faG9yaXpvbnRhbCk7CisK
KyAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHVw
ZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0
LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZSwgVXNlRW1waGFz
aXNNYXJrQ29sb3IpOworCisgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4s
IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENo
YXJhY3RlciwgMSkpOworICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9
IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogbV90
ZXh0UnVuOworICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0g
bV9jb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBtX2JveFJlY3Qud2lk
dGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBtX2ZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkg
OiBtX3RleHRPcmlnaW47CisgICAgICAgICAgICBpZiAobV9jb21iaW5lZFRleHQpCisgICAgICAg
ICAgICAgICAgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LT5jb25jYXRDVE0o
cm90YXRpb24obV9ib3hSZWN0LCBDbG9ja3dpc2UpKTsKKworICAgICAgICAgICAgaWYgKCFtX3Bh
aW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBtX2VQb3MgPD0gbV9zUG9zKSB7CisgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHku
CisgICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MobV9zYXZlZERyYXdpbmdTdGF0
ZUZvck1hc2subV9jb250ZXh0LCBtX2NvbWJpbmVkVGV4dCA/IG1fY29tYmluZWRUZXh0LT5vcmln
aW5hbEZvbnQoKSA6IG1fZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgbV9lbXBoYXNpc01hcmss
IG1fZW1waGFzaXNNYXJrT2Zmc2V0LCAwLCBtX2xlbmd0aCwgbV9sZW5ndGgsIGVtcGhhc2lzTWFy
a1RleHRPcmlnaW4sIG1fYm94UmVjdCwgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0
U2hhZG93LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRQYWludFN0eWxlLT5zdHJv
a2VXaWR0aCA+IDAsIG1faG9yaXpvbnRhbCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5t
X2NvbnRleHQsIG1fY29tYmluZWRUZXh0ID8gbV9jb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgp
IDogbV9mb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBtX2VtcGhhc2lzTWFyaywgbV9lbXBoYXNp
c01hcmtPZmZzZXQsIG1fZVBvcywgbV9zUG9zLCBtX2xlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRTaGFkb3cs
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRo
ID4gMCwgbV9ob3Jpem9udGFsKTsKKworICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQor
ICAgICAgICAgICAgICAgIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dC0+Y29u
Y2F0Q1RNKHJvdGF0aW9uKG1fYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKChtX3BhaW50U2VsZWN0ZWRUZXh0T25seSB8fCBtX3BhaW50U2Vs
ZWN0ZWRUZXh0U2VwYXJhdGVseSkgJiYgbV9zUG9zIDwgbV9lUG9zKSB7CisgICAgICAgIC8vIHBh
aW50IG9ubHkgdGhlIHRleHQgdGhhdCBpcyBzZWxlY3RlZAorICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29u
dGV4dCwgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25QYWludFN0eWxlLT5z
dHJva2VXaWR0aCA+IDApOworCisgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZl
ZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1h
c2subV9zZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
bV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCBtX2ZvbnQsIG1fdGV4dFJ1biwg
bnVsbEF0b20sIDAsIG1fc1BvcywgbV9lUG9zLCBtX2xlbmd0aCwgbV90ZXh0T3JpZ2luLCBtX2Jv
eFJlY3QsIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9uU2hhZG93LCBtX3Nh
dmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUtPnN0cm9rZVdpZHRo
ID4gMCwgbV9ob3Jpem9udGFsKTsKKyAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdT
dGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxl
Y3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CisKKyAgICAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0
UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBUZXh0
UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNl
bWVudENoYXJhY3RlclRleHRSdW4gOiBtX3RleHRSdW47CisgICAgICAgICAgICBGbG9hdFBvaW50
IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94
T3JpZ2luLngoKSArIG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIG1fZm9u
dC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKKyAgICAgICAgICAgIGlm
IChtX2NvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9y
TWFzay5tX2NvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihtX2JveFJlY3QsIENsb2Nrd2lzZSkp
OworCisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRl
Rm9yTWFzay5tX2NvbnRleHQsIG1fY29tYmluZWRUZXh0ID8gbV9jb21iaW5lZFRleHQtPm9yaWdp
bmFsRm9udCgpIDogbV9mb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBtX2VtcGhhc2lzTWFyaywg
bV9lbXBoYXNpc01hcmtPZmZzZXQsIG1fc1BvcywgbV9lUG9zLCBtX2xlbmd0aCwgZW1waGFzaXNN
YXJrVGV4dE9yaWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3Nl
bGVjdGlvblNoYWRvdywgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25QYWlu
dFN0eWxlLT5zdHJva2VXaWR0aCA+IDAsIG1faG9yaXpvbnRhbCk7CisKKyAgICAgICAgICAgIGlm
IChtX2NvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9y
TWFzay5tX2NvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihtX2JveFJlY3QsIENvdW50ZXJjbG9j
a3dpc2UpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRU
aGlja1RleHRJbk1hc2soR3JhcGhpY3NDb250ZXh0JiBtYXNrQ29udGV4dCkKK3sKKyAgICBjb25z
dCBmbG9hdCBza2lwSW5rR2FwV2lkdGggPSAxLmY7CisgICAgCisgICAgU2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrIHNhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayA9IG1fc2F2ZWREcmF3aW5nU3RhdGVG
b3JNYXNrOworICAgIAorICAgIEFTU0VSVChtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3Rl
eHRQYWludFN0eWxlKTsKKyAgICBBU1NFUlQobV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9z
ZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2Nv
bnRleHQgPSAmbWFza0NvbnRleHQ7CisgICAgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90
ZXh0UGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggKz0gc2tpcElua0dhcFdpZHRoOworICAgIG1fc2F2
ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9uUGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGgg
Kz0gc2tpcElua0dhcFdpZHRoOworICAgIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4
dFNoYWRvdyA9IG51bGxwdHI7CisgICAgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxl
Y3Rpb25TaGFkb3cgPSBudWxscHRyOworICAgIHBhaW50VGV4dCgpOworCisgICAgbV9zYXZlZERy
YXdpbmdTdGF0ZUZvck1hc2sgPSBzYXZlZERyYXdpbmdTdGF0ZUZvck1hc2s7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGU0Y2U2ZjEyY2Q3NjZmNTE2M2JhY2EzYWU5ODQzODQzMzQ2YzY2ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBUZXh0UGFpbnRlcl9oCisjZGVmaW5lIFRleHRQYWlu
dGVyX2gKKworI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZW5kZXJDb21iaW5lVGV4dDsKKworc3RydWN0IFRleHRQYWludFN0eWxlOworCitz
dHJ1Y3QgU2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrIHsKKyAgICBTYXZlZERyYXdpbmdTdGF0ZUZv
ck1hc2soR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBUZXh0UGFpbnRTdHlsZSogdGV4dFBhaW50
U3R5bGUsIFRleHRQYWludFN0eWxlKiBzZWxlY3Rpb25QYWludFN0eWxlLAorICAgIGNvbnN0IFNo
YWRvd0RhdGEqIHRleHRTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNoYWRvdykK
KyAgICAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAgICAgLCBtX3RleHRQYWludFN0eWxl
KHRleHRQYWludFN0eWxlKQorICAgICAgICAsIG1fc2VsZWN0aW9uUGFpbnRTdHlsZShzZWxlY3Rp
b25QYWludFN0eWxlKQorICAgICAgICAsIG1fdGV4dFNoYWRvdyh0ZXh0U2hhZG93KQorICAgICAg
ICAsIG1fc2VsZWN0aW9uU2hhZG93KHNlbGVjdGlvblNoYWRvdykKKyAgICB7CisgICAgfQorICAg
IEdyYXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAgIFRleHRQYWludFN0eWxlKiBtX3RleHRQ
YWludFN0eWxlOworICAgIFRleHRQYWludFN0eWxlKiBtX3NlbGVjdGlvblBhaW50U3R5bGU7Cisg
ICAgY29uc3QgU2hhZG93RGF0YSogbV90ZXh0U2hhZG93OworICAgIGNvbnN0IFNoYWRvd0RhdGEq
IG1fc2VsZWN0aW9uU2hhZG93OworfTsKKworY2xhc3MgVGV4dFBhaW50ZXIgeworcHVibGljOgor
ICAgIFRleHRQYWludGVyKEdyYXBoaWNzQ29udGV4dCYsIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRP
bmx5LCBib29sIHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSwgY29uc3QgRm9udCYsCisgICAg
aW50IHNQb3MsIGludCBlUG9zLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhh
c2lzTWFyaywgUmVuZGVyQ29tYmluZVRleHQqLCBUZXh0UnVuJiwKKyAgICBGbG9hdFJlY3QmIGJv
eFJlY3QsIEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGNv
bnN0IFNoYWRvd0RhdGEqIHRleHRTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNo
YWRvdywKKyAgICBib29sIGhvcml6b250YWwsIFRleHRQYWludFN0eWxlJiBub25TZWxlY3Rpb25Q
YWludFN0eWxlLCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0aW9uUGFpbnRTdHlsZSk7CisgICAgCisg
ICAgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0KCkgeyByZXR1cm4gbV9ib3hSZWN0OyB9CisgICAg
dm9pZCBwYWludFRleHQoKTsKKyAgICB2b2lkIHBhaW50VGhpY2tUZXh0SW5NYXNrKEdyYXBoaWNz
Q29udGV4dCYpOworCitwcml2YXRlOgorICAgIGJvb2wgbV9wYWludFNlbGVjdGVkVGV4dE9ubHk7
CisgICAgYm9vbCBtX3BhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseTsKKyAgICBjb25zdCBGb250
JiBtX2ZvbnQ7CisgICAgaW50IG1fc1BvczsKKyAgICBpbnQgbV9lUG9zOworICAgIGludCBtX2xl
bmd0aDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG1fZW1waGFzaXNNYXJrOworICAgIFJlbmRl
ckNvbWJpbmVUZXh0KiBtX2NvbWJpbmVkVGV4dDsKKyAgICBUZXh0UnVuJiBtX3RleHRSdW47Cisg
ICAgRmxvYXRSZWN0JiBtX2JveFJlY3Q7CisgICAgRmxvYXRQb2ludCYgbV90ZXh0T3JpZ2luOwor
ICAgIGludCBtX2VtcGhhc2lzTWFya09mZnNldDsKKyAgICBib29sIG1faG9yaXpvbnRhbDsKKyAg
ICBTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2sgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2s7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUZXh0UGFpbnRlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDgwOTI5
MDM1MmM0Y2EyNjJhMjMxMmIxZDJjMzM1YWJiM2VhOGRlMTAuLjA4MzM5ZjhmNWY3NThmYWEwNTZi
YjEzMTI2NjMzZGM0ZDYzOTViYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC01ODQsNiArNTg0LDkgQEAgcHVibGljOgogI2Vsc2UKICAgICBU
ZXh0RGVjb3JhdGlvblN0eWxlIHRleHREZWNvcmF0aW9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBU
ZXh0RGVjb3JhdGlvblN0eWxlU29saWQ7IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgVGV4dERlY29yYXRpb25Ta2lwIHRleHREZWNv
cmF0aW9uU2tpcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHREZWNvcmF0aW9uU2tp
cD4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25Ta2lwKTsgfQorI2VuZGlmCiAg
ICAgaW50IHdvcmRTcGFjaW5nKCkgY29uc3Q7CiAgICAgaW50IGxldHRlclNwYWNpbmcoKSBjb25z
dDsKIApAQCAtMTE2Nyw2ICsxMTcwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dEp1c3Rp
ZnkoVGV4dEp1c3RpZnkgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRKdXN0
aWZ5LCB2KTsgfQogICAgIHZvaWQgc2V0VGV4dFVuZGVybGluZVBvc2l0aW9uKFRleHRVbmRlcmxp
bmVQb3NpdGlvbiB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1fdGV4dFVuZGVybGlu
ZVBvc2l0aW9uLCB2KTsgfQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RF
WFRfREVDT1JBVElPTikKKyAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uU2tpcChUZXh0RGVjb3Jh
dGlvblNraXAgc2tpcCkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHREZWNvcmF0
aW9uU2tpcCwgc2tpcCk7IH0KKyNlbmRpZgogICAgIHZvaWQgc2V0RGlyZWN0aW9uKFRleHREaXJl
Y3Rpb24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2RpcmVjdGlvbiA9IHY7IH0KICNpZiBFTkFCTEUo
SU9TX1RFWFRfQVVUT1NJWklORykKICAgICB2b2lkIHNldFNwZWNpZmllZExpbmVIZWlnaHQoTGVu
Z3RoIHYpOwpAQCAtMTY4OSw2ICsxNjk1LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBUZXh0SnVz
dGlmeSBpbml0aWFsVGV4dEp1c3RpZnkoKSB7IHJldHVybiBUZXh0SnVzdGlmeUF1dG87IH0KICAg
ICBzdGF0aWMgVGV4dFVuZGVybGluZVBvc2l0aW9uIGluaXRpYWxUZXh0VW5kZXJsaW5lUG9zaXRp
b24oKSB7IHJldHVybiBUZXh0VW5kZXJsaW5lUG9zaXRpb25BdXRvOyB9CiAjZW5kaWYgLy8gQ1NT
M19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHN0YXRpYyBUZXh0
RGVjb3JhdGlvblNraXAgaW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcCgpIHsgcmV0dXJuIFRleHRE
ZWNvcmF0aW9uU2tpcE5vbmU7IH0KKyNlbmRpZgogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsWm9v
bSgpIHsgcmV0dXJuIDEuMGY7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxPdXRsaW5lT2Zmc2V0
KCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsT3BhY2l0eSgpIHsgcmV0
dXJuIDEuMGY7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggZTIzNDAyMTcxN2Y0YTQwYzYxZDM4YWIxNTk2ZGM0
ZTJiZjFkMDI4My4uZmU0YTk5MTY1YjczYjc1MWZhOTA1N2E5ODBhZDc3ZTE2OWJlMDhiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29u
c3RhbnRzLmgKQEAgLTM4MSw2ICszODEsMTMgQEAgZW51bSBUZXh0SnVzdGlmeSB7CiB9OwogI2Vu
ZGlmIC8vIENTUzNfVEVYVAogCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorZW51
bSBUZXh0RGVjb3JhdGlvblNraXBJdGVtcyB7CisgICAgVGV4dERlY29yYXRpb25Ta2lwTm9uZSA9
IDB4MCwgVGV4dERlY29yYXRpb25Ta2lwSW5rID0gMSA8PCAwCit9OwordHlwZWRlZiB1bnNpZ25l
ZCBUZXh0RGVjb3JhdGlvblNraXA7CisjZW5kaWYKKwogZW51bSBFUGFnZUJyZWFrIHsKICAgICBQ
QkFVVE8sIFBCQUxXQVlTLCBQQkFWT0lECiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDBmY2Zi
MDhjZjkyNjMyMzhlYWM1ZTgxMWFiZTMwYWNlNzE0YjFiODQuLjRlNGZjMjkzYTJkNzE4NWRjMGZl
MDE2MGI5NzYyN2IxNjU2OGMwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTQyLDYgKzQyLDkg
QEAgc3RydWN0IFNhbWVTaXplQXNTdHlsZVJhcmVJbmhlcml0ZWREYXRhIDogcHVibGljIFJlZkNv
dW50ZWQ8U2FtZVNpemVBc1N0eWxlUmFyZUkKICAgICBMZW5ndGggbGVuZ3Roc1sxXTsKICAgICBm
bG9hdCBzZWNvbmRGbG9hdDsKICAgICB1bnNpZ25lZCBtX2JpdGZpZWxkc1syXTsKKyNpZiBFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgdW5zaWduZWQgbV9iaXRmaWVsZHNFeHRyYTsK
KyNlbmRpZgogICAgIHNob3J0IHBhZ2VkTWVkaWFTaG9ydHNbMl07CiAgICAgdW5zaWduZWQgdW5z
aWduZWRzWzFdOwogICAgIHNob3J0IGh5cGhlbmF0aW9uU2hvcnRzWzNdOwpAQCAtMTEyLDYgKzEx
NSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQog
ICAgICwgbV90ZXh0SnVzdGlmeShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRKdXN0aWZ5KCkpCiAg
ICAgLCBtX3RleHRVbmRlcmxpbmVQb3NpdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRVbmRl
cmxpbmVQb3NpdGlvbigpKQogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RF
WFRfREVDT1JBVElPTikKKyAgICAsIG1fdGV4dERlY29yYXRpb25Ta2lwKFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dERlY29yYXRpb25Ta2lwKCkpCisjZW5kaWYKICAgICAsIG1fcnVieVBvc2l0aW9u
KFJlbmRlclN0eWxlOjppbml0aWFsUnVieVBvc2l0aW9uKCkpCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgICwgdG91Y2hDYWxsb3V0RW5hYmxlZChSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQ2FsbG91
dEVuYWJsZWQoKSkKQEAgLTE5Myw2ICsxOTksOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAg
ICAgLCBtX3RleHRKdXN0aWZ5KG8ubV90ZXh0SnVzdGlmeSkKICAgICAsIG1fdGV4dFVuZGVybGlu
ZVBvc2l0aW9uKG8ubV90ZXh0VW5kZXJsaW5lUG9zaXRpb24pCiAjZW5kaWYgLy8gQ1NTM19URVhU
CisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICwgbV90ZXh0RGVjb3JhdGlv
blNraXAoby5tX3RleHREZWNvcmF0aW9uU2tpcCkKKyNlbmRpZgogICAgICwgbV9ydWJ5UG9zaXRp
b24oby5tX3J1YnlQb3NpdGlvbikKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCB0b3VjaENhbGxv
dXRFbmFibGVkKG8udG91Y2hDYWxsb3V0RW5hYmxlZCkKQEAgLTMxNSw2ICszMjQsOSBAQCBib29s
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgbV90ZXh0SnVzdGlmeSA9PSBvLm1fdGV4dEp1
c3RpZnkKICAgICAgICAgJiYgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24gPT0gby5tX3RleHRVbmRl
cmxpbmVQb3NpdGlvbgogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRf
REVDT1JBVElPTikKKyAgICAgICAgJiYgbV90ZXh0RGVjb3JhdGlvblNraXAgPT0gby5tX3RleHRE
ZWNvcmF0aW9uU2tpcAorI2VuZGlmCiAgICAgICAgICYmIG1fcnVieVBvc2l0aW9uID09IG8ubV9y
dWJ5UG9zaXRpb24KICAgICAgICAgJiYgbV9saW5lU25hcCA9PSBvLm1fbGluZVNuYXAKICNpZiBF
TkFCTEUoQ1NTX1ZBUklBQkxFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDg5MDhiNTU5NjQzOTgzMzQ4
YjIyMGU0YjVjOTU2MzUyODU5ODU5N2YuLmIxMjQ5ZmQ0OGZiYjk2ZWJhZWZiOTllYjA4YjE2OTQw
NGNiZjMxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTI2LDYgKzEyNiw5IEBAIHB1YmxpYzoKICAg
ICB1bnNpZ25lZCBtX3RleHRKdXN0aWZ5IDogMzsgLy8gVGV4dEp1c3RpZnkKICAgICB1bnNpZ25l
ZCBtX3RleHRVbmRlcmxpbmVQb3NpdGlvbiA6IDM7IC8vIFRleHRVbmRlcmxpbmVQb3NpdGlvbgog
I2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAg
ICB1bnNpZ25lZCBtX3RleHREZWNvcmF0aW9uU2tpcCA6IDU7IC8vIFRleHREZWNvcmF0aW9uU2tp
cAorI2VuZGlmCiAgICAgdW5zaWduZWQgbV9ydWJ5UG9zaXRpb24gOiAxOyAvLyBSdWJ5UG9zaXRp
b24KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODQ5ODFlNDgzZjNm
YjYzYjY2NTYzNDA2YzIzY2JkMmI2YzNlYmI0OC4uYmU3NjE2MjNlNjgyNzk0ODk3MWI1OWJhNjA2
MjFhNmMyZmU0ZTZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5BQkxF
X0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJBTlNG
T1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NTUzNf
Q09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NTUzNf
VEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxFX0NT
UzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsKQEAg
LTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVfRlRM
X0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hF
X1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9Y
WSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9D
U1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJ
VElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVO
QUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RP
TTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURE
RU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChF
TkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElM
UykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykg
JChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BS
T1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVf
U1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhS
RUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9B
TklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkg
JChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFU
Rk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BS
T1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxF
X0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BP
U0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQo
RU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5BQkxF
X0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChF
TkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAk
KEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9M
T0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RU
TElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZF
VENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikg
JChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVO
VCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxF
X1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9T
Q1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQo
RU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVf
U1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5B
QkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5B
QkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJ
QSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVf
RlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDg0OTgxZTQ4M2YzZmI2M2I2NjU2MzQwNmMyM2NiZDJiNmMzZWJiNDguLmY5NzUyNGVlYTE3
YmVhNjZiZjc3OGVhY2ZhNGNkYzE2NWQ1ODBhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01OCw2ICs1OCw3
IEBAIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQgPSBFTkFCTEVf
Q1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VCiBFTkFCTEVfQ1NTX1ZBUklBQkxFUyA9IDsKIEVO
QUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTID0gOwogRU5BQkxFX0NTUzNfVEVYVCA9IDsKK0VO
QUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiA9IEVOQUJMRV9DU1NfVEVYVF9ERUNPUkFUSU9OOwog
RU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
ID0gRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExF
UiA9IDsKQEAgLTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBF
TkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NB
TlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVT
SU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElP
TikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAk
KEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NU
SUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJ
WEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JV
TEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAk
KEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQo
RU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9O
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElf
Q0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lO
UFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQo
RU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9S
RVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxF
X1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJf
VElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklO
RVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVf
Q0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05F
WFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBP
U0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENM
VVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMp
ICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1Nf
U1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJF
RklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxf
UlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04p
ICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNU
UlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFC
TEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dB
TUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElN
RVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFU
QUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VF
SykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdB
Q1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1ND
UklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VS
U09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lU
X1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JF
U1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMp
ICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFU
QUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykg
JChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1F
TlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJT
RVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RF
X0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkg
JChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Q1NDAy
OTQ0ZDZlNjdhODQyYjA0YTFmMzQxNzk0OWQwYzMwZDRlMy4uZGQ4ZjQzNDA4MGIwMjVhZjhlNDAw
MmY0NjY4ODAxYzZlOTI2YzljYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEwLTE1ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRh
dGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtOgorCiAyMDEzLTEwLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgUGFzc1JlZiBhbmQgY3JlYXRlUmVmQ291bnRlZCBzbyB3ZSBjYW4gaW1wcm92ZSBj
cmVhdGlvbiBvZiBSZWZDb3VudGVkIG9iamVjdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbQppbmRleCAzZDQ2MDVlODZmMzZkY2I0MDA2YmRmNDM5MjE2ZTdiZGI2NzFjOTll
Li4xYTcwMDI3M2UxYzk4ZmE1NzA5ZjllZGMwN2U5YjJlNTIwNTc5MDY3IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC01Miw2ICs1Miw3IEBAIG15ICgKICAgICAk
Y3NwTmV4dFN1cHBvcnQsCiAgICAgJGNzczNDb25kaXRpb25hbFJ1bGVzU3VwcG9ydCwKICAgICAk
Y3NzM1RleHRTdXBwb3J0LAorICAgICRjc3MzVGV4dERlY29yYXRpb25TdXBwb3J0LAogICAgICRj
c3MzVGV4dExpbmVCcmVha1N1cHBvcnQsCiAgICAgJGNzczRJbWFnZXNTdXBwb3J0LAogICAgICRj
c3NCb3hEZWNvcmF0aW9uQnJlYWtTdXBwb3J0LApAQCAtMjAwLDYgKzIwMSw5IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0IiwgZGVzYyA9PiAiVG9nZ2xlIENT
UzMgVGV4dCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVYVCIsIGRl
ZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkY3NzM1RleHRTdXBwb3J0
IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0LWRlY29yYXRpb24iLCBkZXNjID0+ICJU
b2dnbGUgQ1NTMyBUZXh0IERlY29yYXRpb24gc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9DU1MzX1RFWFRfREVDT1JBVElPTiIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjc3Mz
VGV4dERlY29yYXRpb25TdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAiY3NzMy10ZXh0LWxp
bmUtYnJlYWsiLCBkZXNjID0+ICJUb2dnbGUgQ1NTMyBUZXh0IExpbmUgQnJlYWsgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSyIsIGRlZmF1bHQg
PT4gMCwgdmFsdWUgPT4gXCRjc3MzVGV4dExpbmVCcmVha1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMw
MzYyYTdhZjE4MmY5MDhiNTY3MjNhZmM4NDg2ODMyN2Y0MGIzNzguLjI0NjE0ZjA4MDYzMWVlZTFk
YzgyOWEyNzg4NDMwZDJhMzExNmUzNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0xMC0x
NSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIElu
aXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0aW9uLXNraXAgaW5rCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4MDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlv
bi1za2lwLWluay16b29tZWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRl
Y29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90
ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24v
dGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEz
LTEwLTE2ICBLeXVuZ1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIER1
cmluZyBlZGl0aW5nLCBtZXJnZSBpbmxpbmUgc3R5bGUgd2l0aCBvdmVycmlkaW5nIG90aGVyIGF1
dGhvciBzdHlsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lw
LWluay16b29tZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1z
a2lwLWluay16b29tZWQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDdkNTAyYWQzNTFmNzIz
OWE3ZDMxZGE1ZTdkY2JiYWExN2EyMjIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAv
dGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgICNi
aWdza2V3IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6IC0xNTZweDsK
KyAgICAgIHRvcDogLTQwMHB4OworICAgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgICAgZm9u
dC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6IGhlbHZldGljYTsKKyAgICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46
IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9s
bG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0
aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMg
aW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMg
dGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQg
d2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJlY2lzaW9uLgorICBJZiB3ZSBk
b24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0IGJlIGEgbmljZSBjcmlzcCBl
ZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdoZXJlIGl0IGdldHMgbWFza2Vk
IG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdl
IGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJhY3RlcgorICAgIDxkaXYgc3R5
bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDgxcHg7IGhl
aWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0iYmlnc2tldyI+bHBsPC9kaXY+CisgICAgPC9k
aXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtaW5rLXpvb21lZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5NDFhZjYzZTkzMTE3ZDNkYjU4
YjJmODNkNTc1OWZjYjVlNWU5YjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgI2JpZ3NrZXcgeworICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgbGVmdDogLTE1NnB4OworICAgICAgdG9wOiAt
NDAwcHg7CisgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgICBmb250LXNpemU6IDEycHQ7
CisgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNhOworICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7CisgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBpbms7CisgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMzcpOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm0t
b3JpZ2luOiB0b3AgbGVmdDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
VGhlIGZvbGxvd2luZyBzaG91bGQgYmUgYW4gdW5kZXJsaW5lZCBpdGFsaWNpemVkICJwIiBhcyB2
aWV3ZWQgdGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFyb3VuZAorICB0aGUgZGVzY2VuZGVyLiBUaGUg
InAiIGlzIGluIDEycHQgc2l6ZSwgYnV0IGlzIGJsb3duIHVwIHRvIG11Y2ggbGFyZ2VyLiBUaGlz
IHRlc3RzIHRoYXQKKyAgdGhlIHRleHQtZGVjb3JhdGlvbi1za2lwOiBpbmsgbWFzayBpcyBjYWxj
dWxhdGVkIHdpdGggbW9yZSBwcmVjaXNpb24gdGhhbiB1c2VyLXNwYWNlIHByZWNpc2lvbi4KKyAg
SWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLCB0aGVyZSB3b24ndCBiZSBhIG5pY2Ug
Y3Jpc3AgZWRnZSBvbiB0aGUgc2xvcGUgb2YgdGhlIHVuZGVybGluZQorICB3aGVyZSBpdCBnZXRz
IG1hc2tlZCBvZmYuIFRoaXMgdGVzdCB3b3VsZCBmYWlsIGJlY2F1c2UgdGhlcmUgd291bGQgYmUg
Z2FyYmFnZSBnaWFudCBwaXhlbAorICBhbGlhc2luZyBuZWFyIHRoZSBjaGFyYWN0ZXIKKyAgICA8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiA4
MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9ImJpZ3NrZXciPmxwbDwvZGl2Pgor
ICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lw
L3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM1ZWUzNTFhNDdlNTExM2Q4ZjQ3ZWIzYjg0N2FjNzI3N2ZhNDU2N2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBjc3NSdWxlLnR5cGUgaXMgY3NzUnVsZS5TVFlMRV9S
VUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAnKSBpcyAiaW5rIgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVs
dGlwbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91
bmR0cmlwLW11bHRpcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWVlMzUxYTQ3ZTUxMTNk
OGY0N2ViM2I4NDdhYzcyNzdmYTQ1NjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAv
dGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1BBU1MgY3NzUnVsZS50eXBlIGlzIGNzc1J1bGUuU1RZTEVfUlVMRQorUEFT
UyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwJykgaXMgImluayIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLW11bHRpcGxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNDZlZDU0NjA0NGE4ZmRhMTViYzIxYzRiYmUwYTE5ZjVlNWZjZGNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91
bmR0cmlwLW11bHRpcGxlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorICAgIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzdHlsZSIpOworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50
KTsKKyAgICBzdHlsZXNoZWV0ID0gc3R5bGVFbGVtZW50LnNoZWV0OworICAgIHN0eWxlc2hlZXQu
aW5zZXJ0UnVsZSgiLnAgeyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBpbmsgaW5rIGlu
ayBpbmsgaW5rOyB9IiwgMCk7CisgICAgY3NzUnVsZSA9IHN0eWxlc2hlZXQuY3NzUnVsZXMuaXRl
bSgwKTsKKyAgICBzaG91bGRCZSgiY3NzUnVsZS50eXBlIiwgImNzc1J1bGUuU1RZTEVfUlVMRSIp
OworICAgIGRlY2xhcmF0aW9uID0gY3NzUnVsZS5zdHlsZTsKKyAgICBzaG91bGRCZSgiZGVjbGFy
YXRpb24ubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24uZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCcpIiwgIlwiaW5rXCIiKTsKKyAg
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3Jh
dGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYjYxYjhkZDk0OGRmODU4ZGYw
MjE5NTc4MTk3MzcwMjJmOTkzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQpOworICAgIHN0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hlZXQ7CisgICAg
c3R5bGVzaGVldC5pbnNlcnRSdWxlKCIucCB7IC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6
IGluazsgfSIsIDApOworICAgIGNzc1J1bGUgPSBzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCk7
CisgICAgc2hvdWxkQmUoImNzc1J1bGUudHlwZSIsICJjc3NSdWxlLlNUWUxFX1JVTEUiKTsKKyAg
ICBkZWNsYXJhdGlvbiA9IGNzc1J1bGUuc3R5bGU7CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9u
Lmxlbmd0aCIsICIxIik7CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAnKSIsICJcImlua1wiIik7CisgIDwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjNzI4MDMzNWI0NzhiMjU5NWUzODAzOTBkZGMwMDliYjJkNWQ0ZjkyLi5h
NGZmZjgxN2IwNDk4N2ZkMTkwYTZmN2Q2N2I5NmM4MDdhZmM0YWMzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODI5LDYgKzgyOSw3IEBAIHdlYmtpdC5v
cmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogCiAjIENTUzMgVGV4dCBzdXBw
b3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQu
b3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KK3dlYmtpdC5v
cmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29y
YXRpb24tc2tpcCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1hbGlnbi1sYXN0CiB3ZWJraXQub3JnL2IvOTk5NDUgZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWp1c3RpZnkgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTI3NTUgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214383</attachid>
            <date>2013-10-16 12:00:12 -0700</date>
            <delta_ts>2013-11-01 12:16:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131016120012.patch</filename>
            <type>text/plain</type>
            <size>94410</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2JhNTg1NWRlYmQyNmQyY2M4YjBiMmFhNWRkZTE3NjAwZGRlNTMzLi5lMTUyNzk0YzIyOTZjN2M0
MDAxNTY0MzU0ZWZkYmFiMzk4OTNkYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNvcmF0
aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEzLTEw
LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2l0aW9u
IHZvaWQgY3RpX29wX3RlYXJfb2ZmKiBtZXRob2RzIHRvIEpJVCBvcGVyYXRpb25zIGZvciAzMiBi
aXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMGM2MDM1NDVjYzVmYjUzNjcyMGRlZWE5YzNhZjhlYTg5ODZhNTBh
OC4uY2NlMjIzOTE0ZDBkOTc1MGQ4NGE5ZDYzMGQ5YjlhZWQ4MTJiMWY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDczIEBACisyMDEzLTEwLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRl
Y29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LWRlY29yLTMvI3RleHQtZGVj
b3JhdGlvbi1za2lwLXByb3BlcnR5CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDU1Mg
cHJvcGVydHkgIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAiCisgICAgICAgIGFuZCBhIG5l
dyB2YWx1ZSAiaW5rIi4gSWYgdGhpcyBuZXcgcHJvcGVydHkgYW5kIHZhbHVlIGFwcGx5IHRvIGFu
CisgICAgICAgIElubGluZVRleHRCb3gsIGEgbWFzayBpcyBhcHBsaWVkIHRvIHRoZSB1bmRlcmxp
bmUgZHJhd2luZyBjb2RlLgorICAgICAgICBUaGlzIG1hc2sgaXMgY3JlYXRlZCBieSBpbmNyZWFz
aW5nIHRoZSBjb250ZXh0J3Mgc3Ryb2tlIHdpZHRoLCB0aGVuCisgICAgICAgIHJlZHJhd2luZyB0
aGUgdGV4dCB0aGF0IHdpbGwgYXBwZWFyIGFib3ZlIHRoZSB1bmRlcmxpbmUuIFRoaXMgbWFzaywK
KyAgICAgICAgd2hlbiBhcHBsaWVkIHRvIHRoZSB1bmRlcmxpbmUsIHdpbGwgY3JlYXRlIGEgdmlz
dWFsIG1vYXQgYXJvdW5kIHRoZQorICAgICAgICBsZXR0ZXJzIHdoZXJlIHRoZSB1bmRlcmxpbmUg
d2lsbCBub3QgZHJhdy4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIElubGluZVRleHRC
b3g6OnBhaW50RGVjb3JhdGlvbiBzbyB0aGF0IHRoZQorICAgICAgICBmdW5jdGlvbiBpcyBhd2Fy
ZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGRyYXcgdGhlIHRleHQgdGhhdAorICAgICAgICB0
aGUgZGVjb3JhdGlvbiBpcyBkZWNvcmF0aW5nLiBUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnYXRoZXJl
ZAorICAgICAgICBpbnRvIGEgc3RydWN0IHdoaWNoIElubGluZVRleHRCb3g6OnBhaW50VGV4dCBo
YXMgYmVlbiBtb2RpZmllZAorICAgICAgICB0byBhY2NlcHQuIElubGluZVRleHRCb3g6OnBhaW50
RGVjb3JhdGlvbiBtb2RpZmllcyB0aGlzIHN0cnVjdAorICAgICAgICBhbmQgY2FsbHMgSW5saW5l
VGV4dEJveDo6cGFpbnRUZXh0IGl0c2VsZiB0byBjcmVhdGUgdGhlIG1hc2suCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLW11bHRpcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcEZsYWdzVG9DU1NW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlVGV4dERlY29yYXRpb25Ta2lwKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW46CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uU2tpcDo6dmFsdWVUb0Rl
Y29yYXRpb25Ta2lwKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0RGVjb3Jh
dGlvblNraXA6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uU2tpcDo6Y3JlYXRlSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyKToKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRC
b3g6OnBhaW50RGVjb3JhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRleHRQYWludGVyOjpUZXh0UGFpbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpw
YWludFRleHRXaXRoU2hhZG93cyk6CisgICAgICAgIChXZWJDb3JlOjpyb3RhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRQYWludGVyOjpwYWludFRoaWNrVGV4dEluTWFzayk6CisgICAgICAgICogcmVuZGVyaW5n
L1RleHRQYWludGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrOjpTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2spOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFBhaW50ZXI6OmJveFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3Bl
cmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaDoKKwogMjAxMy0xMC0xNiAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBEdXJpbmcgZWRpdGluZywgbWVyZ2UgaW5saW5lIHN0eWxlIHdpdGggb3ZlcnJp
ZGluZyBvdGhlciBhdXRob3Igc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMTgxNWIzMWExZjdl
YzljYzFjNTViY2ZlZWFhNDJlZDJhZTU0YTAyZi4uOTBkMmZiYzE3OTAzMDI3MTAzNDdmM2ZlOGEz
N2RmMTI3NjRjMzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEw
LTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTMtMTAtMTUgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfV0VCX0FOSU1BVElPTlMgZmxh
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDYzZmJiNmYzYjY0MDE1M2FhNWY3ZWI4ZDJjOWY0ODhlZWM5MjNiOWIu
LjVmZDE2YWNiMjM5OGRiZjk1NzE2ZTJkMDI3OTkxMWQ3OWM2MjYxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMy0xMC0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGV4dC1kZWNv
cmF0aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEz
LTEwLTE2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1dLMl1bRWZsXVtDTWFrZV0gQWRkIHN1cHBvcnQgZm9yIEVOQUJMRV9ORVRXT1JLX1BST0NFU1Mg
dG8gdGhlIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg0OTgxZTQ4
M2YzZmI2M2I2NjU2MzQwNmMyM2NiZDJiNmMzZWJiNDguLmJlNzYxNjIzZTY4Mjc5NDg5NzFiNTli
YTYwNjIxYTZjMmZlNGU2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4
LDcgQEAgRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwog
RU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOwor
RU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9O
OwogRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZID0gRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUiA9IDsKQEAgLTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
CiBFTkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxF
X0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9O
RVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01Q
T1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhD
TFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
X1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBS
RUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFL
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5U
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVH
SU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9W
MikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9E
UElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVT
UykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
UikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZ
X0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5B
QkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9V
VCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9Y
SFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RF
RklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9S
RU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFC
TEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQ
X05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19F
WENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9D
U1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VO
UFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9O
QUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJ
T04pICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJ
TElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NP
TlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChF
TkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01f
VElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJP
R1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVO
VFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
KSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxf
REFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBU
TykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9Q
QVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9B
TEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNM
VCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1NTlmYTk2MzI3ODg2MDU4MzY3YWRmMzJlMGVkNTVj
NWI1NDNmY2MuLjQxYzY0MzMyOWI2NDVkODBjZDlhNzI0YzZjOGEyNzcyODU0ZjU1ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMTcxLDYgKzIxNzEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcAogICAgIHJlbmRlcmluZy9UZXh0QXV0
b3NpemVyLmNwcAogICAgIHJlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKKyAgICByZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCiAgICAgcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAogCiAgICAg
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODQ5
ODFlNDgzZjNmYjYzYjY2NTYzNDA2YzIzY2JkMmI2YzNlYmI0OC4uYmU3NjE2MjNlNjgyNzk0ODk3
MWI1OWJhNjA2MjFhNmMyZmU0ZTZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5B
QkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJB
TlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJMRV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBFTkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NT
UzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OOwogRU5BQkxF
X0NTUzNfVEVYVF9MSU5FX0JSRUFLID0gOwogRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZID0gRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZOwogRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUiA9IDsK
QEAgLTE4OCw0ICsxODksNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCiBFTkFCTEVf
RlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19Q
Uk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9Q
T1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAk
KEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VC
X0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURF
TykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFC
TEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9V
VCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQ
TEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFT
X1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5H
KSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05T
KSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZ
X1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQp
ICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICQoRU5B
QkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9S
KSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9O
VF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhS
T1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1ND
QUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxF
TUVOVCkgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFC
TEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZTNkMGIxNDg2NTQxMTFiZTBhNzVlMjg0ZTUzZGQ5
MTNlMmUwYTZiLi5kYmJhZDNiMmYwMDAzYjIxNDUzNmQxYzYzMGRlNDZkMzQwYjNiMzMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0NzMsNiArNDQ3Myw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmggXAorCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0UGFpbnRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
UGFpbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVmVydGljYWxQb3NpdGlvbkNh
Y2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxv
Y2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJs
b2NrLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKaW5kZXggNTg1ZGQ0MzBiNDA1MjQ1MmY2YTllMzk3ODJkYjFmNDEyMDkxMTRmYi4uZDI5MDkw
MDZmZWM1MWI0ZWFlZGFjMmZiZmU4M2IzYTgxZDcwYjBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMTYxOSw2ICsxMTYxOSwyMCBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xU
ZXh0UGFpbnRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
d29ya2Vyc1xTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHhtbFxET01QYXJzZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ceG1sXE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAiIC8+CkBAIC0xOTU1MCw2ICsxOTU2NCw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3ZnXFNWR1Jlc291cmNl
c0N5Y2xlU29sdmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
VGFibGVMYXlvdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xU
ZXh0UGFpbnRTdHlsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFRleHRQYWludGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
VHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcbWF0aG1sXFJlbmRlck1hdGhNTEJsb2NrLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbWF0aG1sXFJlbmRlck1hdGhNTEZlbmNlZC5oIiAv
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCmluZGV4IDRkZWVlMDY2M2RhODZhM2YxMWJmZmM1ODc5NTYzNjk5NzYzYTQw
YmEuLmM5NTE3YjlhZGY1ZDc0MGFjZWRhZTAzYjZmZWEwOWFhZGU0OGIwOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTI3MzksNiArMjczOSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3ZnXFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCI+CiAgICAgICA8RmlsdGVyPnJl
bmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFRleHRQYWludGVyLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXG1hdGhtbFxSZW5kZXJNYXRoTUxCbG9jay5jcHAiPgogICAgICAgPEZpbHRlcj5y
ZW5kZXJpbmdcbWF0aG1sPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05NTA0LDYgKzk1
MDcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRhYmxlTGF5b3V0
LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xUZXh0UGFpbnRlci5oIj4KKyAg
ICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94
LmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3NTMwYWEyMzlkMzhiNWMwMGNmZTQwMzZkMjY5MzIzM2ZiZjBjYTRlLi43YTAyMWIzZWRj
NGVkN2ZhYTc2MjNlY2I5NjliNThiYjAxOGRjZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MjYsNiArODI2LDggQEAKIAkJ
MUMxMUNDQzYwQUE2MDkzNzAwREFEQjIwIC8qIERPTURvY3VtZW50RnJhZ21lbnQuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
MDg5Q0QzMEE5OEM0MjgwMEEyNzVBQSAvKiBET01Eb2N1bWVudEZyYWdtZW50LmggKi87IH07CiAJ
CTFDMTFDQ0M3MEFBNjA5MzcwMERBREIyMCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5
Q0NGMEE5OEM0MjcwMEEyNzVBQSAvKiBET01DREFUQVNlY3Rpb24uaCAqLzsgfTsKIAkJMUMxMUND
QzgwQUE2MDkzNzAwREFEQjIwIC8qIERPTUhUTUxFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkVFQjBBQTM4
N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVsZW1lbnQuaCAqLzsgfTsKKwkJMUMxMzI2MjUxODBERUFD
MDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTMyNjIzMTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRl
ci5jcHAgKi87IH07CisJCTFDMTMyNjI2MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxMzI2MjQx
ODBERUFDMDAwOTFBNjdDIC8qIFRleHRQYWludGVyLmggKi87IH07CiAJCTFDMjY0OTdBMEQ3RTI0
OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NDk3OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9j
dW1lbnRMb2FkZXJNYWMuY3BwICovOyB9OwogCQkxQzI2NDk3QzBEN0UyNEVDMDBCRDEwRjIgLyog
UGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzI2NDk3QjBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi87IH07CiAJCTFDNEM4
RjAyMEFEODVEODcwMDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzRDOEYwMDBBRDg1RDg3MDA5
NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03MjgzLDYgKzcyODUsOCBAQAogCQkxQUY4RTFD
MTEyNTY3M0UwMDAyMzBGRjcgLyogUHJveHlTZXJ2ZXJDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVNlcnZlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFGRTExOTcwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0
U2V0Um93TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NR
TFJlc3VsdFNldFJvd0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZF
MTE5ODBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzEzMjYyMzE4MERFQUMwMDA5MUE2N0MgLyogVGV4dFBh
aW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFBhaW50
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzEzMjYyNDE4MERFQUMwMDA5
MUE2N0MgLyogVGV4dFBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGV4dFBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5NzkwRDdF
MjQ4QTAwQkQxMEYyIC8qIERvY3VtZW50TG9hZGVyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYyIC8qIFBhZ2VNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNDM1Q0QzMTRFODU0NEYwMDRFMTBFQSAvKiBJbnNwZWN0
b3IuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBJbnNwZWN0b3IuanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwNzEzLDYgKzIwNzE3LDggQEAKIAkJCQlFNEM5MUEwRDE4MDIzNDMxMDBBMTdGNkQgLyog
VGV4dFBhaW50U3R5bGUuaCAqLywKIAkJCQkzN0ZDOTZEQTExMDRFRDcxMDAzRTFGQUQgLyogVHJh
aWxpbmdGbG9hdHNSb290SW5saW5lQm94LmggKi8sCiAJCQkJQkNBMjU3MTQxMjkzQzAxMDAwN0Ey
NjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oICovLAorCQkJCTFDMTMyNjIzMTgwREVBQzAw
MDkxQTY3QyAvKiBUZXh0UGFpbnRlci5jcHAgKi8sCisJCQkJMUMxMzI2MjQxODBERUFDMDAwOTFB
NjdDIC8qIFRleHRQYWludGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHJlbmRlcmluZzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjI4Niw2ICsyMjI5Miw3IEBACiAJCQkJOEEx
OTU5MzQxNDdFQTE2RTAwRDFFQTYxIC8qIERPTVdlYktpdE5hbWVkRmxvd0ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMUMwRkY0QzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFDMTMyNjI2MTgwREVBQzAwMDkxQTY3QyAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODVDN0Y1RTcwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1OTg5REQxMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MDNCOTk3MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwODUsNiArMjYwOTIsNyBAQAogCQkJ
CTJENkU0Njg0MTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudEltYWdlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM2NDY0OTcxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDlDMTFEODIzOEMwMDY0NTVCMCAvKiBKU0RP
TVN0cmluZ01hcEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzEzMjYyNTE4MERFQUMw
MDA5MUE2N0MgLyogVGV4dFBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzY5NDU2M0Mx
MjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJFMzdFMDA1MTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RPTVVSTC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDAzQkEwQzA5RUIxOEM3MDA3OTdDN0YgLyogSlNET01XaW5kb3cuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCmluZGV4IDdiYmRjODI2Y2ZmNzFmMjdkY2I2YmIzNWVkMjUzN2QxMjY1ODgwNTYu
LjY5MzdkMGQ2OTc5YzU2ZDI4YjNmNjc3MGE3NmRhNTI2ODQzZGVkMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNDM3
LDYgKzE0MzcsMjEgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNv
cmF0aW9uU3R5bGVGbGFnc1RvQ1NTVmFsdWUoVGV4dERlY29yYXQKIH0KICNlbmRpZiAvLyBDU1Mz
X1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK3N0YXRpYyBQYXNzUmVm
UHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVjb3JhdGlvblNraXBGbGFnc1RvQ1NTVmFsdWUoVGV4
dERlY29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCkKK3sKKyAgICBzd2l0Y2ggKHRleHRE
ZWNvcmF0aW9uU2tpcCkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwTm9uZToKKyAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Cisg
ICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJbms6CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmspOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVFeHBs
aWNpdEluaXRpYWxWYWx1ZSgpOworfQorI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCisK
IHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBmaWxsUmVwZWF0VG9DU1NWYWx1ZShFRmlsbFJl
cGVhdCB4UmVwZWF0LCBFRmlsbFJlcGVhdCB5UmVwZWF0KQogewogICAgIC8vIEZvciBiYWNrd2Fy
ZHMgY29tcGF0aWJpbGl0eSwgaWYgYm90aCB2YWx1ZXMgYXJlIGVxdWFsLCBqdXN0IHJldHVybiBv
bmUgb2YgdGhlbS4gQW5kCkBAIC0yMzU2LDYgKzIzNzEsMTAgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRlcmxpbmVQb3NpdGlv
bjoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+
dGV4dFVuZGVybGluZVBvc2l0aW9uKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAorI2lmIEVOQUJM
RShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRl
eHREZWNvcmF0aW9uU2tpcDoKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJUZXh0RGVjb3JhdGlv
blNraXBGbGFnc1RvQ1NTVmFsdWUoc3R5bGUtPnRleHREZWNvcmF0aW9uU2tpcCgpKTsKKyNlbmRp
ZgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3Q6
CiAgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGV4dERlY29yYXRpb25GbGFnc1RvQ1NTVmFsdWUo
c3R5bGUtPnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkpOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZGMy
MzcwYTQ3YzUxNTBmNDM5ZDE3NzFiZDYyZDAyODZlNzVjNzkxZS4uNDEyZTM0MGFiMTNiMDVmYTZj
MGE2ODU2MmUzNDE3YWZkMWRkMDQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIz
NzcsNiArMjM3NywxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHJldHVybiBwYXJzZVRleHRVbmRlcmxp
bmVQb3NpdGlvbihpbXBvcnRhbnQpOwogI2VuZGlmIC8vIENTUzNfVEVYVAogCisjaWYgRU5BQkxF
KENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvblNraXA6CisgICAgICAgIC8vIG5vbmUgfCBbIG9iamVjdHMgfHwgc3BhY2VzIHx8IGlu
ayB8fCBlZGdlcyB8fCBib3gtZGVjb3JhdGlvbiBdCisgICAgICAgIHJldHVybiBwYXJzZVRleHRE
ZWNvcmF0aW9uU2tpcChpbXBvcnRhbnQpOworI2VuZGlmCisKICAgICBjYXNlIENTU1Byb3BlcnR5
Wm9vbTogICAgICAgICAgLy8gbm9ybWFsIHwgcmVzZXQgfCBkb2N1bWVudCB8IDxudW1iZXI+IHwg
PHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwg
fHwgaWQgPT0gQ1NTVmFsdWVSZXNldCB8fCBpZCA9PSBDU1NWYWx1ZURvY3VtZW50KQogICAgICAg
ICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwpAQCAtOTc2NCw2ICs5NzcwLDI2IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGltcG9ydGFudCkKIH0K
ICNlbmRpZiAvLyBDU1MzX1RFWFQKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikK
K2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHREZWNvcmF0aW9uU2tpcChib29sIGltcG9ydGFudCkK
K3sKKyAgICAvLyBUaGUgdGV4dC1kZWNvcmF0aW9uLXNraXAgcHJvcGVydHkgaGFzIHN5bnRheCAi
bm9uZSB8IFsgb2JqZWN0cyB8fCBzcGFjZXMgfHwgaW5rIHx8IGVkZ2VzIHx8IGJveC1kZWNvcmF0
aW9uIF0iLgorICAgIC8vIEhvd2V2ZXIsIG9ubHkgJ25vbmUnIGFuZCAnaW5rJyBhcmUgaW1wbGVt
ZW50ZWQgeWV0LCBzbyB3ZSB3aWxsIHBhcnNlIHN5bnRheCAibm9uZSB8IGluayIgZm9yIG5vdy4K
KyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAg
IGRvIHsKKyAgICAgICAgc3dpdGNoICh2YWx1ZS0+aWQpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1
ZU5vbmU6CisgICAgICAgIGNhc2UgQ1NTVmFsdWVJbms6CisgICAgICAgICAgICBhZGRQcm9wZXJ0
eShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uU2tpcCwgY3NzVmFsdWVQb29sKCkuY3Jl
YXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCksIGltcG9ydGFudCk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfSB3aGlsZSAoKHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKSkpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiBib29sIENT
U1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShib29sIGltcG9ydGFudCkKIHsKICAgICB1
bnNpZ25lZCB2YWx1ZUxpc3RTaXplID0gbV92YWx1ZUxpc3QtPnNpemUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAppbmRleCAyNDUyZDRmNzA1YmRhMmYzNDRjZGYyYzU2M2JhZmY3MjM5NTZhYzg2Li4y
ZGE5NzI5ZjgzNDZlMmRkZDdhZjMxNzk4ZmI0ZjhlNGJlNjhlMmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCkBAIC0yODMsNiArMjgzLDkgQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VUZXh0RGVj
b3JhdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogI2lmIEVOQUJM
RShDU1MzX1RFWFQpCiAgICAgYm9vbCBwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGlt
cG9ydGFudCk7CisjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNP
UkFUSU9OKQorICAgIGJvb2wgcGFyc2VUZXh0RGVjb3JhdGlvblNraXAoYm9vbCBpbXBvcnRhbnQp
OwogI2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggNDc2ZTU5OWQ5OTc5NmJm
Y2JhYTJhOGY4NzM4ZGEyOGNlYjE4OTc3Mi4uYmNjMjA2YmNkZTc4MmY1MmQ3MjlhMDI1MDY2YWNk
MTViM2M2ODEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTM5
NCw2ICszOTQsOSBAQCB6LWluZGV4CiAtd2Via2l0LXRleHQtanVzdGlmeSBbSW5oZXJpdGVkXQog
LXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbiBbSW5oZXJpdGVkXQogI2VuZGlmCisjaWYg
ZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04pICYmIEVOQUJMRV9DU1MzX1RFWFRf
REVDT1JBVElPTgorLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCBbSW5oZXJpdGVkXQorI2Vu
ZGlmCiAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0IFtJbmhlcml0ZWRdCiAtd2Vi
a2l0LXRleHQtZW1waGFzaXMgW0luaGVyaXRlZF0KIC1lcHViLXRleHQtZW1waGFzaXMgPSAtd2Vi
a2l0LXRleHQtZW1waGFzaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5k
ZXggYzJiNWVlZTU2ZjYxMmFiZmRlNmMwNmE3NDE4NWE2ZjgyZjRkYWIyMC4uMzlmOWViMmY5MjIx
ZjJjMGM0MjhlYjAwMWEwNmQ1MzA1OTljMzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTQ3MCw2ICs0NzAsOSBAQCB1bmRlcmxpbmUKICNpZiBkZWZpbmVkKEVO
QUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RFWFQKIHdhdnkKICNlbmRpZgorI2lmIGRl
ZmluZWQoRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OKSAmJiBFTkFCTEVfQ1NTM19URVhUX0RF
Q09SQVRJT04KK2luaworI2VuZGlmCiAtd2Via2l0LW5vd3JhcAogCiAvLyBDU1MzIFZhbHVlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDcw
NzQ5MDBhNjA3NzFmZGJkNjgxY2YwODlhNTlkNGVhYmM1MTcyZDUuLjRhZGNhYmZiNGEyZGZhMTBl
ZDQ5MjhkMDg3NThkMjJiZTIxOWU5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTEyNjksNiArMTI2OSw0NyBAQCBwdWJsaWM6CiAgICAg
fQogfTsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKK2NsYXNzIEFwcGx5UHJv
cGVydHlUZXh0RGVjb3JhdGlvblNraXAgeworICAgIHN0YXRpYyBUZXh0RGVjb3JhdGlvblNraXAg
dmFsdWVUb0RlY29yYXRpb25Ta2lwKENTU1ByaW1pdGl2ZVZhbHVlJiBwcmltaXRpdmVWYWx1ZSkK
KyAgICB7CisgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS5pc1ZhbHVlSUQoKSk7CisKKyAg
ICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9u
ZTsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUluazoKKyAgICAgICAgICAgIHJldHVybiBUZXh0RGVj
b3JhdGlvblNraXBJbms7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
VGV4dERlY29yYXRpb25Ta2lwTm9uZTsKKyAgICB9CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQg
YXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBD
U1NWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSkgeworICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dERlY29y
YXRpb25Ta2lwKHZhbHVlVG9EZWNvcmF0aW9uU2tpcCgqdG9DU1NQcmltaXRpdmVWYWx1ZSh2YWx1
ZSkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFRleHREZWNv
cmF0aW9uU2tpcCBza2lwID0gUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXAo
KTsKKyAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpKHZhbHVlKTsgaS5oYXNNb3Jl
KCk7IGkuYWR2YW5jZSgpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGkudmFsdWUo
KTsKKyAgICAgICAgICAgIHNraXAgfD0gdmFsdWVUb0RlY29yYXRpb25Ta2lwKCp0b0NTU1ByaW1p
dGl2ZVZhbHVlKGl0ZW0pKTsKKyAgICAgICAgfQorICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLT5zZXRUZXh0RGVjb3JhdGlvblNraXAoc2tpcCk7CisgICAgfQorICAgIHN0YXRpYyBQcm9w
ZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCisgICAgeworICAgICAgICBQcm9wZXJ0eUhhbmRs
ZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxUZXh0RGVjb3JhdGlvblNraXAs
ICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25Ta2lwLCBUZXh0RGVjb3JhdGlvblNraXAsICZS
ZW5kZXJTdHlsZTo6c2V0VGV4dERlY29yYXRpb25Ta2lwLCBUZXh0RGVjb3JhdGlvblNraXAsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU2tpcD46OmNyZWF0ZUhhbmRsZXIoKTsK
KyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcihoYW5kbGVyLmluaGVyaXRGdW5jdGlvbigp
LCBoYW5kbGVyLmluaXRpYWxGdW5jdGlvbigpLCAmYXBwbHlWYWx1ZSk7CisgICAgfQorfTsKKyNl
bmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgorCiBjbGFzcyBBcHBseVByb3BlcnR5TWFycXVl
ZUluY3JlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9w
ZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCkBA
IC0yMjc1LDYgKzIzMTYsOSBAQCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5
bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0
SnVzdGlmeSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEp1c3RpZnksICZSZW5kZXJTdHlsZTo6
dGV4dEp1c3RpZnksIFRleHRKdXN0aWZ5LCAmUmVuZGVyU3R5bGU6OnNldFRleHRKdXN0aWZ5LCBU
ZXh0SnVzdGlmeSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEp1c3RpZnk+OjpjcmVhdGVIYW5k
bGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRVbmRl
cmxpbmVQb3NpdGlvbiwgQXBwbHlQcm9wZXJ0eVRleHRVbmRlcmxpbmVQb3NpdGlvbjo6Y3JlYXRl
SGFuZGxlcigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dERl
Y29yYXRpb25Ta2lwLCBBcHBseVByb3BlcnR5VGV4dERlY29yYXRpb25Ta2lwOjpjcmVhdGVIYW5k
bGVyKCkpOworI2VuZGlmCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dElu
ZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dE92ZXJmbG93LCBBcHBseVByb3BlcnR5RGVm
YXVsdDxUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6dGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZs
b3csICZSZW5kZXJTdHlsZTo6c2V0VGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZSZW5kZXJT
dHlsZTo6aW5pdGlhbFRleHRPdmVyZmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9wZXJ0eUZvbnQ8
VGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdNb2RlLCAm
Rm9udERlc2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5kZXJpbmc+
OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IGEzYTkxM2U0NDJhNmU2YjdhYWVlOTE1OGU1M2Q4MmNjYWYwMjg2MTAuLmU5Nzk2ZDZiNjdkYmQ2
MmQ4NjkzYjdhMmI5YWNkYTlkZmNjY2U2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTMwNTIsNiArMzA1Miw5IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRKdXN0aWZ5OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5k
ZXJsaW5lUG9zaXRpb246CiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENTUzNfVEVY
VF9ERUNPUkFUSU9OKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNr
aXA6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc1Bvc2l0aW9uOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNTdHlsZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCAyOTY5MGZiYzBiMTMwOTk5MWU2ZGNkOWEz
Y2U2NDU0N2M1MzkxZjIyLi43MmQwYjE0ZWRiMmU2ODBmNGM4YzgzN2FkZmMyODY4YWM3ZjIyODMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyZWREb2N1bWVudE1hcmtlci5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlNWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRl
eHRQYWludFN0eWxlLmgiCisjaW5jbHVkZSAiVGV4dFBhaW50ZXIuaCIKICNpbmNsdWRlICJicmVh
a19saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMzk3LDU0ICsz
OTksNiBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29u
dGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsCiAgICAgcmV0dXJuIGV4dHJhT2Zmc2V0Owog
fQogCi1zdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0
b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3Rh
cnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEZsb2F0
UG9pbnQmIHRleHRPcmlnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgYm9vbCBzdHJv
a2VkLCBib29sIGhvcml6b250YWwpCi17Ci0gICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+
ZmlsbENvbG9yKCk7Ci0gICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNvbnRleHQtPmZp
bGxDb2xvclNwYWNlKCk7Ci0gICAgYm9vbCBvcGFxdWUgPSBmaWxsQ29sb3IuYWxwaGEoKSA9PSAy
NTU7Ci0gICAgaWYgKCFvcGFxdWUpCi0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xv
cjo6YmxhY2ssIGZpbGxDb2xvclNwYWNlKTsKLQotICAgIGRvIHsKLSAgICAgICAgSW50U2l6ZSBl
eHRyYU9mZnNldDsKLSAgICAgICAgaWYgKHNoYWRvdykKLSAgICAgICAgICAgIGV4dHJhT2Zmc2V0
ID0gcm91bmRlZEludFNpemUoSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29u
dGV4dChjb250ZXh0LCBzaGFkb3csIGJveFJlY3QsIHN0cm9rZWQsIG9wYXF1ZSwgaG9yaXpvbnRh
bCkpOwotICAgICAgICBlbHNlIGlmICghb3BhcXVlKQotICAgICAgICAgICAgY29udGV4dC0+c2V0
RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwotCi0gICAgICAgIGlmIChzdGFy
dE9mZnNldCA8PSBlbmRPZmZzZXQpIHsKLSAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4s
IHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3Mo
Zm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJ
bnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGVuZE9mZnNldCA+IDApIHsKLSAgICAg
ICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zm
c2V0LCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lz
TWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtP
ZmZzZXQpLCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChz
dGFydE9mZnNldCA8IHRydW5jYXRpb25Qb2ludCkgewotICAgICAgICAgICAgICAgIGlmIChlbXBo
YXNpc01hcmsuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4
dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCB0
cnVuY2F0aW9uUG9pbnQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJr
LCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNl
dCksICBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICghc2hhZG93KQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8IHN0cm9rZWQgfHwgIW9wYXF1ZSkKLSAgICAgICAgICAg
IGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29udGV4dC0+
Y2xlYXJTaGFkb3coKTsKLQotICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQoKTsKLSAgICB9
IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKLX0KLQogYm9vbCBJbmxpbmVU
ZXh0Qm94OjpnZXRFbXBoYXNpc01hcmtQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IFRleHRFbXBoYXNpc1Bvc2l0aW9uJiBlbXBoYXNpc1Bvc2l0aW9uKSBjb25zdAogewogICAgIC8v
IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSB0ZXh0IGVtcGhhc2lzIG1h
cmtzIGFuZCB0aGV5IGFyZSBzdXBwcmVzc2VkIGJ5IHJ1YnkgdGV4dC4KQEAgLTYyOCw1OSArNTgy
LDggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAogCiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4
dFNoYWRvdyA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCgpID8gMCA6IGxpbmVTdHlsZS50ZXh0
U2hhZG93KCk7CiAKLSAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkgewotICAgICAgICAv
LyBGb3Igc3Ryb2tlZCBwYWludGluZywgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIHRleHQgZHJhd2lu
ZyBtb2RlLiAgSXQncyBwcm9iYWJseSBkYW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFz
IGEgc2lkZQotICAgICAgICAvLyBlZmZlY3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0
cm9raW5nLCBkbyBhIHNhdmUvcmVzdG9yZS4KLSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAp
OwotCi0gICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5
bGUpOwotICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9
IHNQb3MpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwg
Zm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2lu
LCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5zdHJva2VXaWR0aCA+IDAsIGlz
SG9yaXpvbnRhbCgpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgZVBvcywgc1Bvcywg
bGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRTdHlsZS5z
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQotICAgICAgICBpZiAoIWVtcGhhc2lz
TWFyay5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqY29u
dGV4dCwgdGV4dFBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0NvbG9yKTsKLQotICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
clRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIsIDEpKTsKLSAgICAgICAgICAg
IFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBjb21iaW5lZFRleHQgPyBvYmplY3RSZXBs
YWNlbWVudENoYXJhY3RlclRleHRSdW4gOiB0ZXh0UnVuOwotICAgICAgICAgICAgRmxvYXRQb2lu
dCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gY29tYmluZWRUZXh0ID8gRmxvYXRQb2ludChib3hP
cmlnaW4ueCgpICsgYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIGZvbnQuZm9u
dE1ldHJpY3MoKS5hc2NlbnQoKSkgOiB0ZXh0T3JpZ2luOwotICAgICAgICAgICAgaWYgKGNvbWJp
bmVkVGV4dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94
UmVjdCwgQ2xvY2t3aXNlKSk7Ci0KLSAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRT
ZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1BvcykgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBU
cnVuY2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgotICAgICAgICAgICAgICAgIHBh
aW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGNvbWJpbmVkVGV4dCA/IGNvbWJpbmVkVGV4dC0+
b3JpZ2luYWxGb250KCkgOiBmb250LCBlbXBoYXNpc01hcmtUZXh0UnVuLCBlbXBoYXNpc01hcmss
IGVtcGhhc2lzTWFya09mZnNldCwgMCwgbGVuZ3RoLCBsZW5ndGgsIGVtcGhhc2lzTWFya1RleHRP
cmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRoID4g
MCwgaXNIb3Jpem9udGFsKCkpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
cGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgY29tYmluZWRUZXh0ID8gY29tYmluZWRUZXh0
LT5vcmlnaW5hbEZvbnQoKSA6IGZvbnQsIGVtcGhhc2lzTWFya1RleHRSdW4sIGVtcGhhc2lzTWFy
aywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFya1Rl
eHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRQYWludFN0eWxlLnN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCi0gICAgICAgICAgICBpZiAoY29tYmluZWRUZXh0KQot
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3Vu
dGVyY2xvY2t3aXNlKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKHBhaW50U2VsZWN0
ZWRUZXh0T25seSB8fCBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkpICYmIHNQb3MgPCBlUG9z
KSB7Ci0gICAgICAgIC8vIHBhaW50IG9ubHkgdGhlIHRleHQgdGhhdCBpcyBzZWxlY3RlZAotICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIHNlbGVj
dGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwKTsKLQotICAgICAgICB1cGRhdGVHcmFwaGlj
c0NvbnRleHQoKmNvbnRleHQsIHNlbGVjdGlvblBhaW50U3R5bGUpOwotICAgICAgICBwYWludFRl
eHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1Bvcywg
ZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVj
dGlvblBhaW50U3R5bGUuc3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7Ci0gICAgICAg
IGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdXBkYXRlR3JhcGhp
Y3NDb250ZXh0KCpjb250ZXh0LCBzZWxlY3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtD
b2xvcik7Ci0KLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
LCAxKSk7Ci0gICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gY29tYmlu
ZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogdGV4dFJ1bjsKLSAg
ICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IGNvbWJpbmVkVGV4
dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIGJveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9y
aWdpbi55KCkgKyBmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogdGV4dE9yaWdpbjsKLSAg
ICAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+Y29u
Y2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwotCi0gICAgICAgICAgICBwYWlu
dFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBjb21iaW5lZFRleHQgPyBjb21iaW5lZFRleHQtPm9y
aWdpbmFsRm9udCgpIDogZm9udCwgZW1waGFzaXNNYXJrVGV4dFJ1biwgZW1waGFzaXNNYXJrLCBl
bXBoYXNpc01hcmtPZmZzZXQsIHNQb3MsIGVQb3MsIGxlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9y
aWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25QYWludFN0eWxlLnN0cm9r
ZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCi0gICAgICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0
LCBDb3VudGVyY2xvY2t3aXNlKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgVGV4dFBhaW50ZXIg
dGV4dFBhaW50ZXIoKmNvbnRleHQsIHBhaW50U2VsZWN0ZWRUZXh0T25seSwgcGFpbnRTZWxlY3Rl
ZFRleHRTZXBhcmF0ZWx5LCBmb250LCBzUG9zLCBlUG9zLCBsZW5ndGgsIGVtcGhhc2lzTWFyaywg
Y29tYmluZWRUZXh0LCB0ZXh0UnVuLCBib3hSZWN0LCB0ZXh0T3JpZ2luLCBlbXBoYXNpc01hcmtP
ZmZzZXQsIHRleHRTaGFkb3csIHNlbGVjdGlvblNoYWRvdywgaXNIb3Jpem9udGFsKCksIHRleHRQ
YWludFN0eWxlLCBzZWxlY3Rpb25QYWludFN0eWxlKTsKKyAgICB0ZXh0UGFpbnRlci5wYWludFRl
eHQoKTsKIAogICAgIC8vIFBhaW50IGRlY29yYXRpb25zCiAgICAgVGV4dERlY29yYXRpb24gdGV4
dERlY29yYXRpb25zID0gbGluZVN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCk7CkBAIC02
ODgsNyArNTkxLDggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAogICAgICAgICB1cGRhdGVHcmFw
aGljc0NvbnRleHQoKmNvbnRleHQsIHRleHRQYWludFN0eWxlKTsKICAgICAgICAgaWYgKGNvbWJp
bmVkVGV4dCkKICAgICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0
LCBDbG9ja3dpc2UpKTsKLSAgICAgICAgcGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGJveE9yaWdp
biwgdGV4dERlY29yYXRpb25zLCBsaW5lU3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0
U2hhZG93KTsKKworICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3csIHRleHRQYWludGVyKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAg
IGNvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7
CiAgICAgfQpAQCAtODg2LDkgKzc5MCw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZVVuZGVybGluZU9m
ZnNldChjb25zdCBUZXh0VW5kZXJsaW5lUG9zaXRpb24gdW5kZXJsaW5lUG9zaXRpb24sCiAgICAg
Y2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcjogewogICAgICAgICAvLyBQb3NpdGlvbiB1
bmRlcmxpbmUgcmVsYXRpdmUgdG8gdGhlIHVuZGVyIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50
J3MgY29udGVudCBib3guCiAgICAgICAgIGNvbnN0IGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRC
b3gtPnJvb3QoKS5tYXhMb2dpY2FsVG9wKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsVG9wKCk7
Ci0gICAgICAgIGlmIChvZmZzZXQgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRC
b3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIG9mZnNldDsKLSAgICAgICAgcmV0dXJuIGlubGlu
ZVRleHRCb3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcDsKKyAgICAgICAgcmV0dXJuIGlubGluZVRl
eHRCb3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIG1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAg
ICB9CiAgICAgfQogCkBAIC0xMDIxLDggKzkyMywxMSBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5
VGV4dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwg
RgogfQogI2VuZGlmIC8vIENTUzNfVEVYVAogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9y
aWdpbiwgVGV4dERlY29yYXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9u
U3R5bGUsIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYg
Ym94T3JpZ2luLCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29y
YXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBUZXh0UGFpbnRlciYgdGV4dFBh
aW50ZXIpCiB7CisjaWYgIUVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBVTlVTRURf
UEFSQU0odGV4dFBhaW50ZXIpOworI2VuZGlmCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbXBy
b3ZlIHRoaXMgcnVsZSBhbmQgbm90IGFsd2F5cyBqdXN0IGFzc3VtZSAxLgogICAgIGNvbnN0IGZs
b2F0IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzID0gMS5mOwogCkBAIC0xMDk1LDYgKzEwMDAsMzkg
QEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaW50JgogICAgICAgICAvLyBPZmZzZXQgYmV0d2VlbiBsaW5l
cyAtIGFsd2F5cyBub24temVybywgc28gbGluZXMgbmV2ZXIgY3Jvc3MgZWFjaCBvdGhlci4KICAg
ICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERlY29yYXRpb25UaGlja25lc3MgKyAxLmY7
CiAjZW5kaWYgLy8gQ1NTM19URVhUCisgICAgICAgIAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVD
T1JBVElPTikKKyAgICAgICAgVGV4dERlY29yYXRpb25Ta2lwIHRleHREZWNvcmF0aW9uU2tpcCA9
IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKTsKKyAgICAgICAgYm9vbCBjbGlwRGVjb3Jh
dGlvblRvTWFzayA9IHRleHREZWNvcmF0aW9uU2tpcCA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7
CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcERlY29yYXRpb25Ub01hc2spIHsKKyAgICAgICAg
ICAgIGNvbnRleHQtPnNhdmUoKTsKKworICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBleHRl
bnQgb2YgcGFpbnRUZXh0QXJncy5ib3hSZWN0IGluIGRldmljZS1zcGFjZSAobm90IHVzZXItc3Bh
Y2UpCisgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtID0gY29udGV4dC0+Z2V0Q1RNKEdy
YXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7CisgICAgICAgICAg
ICBBU1NFUlQoY3RtLmlzSW52ZXJ0aWJsZSgpKTsKKyAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVj
dCYgYm94UmVjdCA9IHRleHRQYWludGVyLmJveFJlY3QoKTsKKyAgICAgICAgICAgIEludFJlY3Qg
ZW5jbG9zaW5nRGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoY3RtLm1hcFF1YWQoYm94UmVj
dCkuYm91bmRpbmdCb3goKSk7CisKKyAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1h
Z2VCdWZmZXIgPSBjb250ZXh0LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKGVuY2xvc2luZ0Rldmlj
ZVJlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZlci5nZXQoKSkgeworICAg
ICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+
Y29udGV4dCgpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29s
b3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29u
dGV4dC0+c2V0TGluZUpvaW4oUm91bmRKb2luKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4
dC0+dHJhbnNsYXRlKEZsb2F0UG9pbnQoKSAtIGVuY2xvc2luZ0RldmljZVJlY3QubG9jYXRpb24o
KSk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAg
ICAgICAgICAgIG1hc2tDb250ZXh0LT5maWxsUmVjdChib3hSZWN0KTsKKyAgICAgICAgICAgICAg
ICBtYXNrQ29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNsZWFyKTsKKwor
ICAgICAgICAgICAgICAgIHRleHRQYWludGVyLnBhaW50VGhpY2tUZXh0SW5NYXNrKCptYXNrQ29u
dGV4dCk7CisKKyAgICAgICAgICAgICAgICAvLyBBcHBseSBtYXNrIGluIGRldmljZSBzcGFjZSBz
byB0aGUgcXVhZCBpcyBheGlzLWFsaWduZWQKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25j
YXRDVE0oY3RtLmludmVyc2UoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+Y2xpcFRvSW1h
Z2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0KCksIGVuY2xvc2luZ0RldmljZVJlY3QpOworICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmNvbmNhdENUTShjdG0pOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlU3R5bGUodGV4dERlY29yYXRpb25TdHlsZVRvU3Ryb2tlU3R5bGUoZGVjb3JhdGlvblN0
eWxlKSk7CiAgICAgICAgIGlmIChkZWNvICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpIHsKICAg
ICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHVuZGVybGluZSwgY29sb3JTcGFjZSk7
CkBAIC0xMTM5LDYgKzEwNzcsMTAgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JgogICAgICAgICAg
ICAgfQogI2VuZGlmIC8vIENTUzNfVEVYVAogICAgICAgICB9CisjaWYgRU5BQkxFKENTUzNfVEVY
VF9ERUNPUkFUSU9OKQorICAgICAgICBpZiAoY2xpcERlY29yYXRpb25Ub01hc2spCisgICAgICAg
ICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisjZW5kaWYKICAgICAgICAgaWYgKGRlY28gJiBUZXh0
RGVjb3JhdGlvbkxpbmVUaHJvdWdoKSB7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VD
b2xvcihsaW5ldGhyb3VnaCwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4IDM0NDBlMTNhYjg5OWQ4
NDMzNmMwNzM4YmJiMDRhNmVjZTJjNjEwNTAuLjAyY2RmYzRkMGM5ZWRjYTYwN2FlZmNhYjg5MWFj
MTM2MzAyODdmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApA
QCAtMzAsOCArMzAsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQ29tcG9z
aXRpb25VbmRlcmxpbmU7CiBjbGFzcyBEb2N1bWVudE1hcmtlcjsKK2NsYXNzIFJlbmRlckNvbWJp
bmVUZXh0OworY2xhc3MgVGV4dFBhaW50ZXI7CisKK3N0cnVjdCBDb21wb3NpdGlvblVuZGVybGlu
ZTsKIAogY29uc3QgdW5zaWduZWQgc2hvcnQgY05vVHJ1bmNhdGlvbiA9IFVTSFJUX01BWDsKIGNv
bnN0IHVuc2lnbmVkIHNob3J0IGNGdWxsVHJ1bmNhdGlvbiA9IFVTSFJUX01BWCAtIDE7CkBAIC0x
NjksNyArMTcyLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBw
YWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBUZXh0RGVjb3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0
YSopOworICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUs
IGNvbnN0IFNoYWRvd0RhdGEqLCBUZXh0UGFpbnRlciYpOwogICAgIHZvaWQgcGFpbnRTZWxlY3Rp
b24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBS
ZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBDb2xvciB0ZXh0Q29sb3IpOwogICAgIHZvaWQgcGFp
bnREb2N1bWVudE1hcmtlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIERvY3VtZW50TWFya2VyKiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Jiwg
Ym9vbCBncmFtbWFyKTsKICAgICB2b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCmluZGV4IGE3MWMxNGM3ZTgzNzY3ZWY0YjllOTY5NDk4
MjM5NDgxMTk3OWY4OWUuLjM2NjdkODJiYTViNWU4OGUyNmJmMDMwNjQ2NGYzYjdjMjMzODEyMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcApA
QCAtMTIwLDUgKzEyMCw2IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmNwcCIKICNpbmNsdWRl
ICJSb290SW5saW5lQm94LmNwcCIKICNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5jcHAiCisjaW5j
bHVkZSAiVGV4dFBhaW50ZXIuY3BwIgogI2luY2x1ZGUgImJyZWFrX2xpbmVzLmNwcCIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0NWRkZGNk
NjYxMjc3NDQwMzM4NWQ2NDQzOGNjNGJjNTU5ODNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKQEAgLTAsMCArMSwxODkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRQYWludGVyLmgiCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCisjaW5j
bHVkZSAiUmVuZGVyQ29tYmluZVRleHQuaCIKKyNpbmNsdWRlICJUZXh0UGFpbnRTdHlsZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RleHRQYWludGVyOjpUZXh0UGFpbnRlcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5LCBib29sIHBhaW50
U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSwgY29uc3QgRm9udCYgZm9udCwKKyAgICBpbnQgc1Bvcywg
aW50IGVQb3MsIGludCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBS
ZW5kZXJDb21iaW5lVGV4dCogY29tYmluZWRUZXh0LCBUZXh0UnVuJiB0ZXh0UnVuLAorICAgIEZs
b2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwgaW50IGVtcGhhc2lzTWFy
a09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdywgY29uc3QgU2hhZG93RGF0YSog
c2VsZWN0aW9uU2hhZG93LAorICAgIGJvb2wgaG9yaXpvbnRhbCwgVGV4dFBhaW50U3R5bGUmIHRl
eHRQYWludFN0eWxlLCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0aW9uUGFpbnRTdHlsZSkKKyAgICA6
IG1fcGFpbnRTZWxlY3RlZFRleHRPbmx5KHBhaW50U2VsZWN0ZWRUZXh0T25seSkKKyAgICAsIG1f
cGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSkK
KyAgICAsIG1fZm9udChmb250KQorICAgICwgbV9zUG9zKHNQb3MpCisgICAgLCBtX2VQb3MoZVBv
cykKKyAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAsIG1fZW1waGFzaXNNYXJrKGVtcGhhc2lz
TWFyaykKKyAgICAsIG1fY29tYmluZWRUZXh0KGNvbWJpbmVkVGV4dCkKKyAgICAsIG1fdGV4dFJ1
bih0ZXh0UnVuKQorICAgICwgbV9ib3hSZWN0KGJveFJlY3QpCisgICAgLCBtX3RleHRPcmlnaW4o
dGV4dE9yaWdpbikKKyAgICAsIG1fZW1waGFzaXNNYXJrT2Zmc2V0KGVtcGhhc2lzTWFya09mZnNl
dCkKKyAgICAsIG1faG9yaXpvbnRhbChob3Jpem9udGFsKQorICAgICwgbV9zYXZlZERyYXdpbmdT
dGF0ZUZvck1hc2soJmNvbnRleHQsICZ0ZXh0UGFpbnRTdHlsZSwgJnNlbGVjdGlvblBhaW50U3R5
bGUsIHRleHRTaGFkb3csIHNlbGVjdGlvblNoYWRvdykKK3sKK30KKworc3RhdGljIHZvaWQgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lz
TWFyaywKKyAgICBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3RhcnRPZmZzZXQsIGludCBl
bmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEZsb2F0UG9pbnQmIHRleHRPcmln
aW4sIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwKKyAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFk
b3csIGJvb2wgc3Ryb2tlZCwgYm9vbCBob3Jpem9udGFsKQoreworICAgIENvbG9yIGZpbGxDb2xv
ciA9IGNvbnRleHQtPmZpbGxDb2xvcigpOworICAgIENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2Ug
PSBjb250ZXh0LT5maWxsQ29sb3JTcGFjZSgpOworICAgIGJvb2wgb3BhcXVlID0gZmlsbENvbG9y
LmFscGhhKCkgPT0gMjU1OworICAgIGlmICghb3BhcXVlKQorICAgICAgICBjb250ZXh0LT5zZXRG
aWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBmaWxsQ29sb3JTcGFjZSk7CisKKyAgICBkbyB7CisgICAg
ICAgIEludFNpemUgZXh0cmFPZmZzZXQ7CisgICAgICAgIGlmIChzaGFkb3cpCisgICAgICAgICAg
ICBleHRyYU9mZnNldCA9IHJvdW5kZWRJbnRTaXplKElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93
VG9HcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2hhZG93LCBib3hSZWN0LCBzdHJva2VkLCBvcGFx
dWUsIGhvcml6b250YWwpKTsKKyAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKKyAgICAgICAgICAg
IGNvbnRleHQtPnNldEZpbGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKKworICAg
ICAgICBpZiAoc3RhcnRPZmZzZXQgPD0gZW5kT2Zmc2V0KSB7CisgICAgICAgICAgICBpZiAoZW1w
aGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChm
b250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRP
ZmZzZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdF
bXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4
dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBzdGFydE9mZnNldCwg
ZW5kT2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChlbmRPZmZzZXQg
PiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmln
aW4gKyBleHRyYU9mZnNldCwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0
UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwg
ZW1waGFzaXNNYXJrT2Zmc2V0KSwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBz
dGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4s
IGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBo
YXNpc01hcmtPZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNoYWRvdykKKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGlmIChzaGFkb3ctPm5leHQoKSB8fCBzdHJva2VkIHx8ICFvcGFxdWUp
CisgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CisKKyAgICAgICAgc2hhZG93ID0gc2hhZG93LT5u
ZXh0KCk7CisgICAgfSB3aGlsZSAoc2hhZG93IHx8IHN0cm9rZWQgfHwgIW9wYXF1ZSk7Cit9CisK
K2VudW0gUm90YXRpb25EaXJlY3Rpb24geyBDb3VudGVyY2xvY2t3aXNlLCBDbG9ja3dpc2UgfTsK
Kworc3RhdGljIGlubGluZSBBZmZpbmVUcmFuc2Zvcm0gcm90YXRpb24oY29uc3QgRmxvYXRSZWN0
JiBib3hSZWN0LCBSb3RhdGlvbkRpcmVjdGlvbiBjbG9ja3dpc2UpCit7CisgICAgcmV0dXJuIGNs
b2Nrd2lzZSA/IEFmZmluZVRyYW5zZm9ybSgwLCAxLCAtMSwgMCwgYm94UmVjdC54KCkgKyBib3hS
ZWN0Lm1heFkoKSwgYm94UmVjdC5tYXhZKCkgLSBib3hSZWN0LngoKSkKKyAgICAgICAgOiBBZmZp
bmVUcmFuc2Zvcm0oMCwgLTEsIDEsIDAsIGJveFJlY3QueCgpIC0gYm94UmVjdC5tYXhZKCksIGJv
eFJlY3QueCgpICsgYm94UmVjdC5tYXhZKCkpOworfQorCit2b2lkIFRleHRQYWludGVyOjpwYWlu
dFRleHQoKQoreworICAgIEFTU0VSVChtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRQ
YWludFN0eWxlKTsKKyAgICBBU1NFUlQobV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxl
Y3Rpb25QYWludFN0eWxlKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IGJveE9yaWdpbiA9IGJveFJl
Y3QoKS5sb2NhdGlvbigpOworCisgICAgaWYgKCFtX3BhaW50U2VsZWN0ZWRUZXh0T25seSkgewor
ICAgICAgICAvLyBGb3Igc3Ryb2tlZCBwYWludGluZywgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIHRl
eHQgZHJhd2luZyBtb2RlLiBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2ZSB0aGF0IG11
dGF0ZWQgYXMgYSBzaWRlCisgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVuIHdlIGtub3cg
d2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgorICAgICAgICBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29u
dGV4dCwgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZS0+c3Ryb2tl
V2lkdGggPiAwKTsKKworICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKm1fc2F2ZWREcmF3
aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgKm1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1f
dGV4dFBhaW50U3R5bGUpOworICAgICAgICBpZiAoIW1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0
ZWx5IHx8IG1fZVBvcyA8PSBtX3NQb3MpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0
ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgcGFpbnRUZXh0V2l0
aFNoYWRvd3MobV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCBtX2ZvbnQsIG1f
dGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIG1fbGVuZ3RoLCBtX2xlbmd0aCwgbV90ZXh0T3JpZ2lu
LCBtX2JveFJlY3QsIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFNoYWRvdywgbV9z
YXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggPiAw
LCBtX2hvcml6b250YWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHBhaW50VGV4dFdp
dGhTaGFkb3dzKG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9mb250LCBt
X3RleHRSdW4sIG51bGxBdG9tLCAwLCBtX2VQb3MsIG1fc1BvcywgbV9sZW5ndGgsIG1fdGV4dE9y
aWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRTaGFkb3cs
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRo
ID4gMCwgbV9ob3Jpem9udGFsKTsKKworICAgICAgICBpZiAoIW1fZW1waGFzaXNNYXJrLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2lu
Z1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3Rl
eHRQYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CisKKyAgICAgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVu
LCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBUZXh0UnVu
JiBlbXBoYXNpc01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlclRleHRSdW4gOiBtX3RleHRSdW47CisgICAgICAgICAgICBGbG9hdFBvaW50IGVt
cGhhc2lzTWFya1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3Jp
Z2luLngoKSArIG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIG1fZm9udC5m
b250TWV0cmljcygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKKyAgICAgICAgICAgIGlmICht
X2NvbWJpbmVkVGV4dCkKKyAgICAgICAgICAgICAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFz
ay5tX2NvbnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihtX2JveFJlY3QsIENsb2Nrd2lzZSkpOwor
CisgICAgICAgICAgICBpZiAoIW1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IG1fZVBv
cyA8PSBtX3NQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQt
dG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsIG1fY29tYmluZWRUZXh0
ID8gbV9jb21iaW5lZFRleHQtPm9yaWdpbmFsRm9udCgpIDogbV9mb250LCBlbXBoYXNpc01hcmtU
ZXh0UnVuLCBtX2VtcGhhc2lzTWFyaywgbV9lbXBoYXNpc01hcmtPZmZzZXQsIDAsIG1fbGVuZ3Ro
LCBtX2xlbmd0aCwgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiwgbV9ib3hSZWN0LCBtX3NhdmVkRHJh
d2luZ1N0YXRlRm9yTWFzay5tX3RleHRTaGFkb3csIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNr
Lm1fdGV4dFBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCwgbV9ob3Jpem9udGFsKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKG1fc2F2
ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9jb21iaW5lZFRleHQgPyBtX2NvbWJp
bmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBtX2ZvbnQsIGVtcGhhc2lzTWFya1RleHRSdW4sIG1f
ZW1waGFzaXNNYXJrLCBtX2VtcGhhc2lzTWFya09mZnNldCwgbV9lUG9zLCBtX3NQb3MsIG1fbGVu
Z3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBtX2JveFJlY3QsIG1fc2F2ZWREcmF3aW5nU3Rh
dGVGb3JNYXNrLm1fdGV4dFNoYWRvdywgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0
UGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggPiAwLCBtX2hvcml6b250YWwpOworCisgICAgICAgICAg
ICBpZiAobV9jb21iaW5lZFRleHQpCisgICAgICAgICAgICAgICAgbV9zYXZlZERyYXdpbmdTdGF0
ZUZvck1hc2subV9jb250ZXh0LT5jb25jYXRDVE0ocm90YXRpb24obV9ib3hSZWN0LCBDb3VudGVy
Y2xvY2t3aXNlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKG1fcGFpbnRTZWxlY3Rl
ZFRleHRPbmx5IHx8IG1fcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5KSAmJiBtX3NQb3MgPCBt
X2VQb3MpIHsKKyAgICAgICAgLy8gcGFpbnQgb25seSB0aGUgdGV4dCB0aGF0IGlzIHNlbGVjdGVk
CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqbV9zYXZlZERy
YXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5t
X3NlbGVjdGlvblBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCk7CisKKyAgICAgICAgdXBkYXRl
R3JhcGhpY3NDb250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICpt
X3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUpOworICAgICAg
ICBwYWludFRleHRXaXRoU2hhZG93cyhtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRl
eHQsIG1fZm9udCwgbV90ZXh0UnVuLCBudWxsQXRvbSwgMCwgbV9zUG9zLCBtX2VQb3MsIG1fbGVu
Z3RoLCBtX3RleHRPcmlnaW4sIG1fYm94UmVjdCwgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2su
bV9zZWxlY3Rpb25TaGFkb3csIG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9u
UGFpbnRTdHlsZS0+c3Ryb2tlV2lkdGggPiAwLCBtX2hvcml6b250YWwpOworICAgICAgICBpZiAo
IW1fZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3ND
b250ZXh0KCptX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzay5tX2NvbnRleHQsICptX3NhdmVkRHJh
d2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUsIFVzZUVtcGhhc2lzTWFya0Nv
bG9yKTsKKworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUZXh0UnVuLCBvYmplY3RS
ZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4sICgmb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIs
IDEpKTsKKyAgICAgICAgICAgIFRleHRSdW4mIGVtcGhhc2lzTWFya1RleHRSdW4gPSBtX2NvbWJp
bmVkVGV4dCA/IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biA6IG1fdGV4dFJ1bjsK
KyAgICAgICAgICAgIEZsb2F0UG9pbnQgZW1waGFzaXNNYXJrVGV4dE9yaWdpbiA9IG1fY29tYmlu
ZWRUZXh0ID8gRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgbV9ib3hSZWN0LndpZHRoKCkgLyAy
LCBib3hPcmlnaW4ueSgpICsgbV9mb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpIDogbV90ZXh0
T3JpZ2luOworICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQorICAgICAgICAgICAgICAg
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9u
KG1fYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFk
b3dzKG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCwgbV9jb21iaW5lZFRleHQg
PyBtX2NvbWJpbmVkVGV4dC0+b3JpZ2luYWxGb250KCkgOiBtX2ZvbnQsIGVtcGhhc2lzTWFya1Rl
eHRSdW4sIG1fZW1waGFzaXNNYXJrLCBtX2VtcGhhc2lzTWFya09mZnNldCwgbV9zUG9zLCBtX2VQ
b3MsIG1fbGVuZ3RoLCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luLCBtX2JveFJlY3QsIG1fc2F2ZWRE
cmF3aW5nU3RhdGVGb3JNYXNrLm1fc2VsZWN0aW9uU2hhZG93LCBtX3NhdmVkRHJhd2luZ1N0YXRl
Rm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUtPnN0cm9rZVdpZHRoID4gMCwgbV9ob3Jpem9u
dGFsKTsKKworICAgICAgICAgICAgaWYgKG1fY29tYmluZWRUZXh0KQorICAgICAgICAgICAgICAg
IG1fc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9u
KG1fYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIFRleHRQYWludGVyOjpwYWludFRoaWNrVGV4dEluTWFzayhHcmFwaGljc0NvbnRleHQmIG1h
c2tDb250ZXh0KQoreworICAgIGNvbnN0IGZsb2F0IHNraXBJbmtHYXBXaWR0aCA9IDEuZjsKKyAg
ICAKKyAgICBTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2sgc2F2ZWREcmF3aW5nU3RhdGVGb3JNYXNr
ID0gbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2s7CisgICAgCisgICAgQVNTRVJUKG1fc2F2ZWRE
cmF3aW5nU3RhdGVGb3JNYXNrLm1fdGV4dFBhaW50U3R5bGUpOworICAgIEFTU0VSVChtX3NhdmVk
RHJhd2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblBhaW50U3R5bGUpOworICAgIG1fc2F2ZWRE
cmF3aW5nU3RhdGVGb3JNYXNrLm1fY29udGV4dCA9ICZtYXNrQ29udGV4dDsKKyAgICBtX3NhdmVk
RHJhd2luZ1N0YXRlRm9yTWFzay5tX3RleHRQYWludFN0eWxlLT5zdHJva2VXaWR0aCArPSBza2lw
SW5rR2FwV2lkdGg7CisgICAgbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25Q
YWludFN0eWxlLT5zdHJva2VXaWR0aCArPSBza2lwSW5rR2FwV2lkdGg7CisgICAgbV9zYXZlZERy
YXdpbmdTdGF0ZUZvck1hc2subV90ZXh0U2hhZG93ID0gbnVsbHB0cjsKKyAgICBtX3NhdmVkRHJh
d2luZ1N0YXRlRm9yTWFzay5tX3NlbGVjdGlvblNoYWRvdyA9IG51bGxwdHI7CisgICAgcGFpbnRU
ZXh0KCk7CisKKyAgICBtX3NhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayA9IHNhdmVkRHJhd2luZ1N0
YXRlRm9yTWFzazsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dFBhaW50ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTRjZTZmMTJjZDc2NmY1MTYzYmFjYTNh
ZTk4NDM4NDMzNDZjNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRQYWludGVyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFRleHRQYWlu
dGVyX2gKKyNkZWZpbmUgVGV4dFBhaW50ZXJfaAorCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckNvbWJpbmVUZXh0OworCitzdHJ1
Y3QgVGV4dFBhaW50U3R5bGU7CisKK3N0cnVjdCBTYXZlZERyYXdpbmdTdGF0ZUZvck1hc2sgewor
ICAgIFNhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFRl
eHRQYWludFN0eWxlKiB0ZXh0UGFpbnRTdHlsZSwgVGV4dFBhaW50U3R5bGUqIHNlbGVjdGlvblBh
aW50U3R5bGUsCisgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdywgY29uc3QgU2hhZG93
RGF0YSogc2VsZWN0aW9uU2hhZG93KQorICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAg
ICAgICAsIG1fdGV4dFBhaW50U3R5bGUodGV4dFBhaW50U3R5bGUpCisgICAgICAgICwgbV9zZWxl
Y3Rpb25QYWludFN0eWxlKHNlbGVjdGlvblBhaW50U3R5bGUpCisgICAgICAgICwgbV90ZXh0U2hh
ZG93KHRleHRTaGFkb3cpCisgICAgICAgICwgbV9zZWxlY3Rpb25TaGFkb3coc2VsZWN0aW9uU2hh
ZG93KQorICAgIHsKKyAgICB9CisgICAgR3JhcGhpY3NDb250ZXh0KiBtX2NvbnRleHQ7CisgICAg
VGV4dFBhaW50U3R5bGUqIG1fdGV4dFBhaW50U3R5bGU7CisgICAgVGV4dFBhaW50U3R5bGUqIG1f
c2VsZWN0aW9uUGFpbnRTdHlsZTsKKyAgICBjb25zdCBTaGFkb3dEYXRhKiBtX3RleHRTaGFkb3c7
CisgICAgY29uc3QgU2hhZG93RGF0YSogbV9zZWxlY3Rpb25TaGFkb3c7Cit9OworCitjbGFzcyBU
ZXh0UGFpbnRlciB7CitwdWJsaWM6CisgICAgVGV4dFBhaW50ZXIoR3JhcGhpY3NDb250ZXh0Jiwg
Ym9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHksIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0
ZWx5LCBjb25zdCBGb250JiwKKyAgICBpbnQgc1BvcywgaW50IGVQb3MsIGludCBsZW5ndGgsIGNv
bnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBSZW5kZXJDb21iaW5lVGV4dCosIFRleHRS
dW4mLAorICAgIEZsb2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwgaW50
IGVtcGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdywgY29uc3Qg
U2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93LAorICAgIGJvb2wgaG9yaXpvbnRhbCwgVGV4dFBh
aW50U3R5bGUmIG5vblNlbGVjdGlvblBhaW50U3R5bGUsIFRleHRQYWludFN0eWxlJiBzZWxlY3Rp
b25QYWludFN0eWxlKTsKKyAgICAKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QoKSB7IHJl
dHVybiBtX2JveFJlY3Q7IH0KKyAgICB2b2lkIHBhaW50VGV4dCgpOworICAgIHZvaWQgcGFpbnRU
aGlja1RleHRJbk1hc2soR3JhcGhpY3NDb250ZXh0Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBt
X3BhaW50U2VsZWN0ZWRUZXh0T25seTsKKyAgICBib29sIG1fcGFpbnRTZWxlY3RlZFRleHRTZXBh
cmF0ZWx5OworICAgIGNvbnN0IEZvbnQmIG1fZm9udDsKKyAgICBpbnQgbV9zUG9zOworICAgIGlu
dCBtX2VQb3M7CisgICAgaW50IG1fbGVuZ3RoOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbV9l
bXBoYXNpc01hcms7CisgICAgUmVuZGVyQ29tYmluZVRleHQqIG1fY29tYmluZWRUZXh0OworICAg
IFRleHRSdW4mIG1fdGV4dFJ1bjsKKyAgICBGbG9hdFJlY3QmIG1fYm94UmVjdDsKKyAgICBGbG9h
dFBvaW50JiBtX3RleHRPcmlnaW47CisgICAgaW50IG1fZW1waGFzaXNNYXJrT2Zmc2V0OworICAg
IGJvb2wgbV9ob3Jpem9udGFsOworICAgIFNhdmVkRHJhd2luZ1N0YXRlRm9yTWFzayBtX3NhdmVk
RHJhd2luZ1N0YXRlRm9yTWFzazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFRleHRQYWludGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKaW5kZXggODA5MjkwMzUyYzRjYTI2MmEyMzEyYjFkMmMzMzVhYmIzZWE4ZGUx
MC4uMDgzMzlmOGY1Zjc1OGZhYTA1NmJiMTMxMjY2MzNkYzRkNjM5NWJhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTU4NCw2ICs1ODQsOSBA
QCBwdWJsaWM6CiAjZWxzZQogICAgIFRleHREZWNvcmF0aW9uU3R5bGUgdGV4dERlY29yYXRpb25T
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGVTb2xpZDsgfQogI2VuZGlm
IC8vIENTUzNfVEVYVAorI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICBUZXh0
RGVjb3JhdGlvblNraXAgdGV4dERlY29yYXRpb25Ta2lwKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGV4dERlY29yYXRpb25Ta2lwPihyYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3Jh
dGlvblNraXApOyB9CisjZW5kaWYKICAgICBpbnQgd29yZFNwYWNpbmcoKSBjb25zdDsKICAgICBp
bnQgbGV0dGVyU3BhY2luZygpIGNvbnN0OwogCkBAIC0xMTY3LDYgKzExNzAsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRUZXh0SnVzdGlmeShUZXh0SnVzdGlmeSB2KSB7IFNFVF9WQVIocmFyZUlu
aGVyaXRlZERhdGEsIG1fdGV4dEp1c3RpZnksIHYpOyB9CiAgICAgdm9pZCBzZXRUZXh0VW5kZXJs
aW5lUG9zaXRpb24oVGV4dFVuZGVybGluZVBvc2l0aW9uIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJp
dGVkRGF0YSwgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24sIHYpOyB9CiAjZW5kaWYgLy8gQ1NTM19U
RVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHZvaWQgc2V0VGV4dERl
Y29yYXRpb25Ta2lwKFRleHREZWNvcmF0aW9uU2tpcCBza2lwKSB7IFNFVF9WQVIocmFyZUluaGVy
aXRlZERhdGEsIG1fdGV4dERlY29yYXRpb25Ta2lwLCBza2lwKTsgfQorI2VuZGlmCiAgICAgdm9p
ZCBzZXREaXJlY3Rpb24oVGV4dERpcmVjdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fZGlyZWN0
aW9uID0gdjsgfQogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogICAgIHZvaWQgc2V0
U3BlY2lmaWVkTGluZUhlaWdodChMZW5ndGggdik7CkBAIC0xNjg5LDYgKzE2OTUsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFRleHRKdXN0aWZ5IGluaXRpYWxUZXh0SnVzdGlmeSgpIHsgcmV0dXJu
IFRleHRKdXN0aWZ5QXV0bzsgfQogICAgIHN0YXRpYyBUZXh0VW5kZXJsaW5lUG9zaXRpb24gaW5p
dGlhbFRleHRVbmRlcmxpbmVQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlv
bkF1dG87IH0KICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09S
QVRJT04pCisgICAgc3RhdGljIFRleHREZWNvcmF0aW9uU2tpcCBpbml0aWFsVGV4dERlY29yYXRp
b25Ta2lwKCkgeyByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwTm9uZTsgfQorI2VuZGlmCiAgICAg
c3RhdGljIGZsb2F0IGluaXRpYWxab29tKCkgeyByZXR1cm4gMS4wZjsgfQogICAgIHN0YXRpYyBp
bnQgaW5pdGlhbE91dGxpbmVPZmZzZXQoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIGZsb2F0
IGluaXRpYWxPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBlMjM0MDIx
NzE3ZjRhNDBjNjFkMzhhYjE1OTZkYzRlMmJmMWQwMjgzLi5mZTRhOTkxNjViNzNiNzUxZmE5MDU3
YTk4MGFkNzdlMTY5YmUwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMzgxLDYgKzM4MSwxMyBAQCBlbnVt
IFRleHRKdXN0aWZ5IHsKIH07CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAKKyNpZiBFTkFCTEUoQ1NT
M19URVhUX0RFQ09SQVRJT04pCitlbnVtIFRleHREZWNvcmF0aW9uU2tpcEl0ZW1zIHsKKyAgICBU
ZXh0RGVjb3JhdGlvblNraXBOb25lID0gMHgwLCBUZXh0RGVjb3JhdGlvblNraXBJbmsgPSAxIDw8
IDAKK307Cit0eXBlZGVmIHVuc2lnbmVkIFRleHREZWNvcmF0aW9uU2tpcDsKKyNlbmRpZgorCiBl
bnVtIEVQYWdlQnJlYWsgewogICAgIFBCQVVUTywgUEJBTFdBWVMsIFBCQVZPSUQKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAKaW5kZXggMGZjZmIwOGNmOTI2MzIzOGVhYzVlODExYWJlMzBhY2U3MTRiMWI4
NC4uNGU0ZmMyOTNhMmQ3MTg1ZGMwZmUwMTYwYjk3NjI3YjE2NTY4YzBlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgU2FtZVNpemVBc1N0eWxlUmFyZUluaGVy
aXRlZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxTYW1lU2l6ZUFzU3R5bGVSYXJlSQogICAgIExl
bmd0aCBsZW5ndGhzWzFdOwogICAgIGZsb2F0IHNlY29uZEZsb2F0OwogICAgIHVuc2lnbmVkIG1f
Yml0ZmllbGRzWzJdOworI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICB1bnNp
Z25lZCBtX2JpdGZpZWxkc0V4dHJhOworI2VuZGlmCiAgICAgc2hvcnQgcGFnZWRNZWRpYVNob3J0
c1syXTsKICAgICB1bnNpZ25lZCB1bnNpZ25lZHNbMV07CiAgICAgc2hvcnQgaHlwaGVuYXRpb25T
aG9ydHNbM107CkBAIC0xMTIsNiArMTE1LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBtX3RleHRKdXN0aWZ5KFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEp1c3RpZnkoKSkKICAgICAsIG1fdGV4dFVuZGVybGluZVBvc2l0aW9uKFJlbmRl
clN0eWxlOjppbml0aWFsVGV4dFVuZGVybGluZVBvc2l0aW9uKCkpCiAjZW5kaWYgLy8gQ1NTM19U
RVhUCisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICwgbV90ZXh0RGVjb3Jh
dGlvblNraXAoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblNraXAoKSkKKyNlbmRp
ZgogICAgICwgbV9ydWJ5UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxSdWJ5UG9zaXRpb24o
KSkKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCB0b3VjaENhbGxvdXRFbmFibGVkKFJlbmRlclN0
eWxlOjppbml0aWFsVG91Y2hDYWxsb3V0RW5hYmxlZCgpKQpAQCAtMTkzLDYgKzE5OSw5IEBAIFN0
eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIG1fdGV4dEp1c3RpZnkoby5tX3RleHRKdXN0aWZ5
KQogICAgICwgbV90ZXh0VW5kZXJsaW5lUG9zaXRpb24oby5tX3RleHRVbmRlcmxpbmVQb3NpdGlv
bikKICNlbmRpZiAvLyBDU1MzX1RFWFQKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04p
CisgICAgLCBtX3RleHREZWNvcmF0aW9uU2tpcChvLm1fdGV4dERlY29yYXRpb25Ta2lwKQorI2Vu
ZGlmCiAgICAgLCBtX3J1YnlQb3NpdGlvbihvLm1fcnVieVBvc2l0aW9uKQogI2lmIFBMQVRGT1JN
KElPUykKICAgICAsIHRvdWNoQ2FsbG91dEVuYWJsZWQoby50b3VjaENhbGxvdXRFbmFibGVkKQpA
QCAtMzE1LDYgKzMyNCw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiBtX3Rl
eHRKdXN0aWZ5ID09IG8ubV90ZXh0SnVzdGlmeQogICAgICAgICAmJiBtX3RleHRVbmRlcmxpbmVQ
b3NpdGlvbiA9PSBvLm1fdGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8gQ1NTM19URVhU
CisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICAmJiBtX3RleHREZWNv
cmF0aW9uU2tpcCA9PSBvLm1fdGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYKICAgICAgICAgJiYg
bV9ydWJ5UG9zaXRpb24gPT0gby5tX3J1YnlQb3NpdGlvbgogICAgICAgICAmJiBtX2xpbmVTbmFw
ID09IG8ubV9saW5lU25hcAogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgK
aW5kZXggODkwOGI1NTk2NDM5ODMzNDhiMjIwZTRiNWM5NTYzNTI4NTk4NTk3Zi4uYjEyNDlmZDQ4
ZmJiOTZlYmFlZmI5OWViMDhiMTY5NDA0Y2JmMzE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0xMjYs
NiArMTI2LDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1fdGV4dEp1c3RpZnkgOiAzOyAvLyBU
ZXh0SnVzdGlmeQogICAgIHVuc2lnbmVkIG1fdGV4dFVuZGVybGluZVBvc2l0aW9uIDogMzsgLy8g
VGV4dFVuZGVybGluZVBvc2l0aW9uCiAjZW5kaWYgLy8gQ1NTM19URVhUCisjaWYgRU5BQkxFKENT
UzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIHVuc2lnbmVkIG1fdGV4dERlY29yYXRpb25Ta2lwIDog
NTsgLy8gVGV4dERlY29yYXRpb25Ta2lwCisjZW5kaWYKICAgICB1bnNpZ25lZCBtX3J1YnlQb3Np
dGlvbiA6IDE7IC8vIFJ1YnlQb3NpdGlvbgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCA4NDk4MWU0ODNmM2ZiNjNiNjY1NjM0MDZjMjNjYmQyYjZjM2ViYjQ4Li5iZTc2
MTYyM2U2ODI3OTQ4OTcxYjU5YmE2MDYyMWE2YzJmZTRlNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtNTgsNiArNTgsNyBAQCBFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJ
WEVEID0gRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVQogRU5BQkxFX0NTU19WQVJJ
QUJMRVMgPSA7CiBFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyA9IDsKIEVOQUJMRV9DU1Mz
X1RFWFQgPSA7CitFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT04gPSBFTkFCTEVfQ1NTM19URVhU
X0RFQ09SQVRJT047CiBFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsgPSA7CiBFTkFCTEVfQ1VS
U09SX1ZJU0lCSUxJVFkgPSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFk7CiBFTkFCTEVfQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSID0gOwpAQCAtMTg4LDQgKzE4OSw0IEBAIEVOQUJMRV9YU0xUID0gRU5B
QkxFX1hTTFQ7CiAKIEVOQUJMRV9GVExfSklUID0gOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFU
SCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFC
TEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5B
QkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAk
KEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklN
QVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNf
Q09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhU
X0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RS
QUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRT
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVO
QUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZS
QU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9V
SSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMp
ICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJM
RV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NV
RkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQ
RUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VC
UElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkcpICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9B
VVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hf
SUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMp
ICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAk
KEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19Q
QVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
SU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TSEFQRVMp
ICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FO
SU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NT
M19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9N
NF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9G
SUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERF
Tl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9M
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVE
SU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVO
QUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAk
KEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJP
WElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RP
TSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQo
RU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9T
VUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJF
QURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9V
U0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FO
SU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5B
QkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAk
KEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRG
T1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODQ5ODFlNDgzZjNmYjYzYjY2NTYzNDA2YzIzY2Jk
MmI2YzNlYmI0OC4uZjk3NTI0ZWVhMTdiZWE2NmJmNzc4ZWFjZmE0Y2RjMTY1ZDU4MGE4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElP
TlNfVU5QUkVGSVhFRCA9IEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1UKIEVOQUJM
RV9DU1NfVkFSSUFCTEVTID0gOwogRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMgPSA7CiBF
TkFCTEVfQ1NTM19URVhUID0gOworRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OID0gRU5BQkxF
X0NTU19URVhUX0RFQ09SQVRJT047CiBFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsgPSA7CiBF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkgPSBFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFk7CiBFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSID0gOwpAQCAtMTg4LDQgKzE4OSw0IEBAIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKIEVOQUJMRV9GVExfSklUID0gOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
QU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFC
TEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikg
JChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1Nf
U0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNG
T1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5B
QkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVO
QUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQo
RU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xP
QURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRM
SU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAk
KEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5U
KSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVf
UFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChF
TkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFC
TEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElB
KSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9G
VExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NT
U19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfREVDT1JBVElPTikgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04p
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAk
KEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9D
QU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAk
KEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01I
VE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05U
RU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9S
X1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9NSVNFUykgJChF
TkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVO
QUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVf
U0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5U
SEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAk
KEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9U
SU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5F
U18kKFBMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAzZDU0MDI5NDRkNmU2N2E4NDJiMDRhMWYzNDE3OTQ5ZDBjMzBkNGUz
Li5kZDhmNDM0MDgwYjAyNWFmOGU0MDAyZjQ2Njg4MDFjNmU5MjZjOWNjIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTMtMTAtMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRleHQtZGVjb3JhdGlvbi1za2lwIGluawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTMtMTAtMTYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBQYXNzUmVmIGFuZCBjcmVhdGVSZWZDb3Vu
dGVkIHNvIHdlIGNhbiBpbXByb3ZlIGNyZWF0aW9uIG9mIFJlZkNvdW50ZWQgb2JqZWN0cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDNkNDYwNWU4NmYzNmRjYjQw
MDZiZGY0MzkyMTZlN2JkYjY3MWM5OWUuLjFhNzAwMjczZTFjOThmYTU3MDlmOWVkYzA3ZTliMmU1
MjA1NzkwNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlz
dC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTUy
LDYgKzUyLDcgQEAgbXkgKAogICAgICRjc3BOZXh0U3VwcG9ydCwKICAgICAkY3NzM0NvbmRpdGlv
bmFsUnVsZXNTdXBwb3J0LAogICAgICRjc3MzVGV4dFN1cHBvcnQsCisgICAgJGNzczNUZXh0RGVj
b3JhdGlvblN1cHBvcnQsCiAgICAgJGNzczNUZXh0TGluZUJyZWFrU3VwcG9ydCwKICAgICAkY3Nz
NEltYWdlc1N1cHBvcnQsCiAgICAgJGNzc0JveERlY29yYXRpb25CcmVha1N1cHBvcnQsCkBAIC0y
MDAsNiArMjAxLDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJjc3MzLXRl
eHQiLCBkZXNjID0+ICJUb2dnbGUgQ1NTMyBUZXh0IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfQ1NTM19URVhUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpKSwgdmFs
dWUgPT4gXCRjc3MzVGV4dFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJjc3MzLXRleHQt
ZGVjb3JhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MzIFRleHQgRGVjb3JhdGlvbiBzdXBwb3J0
IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OIiwgZGVmYXVs
dCA9PiAxLCB2YWx1ZSA9PiBcJGNzczNUZXh0RGVjb3JhdGlvblN1cHBvcnQgfSwKKwogICAgIHsg
b3B0aW9uID0+ICJjc3MzLXRleHQtbGluZS1icmVhayIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MzIFRl
eHQgTGluZSBCcmVhayBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTUzNfVEVY
VF9MSU5FX0JSRUFLIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGNzczNUZXh0TGluZUJyZWFr
U3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzAzNjJhN2FmMTgyZjkwOGI1NjcyM2FmYzg0ODY4MzI3ZjQw
YjM3OC4uMjQ2MTRmMDgwNjMxZWVlMWRjODI5YTI3ODg0MzBkMmEzMTE2ZTM0ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEzLTEwLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29y
YXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0
aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1tdWx0
aXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lw
LXJvdW5kdHJpcC1tdWx0aXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRp
b24tc2tpcC1yb3VuZHRyaXAuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMTAtMTYgIEt5dW5nVGFlIEtpbSAgPGt0Zi5raW1Ac2Ft
c3VuZy5jb20+CiAKICAgICAgICAgRHVyaW5nIGVkaXRpbmcsIG1lcmdlIGlubGluZSBzdHlsZSB3
aXRoIG92ZXJyaWRpbmcgb3RoZXIgYXV0aG9yIHN0eWxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9u
LXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXpvb21lZC1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNkN2Q1MDJhZDM1MWY3MjM5YTdkMzFkYTVlN2RjYmJhYTE3YTIyMjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICA8c3R5bGU+CisgICAgI2JpZ3NrZXcgeworICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgbGVmdDogLTE1NnB4OworICAgICAgdG9wOiAtNDAwcHg7CisgICAgICBmb250LXN0
eWxlOiBpdGFsaWM7CisgICAgICBmb250LXNpemU6IDEycHQ7CisgICAgICBmb250LWZhbWlseTog
aGVsdmV0aWNhOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAgICAgIC13
ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgaXRh
bGljaXplZCAicCIgYXMgdmlld2VkIHRocm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQKKyAgdGhl
IGRlc2NlbmRlci4gVGhlICJwIiBpcyBpbiAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1cCB0byBt
dWNoIGxhcmdlci4gVGhpcyB0ZXN0cyB0aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24tc2tpcDog
aW5rIG1hc2sgaXMgY2FsY3VsYXRlZCB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNlci1zcGFj
ZSBwcmVjaXNpb24uCisgIElmIHdlIGRvbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgdGhlcmUg
d29uJ3QgYmUgYSBuaWNlIGNyaXNwIGVkZ2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRlcmxpbmUK
KyAgd2hlcmUgaXQgZ2V0cyBtYXNrZWQgb2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBiZWNhdXNl
IHRoZXJlIHdvdWxkIGJlIGdhcmJhZ2UgZ2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVhciB0aGUg
Y2hhcmFjdGVyCisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzog
aGlkZGVuOyB3aWR0aDogODFweDsgaGVpZ2h0OiA0MDBweCI+CisgICAgICA8ZGl2IGlkPSJiaWdz
a2V3Ij5scGw8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29y
YXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstem9vbWVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODk0MWFmNjNlOTMxMTdkM2RiNThiMmY4M2Q1NzU5ZmNiNWU1ZTliNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3Rl
eHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay16b29tZWQuaHRtbApA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHls
ZT4KKyAgICAjYmlnc2tldyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0
OiAtMTU2cHg7CisgICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsK
KyAgICAgIGZvbnQtc2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFtaWx5OiBoZWx2ZXRpY2E7Cisg
ICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKKyAgICAgIC13ZWJraXQtdGV4dC1kZWNv
cmF0aW9uLXNraXA6IGluazsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7Cisg
ICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxp
bmVkIGl0YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5k
CisgIHRoZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24g
dXAgdG8gbXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9u
LXNraXA6IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVz
ZXItc3BhY2UgcHJlY2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24s
IHRoZXJlIHdvbid0IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5k
ZXJsaW5lCisgIHdoZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwg
YmVjYXVzZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5l
YXIgdGhlIGNoYXJhY3RlcgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3Zl
cmZsb3c6IGhpZGRlbjsgd2lkdGg6IDgxcHg7IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBp
ZD0iYmlnc2tldyI+bHBsPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRp
b24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVlZTM1MWE0N2U1MTEzZDhmNDdlYjNiODQ3YWM3Mjc3
ZmE0NTY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1z
a2lwLXJvdW5kdHJpcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIGNzc1J1bGUu
dHlwZSBpcyBjc3NSdWxlLlNUWUxFX1JVTEUKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEK
K1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC10ZXh0LWRlY29yYXRp
b24tc2tpcCcpIGlzICJpbmsiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3Jh
dGlvbi1za2lwLXJvdW5kdHJpcC1tdWx0aXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90
ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM1ZWUzNTFhNDdlNTExM2Q4ZjQ3ZWIzYjg0N2FjNzI3N2ZhNDU2N2YKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlv
bi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVs
dGlwbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyBjc3NSdWxlLnR5cGUgaXMg
Y3NzUnVsZS5TVFlMRV9SVUxFCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIGRl
Y2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAn
KSBpcyAiaW5rIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tp
cC1yb3VuZHRyaXAtbXVsdGlwbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1z
a2lwLXJvdW5kdHJpcC1tdWx0aXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NmVkNTQ2MDQ0YThmZGEx
NWJjMjFjNGJiZTBhMTlmNWU1ZmNkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90
ZXh0LWRlY29yYXRpb24tc2tpcC1yb3VuZHRyaXAtbXVsdGlwbGUuaHRtbApAQCAtMCwwICsxLDIw
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFyIHN0eWxlRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAgZG9jdW1lbnQuaGVhZC5h
cHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpOworICAgIHN0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQu
c2hlZXQ7CisgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIucCB7IC13ZWJraXQtdGV4dC1kZWNv
cmF0aW9uLXNraXA6IGluayBpbmsgaW5rIGluayBpbms7IH0iLCAwKTsKKyAgICBjc3NSdWxlID0g
c3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApOworICAgIHNob3VsZEJlKCJjc3NSdWxlLnR5cGUi
LCAiY3NzUnVsZS5TVFlMRV9SVUxFIik7CisgICAgZGVjbGFyYXRpb24gPSBjc3NSdWxlLnN0eWxl
OworICAgIHNob3VsZEJlKCJkZWNsYXJhdGlvbi5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJl
KCJkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LXRleHQtZGVjb3JhdGlvbi1z
a2lwJykiLCAiXCJpbmtcIiIpOworICA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3Rl
eHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNv
cmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtcm91bmR0cmlwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2RiNjFiOGRkOTQ4ZGY4NThkZjAyMTk1NzgxOTczNzAyMmY5OTM2ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3Rl
eHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLXJvdW5kdHJpcC5odG1sCkBA
IC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB2YXIg
c3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICBkb2N1
bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisgICAgc3R5bGVzaGVldCA9IHN0
eWxlRWxlbWVudC5zaGVldDsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIi5wIHsgLXdlYmtp
dC10ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rOyB9IiwgMCk7CisgICAgY3NzUnVsZSA9IHN0eWxl
c2hlZXQuY3NzUnVsZXMuaXRlbSgwKTsKKyAgICBzaG91bGRCZSgiY3NzUnVsZS50eXBlIiwgImNz
c1J1bGUuU1RZTEVfUlVMRSIpOworICAgIGRlY2xhcmF0aW9uID0gY3NzUnVsZS5zdHlsZTsKKyAg
ICBzaG91bGRCZSgiZGVjbGFyYXRpb24ubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcCcp
IiwgIlwiaW5rXCIiKTsKKyAgPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM3MjgwMzM1YjQ3OGIyNTk1ZTM4
MDM5MGRkYzAwOWJiMmQ1ZDRmOTIuLmE0ZmZmODE3YjA0OTg3ZmQxOTBhNmY3ZDY3Yjk2YzgwN2Fm
YzRhYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC04
MjksNiArODI5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0
aW9uCiAKICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFC
TEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbgord2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwIFsgUGFzcyBdCiB3ZWJraXQub3JnL2Iv
NzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKIHdlYmtpdC5vcmcvYi85
OTk0NSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtanVzdGlmeSBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzExMjc1NSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50IFsgRmFpbHVyZSBJ
bWFnZU9ubHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215747</attachid>
            <date>2013-11-01 12:16:41 -0700</date>
            <delta_ts>2013-11-01 14:10:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131101121640.patch</filename>
            <type>text/plain</type>
            <size>19371</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVlNGFlNDE3ZDA3OGRj
YmYwYWNmNGViYzVlYjVmOTM2ZDc4ZjBjYy4uNjk4NjQ1ZDdlNjExMDI4YWNlYmVhOGJiY2MwYzdk
ODkxMDBhNzVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgMS4gQmVm
b3JlIGRyYXdpbmcgYW55IGRlY29yYXRpb25zLCBmaWd1cmUgb3V0IHRoZSBib3VuZGluZyBib3gg
Zm9yIHRoZSBkZWNvcmF0aW9ucyB0aGF0IHdpbGwgYmUgZHJhd24KKyAgICAgICAgMi4gQ3JlYXRl
IGFuIEltYWdlQnVmZmVyIHdpdGggdGhlc2UgZGltZW5zaW9ucworICAgICAgICAzLiBSZWRyYXcg
dGV4dCBpbnRvIHRoaXMgSW1hZ2VCdWZmZXIgd2l0aCBhIHRoaWNrZXIgc3Ryb2tlCisgICAgICAg
IDQuIEFwcGx5IHRoZSBJbWFnZUJ1ZmZlciBhcyBhIG1hc2sgdG8gdGhlIGNvbnRleHQKKyAgICAg
ICAgNS4gRHJhdyBkZWNvcmF0aW9ucyBsaWtlIG5vcm1hbAorICAgICAgICA2LiBVbi1hcHBseSB0
aGUgbWFzaworCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb21wdXRlTGluZUJvdW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JU
ZXh0KTogRG9uJ3QgY2FsbCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMKKyAg
ICAgICAgd2hlbiBwYWludGluZyBpcyBkaXNhYmxlZAorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50KTog
UGFzcyB0aGUgVGV4dFBhaW50ZXIgdG8gcGFpbnREZWNvcmF0aW9uCisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KTogU21hbGwgY2xlYW51cAorICAgICAgICAoV2ViQ29y
ZTo6Z2V0V2F2eVN0cm9rZUNvbnRyb2xQb2ludERpc3RhbmNlKTogUHVsbGluZyBvdXQgb2Ygc3Ry
b2tlV2F2eVRleHREZWNvcmF0aW9uKCkKKyAgICAgICAgKFdlYkNvcmU6OmdldFdhdnlTdHJva2VT
dGVwKTogRGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OnN0cm9rZVdhdnlUZXh0RGVjb3JhdGlvbik6
IFVzZSB0aGUgcHJldmlvdXMgMiBmdW5jdGlvbnMKKyAgICAgICAgKFdlYkNvcmU6OmdldFNpbmds
ZURlY29yYXRpb25Cb3VuZGluZ0JveCk6IFB1bGxpbmcgb3V0IHJlcGVhdGVkIGNvZGUgaW50byBh
IGZ1bmN0aW9uCisgICAgICAgIChXZWJDb3JlOjpnZXREZWNvcmF0aW9uQm91bmRpbmdCb3gpOiBD
b21wdXRlIHRoZSBib3VuZGluZyBib3ggZm9yIGFuIHVuZGVybGluZSB3aGljaAorICAgICAgICBo
YXNuJ3QgYmVlbiBkcmF3biB5ZXQKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBh
aW50RGVjb3JhdGlvbik6IENvbnN0cnVjdCBhIG1hc2sgYW5kIGFwcGx5IGl0IHRvIHRoZSBHcmFw
aGljc0NvbnRleHQKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOiBwYWludERl
Y29yYXRpb24gbmVlZHMgdGhlIFRleHRQYWludGVyCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VS
ZXF1aXJlc1JlcGFpbnRJZlRleHRPckJvcmRlck9yT3V0bGluZSk6IFJlZHJhdyB0aGUgdW5kZXJs
aW5lIHdoZW4KKyAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXNraXAgY2hhbmdlcworCiAyMDEzLTEx
LTAxICBUaGlhZ28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eu
b3JnPgogCiAgICAgICAgIEFkZGluZyBhZGRSZW1vdGVUcmFjayBhbmQgcmVtb3ZlUmVtb3RlVHJh
Y2sgZnVuY3Rpb25zIHRvIE1lZGlhU3RyZWFtRGVzY3JpcHRvciBhbmQgTWVkaWFTdHJlYW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcAppbmRleCA0YjkzOWI4NWE0ZTYzYjIzY2FmZmYwZjUyY2RiNWE1NTAwODI4
YThkLi5hODhkZTdmZDExZjk0OTlkM2ViZmY0MTFlNTYzNDUzZjViZGE1ODMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwCkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IGNvbXB1dGVM
aW5lQm91bmRzQW5kQW50aWFsaWFzaW5nTW9kZUZvclRleHQoR3JhcGhpY3NDb250ZXh0JiBjbwog
ICAgIC8vIFNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU1IGZv
ciBkZXRhaWxzIG9mIHdoeSAwLjUgaXMgdGhlIHJpZ2h0IG1pbmltdW0gdGhpY2tuZXNzIHRvIHVz
ZS4KICAgICBGbG9hdFJlY3QgaW5pdGlhbEJvdW5kcyhwb2ludCwgRmxvYXRTaXplKHdpZHRoLCBt
YXgoY29udGV4dC5zdHJva2VUaGlja25lc3MoKSwgMC41ZikpKTsKIAotICAgIGlmIChwcmludGlu
ZyB8fCAhY29udGV4dC5nZXRDVE0oR3JhcGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURl
dmljZVNjYWxlKS5wcmVzZXJ2ZXNBeGlzQWxpZ25tZW50KCkpCisgICAgaWYgKHByaW50aW5nIHx8
IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjb250ZXh0LmdldENUTShHcmFwaGljc0Nv
bnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpLnByZXNlcnZlc0F4aXNBbGlnbm1l
bnQoKSkKICAgICAgICAgcmV0dXJuIGluaXRpYWxCb3VuZHM7CiAKICAgICAvLyBPbiBzY3JlZW4s
IHVzZSBhIG1pbmltdW0gdGhpY2tuZXNzIG9mIDEuMCBpbiB1c2VyIHNwYWNlIChsYXRlciByb3Vu
ZGVkIHRvIGFuIGludGVncmFsIG51bWJlciBpbiBkZXZpY2Ugc3BhY2UpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IGZkYTJjYWU4M2ZhYWYwZDQ4Yjcy
MTgyYTQxOTZmMGI3OGQ1OGNmMzIuLjE0ODMwYmQ3Y2VhMTZlYjk2MmE5MGMyYjA2NDYwNDM2MTRl
NmZmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRl
ICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCkBAIC01ODEsNyArNTgyLDcgQEAgdm9pZCBJbmxp
bmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0LAogICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHRl
eHRQYWludFN0eWxlKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDbG9ja3dpc2UpKTsKLSAgICAgICAg
cGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGJveE9yaWdpbiwgdGV4dERlY29yYXRpb25zLCBsaW5l
U3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93KTsKKyAgICAgICAgcGFpbnRE
ZWNvcmF0aW9uKGNvbnRleHQsIGJveE9yaWdpbiwgdGV4dERlY29yYXRpb25zLCBsaW5lU3R5bGUu
dGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93LCB0ZXh0UGFpbnRlcik7CiAgICAgICAg
IGlmIChjb21iaW5lZFRleHQpCiAgICAgICAgICAgICBjb250ZXh0LT5jb25jYXRDVE0ocm90YXRp
b24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwogICAgIH0KQEAgLTc3OSw5ICs3ODAsNyBA
QCBzdGF0aWMgaW50IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoY29uc3QgVGV4dFVuZGVybGluZVBv
c2l0aW9uIHVuZGVybGluZVBvc2l0aW9uLAogICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9u
VW5kZXI6IHsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJsaW5lIHJlbGF0aXZlIHRvIHRoZSB1
bmRlciBlZGdlIG9mIHRoZSBsb3dlc3QgZWxlbWVudCdzIGNvbnRlbnQgYm94LgogICAgICAgICBj
b25zdCBmbG9hdCBvZmZzZXQgPSBpbmxpbmVUZXh0Qm94LT5yb290KCkubWF4TG9naWNhbFRvcCgp
IC0gaW5saW5lVGV4dEJveC0+bG9naWNhbFRvcCgpOwotICAgICAgICBpZiAob2Zmc2V0ID4gMCkK
LSAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXAg
KyBvZmZzZXQ7Ci0gICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsSGVpZ2h0KCkg
KyBnYXA7CisgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsSGVpZ2h0KCkgKyBn
YXAgKyBtYXg8ZmxvYXQ+KG9mZnNldCwgMCk7CiAgICAgfQogICAgIH0KIApAQCAtODA3LDYgKzgw
NiwxNiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RTdGVwVG9EZWNvcmF0aW9uTGVuZ3RoKGZsb2F0JiBz
dGVwLCBmbG9hdCYgY29udHJvbFBvaW50RGlzdGFuYwogICAgIGNvbnRyb2xQb2ludERpc3RhbmNl
ICs9IGFkanVzdG1lbnQ7CiB9CiAKK3N0YXRpYyBmbG9hdCBnZXRXYXZ5U3Ryb2tlQ29udHJvbFBv
aW50RGlzdGFuY2UoZmxvYXQgc3Ryb2tlVGhpY2tuZXNzKQoreworICAgIHJldHVybiAzICogbWF4
PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworfQorCitzdGF0aWMgZmxvYXQgZ2V0V2F2eVN0
cm9rZVN0ZXAoZmxvYXQgc3Ryb2tlVGhpY2tuZXNzKQoreworICAgIHJldHVybiAyICogbWF4PGZs
b2F0PigyLCBzdHJva2VUaGlja25lc3MpOworfQorCiAvKgogICogRHJhdyBvbmUgY3ViaWMgQmV6
aWVyIGN1cnZlIGFuZCByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBsb25nIHRoZSB0aGUgZGVjb3Jh
dGlvbidzIGF4aXMuCiAgKiBUaGUgc3RhcnQgcG9pbnQgKHAxKSwgY29udHJvbFBvaW50MSwgY29u
dHJvbFBvaW50MiBhbmQgZW5kIHBvaW50IChwMikgb2YgdGhlIEJlemllciBjdXJ2ZQpAQCAtODQ2
LDEyICs4NTUsMTIgQEAgc3RhdGljIHZvaWQgc3Ryb2tlV2F2eVRleHREZWNvcmF0aW9uKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgRmxvYXRQb2ludCYgcDEsIEYKICAgICAvLyB0aGUgYWN0dWFs
IGN1cnZlIHBhc3NlcyBhcHByb3hpbWF0ZWx5IGF0IGhhbGYgb2YgdGhhdCBkaXN0YW5jZSwgdGhh
dCBpcyAzIHBpeGVscy4KICAgICAvLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGN1cnZlIGlz
IGFsc28gYXBwcm94aW1hdGVseSAzIHBpeGVscy4gSW5jcmVhc2VzIHRoZSBjdXJ2ZSdzIGhlaWdo
dAogICAgIC8vIGFzIHN0cm9ja1RoaWNrbmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0aGUgY3VydmUg
bG9va3MgYmV0dGVyLgotICAgIGZsb2F0IGNvbnRyb2xQb2ludERpc3RhbmNlID0gMyAqIG1heDxm
bG9hdD4oMiwgc3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBmbG9hdCBjb250cm9sUG9pbnREaXN0YW5j
ZSA9IGdldFdhdnlTdHJva2VDb250cm9sUG9pbnREaXN0YW5jZShzdHJva2VUaGlja25lc3MpOwog
CiAgICAgLy8gSW5jcmVtZW50IHVzZWQgdG8gZm9ybSB0aGUgZGlhbW9uZCBzaGFwZSBiZXR3ZWVu
IHN0YXJ0IHBvaW50IChwMSksIGNvbnRyb2wKICAgICAvLyBwb2ludHMgYW5kIGVuZCBwb2ludCAo
cDIpIGFsb25nIHRoZSBheGlzIG9mIHRoZSBkZWNvcmF0aW9uLiBNYWtlcyB0aGUKICAgICAvLyBj
dXJ2ZSB3aWRlciBhcyBzdHJvY2tUaGlja25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZl
IGxvb2tzIGJldHRlci4KLSAgICBmbG9hdCBzdGVwID0gMiAqIG1heDxmbG9hdD4oMiwgc3Ryb2tl
VGhpY2tuZXNzKTsKKyAgICBmbG9hdCBzdGVwID0gZ2V0V2F2eVN0cm9rZVN0ZXAoc3Ryb2tlVGhp
Y2tuZXNzKTsKIAogICAgIGJvb2wgaXNWZXJ0aWNhbExpbmUgPSAocDEueCgpID09IHAyLngoKSk7
CiAKQEAgLTkxMCwxMCArOTE5LDU3IEBAIHN0YXRpYyB2b2lkIHN0cm9rZVdhdnlUZXh0RGVjb3Jh
dGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIEZsb2F0UG9pbnQmIHAxLCBGCiAgICAgY29u
dGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHRydWUpOwogICAgIGNvbnRleHQtPnN0cm9rZVBhdGgo
cGF0aCk7CiB9CisKK3N0YXRpYyBGbG9hdFJlY3QgZ2V0U2luZ2xlRGVjb3JhdGlvbkJvdW5kaW5n
Qm94KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgZmxvYXQgdGV4dERlY29yYXRpb25U
aGlja25lc3MsCisgICAgY29uc3QgZmxvYXQgd2lkdGgsIGNvbnN0IEZsb2F0UG9pbnQgbG9jYWxP
cmlnaW4sIGNvbnN0IFRleHREZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLAorICAgIGNv
bnN0IGJvb2wgaXNQcmludGluZywgY29uc3QgZmxvYXQgeU9mZnNldCwgY29uc3QgZmxvYXQgdW5k
ZXJsaW5lT2Zmc2V0LCBjb25zdCBmbG9hdCBkb3VibGVPZmZzZXQpCit7CisgICAgRmxvYXRSZWN0
IGJvdW5kaW5nQm94OworCisgICAgc3dpdGNoIChkZWNvcmF0aW9uU3R5bGUpIHsKKyAgICBjYXNl
IFRleHREZWNvcmF0aW9uU3R5bGVXYXZ5OiB7CisgICAgICAgIEZsb2F0UG9pbnQgc3RhcnQobG9j
YWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyB5T2Zmc2V0KTsKKyAgICAgICAgRmxvYXRQ
b2ludCBlbmQgPSBzdGFydCArIEZsb2F0U2l6ZSh3aWR0aCwgMCk7CisgICAgICAgIGNvbnRleHQu
YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHN0YXJ0LCBlbmQsIHRleHREZWNvcmF0aW9uVGhp
Y2tuZXNzLCBjb250ZXh0LnN0cm9rZVN0eWxlKCkpOworICAgICAgICBmbG9hdCBjb250cm9sUG9p
bnREaXN0YW5jZSA9IGdldFdhdnlTdHJva2VDb250cm9sUG9pbnREaXN0YW5jZSh0ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcyk7CisgICAgICAgIGZsb2F0IHN0ZXAgPSBnZXRXYXZ5U3Ryb2tlU3RlcCh0
ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyk7CisgICAgICAgIGFkanVzdFN0ZXBUb0RlY29yYXRpb25M
ZW5ndGgoc3RlcCwgY29udHJvbFBvaW50RGlzdGFuY2UsIHdpZHRoKTsKKyAgICAgICAgY29udHJv
bFBvaW50RGlzdGFuY2UgKz0gdGV4dERlY29yYXRpb25UaGlja25lc3M7CisgICAgICAgIEZsb2F0
UG9pbnQgYm91bmRpbmdCb3hPcmlnaW4gPSBzdGFydCAtIEZsb2F0U2l6ZSgwLCBjb250cm9sUG9p
bnREaXN0YW5jZSk7CisgICAgICAgIEZsb2F0U2l6ZSBib3VuZGluZ0JveFNpemUgPSBGbG9hdFNp
emUod2lkdGgsIDIgKiBjb250cm9sUG9pbnREaXN0YW5jZSk7CisgICAgICAgIGJvdW5kaW5nQm94
LnVuaXRlKEZsb2F0UmVjdChib3VuZGluZ0JveE9yaWdpbiwgYm91bmRpbmdCb3hTaXplKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBib3VuZGluZ0JveC51
bml0ZShjb250ZXh0LmNvbXB1dGVMaW5lQm91bmRzRm9yVGV4dChGbG9hdFBvaW50KGxvY2FsT3Jp
Z2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGlzUHJp
bnRpbmcpKTsKKyAgICAgICAgaWYgKGRlY29yYXRpb25TdHlsZSA9PSBUZXh0RGVjb3JhdGlvblN0
eWxlRG91YmxlKQorICAgICAgICAgICAgYm91bmRpbmdCb3gudW5pdGUoY29udGV4dC5jb21wdXRl
TGluZUJvdW5kc0ZvclRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2lu
LnkoKSArIGRvdWJsZU9mZnNldCksIHdpZHRoLCBpc1ByaW50aW5nKSk7CisgICAgfQorICAgIHJl
dHVybiBib3VuZGluZ0JveDsKK30KKworc3RhdGljIEZsb2F0UmVjdCBnZXREZWNvcmF0aW9uQm91
bmRpbmdCb3goSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBjb25zdCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRo
aWNrbmVzcywgY29uc3QgZmxvYXQgd2lkdGgsIGNvbnN0IGZsb2F0IGRvdWJsZU9mZnNldCwgY29u
c3QgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0IEZsb2F0UG9pbnQg
bG9jYWxPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IGJvb2wgaXNQ
cmludGluZywgY29uc3QgaW50IGJhc2VsaW5lKQoreworICAgIEZsb2F0UmVjdCBib3VuZGluZ0Jv
eDsKKyAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB7CisgICAgICAgIFRl
eHRVbmRlcmxpbmVQb3NpdGlvbiB1bmRlcmxpbmVQb3NpdGlvbiA9IGxpbmVTdHlsZS50ZXh0VW5k
ZXJsaW5lUG9zaXRpb24oKTsKKyAgICAgICAgY29uc3QgaW50IHVuZGVybGluZU9mZnNldCA9IGNv
bXB1dGVVbmRlcmxpbmVPZmZzZXQodW5kZXJsaW5lUG9zaXRpb24sIGxpbmVTdHlsZS5mb250TWV0
cmljcygpLCAmaW5saW5lVGV4dEJveCwgdGV4dERlY29yYXRpb25UaGlja25lc3MpOworICAgICAg
ICAKKyAgICAgICAgYm91bmRpbmdCb3gudW5pdGUoZ2V0U2luZ2xlRGVjb3JhdGlvbkJvdW5kaW5n
Qm94KGNvbnRleHQsIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLCB3aWR0aCwgbG9jYWxPcmlnaW4s
IGRlY29yYXRpb25TdHlsZSwgaXNQcmludGluZywgdW5kZXJsaW5lT2Zmc2V0ICsgZG91YmxlT2Zm
c2V0LCB1bmRlcmxpbmVPZmZzZXQsIGJhc2VsaW5lICsgMSkpOworICAgIH0KKyAgICBpZiAoZGVj
byAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGdl
dFNpbmdsZURlY29yYXRpb25Cb3VuZGluZ0JveChjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNr
bmVzcywgd2lkdGgsIGxvY2FsT3JpZ2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIC1k
b3VibGVPZmZzZXQsIDAsIC1kb3VibGVPZmZzZXQpKTsKKyAgICBpZiAoZGVjbyAmIFRleHREZWNv
cmF0aW9uTGluZVRocm91Z2gpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGdldFNpbmdsZURl
Y29yYXRpb25Cb3VuZGluZ0JveChjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lk
dGgsIGxvY2FsT3JpZ2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIDIgKiBiYXNlbGlu
ZSAvIDMsIDIgKiBiYXNlbGluZSAvIDMsIGRvdWJsZU9mZnNldCArIDIgKiBiYXNlbGluZSAvIDMp
KTsKKyAgICByZXR1cm4gYm91bmRpbmdCb3g7Cit9CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09S
QVRJT04KIAotdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9u
IGRlY28sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dE
YXRhKiBzaGFkb3cpCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29y
YXRpb24gZGVjbywgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0IFNo
YWRvd0RhdGEqIHNoYWRvdywgVGV4dFBhaW50ZXImIHRleHRQYWludGVyKQogeworI2lmICFFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgVU5VU0VEX1BBUkFNKHRleHRQYWludGVyKTsK
KyNlbmRpZgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW1wcm92ZSB0aGlzIHJ1bGUgYW5kIG5v
dCBhbHdheXMganVzdCBhc3N1bWUgMS4KICAgICBjb25zdCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRo
aWNrbmVzcyA9IDEuZjsKIApAQCAtOTg1LDYgKzEwNDEsMzUgQEAgdm9pZCBJbmxpbmVUZXh0Qm94
OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBv
aW50JgogI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKICAgICAgICAgLy8gT2Zmc2V0
IGJldHdlZW4gbGluZXMgLSBhbHdheXMgbm9uLXplcm8sIHNvIGxpbmVzIG5ldmVyIGNyb3NzIGVh
Y2ggb3RoZXIuCiAgICAgICAgIGZsb2F0IGRvdWJsZU9mZnNldCA9IHRleHREZWNvcmF0aW9uVGhp
Y2tuZXNzICsgMS5mOworICAgICAgICAKKyAgICAgICAgVGV4dERlY29yYXRpb25Ta2lwIHRleHRE
ZWNvcmF0aW9uU2tpcCA9IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKTsKKyAgICAgICAg
Ym9vbCBjbGlwRGVjb3JhdGlvblRvTWFzayA9IHRleHREZWNvcmF0aW9uU2tpcCA9PSBUZXh0RGVj
b3JhdGlvblNraXBJbms7CisgICAgICAgIAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChj
bGlwRGVjb3JhdGlvblRvTWFzaykgeworICAgICAgICAgICAgY29uc3QgZmxvYXQgc2tpcElua0dh
cFdpZHRoID0gMS5mOworCisgICAgICAgICAgICBzdGF0ZVNhdmVyLnNhdmUoKTsKKworICAgICAg
ICAgICAgY29uc3QgRmxvYXRSZWN0IHVuZGVybGluZVJlY3QgPSBnZXREZWNvcmF0aW9uQm91bmRp
bmdCb3goKnRoaXMsICpjb250ZXh0LCBkZWNvLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lk
dGgsIGRvdWJsZU9mZnNldCwgZGVjb3JhdGlvblN0eWxlLCBsb2NhbE9yaWdpbiwgbGluZVN0eWxl
LCBpc1ByaW50aW5nLCBiYXNlbGluZSk7CisgICAgICAgICAgICBJbnRSZWN0IGVuY2xvc2luZ0Rl
dmljZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHVuZGVybGluZVJlY3QpOworICAgICAgICAgICAg
T3duUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IGNvbnRleHQtPmNyZWF0ZUNvbXBhdGli
bGVCdWZmZXIoZW5jbG9zaW5nRGV2aWNlUmVjdC5zaXplKCkpOworCisgICAgICAgICAgICBpZiAo
aW1hZ2VCdWZmZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQqIG1h
c2tDb250ZXh0ID0gaW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICAgICAgICAgICAgICBtYXNr
Q29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjpibGFjaywgQ29sb3JTcGFjZURldmljZVJHQik7
CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPnNldExpbmVKb2luKFJvdW5kSm9pbik7Cisg
ICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPnRyYW5zbGF0ZShGbG9hdFBvaW50KCkgLSBlbmNs
b3NpbmdEZXZpY2VSZWN0LmxvY2F0aW9uKCkpOworCisgICAgICAgICAgICAgICAgbWFza0NvbnRl
eHQtPmZpbGxSZWN0KGVuY2xvc2luZ0RldmljZVJlY3QpOworICAgICAgICAgICAgICAgIG1hc2tD
b250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlQ2xlYXIpOworICAgIAorICAg
ICAgICAgICAgICAgIHRleHRQYWludGVyLnBhaW50VGV4dEluQ29udGV4dCgqbWFza0NvbnRleHQs
IHNraXBJbmtHYXBXaWR0aCk7CisKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jbGlwVG9JbWFn
ZUJ1ZmZlcihpbWFnZUJ1ZmZlci5nZXQoKSwgZW5jbG9zaW5nRGV2aWNlUmVjdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KICNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZSh0ZXh0RGVjb3JhdGlvblN0eWxlVG9TdHJva2VTdHls
ZShkZWNvcmF0aW9uU3R5bGUpKTsKICAgICAgICAgaWYgKGRlY28gJiBUZXh0RGVjb3JhdGlvblVu
ZGVybGluZSkgewpAQCAtMTAzMCw2ICsxMTE1LDEwIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYK
ICAgICAgICAgICAgIH0KICNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICAgICB9
CisjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgICAgICBpZiAoY2xpcERlY29y
YXRpb25Ub01hc2spCisgICAgICAgICAgICBzdGF0ZVNhdmVyLnJlc3RvcmUoKTsKKyNlbmRpZgog
ICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHsKICAgICAgICAg
ICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGxpbmV0aHJvdWdoLCBjb2xvclNwYWNlKTsKICNp
ZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaAppbmRleCAyNmRkYjIxMmU5YjBkMGUxM2Y1Y2UzMzQzMTkyYzI3ZDM5YjZl
MjhlLi45ZWMzYWUwMjc0YjBmODlkN2UyNzk5MDNmZTFiZjJiZDYxNmIxMWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBjbGFzcyBEb2N1
bWVudE1hcmtlcjsKK2NsYXNzIFRleHRQYWludGVyOwogCiBjb25zdCB1bnNpZ25lZCBzaG9ydCBj
Tm9UcnVuY2F0aW9uID0gVVNIUlRfTUFYOwogY29uc3QgdW5zaWduZWQgc2hvcnQgY0Z1bGxUcnVu
Y2F0aW9uID0gVVNIUlRfTUFYIC0gMTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBwcm90ZWN0ZWQ6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVj
b3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKik7CisgICAgdm9pZCBwYWludERlY29yYXRp
b24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBUZXh0RGVj
b3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSosIFRleHRQYWlu
dGVyJik7CiAgICAgdm9pZCBwYWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYsIENv
bG9yIHRleHRDb2xvcik7CiAgICAgdm9pZCBwYWludERvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBib29sIGdyYW1tYXIpOwogICAgIHZvaWQgcGFp
bnRUZXh0TWF0Y2hNYXJrZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94
T3JpZ2luLCBEb2N1bWVudE1hcmtlciosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggMmQzMTU1MDQ4NzU2NWYzNTRkZWFmMjE5OTA1NTFhNGNkMThhZmQ5Ny4uOWRjZjM2YzA4NmFl
ZGU4MzhlYmFlY2Y1MmNlNzcyMDU1YmJkZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC03OTIsNiArNzkyLDcgQEAgYm9vbCBSZW5k
ZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBhaW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUoY29u
c3QgUmVuZGVyU3R5bGUKICNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAg
IHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU3R5bGUgIT0gb3RoZXIt
PnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU3R5bGUKICAgICAgICAgfHwg
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25Db2xvciAhPSBvdGhlci0+cmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25Db2xvcgorICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblNraXAgIT0gb3RoZXItPnJhcmVJbmhlcml0
ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU2tpcAogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFU
SU9OCiAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9yICE9IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xvcgogICAgICAgICB8fCByYXJlSW5oZXJp
dGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4
dFN0cm9rZUNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjNmMDExOThhYTA2ZTk1ZmE4NmYxMTE1MTZkOTViOGNhMDY1
NWVhYy4uNjFhNzcxODRhM2ZkZDMxZjg5NTVkNGQ2ODA1MjI2ZmUzNDEwMTE0YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEzLTExLTAxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29y
YXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGluZyBhIHRlc3Qgd2hpY2ggZHJhd3MgYSB2ZXJ5IGxhcmdlICJwIiB3aXRoIHRl
eHQtZGVjb3JhdGlvbi1za2lwOmluay4gVGhlCisgICAgICAgIHZpZXdwb3J0IGlzIHJlc3RyaWN0
ZWQgdG8gYmUganVzdCBodWdnaW5nIHRoZSBwbGFjZSB3aGVyZSBhbiB1bmRlcmxpbmUgd291bGQK
KyAgICAgICAgaW50ZXJzZWN0IHRoZSBkZXNjZW5kZXIgb2YgdGhlICJwIi4gVGhpcyBzaG91bGQg
bG9vayB0aGUgc2FtZSBhcyBpZiB0aGVyZSB3YXMKKyAgICAgICAgbm8gdW5kZXJsaW5lIGF0IGFs
bCAoYmVjYXVzZSBvZiB0aGUgc2tpcHBpbmcgdW5kZXJsaW5lKS4KKworICAgICAgICAqIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQt
ZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbDogQWRkZWQuCisKIDIwMTMtMTEtMDEgIEJlbSBKb25l
cy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW2NzcyBzaGFwZXNdIFB1bGwg
aW4gdXBzdHJlYW0gZml4ZXMgdG8gc2hhcGUtb3V0c2lkZSBtYXJnaW4gYW5kIGNsaXBwaW5nIHRl
c3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVj
b3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjODUyZTMzZjk3NDhjYjliYzM0ZDA3OGVhZDE2MDkwNmE5MTRm
YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1p
bmstZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAjYmlnc2tldyB7CisgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICBsZWZ0OiAtMTU2cHg7CisgICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZv
bnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgIGZvbnQtc2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFt
aWx5OiBoZWx2ZXRpY2E7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMzcpOworICAg
ICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKKyAgICB9CisgIDwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgYW4gdW5kZXJsaW5l
ZCBpdGFsaWNpemVkICJwIiBhcyB2aWV3ZWQgdGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFyb3VuZAor
ICB0aGUgZGVzY2VuZGVyLiBUaGUgInAiIGlzIGluIDEycHQgc2l6ZSwgYnV0IGlzIGJsb3duIHVw
IHRvIG11Y2ggbGFyZ2VyLiBUaGlzIHRlc3RzIHRoYXQKKyAgdGhlIHRleHQtZGVjb3JhdGlvbi1z
a2lwOiBpbmsgbWFzayBpcyBjYWxjdWxhdGVkIHdpdGggbW9yZSBwcmVjaXNpb24gdGhhbiB1c2Vy
LXNwYWNlIHByZWNpc2lvbi4KKyAgSWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLCB0
aGVyZSB3b24ndCBiZSBhIG5pY2UgY3Jpc3AgZWRnZSBvbiB0aGUgc2xvcGUgb2YgdGhlIHVuZGVy
bGluZQorICB3aGVyZSBpdCBnZXRzIG1hc2tlZCBvZmYuIFRoaXMgdGVzdCB3b3VsZCBmYWlsIGJl
Y2F1c2UgdGhlcmUgd291bGQgYmUgZ2FyYmFnZSBnaWFudCBwaXhlbAorICBhbGlhc2luZyBuZWFy
IHRoZSBjaGFyYWN0ZXIuIElmIHRleHQtZGVjb3JhdGlvbi1za2lwOiBpbmsgaXNuJ3Qgd29ya2lu
ZyBhdCBhbGwsIHRoZW4gdGhlCisgIHVuZGVybGluZSB3aWxsIHNpbXBseSBiZSBkcmF3biBsaWtl
IG5vcm1hbCwgYW5kIHdvbid0IG1hdGNoIHRoZSBleHBlY3RlZCBjYXNlICh3aGVyZSB0aGVyZQor
ICBpcyBubyB1bmRlcmxpbmUpCisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBv
dmVyZmxvdzogaGlkZGVuOyB3aWR0aDogODFweDsgaGVpZ2h0OiA0MDBweCI+CisgICAgICA8ZGl2
IGlkPSJiaWdza2V3Ij5scGw8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVj
b3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
NTA4NzdhODYzNzM1ZGQ3ZDE2N2UzYzk0MjhlZWY5YTE5ODg2NTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbApAQCAtMCwwICsxLDM0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAjYmln
c2tldyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiAtMTU2cHg7Cisg
ICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgIGZvbnQt
c2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFtaWx5OiBoZWx2ZXRpY2E7CisgICAgICB0ZXh0LWRl
Y29yYXRpb246IHVuZGVybGluZTsKKyAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6
IGluazsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAgICAtd2Via2l0
LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6
ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNj
ZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBs
YXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBt
YXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJl
Y2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0
IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdo
ZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVy
ZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJh
Y3Rlci4gSWYgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBpc24ndCB3b3JraW5nIGF0IGFsbCwg
dGhlbiB0aGUKKyAgdW5kZXJsaW5lIHdpbGwgc2ltcGx5IGJlIGRyYXduIGxpa2Ugbm9ybWFsLCBh
bmQgd29uJ3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGNhc2UgKHdoZXJlIHRoZXJlCisgIGlzIG5vIHVu
ZGVybGluZSkKKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBo
aWRkZW47IHdpZHRoOiA4MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9ImJpZ3Nr
ZXciPmxwbDwvZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215761</attachid>
            <date>2013-11-01 14:11:03 -0700</date>
            <delta_ts>2013-11-01 14:37:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131101141102.patch</filename>
            <type>text/plain</type>
            <size>22673</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEyYmU5YjIwNTdjNWJi
YjBkYjMyNzljZTAyNTk2NWQzODk1NmRmZi4uNDdhNDA1MWJhYjc1ZmZlZmU3ZjI0MTRmMTk2ZDAw
YWFkM2Q4MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgMS4gQmVm
b3JlIGRyYXdpbmcgYW55IGRlY29yYXRpb25zLCBmaWd1cmUgb3V0IHRoZSBib3VuZGluZyBib3gg
Zm9yIHRoZSBkZWNvcmF0aW9ucyB0aGF0IHdpbGwgYmUgZHJhd24KKyAgICAgICAgMi4gQ3JlYXRl
IGFuIEltYWdlQnVmZmVyIHdpdGggdGhlc2UgZGltZW5zaW9ucworICAgICAgICAzLiBEcmF3IHRl
eHQgaW50byB0aGlzIEltYWdlQnVmZmVyIHdpdGggYSB0aGlja2VyIHN0cm9rZQorICAgICAgICA0
LiBBcHBseSB0aGUgSW1hZ2VCdWZmZXIgYXMgYSBtYXNrIHRvIHRoZSBjb250ZXh0CisgICAgICAg
IDUuIERyYXcgZGVjb3JhdGlvbnMgbGlrZSBub3JtYWwKKyAgICAgICAgNi4gQ2xlYW4gdXAKKwor
ICAgICAgICBUZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dCk6IERvbid0
IGNhbGwgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzCisgICAgICAgIHdoZW4g
cGFpbnRpbmcgaXMgZGlzYWJsZWQKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6IFBhc3MgdGhlIFRl
eHRQYWludGVyIHRvIHBhaW50RGVjb3JhdGlvbgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVVu
ZGVybGluZU9mZnNldCk6IFNtYWxsIGNsZWFudXAKKyAgICAgICAgKFdlYkNvcmU6OmdldFdhdnlT
dHJva2VDb250cm9sUG9pbnREaXN0YW5jZSk6IFB1bGxpbmcgb3V0IG9mIHN0cm9rZVdhdnlUZXh0
RGVjb3JhdGlvbigpCisgICAgICAgIChXZWJDb3JlOjpnZXRXYXZ5U3Ryb2tlU3RlcCk6IERpdHRv
CisgICAgICAgIChXZWJDb3JlOjpzdHJva2VXYXZ5VGV4dERlY29yYXRpb24pOiBVc2UgdGhlIHBy
ZXZpb3VzIDIgZnVuY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpnZXRTaW5nbGVEZWNvcmF0aW9u
Qm91bmRpbmdCb3gpOiBQdWxsaW5nIG91dCByZXBlYXRlZCBjb2RlIGludG8gYSBmdW5jdGlvbgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvbkJvdW5kaW5nQm94KTogQ29tcHV0ZSB0aGUg
Ym91bmRpbmcgYm94IGZvciBhbiB1bmRlcmxpbmUgd2hpY2gKKyAgICAgICAgaGFzbid0IGJlZW4g
ZHJhd24geWV0CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24pOiBDb25zdHJ1Y3QgYSBtYXNrIGFuZCBhcHBseSBpdCB0byB0aGUgR3JhcGhpY3NDb250ZXh0
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDogcGFpbnREZWNvcmF0aW9uIG5l
ZWRzIHRoZSBUZXh0UGFpbnRlcgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBh
aW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUpOiBSZWRyYXcgdGhlIHVuZGVybGluZSB3aGVuCisg
ICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwIGNoYW5nZXMKKwogMjAxMy0xMS0wMSAgTmljayBE
aWVnbyBZYW1hbmUgIDxuaWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEV4cGxp
Y2l0bHkgaW5pdGlhbGl6ZSBSZWZDb3VudGVkIGJhc2UgY2xhc3MgaW4gTWVkaWFTdHJlYW1UcmFj
aydzIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRiOTM5Yjg1YTRlNjNiMjNj
YWZmZjBmNTJjZGI1YTU1MDA4MjhhOGQuLmE4OGRlN2ZkMTFmOTQ5OWQzZWJmZjQxMWU1NjM0NTNm
NWJkYTU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRp
YyBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChH
cmFwaGljc0NvbnRleHQmIGNvCiAgICAgLy8gU2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTUgZm9yIGRldGFpbHMgb2Ygd2h5IDAuNSBpcyB0aGUgcmlnaHQgbWlu
aW11bSB0aGlja25lc3MgdG8gdXNlLgogICAgIEZsb2F0UmVjdCBpbml0aWFsQm91bmRzKHBvaW50
LCBGbG9hdFNpemUod2lkdGgsIG1heChjb250ZXh0LnN0cm9rZVRoaWNrbmVzcygpLCAwLjVmKSkp
OwogCi0gICAgaWYgKHByaW50aW5nIHx8ICFjb250ZXh0LmdldENUTShHcmFwaGljc0NvbnRleHQ6
OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpLnByZXNlcnZlc0F4aXNBbGlnbm1lbnQoKSkK
KyAgICBpZiAocHJpbnRpbmcgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWNvbnRl
eHQuZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSku
cHJlc2VydmVzQXhpc0FsaWdubWVudCgpKQogICAgICAgICByZXR1cm4gaW5pdGlhbEJvdW5kczsK
IAogICAgIC8vIE9uIHNjcmVlbiwgdXNlIGEgbWluaW11bSB0aGlja25lc3Mgb2YgMS4wIGluIHVz
ZXIgc3BhY2UgKGxhdGVyIHJvdW5kZWQgdG8gYW4gaW50ZWdyYWwgbnVtYmVyIGluIGRldmljZSBz
cGFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
ZmRhMmNhZTgzZmFhZjBkNDhiNzIxODJhNDE5NmYwYjc4ZDU4Y2YzMi4uOWU4NDVlYjU4M2E3NDk4
YmNjMWJjYTFiZGEzMDQ2MzRmNjk0Zjk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
aW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTU4MSw3
ICs1ODIsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENs
b2Nrd2lzZSkpOwotICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3cpOworICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0ZXh0RGVj
b3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFkb3csIHRl
eHRQYWludGVyKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAgIGNvbnRl
eHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7CiAgICAg
fQpAQCAtNzc5LDkgKzc4MCw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZVVuZGVybGluZU9mZnNldChj
b25zdCBUZXh0VW5kZXJsaW5lUG9zaXRpb24gdW5kZXJsaW5lUG9zaXRpb24sCiAgICAgY2FzZSBU
ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcjogewogICAgICAgICAvLyBQb3NpdGlvbiB1bmRlcmxp
bmUgcmVsYXRpdmUgdG8gdGhlIHVuZGVyIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50J3MgY29u
dGVudCBib3guCiAgICAgICAgIGNvbnN0IGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRCb3gtPnJv
b3QoKS5tYXhMb2dpY2FsVG9wKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsVG9wKCk7Ci0gICAg
ICAgIGlmIChvZmZzZXQgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxv
Z2ljYWxIZWlnaHQoKSArIGdhcCArIG9mZnNldDsKLSAgICAgICAgcmV0dXJuIGlubGluZVRleHRC
b3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcDsKKyAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gt
PmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIHN0ZDo6bWF4PGZsb2F0PihvZmZzZXQsIDApOwogICAg
IH0KICAgICB9CiAKQEAgLTgwNyw2ICs4MDYsMjEgQEAgc3RhdGljIHZvaWQgYWRqdXN0U3RlcFRv
RGVjb3JhdGlvbkxlbmd0aChmbG9hdCYgc3RlcCwgZmxvYXQmIGNvbnRyb2xQb2ludERpc3RhbmMK
ICAgICBjb250cm9sUG9pbnREaXN0YW5jZSArPSBhZGp1c3RtZW50OwogfQogCitzdGF0aWMgdm9p
ZCBwb3B1bGF0ZVdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IHN0cm9rZVRoaWNrbmVzcywgZmxv
YXQmIGNvbnRyb2xQb2ludERpc3RhbmNlLCBmbG9hdCYgc3RlcCkKK3sKKyAgICAvLyBEaXN0YW5j
ZSBiZXR3ZWVuIGRlY29yYXRpb24ncyBheGlzIGFuZCBCZXppZXIgY3VydmUncyBjb250cm9sIHBv
aW50cy4KKyAgICAvLyBUaGUgaGVpZ2h0IG9mIHRoZSBjdXJ2ZSBpcyBiYXNlZCBvbiB0aGlzIGRp
c3RhbmNlLiBVc2UgYSBtaW5pbXVtIG9mIDYgcGl4ZWxzIGRpc3RhbmNlIHNpbmNlCisgICAgLy8g
dGhlIGFjdHVhbCBjdXJ2ZSBwYXNzZXMgYXBwcm94aW1hdGVseSBhdCBoYWxmIG9mIHRoYXQgZGlz
dGFuY2UsIHRoYXQgaXMgMyBwaXhlbHMuCisgICAgLy8gVGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRo
ZSBjdXJ2ZSBpcyBhbHNvIGFwcHJveGltYXRlbHkgMyBwaXhlbHMuIEluY3JlYXNlcyB0aGUgY3Vy
dmUncyBoZWlnaHQKKyAgICAvLyBhcyBzdHJvY2tUaGlja25lc3MgaW5jcmVhc2VzIHRvIG1ha2Ug
dGhlIGN1cnZlIGxvb2tzIGJldHRlci4KKyAgICBjb250cm9sUG9pbnREaXN0YW5jZSA9IDMgKiBt
YXg8ZmxvYXQ+KDIsIHN0cm9rZVRoaWNrbmVzcyk7CisKKyAgICAvLyBJbmNyZW1lbnQgdXNlZCB0
byBmb3JtIHRoZSBkaWFtb25kIHNoYXBlIGJldHdlZW4gc3RhcnQgcG9pbnQgKHAxKSwgY29udHJv
bAorICAgIC8vIHBvaW50cyBhbmQgZW5kIHBvaW50IChwMikgYWxvbmcgdGhlIGF4aXMgb2YgdGhl
IGRlY29yYXRpb24uIE1ha2VzIHRoZQorICAgIC8vIGN1cnZlIHdpZGVyIGFzIHN0cm9ja1RoaWNr
bmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0aGUgY3VydmUgbG9va3MgYmV0dGVyLgorICAgIHN0ZXAg
PSAyICogbWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworfQorCiAvKgogICogRHJhdyBv
bmUgY3ViaWMgQmV6aWVyIGN1cnZlIGFuZCByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBsb25nIHRo
ZSB0aGUgZGVjb3JhdGlvbidzIGF4aXMuCiAgKiBUaGUgc3RhcnQgcG9pbnQgKHAxKSwgY29udHJv
bFBvaW50MSwgY29udHJvbFBvaW50MiBhbmQgZW5kIHBvaW50IChwMikgb2YgdGhlIEJlemllciBj
dXJ2ZQpAQCAtODQxLDE3ICs4NTUsOCBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5VGV4dERlY29y
YXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwgRgogICAgIFBh
dGggcGF0aDsKICAgICBwYXRoLm1vdmVUbyhwMSk7CiAKLSAgICAvLyBEaXN0YW5jZSBiZXR3ZWVu
IGRlY29yYXRpb24ncyBheGlzIGFuZCBCZXppZXIgY3VydmUncyBjb250cm9sIHBvaW50cy4KLSAg
ICAvLyBUaGUgaGVpZ2h0IG9mIHRoZSBjdXJ2ZSBpcyBiYXNlZCBvbiB0aGlzIGRpc3RhbmNlLiBV
c2UgYSBtaW5pbXVtIG9mIDYgcGl4ZWxzIGRpc3RhbmNlIHNpbmNlCi0gICAgLy8gdGhlIGFjdHVh
bCBjdXJ2ZSBwYXNzZXMgYXBwcm94aW1hdGVseSBhdCBoYWxmIG9mIHRoYXQgZGlzdGFuY2UsIHRo
YXQgaXMgMyBwaXhlbHMuCi0gICAgLy8gVGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRoZSBjdXJ2ZSBp
cyBhbHNvIGFwcHJveGltYXRlbHkgMyBwaXhlbHMuIEluY3JlYXNlcyB0aGUgY3VydmUncyBoZWln
aHQKLSAgICAvLyBhcyBzdHJvY2tUaGlja25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZl
IGxvb2tzIGJldHRlci4KLSAgICBmbG9hdCBjb250cm9sUG9pbnREaXN0YW5jZSA9IDMgKiBtYXg8
ZmxvYXQ+KDIsIHN0cm9rZVRoaWNrbmVzcyk7Ci0KLSAgICAvLyBJbmNyZW1lbnQgdXNlZCB0byBm
b3JtIHRoZSBkaWFtb25kIHNoYXBlIGJldHdlZW4gc3RhcnQgcG9pbnQgKHAxKSwgY29udHJvbAot
ICAgIC8vIHBvaW50cyBhbmQgZW5kIHBvaW50IChwMikgYWxvbmcgdGhlIGF4aXMgb2YgdGhlIGRl
Y29yYXRpb24uIE1ha2VzIHRoZQotICAgIC8vIGN1cnZlIHdpZGVyIGFzIHN0cm9ja1RoaWNrbmVz
cyBpbmNyZWFzZXMgdG8gbWFrZSB0aGUgY3VydmUgbG9va3MgYmV0dGVyLgotICAgIGZsb2F0IHN0
ZXAgPSAyICogbWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworICAgIGZsb2F0IGNvbnRy
b2xQb2ludERpc3RhbmNlLCBzdGVwOworICAgIHBvcHVsYXRlV2F2eVN0cm9rZVBhcmFtZXRlcnMo
c3Ryb2tlVGhpY2tuZXNzLCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcCk7CiAKICAgICBib29s
IGlzVmVydGljYWxMaW5lID0gKHAxLngoKSA9PSBwMi54KCkpOwogCkBAIC05MTAsMTAgKzkxNSw2
NSBAQCBzdGF0aWMgdm9pZCBzdHJva2VXYXZ5VGV4dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBGbG9hdFBvaW50JiBwMSwgRgogICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlh
bGlhcyh0cnVlKTsKICAgICBjb250ZXh0LT5zdHJva2VQYXRoKHBhdGgpOwogfQorCisvKgorICog
QmVjYXVzZSBmaW5kaW5nIHRoZSBib3VuZGluZyBib3ggb2YgYW4gdW5kZXJsaW5lIGlzIHN0cnVj
dHVyYWxseSBzaW1pbGFyIHRvIGZpbmRpbmcKKyAqIHRoZSBib3VuZGluZyBib3ggb2YgYSBzdHJv
a2V0aHJvdWdoLCB3ZSBjYW4gcHVsbCBvdXQgdGhlIGNvbXB1dGF0aW9uIGFuZCBwYXJhbWV0ZXJp
emUKKyAqIGJ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgZGVjb3JhdGlvbiAoeU9mZnNldCwgdW5kZXJs
aW5lT2Zmc2V0LCBhbmQgZG91YmxlT2Zmc2V0KS4KKyAqLworc3RhdGljIEZsb2F0UmVjdCBib3Vu
ZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBmbG9h
dCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywKKyAgICBmbG9hdCB3aWR0aCwgY29uc3QgRmxvYXRQ
b2ludCBsb2NhbE9yaWdpbiwgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsCisg
ICAgYm9vbCBpc1ByaW50aW5nLCBmbG9hdCB5T2Zmc2V0LCBmbG9hdCB1bmRlcmxpbmVPZmZzZXQs
IGZsb2F0IGRvdWJsZU9mZnNldCkKK3sKKyAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CisKKyAg
ICBzd2l0Y2ggKGRlY29yYXRpb25TdHlsZSkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25TdHls
ZVdhdnk6IHsKKyAgICAgICAgRmxvYXRQb2ludCBzdGFydChsb2NhbE9yaWdpbi54KCksIGxvY2Fs
T3JpZ2luLnkoKSArIHlPZmZzZXQpOworICAgICAgICBGbG9hdFBvaW50IGVuZCA9IHN0YXJ0ICsg
RmxvYXRTaXplKHdpZHRoLCAwKTsKKyAgICAgICAgY29udGV4dC5hZGp1c3RMaW5lVG9QaXhlbEJv
dW5kYXJpZXMoc3RhcnQsIGVuZCwgdGV4dERlY29yYXRpb25UaGlja25lc3MsIGNvbnRleHQuc3Ry
b2tlU3R5bGUoKSk7CisKKyAgICAgICAgZmxvYXQgY29udHJvbFBvaW50RGlzdGFuY2UsIHN0ZXA7
CisgICAgICAgIHBvcHVsYXRlV2F2eVN0cm9rZVBhcmFtZXRlcnModGV4dERlY29yYXRpb25UaGlj
a25lc3MsIGNvbnRyb2xQb2ludERpc3RhbmNlLCBzdGVwKTsKKworICAgICAgICBhZGp1c3RTdGVw
VG9EZWNvcmF0aW9uTGVuZ3RoKHN0ZXAsIGNvbnRyb2xQb2ludERpc3RhbmNlLCB3aWR0aCk7CisK
KyAgICAgICAgY29udHJvbFBvaW50RGlzdGFuY2UgKz0gdGV4dERlY29yYXRpb25UaGlja25lc3M7
CisgICAgICAgIEZsb2F0UG9pbnQgYm91bmRpbmdCb3hPcmlnaW4gPSBzdGFydCAtIEZsb2F0U2l6
ZSgwLCBjb250cm9sUG9pbnREaXN0YW5jZSk7CisgICAgICAgIEZsb2F0U2l6ZSBib3VuZGluZ0Jv
eFNpemUgPSBGbG9hdFNpemUod2lkdGgsIDIgKiBjb250cm9sUG9pbnREaXN0YW5jZSk7CisgICAg
ICAgIGJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KGJvdW5kaW5nQm94T3JpZ2luLCBib3VuZGluZ0Jv
eFNpemUpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYm91
bmRpbmdCb3ggPSBjb250ZXh0LmNvbXB1dGVMaW5lQm91bmRzRm9yVGV4dChGbG9hdFBvaW50KGxv
Y2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgs
IGlzUHJpbnRpbmcpOworICAgICAgICBpZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0
aW9uU3R5bGVEb3VibGUpCisgICAgICAgICAgICBib3VuZGluZ0JveC51bml0ZShjb250ZXh0LmNv
bXB1dGVMaW5lQm91bmRzRm9yVGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxP
cmlnaW4ueSgpICsgZG91YmxlT2Zmc2V0KSwgd2lkdGgsIGlzUHJpbnRpbmcpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGJvdW5kaW5nQm94OworfQorCitzdGF0aWMgRmxvYXRSZWN0IGJvdW5kaW5nQm94
Rm9yQWxsQWN0aXZlRGVjb3JhdGlvbnMoSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBUZXh0RGVjb3JhdGlvbiBkZWNvcmF0aW9uLCBmbG9hdCB0
ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgZmxvYXQgd2lkdGgsIGZsb2F0IGRvdWJsZU9mZnNldCwg
VGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0IEZsb2F0UG9pbnQgbG9j
YWxPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGJvb2wgaXNQcmludGluZywg
aW50IGJhc2VsaW5lKQoreworICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKKyAgICBpZiAoZGVj
b3JhdGlvbiAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB7CisgICAgICAgIFRleHRVbmRlcmxp
bmVQb3NpdGlvbiB1bmRlcmxpbmVQb3NpdGlvbiA9IGxpbmVTdHlsZS50ZXh0VW5kZXJsaW5lUG9z
aXRpb24oKTsKKyAgICAgICAgY29uc3QgaW50IHVuZGVybGluZU9mZnNldCA9IGNvbXB1dGVVbmRl
cmxpbmVPZmZzZXQodW5kZXJsaW5lUG9zaXRpb24sIGxpbmVTdHlsZS5mb250TWV0cmljcygpLCAm
aW5saW5lVGV4dEJveCwgdGV4dERlY29yYXRpb25UaGlja25lc3MpOworICAgICAgICAKKyAgICAg
ICAgYm91bmRpbmdCb3gudW5pdGUoYm91bmRpbmdCb3hGb3JTaW5nbGVEZWNvcmF0aW9uKGNvbnRl
eHQsIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLCB3aWR0aCwgbG9jYWxPcmlnaW4sIGRlY29yYXRp
b25TdHlsZSwgaXNQcmludGluZywgdW5kZXJsaW5lT2Zmc2V0ICsgZG91YmxlT2Zmc2V0LCB1bmRl
cmxpbmVPZmZzZXQsIGJhc2VsaW5lICsgMSkpOworICAgIH0KKyAgICBpZiAoZGVjb3JhdGlvbiAm
IFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5k
aW5nQm94Rm9yU2luZ2xlRGVjb3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVz
cywgd2lkdGgsIGxvY2FsT3JpZ2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIC1kb3Vi
bGVPZmZzZXQsIDAsIC1kb3VibGVPZmZzZXQpKTsKKyAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHRE
ZWNvcmF0aW9uTGluZVRocm91Z2gpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5kaW5n
Qm94Rm9yU2luZ2xlRGVjb3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywg
d2lkdGgsIGxvY2FsT3JpZ2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIDIgKiBiYXNl
bGluZSAvIDMsIDIgKiBiYXNlbGluZSAvIDMsIGRvdWJsZU9mZnNldCArIDIgKiBiYXNlbGluZSAv
IDMpKTsKKyAgICByZXR1cm4gYm91bmRpbmdCb3g7Cit9CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RF
Q09SQVRJT04KIAotdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0
aW9uIGRlY28sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFk
b3dEYXRhKiBzaGFkb3cpCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERl
Y29yYXRpb24gZGVjb3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUs
IGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgVGV4dFBhaW50ZXImIHRleHRQYWludGVyKQogewor
I2lmICFFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgVU5VU0VEX1BBUkFNKHRleHRQ
YWludGVyKTsKKyNlbmRpZgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW1wcm92ZSB0aGlzIHJ1
bGUgYW5kIG5vdCBhbHdheXMganVzdCBhc3N1bWUgMS4KICAgICBjb25zdCBmbG9hdCB0ZXh0RGVj
b3JhdGlvblRoaWNrbmVzcyA9IDEuZjsKIApAQCAtOTMxLDE1ICs5OTEsMTUgQEAgdm9pZCBJbmxp
bmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGbG9hdFBvaW50JgogICAgIAogICAgIC8vIEdldCB0aGUgdGV4dCBkZWNvcmF0aW9uIGNvbG9y
cy4KICAgICBDb2xvciB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaDsKLSAgICByZW5k
ZXJlcigpLmdldFRleHREZWNvcmF0aW9uQ29sb3JzKGRlY28sIHVuZGVybGluZSwgb3ZlcmxpbmUs
IGxpbmV0aHJvdWdoLCB0cnVlKTsKKyAgICByZW5kZXJlcigpLmdldFRleHREZWNvcmF0aW9uQ29s
b3JzKGRlY29yYXRpb24sIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0cnVlKTsK
ICAgICBpZiAoaXNGaXJzdExpbmUoKSkKLSAgICAgICAgcmVuZGVyZXIoKS5nZXRUZXh0RGVjb3Jh
dGlvbkNvbG9ycyhkZWNvLCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSwg
dHJ1ZSk7CisgICAgICAgIHJlbmRlcmVyKCkuZ2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjb3Jh
dGlvbiwgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91Z2gsIHRydWUsIHRydWUpOwogICAg
IAogICAgIC8vIFVzZSBhIHNwZWNpYWwgZnVuY3Rpb24gZm9yIHVuZGVybGluZXMgdG8gZ2V0IHRo
ZSBwb3NpdGlvbmluZyBleGFjdGx5IHJpZ2h0LgogICAgIGJvb2wgaXNQcmludGluZyA9IHJlbmRl
cmVyKCkuZG9jdW1lbnQoKS5wcmludGluZygpOwogICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNr
bmVzcyh0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyk7CiAKLSAgICBib29sIGxpbmVzQXJlT3BhcXVl
ID0gIWlzUHJpbnRpbmcgJiYgKCEoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB8fCB1
bmRlcmxpbmUuYWxwaGEoKSA9PSAyNTUpICYmICghKGRlY28gJiBUZXh0RGVjb3JhdGlvbk92ZXJs
aW5lKSB8fCBvdmVybGluZS5hbHBoYSgpID09IDI1NSkgJiYgKCEoZGVjbyAmIFRleHREZWNvcmF0
aW9uTGluZVRocm91Z2gpIHx8IGxpbmV0aHJvdWdoLmFscGhhKCkgPT0gMjU1KTsKKyAgICBib29s
IGxpbmVzQXJlT3BhcXVlID0gIWlzUHJpbnRpbmcgJiYgKCEoZGVjb3JhdGlvbiAmIFRleHREZWNv
cmF0aW9uVW5kZXJsaW5lKSB8fCB1bmRlcmxpbmUuYWxwaGEoKSA9PSAyNTUpICYmICghKGRlY29y
YXRpb24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB8fCBvdmVybGluZS5hbHBoYSgpID09IDI1
NSkgJiYgKCEoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHx8IGxpbmV0
aHJvdWdoLmFscGhhKCkgPT0gMjU1KTsKIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5
bGUgPSB0aGlzLT5saW5lU3R5bGUoKTsKICAgICBpbnQgYmFzZWxpbmUgPSBsaW5lU3R5bGUuZm9u
dE1ldHJpY3MoKS5hc2NlbnQoKTsKQEAgLTk4NCwxMCArMTA0NCwzOCBAQCB2b2lkIElubGluZVRl
eHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZs
b2F0UG9pbnQmCiAKICNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgIC8v
IE9mZnNldCBiZXR3ZWVuIGxpbmVzIC0gYWx3YXlzIG5vbi16ZXJvLCBzbyBsaW5lcyBuZXZlciBj
cm9zcyBlYWNoIG90aGVyLgotICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQgPSB0ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcyArIDEuZjsKKyAgICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERl
Y29yYXRpb25UaGlja25lc3MgKyAxOworICAgICAgICAKKyAgICAgICAgYm9vbCBjbGlwRGVjb3Jh
dGlvblRvTWFzayA9IGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKSA9PSBUZXh0RGVjb3Jh
dGlvblNraXBJbms7CisgICAgICAgIAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoKmNvbnRleHQsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjbGlw
RGVjb3JhdGlvblRvTWFzaykgeworICAgICAgICAgICAgY29uc3QgZmxvYXQgc2tpcElua0dhcFdp
ZHRoID0gMTsKKworICAgICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7CisKKyAgICAgICAgICAg
IEZsb2F0UmVjdCB1bmRlcmxpbmVSZWN0ID0gYm91bmRpbmdCb3hGb3JBbGxBY3RpdmVEZWNvcmF0
aW9ucygqdGhpcywgKmNvbnRleHQsIGRlY29yYXRpb24sIHRleHREZWNvcmF0aW9uVGhpY2tuZXNz
LCB3aWR0aCwgZG91YmxlT2Zmc2V0LCBkZWNvcmF0aW9uU3R5bGUsIGxvY2FsT3JpZ2luLCBsaW5l
U3R5bGUsIGlzUHJpbnRpbmcsIGJhc2VsaW5lKTsKKyAgICAgICAgICAgIEludFJlY3QgZW5jbG9z
aW5nRGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QodW5kZXJsaW5lUmVjdCk7CisgICAgICAg
ICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gY29udGV4dC0+Y3JlYXRlQ29t
cGF0aWJsZUJ1ZmZlcihlbmNsb3NpbmdEZXZpY2VSZWN0LnNpemUoKSk7CisKKyAgICAgICAgICAg
IGlmIChpbWFnZUJ1ZmZlci5nZXQoKSkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4
dCogbWFza0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgICAgICAgICAgICAg
IG1hc2tDb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNl
UkdCKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC0+c2V0TGluZUpvaW4oUm91bmRKb2lu
KTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC0+dHJhbnNsYXRlKEZsb2F0UG9pbnQoKSAt
IGVuY2xvc2luZ0RldmljZVJlY3QubG9jYXRpb24oKSk7CisKKyAgICAgICAgICAgICAgICBtYXNr
Q29udGV4dC0+ZmlsbFJlY3QoZW5jbG9zaW5nRGV2aWNlUmVjdCk7CisgICAgICAgICAgICAgICAg
bWFza0NvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDbGVhcik7CisgICAg
CisgICAgICAgICAgICAgICAgdGV4dFBhaW50ZXIucGFpbnRUZXh0SW5Db250ZXh0KCptYXNrQ29u
dGV4dCwgc2tpcElua0dhcFdpZHRoKTsKKworICAgICAgICAgICAgICAgIGNvbnRleHQtPmNsaXBU
b0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmdldCgpLCBlbmNsb3NpbmdEZXZpY2VSZWN0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAg
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9r
ZVN0eWxlKGRlY29yYXRpb25TdHlsZSkpOwotICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0
aW9uVW5kZXJsaW5lKSB7CisgICAgICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25V
bmRlcmxpbmUpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHVuZGVybGlu
ZSwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAg
ICAgICAgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uID0gbGluZVN0eWxl
LnRleHRVbmRlcmxpbmVQb3NpdGlvbigpOwpAQCAtMTAxMSw3ICsxMDk5LDcgQEAgdm9pZCBJbmxp
bmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGbG9hdFBvaW50JgogICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0
UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyBiYXNlbGluZSArIDEpLCB3
aWR0aCwgaXNQcmludGluZyk7CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAg
ICAgfQotICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpIHsKKyAgICAg
ICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB7CiAgICAgICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvdmVybGluZSwgY29sb3JTcGFjZSk7CiAjaWYgRU5B
QkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAgICAgICAgc3dpdGNoIChkZWNvcmF0aW9u
U3R5bGUpIHsKQEAgLTEwMzAsNyArMTExOCwxMSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50
RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAg
ICAgICAgICAgICB9CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgfQot
ICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHsKKyNpZiBFTkFC
TEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgICAgIGlmIChjbGlwRGVjb3JhdGlvblRvTWFz
aykKKyAgICAgICAgICAgIHN0YXRlU2F2ZXIucmVzdG9yZSgpOworI2VuZGlmCisgICAgICAgIGlm
IChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgewogICAgICAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobGluZXRocm91Z2gsIGNvbG9yU3BhY2UpOwogI2lmIEVO
QUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKICAgICAgICAgICAgIHN3aXRjaCAoZGVjb3JhdGlv
blN0eWxlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCAy
NmRkYjIxMmU5YjBkMGUxM2Y1Y2UzMzQzMTkyYzI3ZDM5YjZlMjhlLi45ZWMzYWUwMjc0YjBmODlk
N2UyNzk5MDNmZTFiZjJiZDYxNmIxMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBjbGFzcyBEb2N1bWVudE1hcmtlcjsKK2NsYXNzIFRl
eHRQYWludGVyOwogCiBjb25zdCB1bnNpZ25lZCBzaG9ydCBjTm9UcnVuY2F0aW9uID0gVVNIUlRf
TUFYOwogY29uc3QgdW5zaWduZWQgc2hvcnQgY0Z1bGxUcnVuY2F0aW9uID0gVVNIUlRfTUFYIC0g
MTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50
JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25zdCBT
aGFkb3dEYXRhKik7CisgICAgdm9pZCBwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBUZXh0RGVjb3JhdGlvbiwgVGV4dERlY29yYXRp
b25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSosIFRleHRQYWludGVyJik7CiAgICAgdm9pZCBwYWlu
dFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4s
IGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYsIENvbG9yIHRleHRDb2xvcik7CiAgICAg
dm9pZCBwYWludERvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9p
bnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0
IEZvbnQmLCBib29sIGdyYW1tYXIpOwogICAgIHZvaWQgcGFpbnRUZXh0TWF0Y2hNYXJrZXIoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBEb2N1bWVudE1hcmtl
ciosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMmQzMTU1MDQ4NzU2NWYzNTRk
ZWFmMjE5OTA1NTFhNGNkMThhZmQ5Ny4uOWRjZjM2YzA4NmFlZGU4MzhlYmFlY2Y1MmNlNzcyMDU1
YmJkZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC03OTIsNiArNzkyLDcgQEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWly
ZXNSZXBhaW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUoY29uc3QgUmVuZGVyU3R5bGUKICNpZiBF
TkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX3RleHREZWNvcmF0aW9uU3R5bGUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3RleHREZWNvcmF0aW9uU3R5bGUKICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fdGV4dERlY29yYXRpb25Db2xvciAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
dGV4dERlY29yYXRpb25Db2xvcgorICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0
RGVjb3JhdGlvblNraXAgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0
aW9uU2tpcAogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgICAgIHx8IHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
dGV4dEZpbGxDb2xvcgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNv
bG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MTdkYjBhMmIzN2RkYzdlODc4ZjY0ODEzYmE2NzM3ZjY3Y2ZhOTQ1MS4uZjVjYjNjMTgwYjJlODZk
ZTAzZGVhY2NkNjgxZmFiMWVkNWJkOTRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTEx
LTAxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIHRlc3Qg
d2hpY2ggZHJhd3MgYSB2ZXJ5IGxhcmdlICJwIiB3aXRoIHRleHQtZGVjb3JhdGlvbi1za2lwOmlu
ay4gVGhlCisgICAgICAgIHZpZXdwb3J0IGlzIHJlc3RyaWN0ZWQgdG8gYmUganVzdCBodWdnaW5n
IHRoZSBwbGFjZSB3aGVyZSBhbiB1bmRlcmxpbmUgd291bGQKKyAgICAgICAgaW50ZXJzZWN0IHRo
ZSBkZXNjZW5kZXIgb2YgdGhlICJwIi4gVGhpcyBzaG91bGQgbG9vayB0aGUgc2FtZSBhcyBpZiB0
aGVyZSB3YXMKKyAgICAgICAgbm8gdW5kZXJsaW5lIGF0IGFsbCAoYmVjYXVzZSBvZiB0aGUgc2tp
cHBpbmcgdW5kZXJsaW5lKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
ZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsu
aHRtbDogQWRkZWQuCisKIDIwMTMtMTAtMzEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT046IENyYXNoZXMgaW4gLVtVSURlbGVnYXRlIHdlYlZpZXc6
ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6XS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24v
dGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmM4NTJlMzNmOTc0OGNiOWJjMzRkMDc4ZWFkMTYwOTA2YTkxNGZjMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgPHN0eWxlPgorICAgICNiaWdza2V3IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgIGxlZnQ6IC0xNTZweDsKKyAgICAgIHRvcDogLTQwMHB4OworICAgICAgZm9udC1z
dHlsZTogaXRhbGljOworICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6
IGhlbHZldGljYTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAgICAt
d2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0
YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRo
ZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8g
bXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6
IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3Bh
Y2UgcHJlY2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJl
IHdvbid0IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5l
CisgIHdoZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVz
ZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhl
IGNoYXJhY3Rlci4gSWYgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBpc24ndCB3b3JraW5nIGF0
IGFsbCwgdGhlbiB0aGUKKyAgdW5kZXJsaW5lIHdpbGwgc2ltcGx5IGJlIGRyYXduIGxpa2Ugbm9y
bWFsLCBhbmQgd29uJ3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGNhc2UgKHdoZXJlIHRoZXJlCisgIGlz
IG5vIHVuZGVybGluZSkKKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJm
bG93OiBoaWRkZW47IHdpZHRoOiA4MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9
ImJpZ3NrZXciPmxwbDwvZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9u
L3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0
aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc1MDg3
N2E4NjM3MzVkZDdkMTY3ZTNjOTQyOGVlZjlhMTk4ODY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3Jh
dGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sCkBAIC0wLDAgKzEsMzQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgICNiaWdza2V3
IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6IC0xNTZweDsKKyAgICAg
IHRvcDogLTQwMHB4OworICAgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgICAgZm9udC1zaXpl
OiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6IGhlbHZldGljYTsKKyAgICAgIHRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lOworICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogaW5r
OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAgICAgIC13ZWJraXQtdHJh
bnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgaXRhbGljaXplZCAi
cCIgYXMgdmlld2VkIHRocm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQKKyAgdGhlIGRlc2NlbmRl
ci4gVGhlICJwIiBpcyBpbiAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1cCB0byBtdWNoIGxhcmdl
ci4gVGhpcyB0ZXN0cyB0aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIG1hc2sg
aXMgY2FsY3VsYXRlZCB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNlci1zcGFjZSBwcmVjaXNp
b24uCisgIElmIHdlIGRvbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgdGhlcmUgd29uJ3QgYmUg
YSBuaWNlIGNyaXNwIGVkZ2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRlcmxpbmUKKyAgd2hlcmUg
aXQgZ2V0cyBtYXNrZWQgb2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBiZWNhdXNlIHRoZXJlIHdv
dWxkIGJlIGdhcmJhZ2UgZ2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVhciB0aGUgY2hhcmFjdGVy
LiBJZiB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIGlzbid0IHdvcmtpbmcgYXQgYWxsLCB0aGVu
IHRoZQorICB1bmRlcmxpbmUgd2lsbCBzaW1wbHkgYmUgZHJhd24gbGlrZSBub3JtYWwsIGFuZCB3
b24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgY2FzZSAod2hlcmUgdGhlcmUKKyAgaXMgbm8gdW5kZXJs
aW5lKQorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRl
bjsgd2lkdGg6IDgxcHg7IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0iYmlnc2tldyI+
bHBsPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215763</attachid>
            <date>2013-11-01 14:37:53 -0700</date>
            <delta_ts>2013-11-01 15:48:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131101143752.patch</filename>
            <type>text/plain</type>
            <size>22658</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEyYmU5YjIwNTdjNWJi
YjBkYjMyNzljZTAyNTk2NWQzODk1NmRmZi4uNDdhNDA1MWJhYjc1ZmZlZmU3ZjI0MTRmMTk2ZDAw
YWFkM2Q4MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgMS4gQmVm
b3JlIGRyYXdpbmcgYW55IGRlY29yYXRpb25zLCBmaWd1cmUgb3V0IHRoZSBib3VuZGluZyBib3gg
Zm9yIHRoZSBkZWNvcmF0aW9ucyB0aGF0IHdpbGwgYmUgZHJhd24KKyAgICAgICAgMi4gQ3JlYXRl
IGFuIEltYWdlQnVmZmVyIHdpdGggdGhlc2UgZGltZW5zaW9ucworICAgICAgICAzLiBEcmF3IHRl
eHQgaW50byB0aGlzIEltYWdlQnVmZmVyIHdpdGggYSB0aGlja2VyIHN0cm9rZQorICAgICAgICA0
LiBBcHBseSB0aGUgSW1hZ2VCdWZmZXIgYXMgYSBtYXNrIHRvIHRoZSBjb250ZXh0CisgICAgICAg
IDUuIERyYXcgZGVjb3JhdGlvbnMgbGlrZSBub3JtYWwKKyAgICAgICAgNi4gQ2xlYW4gdXAKKwor
ICAgICAgICBUZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dCk6IERvbid0
IGNhbGwgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzCisgICAgICAgIHdoZW4g
cGFpbnRpbmcgaXMgZGlzYWJsZWQKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6IFBhc3MgdGhlIFRl
eHRQYWludGVyIHRvIHBhaW50RGVjb3JhdGlvbgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVVu
ZGVybGluZU9mZnNldCk6IFNtYWxsIGNsZWFudXAKKyAgICAgICAgKFdlYkNvcmU6OmdldFdhdnlT
dHJva2VDb250cm9sUG9pbnREaXN0YW5jZSk6IFB1bGxpbmcgb3V0IG9mIHN0cm9rZVdhdnlUZXh0
RGVjb3JhdGlvbigpCisgICAgICAgIChXZWJDb3JlOjpnZXRXYXZ5U3Ryb2tlU3RlcCk6IERpdHRv
CisgICAgICAgIChXZWJDb3JlOjpzdHJva2VXYXZ5VGV4dERlY29yYXRpb24pOiBVc2UgdGhlIHBy
ZXZpb3VzIDIgZnVuY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpnZXRTaW5nbGVEZWNvcmF0aW9u
Qm91bmRpbmdCb3gpOiBQdWxsaW5nIG91dCByZXBlYXRlZCBjb2RlIGludG8gYSBmdW5jdGlvbgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvbkJvdW5kaW5nQm94KTogQ29tcHV0ZSB0aGUg
Ym91bmRpbmcgYm94IGZvciBhbiB1bmRlcmxpbmUgd2hpY2gKKyAgICAgICAgaGFzbid0IGJlZW4g
ZHJhd24geWV0CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24pOiBDb25zdHJ1Y3QgYSBtYXNrIGFuZCBhcHBseSBpdCB0byB0aGUgR3JhcGhpY3NDb250ZXh0
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDogcGFpbnREZWNvcmF0aW9uIG5l
ZWRzIHRoZSBUZXh0UGFpbnRlcgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBh
aW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUpOiBSZWRyYXcgdGhlIHVuZGVybGluZSB3aGVuCisg
ICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwIGNoYW5nZXMKKwogMjAxMy0xMS0wMSAgTmljayBE
aWVnbyBZYW1hbmUgIDxuaWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEV4cGxp
Y2l0bHkgaW5pdGlhbGl6ZSBSZWZDb3VudGVkIGJhc2UgY2xhc3MgaW4gTWVkaWFTdHJlYW1UcmFj
aydzIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRiOTM5Yjg1YTRlNjNiMjNj
YWZmZjBmNTJjZGI1YTU1MDA4MjhhOGQuLmE4OGRlN2ZkMTFmOTQ5OWQzZWJmZjQxMWU1NjM0NTNm
NWJkYTU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRp
YyBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChH
cmFwaGljc0NvbnRleHQmIGNvCiAgICAgLy8gU2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTUgZm9yIGRldGFpbHMgb2Ygd2h5IDAuNSBpcyB0aGUgcmlnaHQgbWlu
aW11bSB0aGlja25lc3MgdG8gdXNlLgogICAgIEZsb2F0UmVjdCBpbml0aWFsQm91bmRzKHBvaW50
LCBGbG9hdFNpemUod2lkdGgsIG1heChjb250ZXh0LnN0cm9rZVRoaWNrbmVzcygpLCAwLjVmKSkp
OwogCi0gICAgaWYgKHByaW50aW5nIHx8ICFjb250ZXh0LmdldENUTShHcmFwaGljc0NvbnRleHQ6
OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpLnByZXNlcnZlc0F4aXNBbGlnbm1lbnQoKSkK
KyAgICBpZiAocHJpbnRpbmcgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWNvbnRl
eHQuZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSku
cHJlc2VydmVzQXhpc0FsaWdubWVudCgpKQogICAgICAgICByZXR1cm4gaW5pdGlhbEJvdW5kczsK
IAogICAgIC8vIE9uIHNjcmVlbiwgdXNlIGEgbWluaW11bSB0aGlja25lc3Mgb2YgMS4wIGluIHVz
ZXIgc3BhY2UgKGxhdGVyIHJvdW5kZWQgdG8gYW4gaW50ZWdyYWwgbnVtYmVyIGluIGRldmljZSBz
cGFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
ZmRhMmNhZTgzZmFhZjBkNDhiNzIxODJhNDE5NmYwYjc4ZDU4Y2YzMi4uODI2YTIzZDQ3MzAwZWM1
ZGY4N2NiOTYzN2FkMTRlY2UxMmFhMDc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
aW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTU4MSw3
ICs1ODIsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENs
b2Nrd2lzZSkpOwotICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3cpOworICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0ZXh0RGVj
b3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFkb3csIHRl
eHRQYWludGVyKTsKICAgICAgICAgaWYgKGNvbWJpbmVkVGV4dCkKICAgICAgICAgICAgIGNvbnRl
eHQtPmNvbmNhdENUTShyb3RhdGlvbihib3hSZWN0LCBDb3VudGVyY2xvY2t3aXNlKSk7CiAgICAg
fQpAQCAtNzc5LDkgKzc4MCw3IEBAIHN0YXRpYyBpbnQgY29tcHV0ZVVuZGVybGluZU9mZnNldChj
b25zdCBUZXh0VW5kZXJsaW5lUG9zaXRpb24gdW5kZXJsaW5lUG9zaXRpb24sCiAgICAgY2FzZSBU
ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcjogewogICAgICAgICAvLyBQb3NpdGlvbiB1bmRlcmxp
bmUgcmVsYXRpdmUgdG8gdGhlIHVuZGVyIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50J3MgY29u
dGVudCBib3guCiAgICAgICAgIGNvbnN0IGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRCb3gtPnJv
b3QoKS5tYXhMb2dpY2FsVG9wKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsVG9wKCk7Ci0gICAg
ICAgIGlmIChvZmZzZXQgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gtPmxv
Z2ljYWxIZWlnaHQoKSArIGdhcCArIG9mZnNldDsKLSAgICAgICAgcmV0dXJuIGlubGluZVRleHRC
b3gtPmxvZ2ljYWxIZWlnaHQoKSArIGdhcDsKKyAgICAgICAgcmV0dXJuIGlubGluZVRleHRCb3gt
PmxvZ2ljYWxIZWlnaHQoKSArIGdhcCArIHN0ZDo6bWF4PGZsb2F0PihvZmZzZXQsIDApOwogICAg
IH0KICAgICB9CiAKQEAgLTgwNyw2ICs4MDYsMjEgQEAgc3RhdGljIHZvaWQgYWRqdXN0U3RlcFRv
RGVjb3JhdGlvbkxlbmd0aChmbG9hdCYgc3RlcCwgZmxvYXQmIGNvbnRyb2xQb2ludERpc3RhbmMK
ICAgICBjb250cm9sUG9pbnREaXN0YW5jZSArPSBhZGp1c3RtZW50OwogfQogCitzdGF0aWMgdm9p
ZCBnZXRXYXZ5U3Ryb2tlUGFyYW1ldGVycyhmbG9hdCBzdHJva2VUaGlja25lc3MsIGZsb2F0JiBj
b250cm9sUG9pbnREaXN0YW5jZSwgZmxvYXQmIHN0ZXApCit7CisgICAgLy8gRGlzdGFuY2UgYmV0
d2VlbiBkZWNvcmF0aW9uJ3MgYXhpcyBhbmQgQmV6aWVyIGN1cnZlJ3MgY29udHJvbCBwb2ludHMu
CisgICAgLy8gVGhlIGhlaWdodCBvZiB0aGUgY3VydmUgaXMgYmFzZWQgb24gdGhpcyBkaXN0YW5j
ZS4gVXNlIGEgbWluaW11bSBvZiA2IHBpeGVscyBkaXN0YW5jZSBzaW5jZQorICAgIC8vIHRoZSBh
Y3R1YWwgY3VydmUgcGFzc2VzIGFwcHJveGltYXRlbHkgYXQgaGFsZiBvZiB0aGF0IGRpc3RhbmNl
LCB0aGF0IGlzIDMgcGl4ZWxzLgorICAgIC8vIFRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgY3Vy
dmUgaXMgYWxzbyBhcHByb3hpbWF0ZWx5IDMgcGl4ZWxzLiBJbmNyZWFzZXMgdGhlIGN1cnZlJ3Mg
aGVpZ2h0CisgICAgLy8gYXMgc3Ryb2NrVGhpY2tuZXNzIGluY3JlYXNlcyB0byBtYWtlIHRoZSBj
dXJ2ZSBsb29rcyBiZXR0ZXIuCisgICAgY29udHJvbFBvaW50RGlzdGFuY2UgPSAzICogbWF4PGZs
b2F0PigyLCBzdHJva2VUaGlja25lc3MpOworCisgICAgLy8gSW5jcmVtZW50IHVzZWQgdG8gZm9y
bSB0aGUgZGlhbW9uZCBzaGFwZSBiZXR3ZWVuIHN0YXJ0IHBvaW50IChwMSksIGNvbnRyb2wKKyAg
ICAvLyBwb2ludHMgYW5kIGVuZCBwb2ludCAocDIpIGFsb25nIHRoZSBheGlzIG9mIHRoZSBkZWNv
cmF0aW9uLiBNYWtlcyB0aGUKKyAgICAvLyBjdXJ2ZSB3aWRlciBhcyBzdHJvY2tUaGlja25lc3Mg
aW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KKyAgICBzdGVwID0gMiAq
IG1heDxmbG9hdD4oMiwgc3Ryb2tlVGhpY2tuZXNzKTsKK30KKwogLyoKICAqIERyYXcgb25lIGN1
YmljIEJlemllciBjdXJ2ZSBhbmQgcmVwZWF0IHRoZSBzYW1lIHBhdHRlcm4gbG9uZyB0aGUgdGhl
IGRlY29yYXRpb24ncyBheGlzLgogICogVGhlIHN0YXJ0IHBvaW50IChwMSksIGNvbnRyb2xQb2lu
dDEsIGNvbnRyb2xQb2ludDIgYW5kIGVuZCBwb2ludCAocDIpIG9mIHRoZSBCZXppZXIgY3VydmUK
QEAgLTg0MSwxNyArODU1LDggQEAgc3RhdGljIHZvaWQgc3Ryb2tlV2F2eVRleHREZWNvcmF0aW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgRmxvYXRQb2ludCYgcDEsIEYKICAgICBQYXRoIHBh
dGg7CiAgICAgcGF0aC5tb3ZlVG8ocDEpOwogCi0gICAgLy8gRGlzdGFuY2UgYmV0d2VlbiBkZWNv
cmF0aW9uJ3MgYXhpcyBhbmQgQmV6aWVyIGN1cnZlJ3MgY29udHJvbCBwb2ludHMuCi0gICAgLy8g
VGhlIGhlaWdodCBvZiB0aGUgY3VydmUgaXMgYmFzZWQgb24gdGhpcyBkaXN0YW5jZS4gVXNlIGEg
bWluaW11bSBvZiA2IHBpeGVscyBkaXN0YW5jZSBzaW5jZQotICAgIC8vIHRoZSBhY3R1YWwgY3Vy
dmUgcGFzc2VzIGFwcHJveGltYXRlbHkgYXQgaGFsZiBvZiB0aGF0IGRpc3RhbmNlLCB0aGF0IGlz
IDMgcGl4ZWxzLgotICAgIC8vIFRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgY3VydmUgaXMgYWxz
byBhcHByb3hpbWF0ZWx5IDMgcGl4ZWxzLiBJbmNyZWFzZXMgdGhlIGN1cnZlJ3MgaGVpZ2h0Ci0g
ICAgLy8gYXMgc3Ryb2NrVGhpY2tuZXNzIGluY3JlYXNlcyB0byBtYWtlIHRoZSBjdXJ2ZSBsb29r
cyBiZXR0ZXIuCi0gICAgZmxvYXQgY29udHJvbFBvaW50RGlzdGFuY2UgPSAzICogbWF4PGZsb2F0
PigyLCBzdHJva2VUaGlja25lc3MpOwotCi0gICAgLy8gSW5jcmVtZW50IHVzZWQgdG8gZm9ybSB0
aGUgZGlhbW9uZCBzaGFwZSBiZXR3ZWVuIHN0YXJ0IHBvaW50IChwMSksIGNvbnRyb2wKLSAgICAv
LyBwb2ludHMgYW5kIGVuZCBwb2ludCAocDIpIGFsb25nIHRoZSBheGlzIG9mIHRoZSBkZWNvcmF0
aW9uLiBNYWtlcyB0aGUKLSAgICAvLyBjdXJ2ZSB3aWRlciBhcyBzdHJvY2tUaGlja25lc3MgaW5j
cmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KLSAgICBmbG9hdCBzdGVwID0g
MiAqIG1heDxmbG9hdD4oMiwgc3Ryb2tlVGhpY2tuZXNzKTsKKyAgICBmbG9hdCBjb250cm9sUG9p
bnREaXN0YW5jZSwgc3RlcDsKKyAgICBnZXRXYXZ5U3Ryb2tlUGFyYW1ldGVycyhzdHJva2VUaGlj
a25lc3MsIGNvbnRyb2xQb2ludERpc3RhbmNlLCBzdGVwKTsKIAogICAgIGJvb2wgaXNWZXJ0aWNh
bExpbmUgPSAocDEueCgpID09IHAyLngoKSk7CiAKQEAgLTkxMCwxMCArOTE1LDY1IEBAIHN0YXRp
YyB2b2lkIHN0cm9rZVdhdnlUZXh0RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IEZsb2F0UG9pbnQmIHAxLCBGCiAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHRydWUp
OwogICAgIGNvbnRleHQtPnN0cm9rZVBhdGgocGF0aCk7CiB9CisKKy8qCisgKiBCZWNhdXNlIGZp
bmRpbmcgdGhlIGJvdW5kaW5nIGJveCBvZiBhbiB1bmRlcmxpbmUgaXMgc3RydWN0dXJhbGx5IHNp
bWlsYXIgdG8gZmluZGluZworICogdGhlIGJvdW5kaW5nIGJveCBvZiBhIHN0cm9rZXRocm91Z2gs
IHdlIGNhbiBwdWxsIG91dCB0aGUgY29tcHV0YXRpb24gYW5kIHBhcmFtZXRlcml6ZQorICogYnkg
dGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNvcmF0aW9uICh5T2Zmc2V0LCB1bmRlcmxpbmVPZmZzZXQs
IGFuZCBkb3VibGVPZmZzZXQpLgorICovCitzdGF0aWMgRmxvYXRSZWN0IGJvdW5kaW5nQm94Rm9y
U2luZ2xlRGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHRleHREZWNv
cmF0aW9uVGhpY2tuZXNzLAorICAgIGZsb2F0IHdpZHRoLCBjb25zdCBGbG9hdFBvaW50IGxvY2Fs
T3JpZ2luLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHlsZSwKKyAgICBib29sIGlz
UHJpbnRpbmcsIGZsb2F0IHlPZmZzZXQsIGZsb2F0IHVuZGVybGluZU9mZnNldCwgZmxvYXQgZG91
YmxlT2Zmc2V0KQoreworICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKKworICAgIHN3aXRjaCAo
ZGVjb3JhdGlvblN0eWxlKSB7CisgICAgY2FzZSBUZXh0RGVjb3JhdGlvblN0eWxlV2F2eTogewor
ICAgICAgICBGbG9hdFBvaW50IHN0YXJ0KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgp
ICsgeU9mZnNldCk7CisgICAgICAgIEZsb2F0UG9pbnQgZW5kID0gc3RhcnQgKyBGbG9hdFNpemUo
d2lkdGgsIDApOworICAgICAgICBjb250ZXh0LmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhz
dGFydCwgZW5kLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgY29udGV4dC5zdHJva2VTdHlsZSgp
KTsKKworICAgICAgICBmbG9hdCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcDsKKyAgICAgICAg
Z2V0V2F2eVN0cm9rZVBhcmFtZXRlcnModGV4dERlY29yYXRpb25UaGlja25lc3MsIGNvbnRyb2xQ
b2ludERpc3RhbmNlLCBzdGVwKTsKKworICAgICAgICBhZGp1c3RTdGVwVG9EZWNvcmF0aW9uTGVu
Z3RoKHN0ZXAsIGNvbnRyb2xQb2ludERpc3RhbmNlLCB3aWR0aCk7CisKKyAgICAgICAgY29udHJv
bFBvaW50RGlzdGFuY2UgKz0gdGV4dERlY29yYXRpb25UaGlja25lc3M7CisgICAgICAgIEZsb2F0
UG9pbnQgYm91bmRpbmdCb3hPcmlnaW4gPSBzdGFydCAtIEZsb2F0U2l6ZSgwLCBjb250cm9sUG9p
bnREaXN0YW5jZSk7CisgICAgICAgIEZsb2F0U2l6ZSBib3VuZGluZ0JveFNpemUgPSBGbG9hdFNp
emUod2lkdGgsIDIgKiBjb250cm9sUG9pbnREaXN0YW5jZSk7CisgICAgICAgIGJvdW5kaW5nQm94
ID0gRmxvYXRSZWN0KGJvdW5kaW5nQm94T3JpZ2luLCBib3VuZGluZ0JveFNpemUpOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYm91bmRpbmdCb3ggPSBjb250
ZXh0LmNvbXB1dGVMaW5lQm91bmRzRm9yVGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwg
bG9jYWxPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGlzUHJpbnRpbmcpOwor
ICAgICAgICBpZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0aW9uU3R5bGVEb3VibGUp
CisgICAgICAgICAgICBib3VuZGluZ0JveC51bml0ZShjb250ZXh0LmNvbXB1dGVMaW5lQm91bmRz
Rm9yVGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgZG91
YmxlT2Zmc2V0KSwgd2lkdGgsIGlzUHJpbnRpbmcpKTsKKyAgICB9CisgICAgcmV0dXJuIGJvdW5k
aW5nQm94OworfQorCitzdGF0aWMgRmxvYXRSZWN0IGJvdW5kaW5nQm94Rm9yQWxsQWN0aXZlRGVj
b3JhdGlvbnMoSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBUZXh0RGVjb3JhdGlvbiBkZWNvcmF0aW9uLCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRo
aWNrbmVzcywgZmxvYXQgd2lkdGgsIGZsb2F0IGRvdWJsZU9mZnNldCwgVGV4dERlY29yYXRpb25T
dHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0IEZsb2F0UG9pbnQgbG9jYWxPcmlnaW4sIGNvbnN0
IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGJvb2wgaXNQcmludGluZywgaW50IGJhc2VsaW5lKQor
eworICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKKyAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHRE
ZWNvcmF0aW9uVW5kZXJsaW5lKSB7CisgICAgICAgIFRleHRVbmRlcmxpbmVQb3NpdGlvbiB1bmRl
cmxpbmVQb3NpdGlvbiA9IGxpbmVTdHlsZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKTsKKyAgICAg
ICAgY29uc3QgaW50IHVuZGVybGluZU9mZnNldCA9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQodW5k
ZXJsaW5lUG9zaXRpb24sIGxpbmVTdHlsZS5mb250TWV0cmljcygpLCAmaW5saW5lVGV4dEJveCwg
dGV4dERlY29yYXRpb25UaGlja25lc3MpOworICAgICAgICAKKyAgICAgICAgYm91bmRpbmdCb3gu
dW5pdGUoYm91bmRpbmdCb3hGb3JTaW5nbGVEZWNvcmF0aW9uKGNvbnRleHQsIHRleHREZWNvcmF0
aW9uVGhpY2tuZXNzLCB3aWR0aCwgbG9jYWxPcmlnaW4sIGRlY29yYXRpb25TdHlsZSwgaXNQcmlu
dGluZywgdW5kZXJsaW5lT2Zmc2V0ICsgZG91YmxlT2Zmc2V0LCB1bmRlcmxpbmVPZmZzZXQsIGJh
c2VsaW5lICsgMSkpOworICAgIH0KKyAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9u
T3ZlcmxpbmUpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5kaW5nQm94Rm9yU2luZ2xl
RGVjb3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGxvY2Fs
T3JpZ2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIC1kb3VibGVPZmZzZXQsIDAsIC1k
b3VibGVPZmZzZXQpKTsKKyAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uTGluZVRo
cm91Z2gpCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5kaW5nQm94Rm9yU2luZ2xlRGVj
b3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGxvY2FsT3Jp
Z2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIDIgKiBiYXNlbGluZSAvIDMsIDIgKiBi
YXNlbGluZSAvIDMsIGRvdWJsZU9mZnNldCArIDIgKiBiYXNlbGluZSAvIDMpKTsKKyAgICByZXR1
cm4gYm91bmRpbmdCb3g7Cit9CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KIAotdm9p
ZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRleHREZWNvcmF0aW9uIGRlY28sIFRleHRE
ZWNvcmF0aW9uU3R5bGUgZGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cp
Cit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERlY29yYXRpb24gZGVjb3Jh
dGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUsIGNvbnN0IFNoYWRvd0Rh
dGEqIHNoYWRvdywgVGV4dFBhaW50ZXImIHRleHRQYWludGVyKQogeworI2lmICFFTkFCTEUoQ1NT
M19URVhUX0RFQ09SQVRJT04pCisgICAgVU5VU0VEX1BBUkFNKHRleHRQYWludGVyKTsKKyNlbmRp
ZgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW1wcm92ZSB0aGlzIHJ1bGUgYW5kIG5vdCBhbHdh
eXMganVzdCBhc3N1bWUgMS4KICAgICBjb25zdCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVz
cyA9IDEuZjsKIApAQCAtOTMxLDE1ICs5OTEsMTUgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWlu
dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50Jgog
ICAgIAogICAgIC8vIEdldCB0aGUgdGV4dCBkZWNvcmF0aW9uIGNvbG9ycy4KICAgICBDb2xvciB1
bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaDsKLSAgICByZW5kZXJlcigpLmdldFRleHRE
ZWNvcmF0aW9uQ29sb3JzKGRlY28sIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0
cnVlKTsKKyAgICByZW5kZXJlcigpLmdldFRleHREZWNvcmF0aW9uQ29sb3JzKGRlY29yYXRpb24s
IHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0cnVlKTsKICAgICBpZiAoaXNGaXJz
dExpbmUoKSkKLSAgICAgICAgcmVuZGVyZXIoKS5nZXRUZXh0RGVjb3JhdGlvbkNvbG9ycyhkZWNv
LCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAg
IHJlbmRlcmVyKCkuZ2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjb3JhdGlvbiwgdW5kZXJsaW5l
LCBvdmVybGluZSwgbGluZXRocm91Z2gsIHRydWUsIHRydWUpOwogICAgIAogICAgIC8vIFVzZSBh
IHNwZWNpYWwgZnVuY3Rpb24gZm9yIHVuZGVybGluZXMgdG8gZ2V0IHRoZSBwb3NpdGlvbmluZyBl
eGFjdGx5IHJpZ2h0LgogICAgIGJvb2wgaXNQcmludGluZyA9IHJlbmRlcmVyKCkuZG9jdW1lbnQo
KS5wcmludGluZygpOwogICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyh0ZXh0RGVjb3Jh
dGlvblRoaWNrbmVzcyk7CiAKLSAgICBib29sIGxpbmVzQXJlT3BhcXVlID0gIWlzUHJpbnRpbmcg
JiYgKCEoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB8fCB1bmRlcmxpbmUuYWxwaGEo
KSA9PSAyNTUpICYmICghKGRlY28gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB8fCBvdmVybGlu
ZS5hbHBoYSgpID09IDI1NSkgJiYgKCEoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gp
IHx8IGxpbmV0aHJvdWdoLmFscGhhKCkgPT0gMjU1KTsKKyAgICBib29sIGxpbmVzQXJlT3BhcXVl
ID0gIWlzUHJpbnRpbmcgJiYgKCEoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5l
KSB8fCB1bmRlcmxpbmUuYWxwaGEoKSA9PSAyNTUpICYmICghKGRlY29yYXRpb24gJiBUZXh0RGVj
b3JhdGlvbk92ZXJsaW5lKSB8fCBvdmVybGluZS5hbHBoYSgpID09IDI1NSkgJiYgKCEoZGVjb3Jh
dGlvbiAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHx8IGxpbmV0aHJvdWdoLmFscGhhKCkg
PT0gMjU1KTsKIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSB0aGlzLT5saW5l
U3R5bGUoKTsKICAgICBpbnQgYmFzZWxpbmUgPSBsaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2Nl
bnQoKTsKQEAgLTk4NCwxMCArMTA0NCwzOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAKICNp
ZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgIC8vIE9mZnNldCBiZXR3ZWVu
IGxpbmVzIC0gYWx3YXlzIG5vbi16ZXJvLCBzbyBsaW5lcyBuZXZlciBjcm9zcyBlYWNoIG90aGVy
LgotICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQgPSB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyAr
IDEuZjsKKyAgICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERlY29yYXRpb25UaGlja25l
c3MgKyAxOworICAgICAgICAKKyAgICAgICAgYm9vbCBjbGlwRGVjb3JhdGlvblRvTWFzayA9IGxp
bmVTdHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKSA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7Cisg
ICAgICAgIAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNv
bnRleHQsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjbGlwRGVjb3JhdGlvblRvTWFz
aykgeworICAgICAgICAgICAgY29uc3QgZmxvYXQgc2tpcElua0dhcFdpZHRoID0gMTsKKworICAg
ICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7CisKKyAgICAgICAgICAgIEZsb2F0UmVjdCB1bmRl
cmxpbmVSZWN0ID0gYm91bmRpbmdCb3hGb3JBbGxBY3RpdmVEZWNvcmF0aW9ucygqdGhpcywgKmNv
bnRleHQsIGRlY29yYXRpb24sIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLCB3aWR0aCwgZG91Ymxl
T2Zmc2V0LCBkZWNvcmF0aW9uU3R5bGUsIGxvY2FsT3JpZ2luLCBsaW5lU3R5bGUsIGlzUHJpbnRp
bmcsIGJhc2VsaW5lKTsKKyAgICAgICAgICAgIEludFJlY3QgZW5jbG9zaW5nRGV2aWNlUmVjdCA9
IGVuY2xvc2luZ0ludFJlY3QodW5kZXJsaW5lUmVjdCk7CisgICAgICAgICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IGltYWdlQnVmZmVyID0gY29udGV4dC0+Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihl
bmNsb3NpbmdEZXZpY2VSZWN0LnNpemUoKSk7CisKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZl
ci5nZXQoKSkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQg
PSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5z
ZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAg
ICAgICAgICBtYXNrQ29udGV4dC0+c2V0TGluZUpvaW4oUm91bmRKb2luKTsKKyAgICAgICAgICAg
ICAgICBtYXNrQ29udGV4dC0+dHJhbnNsYXRlKEZsb2F0UG9pbnQoKSAtIGVuY2xvc2luZ0Rldmlj
ZVJlY3QubG9jYXRpb24oKSk7CisKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC0+ZmlsbFJl
Y3QoZW5jbG9zaW5nRGV2aWNlUmVjdCk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQtPnNl
dENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDbGVhcik7CisgICAgCisgICAgICAgICAgICAg
ICAgdGV4dFBhaW50ZXIucGFpbnRUZXh0SW5Db250ZXh0KCptYXNrQ29udGV4dCwgc2tpcElua0dh
cFdpZHRoKTsKKworICAgICAgICAgICAgICAgIGNvbnRleHQtPmNsaXBUb0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLmdldCgpLCBlbmNsb3NpbmdEZXZpY2VSZWN0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgICAgIGNvbnRleHQt
PnNldFN0cm9rZVN0eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxlKGRlY29yYXRp
b25TdHlsZSkpOwotICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB7
CisgICAgICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpIHsKICAg
ICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHVuZGVybGluZSwgY29sb3JTcGFjZSk7
CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAgICAgICAgVGV4dFVuZGVy
bGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uID0gbGluZVN0eWxlLnRleHRVbmRlcmxpbmVQ
b3NpdGlvbigpOwpAQCAtMTAxMSw3ICsxMDk5LDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWlu
dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50Jgog
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmln
aW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyBiYXNlbGluZSArIDEpLCB3aWR0aCwgaXNQcmludGlu
Zyk7CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgfQotICAgICAgICBp
ZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpIHsKKyAgICAgICAgaWYgKGRlY29yYXRp
b24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRT
dHJva2VDb2xvcihvdmVybGluZSwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9E
RUNPUkFUSU9OKQogICAgICAgICAgICAgc3dpdGNoIChkZWNvcmF0aW9uU3R5bGUpIHsKQEAgLTEw
MzAsNyArMTExOCwxMSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICB9CiAj
ZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgfQotICAgICAgICBpZiAoZGVj
byAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHsKKyNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCisgICAgICAgIGlmIChjbGlwRGVjb3JhdGlvblRvTWFzaykKKyAgICAgICAgICAg
IHN0YXRlU2F2ZXIucmVzdG9yZSgpOworI2VuZGlmCisgICAgICAgIGlmIChkZWNvcmF0aW9uICYg
VGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgewogICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3IobGluZXRocm91Z2gsIGNvbG9yU3BhY2UpOwogI2lmIEVOQUJMRShDU1MzX1RFWFRf
REVDT1JBVElPTikKICAgICAgICAgICAgIHN3aXRjaCAoZGVjb3JhdGlvblN0eWxlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCAyNmRkYjIxMmU5YjBkMGUx
M2Y1Y2UzMzQzMTkyYzI3ZDM5YjZlMjhlLi45ZWMzYWUwMjc0YjBmODlkN2UyNzk5MDNmZTFiZjJi
ZDYxNmIxMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKQEAg
LTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQ29tcG9zaXRpb25V
bmRlcmxpbmU7CiBjbGFzcyBEb2N1bWVudE1hcmtlcjsKK2NsYXNzIFRleHRQYWludGVyOwogCiBj
b25zdCB1bnNpZ25lZCBzaG9ydCBjTm9UcnVuY2F0aW9uID0gVVNIUlRfTUFYOwogY29uc3QgdW5z
aWduZWQgc2hvcnQgY0Z1bGxUcnVuY2F0aW9uID0gVVNIUlRfTUFYIC0gMTsKQEAgLTE2OSw3ICsx
NzAsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIHBhaW50RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIFRl
eHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKik7Cisg
ICAgdm9pZCBwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2lu
dCYgYm94T3JpZ2luLCBUZXh0RGVjb3JhdGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3Qg
U2hhZG93RGF0YSosIFRleHRQYWludGVyJik7CiAgICAgdm9pZCBwYWludFNlbGVjdGlvbihHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRm9udCYsIENvbG9yIHRleHRDb2xvcik7CiAgICAgdm9pZCBwYWludERvY3Vt
ZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
RG9jdW1lbnRNYXJrZXIqLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBib29sIGdy
YW1tYXIpOwogICAgIHZvaWQgcGFpbnRUZXh0TWF0Y2hNYXJrZXIoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBEb2N1bWVudE1hcmtlciosIGNvbnN0IFJlbmRl
clN0eWxlJiwgY29uc3QgRm9udCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMmQzMTU1MDQ4NzU2NWYzNTRkZWFmMjE5OTA1NTFhNGNk
MThhZmQ5Ny4uOWRjZjM2YzA4NmFlZGU4MzhlYmFlY2Y1MmNlNzcyMDU1YmJkZGUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC03OTIs
NiArNzkyLDcgQEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBhaW50SWZUZXh0
T3JCb3JkZXJPck91dGxpbmUoY29uc3QgUmVuZGVyU3R5bGUKICNpZiBFTkFCTEUoQ1NTM19URVhU
X0RFQ09SQVRJT04pCiAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNv
cmF0aW9uU3R5bGUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0
aW9uU3R5bGUKICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRp
b25Db2xvciAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25D
b2xvcgorICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblNraXAg
IT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU2tpcAogI2VuZGlm
IC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCiAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50
ZXh0RmlsbENvbG9yICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xvcgog
ICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yICE9IG90aGVyLT5y
YXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9rZUNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTdkYjBhMmIzN2RkYzdl
ODc4ZjY0ODEzYmE2NzM3ZjY3Y2ZhOTQ1MS4uZjVjYjNjMTgwYjJlODZkZTAzZGVhY2NkNjgxZmFi
MWVkNWJkOTRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTExLTAxICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIHRlc3Qgd2hpY2ggZHJhd3MgYSB2
ZXJ5IGxhcmdlICJwIiB3aXRoIHRleHQtZGVjb3JhdGlvbi1za2lwOmluay4gVGhlCisgICAgICAg
IHZpZXdwb3J0IGlzIHJlc3RyaWN0ZWQgdG8gYmUganVzdCBodWdnaW5nIHRoZSBwbGFjZSB3aGVy
ZSBhbiB1bmRlcmxpbmUgd291bGQKKyAgICAgICAgaW50ZXJzZWN0IHRoZSBkZXNjZW5kZXIgb2Yg
dGhlICJwIi4gVGhpcyBzaG91bGQgbG9vayB0aGUgc2FtZSBhcyBpZiB0aGVyZSB3YXMKKyAgICAg
ICAgbm8gdW5kZXJsaW5lIGF0IGFsbCAoYmVjYXVzZSBvZiB0aGUgc2tpcHBpbmcgdW5kZXJsaW5l
KS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbDogQWRkZWQuCisK
IDIwMTMtMTAtMzEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT046IENyYXNoZXMgaW4gLVtVSURlbGVnYXRlIHdlYlZpZXc6ZnJhbWU6ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6XS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3Jh
dGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9u
LXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmM4NTJlMzNmOTc0OGNiOWJjMzRkMDc4ZWFkMTYwOTA2YTkxNGZjMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQt
ZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxl
PgorICAgICNiaWdza2V3IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6
IC0xNTZweDsKKyAgICAgIHRvcDogLTQwMHB4OworICAgICAgZm9udC1zdHlsZTogaXRhbGljOwor
ICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAgZm9udC1mYW1pbHk6IGhlbHZldGljYTsKKyAg
ICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzNyk7CisgICAgICAtd2Via2l0LXRyYW5zZm9y
bS1vcmlnaW46IHRvcCBsZWZ0OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
ICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6ZWQgInAiIGFz
IHZpZXdlZCB0aHJvdWdoIGEgbmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIuIFRo
ZSAicCIgaXMgaW4gMTJwdCBzaXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBsYXJnZXIuIFRo
aXMgdGVzdHMgdGhhdAorICB0aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBtYXNrIGlzIGNh
bGN1bGF0ZWQgd2l0aCBtb3JlIHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJlY2lzaW9uLgor
ICBJZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0IGJlIGEgbmlj
ZSBjcmlzcCBlZGdlIG9uIHRoZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdoZXJlIGl0IGdl
dHMgbWFza2VkIG9mZi4gVGhpcyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVyZSB3b3VsZCBi
ZSBnYXJiYWdlIGdpYW50IHBpeGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJhY3Rlci4gSWYg
dGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBpc24ndCB3b3JraW5nIGF0IGFsbCwgdGhlbiB0aGUK
KyAgdW5kZXJsaW5lIHdpbGwgc2ltcGx5IGJlIGRyYXduIGxpa2Ugbm9ybWFsLCBhbmQgd29uJ3Qg
bWF0Y2ggdGhlIGV4cGVjdGVkIGNhc2UgKHdoZXJlIHRoZXJlCisgIGlzIG5vIHVuZGVybGluZSkK
KyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHdp
ZHRoOiA4MXB4OyBoZWlnaHQ6IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9ImJpZ3NrZXciPmxwbDwv
ZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlv
bi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc1MDg3N2E4NjM3MzVkZDdkMTY3
ZTNjOTQyOGVlZjlhMTk4ODY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQt
ZGVjb3JhdGlvbi1za2lwLWluay5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgICNiaWdza2V3IHsKKyAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxlZnQ6IC0xNTZweDsKKyAgICAgIHRvcDogLTQwMHB4Owor
ICAgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgICAgZm9udC1zaXplOiAxMnB0OworICAgICAg
Zm9udC1mYW1pbHk6IGhlbHZldGljYTsKKyAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l
OworICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rOworICAgICAgLXdlYmtp
dC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjog
dG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIFRoZSBmb2xs
b3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgaXRhbGljaXplZCAicCIgYXMgdmlld2VkIHRo
cm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQKKyAgdGhlIGRlc2NlbmRlci4gVGhlICJwIiBpcyBp
biAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1cCB0byBtdWNoIGxhcmdlci4gVGhpcyB0ZXN0cyB0
aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIG1hc2sgaXMgY2FsY3VsYXRlZCB3
aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNlci1zcGFjZSBwcmVjaXNpb24uCisgIElmIHdlIGRv
bid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgdGhlcmUgd29uJ3QgYmUgYSBuaWNlIGNyaXNwIGVk
Z2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRlcmxpbmUKKyAgd2hlcmUgaXQgZ2V0cyBtYXNrZWQg
b2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBiZWNhdXNlIHRoZXJlIHdvdWxkIGJlIGdhcmJhZ2Ug
Z2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVhciB0aGUgY2hhcmFjdGVyLiBJZiB0ZXh0LWRlY29y
YXRpb24tc2tpcDogaW5rIGlzbid0IHdvcmtpbmcgYXQgYWxsLCB0aGVuIHRoZQorICB1bmRlcmxp
bmUgd2lsbCBzaW1wbHkgYmUgZHJhd24gbGlrZSBub3JtYWwsIGFuZCB3b24ndCBtYXRjaCB0aGUg
ZXhwZWN0ZWQgY2FzZSAod2hlcmUgdGhlcmUKKyAgaXMgbm8gdW5kZXJsaW5lKQorICAgIDxkaXYg
c3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDgxcHg7
IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0iYmlnc2tldyI+bHBsPC9kaXY+CisgICAg
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215771</attachid>
            <date>2013-11-01 15:48:31 -0700</date>
            <delta_ts>2013-11-01 16:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131101154830.patch</filename>
            <type>text/plain</type>
            <size>27153</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEyYmU5YjIwNTdjNWJi
YjBkYjMyNzljZTAyNTk2NWQzODk1NmRmZi4uNDdhNDA1MWJhYjc1ZmZlZmU3ZjI0MTRmMTk2ZDAw
YWFkM2Q4MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgMS4gQmVm
b3JlIGRyYXdpbmcgYW55IGRlY29yYXRpb25zLCBmaWd1cmUgb3V0IHRoZSBib3VuZGluZyBib3gg
Zm9yIHRoZSBkZWNvcmF0aW9ucyB0aGF0IHdpbGwgYmUgZHJhd24KKyAgICAgICAgMi4gQ3JlYXRl
IGFuIEltYWdlQnVmZmVyIHdpdGggdGhlc2UgZGltZW5zaW9ucworICAgICAgICAzLiBEcmF3IHRl
eHQgaW50byB0aGlzIEltYWdlQnVmZmVyIHdpdGggYSB0aGlja2VyIHN0cm9rZQorICAgICAgICA0
LiBBcHBseSB0aGUgSW1hZ2VCdWZmZXIgYXMgYSBtYXNrIHRvIHRoZSBjb250ZXh0CisgICAgICAg
IDUuIERyYXcgZGVjb3JhdGlvbnMgbGlrZSBub3JtYWwKKyAgICAgICAgNi4gQ2xlYW4gdXAKKwor
ICAgICAgICBUZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dCk6IERvbid0
IGNhbGwgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzCisgICAgICAgIHdoZW4g
cGFpbnRpbmcgaXMgZGlzYWJsZWQKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6IFBhc3MgdGhlIFRl
eHRQYWludGVyIHRvIHBhaW50RGVjb3JhdGlvbgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVVu
ZGVybGluZU9mZnNldCk6IFNtYWxsIGNsZWFudXAKKyAgICAgICAgKFdlYkNvcmU6OmdldFdhdnlT
dHJva2VDb250cm9sUG9pbnREaXN0YW5jZSk6IFB1bGxpbmcgb3V0IG9mIHN0cm9rZVdhdnlUZXh0
RGVjb3JhdGlvbigpCisgICAgICAgIChXZWJDb3JlOjpnZXRXYXZ5U3Ryb2tlU3RlcCk6IERpdHRv
CisgICAgICAgIChXZWJDb3JlOjpzdHJva2VXYXZ5VGV4dERlY29yYXRpb24pOiBVc2UgdGhlIHBy
ZXZpb3VzIDIgZnVuY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpnZXRTaW5nbGVEZWNvcmF0aW9u
Qm91bmRpbmdCb3gpOiBQdWxsaW5nIG91dCByZXBlYXRlZCBjb2RlIGludG8gYSBmdW5jdGlvbgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvbkJvdW5kaW5nQm94KTogQ29tcHV0ZSB0aGUg
Ym91bmRpbmcgYm94IGZvciBhbiB1bmRlcmxpbmUgd2hpY2gKKyAgICAgICAgaGFzbid0IGJlZW4g
ZHJhd24geWV0CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24pOiBDb25zdHJ1Y3QgYSBtYXNrIGFuZCBhcHBseSBpdCB0byB0aGUgR3JhcGhpY3NDb250ZXh0
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDogcGFpbnREZWNvcmF0aW9uIG5l
ZWRzIHRoZSBUZXh0UGFpbnRlcgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBh
aW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUpOiBSZWRyYXcgdGhlIHVuZGVybGluZSB3aGVuCisg
ICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwIGNoYW5nZXMKKwogMjAxMy0xMS0wMSAgTmljayBE
aWVnbyBZYW1hbmUgIDxuaWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEV4cGxp
Y2l0bHkgaW5pdGlhbGl6ZSBSZWZDb3VudGVkIGJhc2UgY2xhc3MgaW4gTWVkaWFTdHJlYW1UcmFj
aydzIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRiOTM5Yjg1YTRlNjNiMjNj
YWZmZjBmNTJjZGI1YTU1MDA4MjhhOGQuLmE4OGRlN2ZkMTFmOTQ5OWQzZWJmZjQxMWU1NjM0NTNm
NWJkYTU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRp
YyBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChH
cmFwaGljc0NvbnRleHQmIGNvCiAgICAgLy8gU2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTUgZm9yIGRldGFpbHMgb2Ygd2h5IDAuNSBpcyB0aGUgcmlnaHQgbWlu
aW11bSB0aGlja25lc3MgdG8gdXNlLgogICAgIEZsb2F0UmVjdCBpbml0aWFsQm91bmRzKHBvaW50
LCBGbG9hdFNpemUod2lkdGgsIG1heChjb250ZXh0LnN0cm9rZVRoaWNrbmVzcygpLCAwLjVmKSkp
OwogCi0gICAgaWYgKHByaW50aW5nIHx8ICFjb250ZXh0LmdldENUTShHcmFwaGljc0NvbnRleHQ6
OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpLnByZXNlcnZlc0F4aXNBbGlnbm1lbnQoKSkK
KyAgICBpZiAocHJpbnRpbmcgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWNvbnRl
eHQuZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSku
cHJlc2VydmVzQXhpc0FsaWdubWVudCgpKQogICAgICAgICByZXR1cm4gaW5pdGlhbEJvdW5kczsK
IAogICAgIC8vIE9uIHNjcmVlbiwgdXNlIGEgbWluaW11bSB0aGlja25lc3Mgb2YgMS4wIGluIHVz
ZXIgc3BhY2UgKGxhdGVyIHJvdW5kZWQgdG8gYW4gaW50ZWdyYWwgbnVtYmVyIGluIGRldmljZSBz
cGFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
ZmRhMmNhZTgzZmFhZjBkNDhiNzIxODJhNDE5NmYwYjc4ZDU4Y2YzMi4uN2QwZDUwNTI2NTJkZjIz
NTlmYjgzNGY5YzEzMmI1YzgyYThjMzQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
aW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTU4MSw3
ICs1ODIsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENs
b2Nrd2lzZSkpOwotICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3cpOworICAgICAgICBwYWludERlY29yYXRpb24oKmNvbnRleHQsIGJveE9yaWdpbiwgdGV4dERl
Y29yYXRpb25zLCBsaW5lU3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93LCB0
ZXh0UGFpbnRlcik7CiAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCiAgICAgICAgICAgICBjb250
ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwogICAg
IH0KQEAgLTc3OSw5ICs3ODAsNyBAQCBzdGF0aWMgaW50IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQo
Y29uc3QgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uLAogICAgIGNhc2Ug
VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI6IHsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJs
aW5lIHJlbGF0aXZlIHRvIHRoZSB1bmRlciBlZGdlIG9mIHRoZSBsb3dlc3QgZWxlbWVudCdzIGNv
bnRlbnQgYm94LgogICAgICAgICBjb25zdCBmbG9hdCBvZmZzZXQgPSBpbmxpbmVUZXh0Qm94LT5y
b290KCkubWF4TG9naWNhbFRvcCgpIC0gaW5saW5lVGV4dEJveC0+bG9naWNhbFRvcCgpOwotICAg
ICAgICBpZiAob2Zmc2V0ID4gMCkKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5s
b2dpY2FsSGVpZ2h0KCkgKyBnYXAgKyBvZmZzZXQ7Ci0gICAgICAgIHJldHVybiBpbmxpbmVUZXh0
Qm94LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXA7CisgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94
LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXAgKyBzdGQ6Om1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAg
ICB9CiAgICAgfQogCkBAIC04MDcsNiArODA2LDIxIEBAIHN0YXRpYyB2b2lkIGFkanVzdFN0ZXBU
b0RlY29yYXRpb25MZW5ndGgoZmxvYXQmIHN0ZXAsIGZsb2F0JiBjb250cm9sUG9pbnREaXN0YW5j
CiAgICAgY29udHJvbFBvaW50RGlzdGFuY2UgKz0gYWRqdXN0bWVudDsKIH0KIAorc3RhdGljIHZv
aWQgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoZmxvYXQgc3Ryb2tlVGhpY2tuZXNzLCBmbG9hdCYg
Y29udHJvbFBvaW50RGlzdGFuY2UsIGZsb2F0JiBzdGVwKQoreworICAgIC8vIERpc3RhbmNlIGJl
dHdlZW4gZGVjb3JhdGlvbidzIGF4aXMgYW5kIEJlemllciBjdXJ2ZSdzIGNvbnRyb2wgcG9pbnRz
LgorICAgIC8vIFRoZSBoZWlnaHQgb2YgdGhlIGN1cnZlIGlzIGJhc2VkIG9uIHRoaXMgZGlzdGFu
Y2UuIFVzZSBhIG1pbmltdW0gb2YgNiBwaXhlbHMgZGlzdGFuY2Ugc2luY2UKKyAgICAvLyB0aGUg
YWN0dWFsIGN1cnZlIHBhc3NlcyBhcHByb3hpbWF0ZWx5IGF0IGhhbGYgb2YgdGhhdCBkaXN0YW5j
ZSwgdGhhdCBpcyAzIHBpeGVscy4KKyAgICAvLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGN1
cnZlIGlzIGFsc28gYXBwcm94aW1hdGVseSAzIHBpeGVscy4gSW5jcmVhc2VzIHRoZSBjdXJ2ZSdz
IGhlaWdodAorICAgIC8vIGFzIHN0cm9ja1RoaWNrbmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0aGUg
Y3VydmUgbG9va3MgYmV0dGVyLgorICAgIGNvbnRyb2xQb2ludERpc3RhbmNlID0gMyAqIHN0ZDo6
bWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworCisgICAgLy8gSW5jcmVtZW50IHVzZWQg
dG8gZm9ybSB0aGUgZGlhbW9uZCBzaGFwZSBiZXR3ZWVuIHN0YXJ0IHBvaW50IChwMSksIGNvbnRy
b2wKKyAgICAvLyBwb2ludHMgYW5kIGVuZCBwb2ludCAocDIpIGFsb25nIHRoZSBheGlzIG9mIHRo
ZSBkZWNvcmF0aW9uLiBNYWtlcyB0aGUKKyAgICAvLyBjdXJ2ZSB3aWRlciBhcyBzdHJvY2tUaGlj
a25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KKyAgICBzdGVw
ID0gMiAqIHN0ZDo6bWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworfQorCiAvKgogICog
RHJhdyBvbmUgY3ViaWMgQmV6aWVyIGN1cnZlIGFuZCByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBs
b25nIHRoZSB0aGUgZGVjb3JhdGlvbidzIGF4aXMuCiAgKiBUaGUgc3RhcnQgcG9pbnQgKHAxKSwg
Y29udHJvbFBvaW50MSwgY29udHJvbFBvaW50MiBhbmQgZW5kIHBvaW50IChwMikgb2YgdGhlIEJl
emllciBjdXJ2ZQpAQCAtODM0LDI0ICs4NDgsMTYgQEAgc3RhdGljIHZvaWQgYWRqdXN0U3RlcFRv
RGVjb3JhdGlvbkxlbmd0aChmbG9hdCYgc3RlcCwgZmxvYXQmIGNvbnRyb2xQb2ludERpc3RhbmMK
ICAqICAgICAgICAgICAgIHwtLS0tLS0tLS0tLXwKICAqICAgICAgICAgICAgICAgICBzdGVwCiAg
Ki8KLXN0YXRpYyB2b2lkIHN0cm9rZVdhdnlUZXh0RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIEZsb2F0UG9pbnQmIHAxLCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgc3Ryb2tlVGhp
Y2tuZXNzKQorc3RhdGljIHZvaWQgc3Ryb2tlV2F2eVRleHREZWNvcmF0aW9uKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgRmxvYXRQb2ludCYgcDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJv
a2VUaGlja25lc3MpCiB7Ci0gICAgY29udGV4dC0+YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVz
KHAxLCBwMiwgc3Ryb2tlVGhpY2tuZXNzLCBjb250ZXh0LT5zdHJva2VTdHlsZSgpKTsKKyAgICBj
b250ZXh0LmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhwMSwgcDIsIHN0cm9rZVRoaWNrbmVz
cywgY29udGV4dC5zdHJva2VTdHlsZSgpKTsKIAogICAgIFBhdGggcGF0aDsKICAgICBwYXRoLm1v
dmVUbyhwMSk7CiAKLSAgICAvLyBEaXN0YW5jZSBiZXR3ZWVuIGRlY29yYXRpb24ncyBheGlzIGFu
ZCBCZXppZXIgY3VydmUncyBjb250cm9sIHBvaW50cy4KLSAgICAvLyBUaGUgaGVpZ2h0IG9mIHRo
ZSBjdXJ2ZSBpcyBiYXNlZCBvbiB0aGlzIGRpc3RhbmNlLiBVc2UgYSBtaW5pbXVtIG9mIDYgcGl4
ZWxzIGRpc3RhbmNlIHNpbmNlCi0gICAgLy8gdGhlIGFjdHVhbCBjdXJ2ZSBwYXNzZXMgYXBwcm94
aW1hdGVseSBhdCBoYWxmIG9mIHRoYXQgZGlzdGFuY2UsIHRoYXQgaXMgMyBwaXhlbHMuCi0gICAg
Ly8gVGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRoZSBjdXJ2ZSBpcyBhbHNvIGFwcHJveGltYXRlbHkg
MyBwaXhlbHMuIEluY3JlYXNlcyB0aGUgY3VydmUncyBoZWlnaHQKLSAgICAvLyBhcyBzdHJvY2tU
aGlja25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KLSAgICBm
bG9hdCBjb250cm9sUG9pbnREaXN0YW5jZSA9IDMgKiBtYXg8ZmxvYXQ+KDIsIHN0cm9rZVRoaWNr
bmVzcyk7Ci0KLSAgICAvLyBJbmNyZW1lbnQgdXNlZCB0byBmb3JtIHRoZSBkaWFtb25kIHNoYXBl
IGJldHdlZW4gc3RhcnQgcG9pbnQgKHAxKSwgY29udHJvbAotICAgIC8vIHBvaW50cyBhbmQgZW5k
IHBvaW50IChwMikgYWxvbmcgdGhlIGF4aXMgb2YgdGhlIGRlY29yYXRpb24uIE1ha2VzIHRoZQot
ICAgIC8vIGN1cnZlIHdpZGVyIGFzIHN0cm9ja1RoaWNrbmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0
aGUgY3VydmUgbG9va3MgYmV0dGVyLgotICAgIGZsb2F0IHN0ZXAgPSAyICogbWF4PGZsb2F0Pigy
LCBzdHJva2VUaGlja25lc3MpOworICAgIGZsb2F0IGNvbnRyb2xQb2ludERpc3RhbmNlOworICAg
IGZsb2F0IHN0ZXA7CisgICAgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoc3Ryb2tlVGhpY2tuZXNz
LCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcCk7CiAKICAgICBib29sIGlzVmVydGljYWxMaW5l
ID0gKHAxLngoKSA9PSBwMi54KCkpOwogCkBAIC05MDcsMTMgKzkxMyw2NiBAQCBzdGF0aWMgdm9p
ZCBzdHJva2VXYXZ5VGV4dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9h
dFBvaW50JiBwMSwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAgY29udGV4dC0+c2V0U2hvdWxk
QW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnN0cm9rZVBhdGgocGF0aCk7CisgICAgY29u
dGV4dC5zZXRTaG91bGRBbnRpYWxpYXModHJ1ZSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBh
dGgpOworfQorCisvLyBCZWNhdXNlIGZpbmRpbmcgdGhlIGJvdW5kaW5nIGJveCBvZiBhbiB1bmRl
cmxpbmUgaXMgc3RydWN0dXJhbGx5IHNpbWlsYXIgdG8gZmluZGluZworLy8gdGhlIGJvdW5kaW5n
IGJveCBvZiBhIHN0cmlrZXRocm91Z2gsIHdlIGNhbiBwdWxsIG91dCB0aGUgY29tcHV0YXRpb24g
YW5kIHBhcmFtZXRlcml6ZQorLy8gYnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNvcmF0aW9uICh5
T2Zmc2V0LCB1bmRlcmxpbmVPZmZzZXQsIGFuZCBkb3VibGVPZmZzZXQpLgorc3RhdGljIEZsb2F0
UmVjdCBib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywKKyAgICBmbG9hdCB3aWR0aCwgRmxv
YXRQb2ludCBsb2NhbE9yaWdpbiwgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUs
CisgICAgYm9vbCBpc1ByaW50aW5nLCBmbG9hdCB5T2Zmc2V0LCBmbG9hdCB1bmRlcmxpbmVPZmZz
ZXQsIGZsb2F0IGRvdWJsZU9mZnNldCkKK3sKKyAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CisK
KyAgICBzd2l0Y2ggKGRlY29yYXRpb25TdHlsZSkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25T
dHlsZVdhdnk6IHsKKyAgICAgICAgRmxvYXRQb2ludCBzdGFydChsb2NhbE9yaWdpbi54KCksIGxv
Y2FsT3JpZ2luLnkoKSArIHlPZmZzZXQpOworICAgICAgICBGbG9hdFBvaW50IGVuZCA9IHN0YXJ0
ICsgRmxvYXRTaXplKHdpZHRoLCAwKTsKKyAgICAgICAgY29udGV4dC5hZGp1c3RMaW5lVG9QaXhl
bEJvdW5kYXJpZXMoc3RhcnQsIGVuZCwgdGV4dERlY29yYXRpb25UaGlja25lc3MsIGNvbnRleHQu
c3Ryb2tlU3R5bGUoKSk7CisKKyAgICAgICAgZmxvYXQgY29udHJvbFBvaW50RGlzdGFuY2U7Cisg
ICAgICAgIGZsb2F0IHN0ZXA7CisgICAgICAgIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKHRleHRE
ZWNvcmF0aW9uVGhpY2tuZXNzLCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcCk7CisKKyAgICAg
ICAgYWRqdXN0U3RlcFRvRGVjb3JhdGlvbkxlbmd0aChzdGVwLCBjb250cm9sUG9pbnREaXN0YW5j
ZSwgd2lkdGgpOworCisgICAgICAgIGNvbnRyb2xQb2ludERpc3RhbmNlICs9IHRleHREZWNvcmF0
aW9uVGhpY2tuZXNzOworICAgICAgICBGbG9hdFBvaW50IGJvdW5kaW5nQm94T3JpZ2luID0gc3Rh
cnQgLSBGbG9hdFNpemUoMCwgY29udHJvbFBvaW50RGlzdGFuY2UpOworICAgICAgICBGbG9hdFNp
emUgYm91bmRpbmdCb3hTaXplID0gRmxvYXRTaXplKHdpZHRoLCAyICogY29udHJvbFBvaW50RGlz
dGFuY2UpOworICAgICAgICBib3VuZGluZ0JveCA9IEZsb2F0UmVjdChib3VuZGluZ0JveE9yaWdp
biwgYm91bmRpbmdCb3hTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6
CisgICAgICAgIGJvdW5kaW5nQm94ID0gY29udGV4dC5jb21wdXRlTGluZUJvdW5kc0ZvclRleHQo
bG9jYWxPcmlnaW4gKyBGbG9hdFNpemUoMCwgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGlzUHJp
bnRpbmcpOworICAgICAgICBpZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0aW9uU3R5
bGVEb3VibGUpCisgICAgICAgICAgICBib3VuZGluZ0JveC51bml0ZShjb250ZXh0LmNvbXB1dGVM
aW5lQm91bmRzRm9yVGV4dChsb2NhbE9yaWdpbiArIEZsb2F0U2l6ZSgwLCBkb3VibGVPZmZzZXQp
LCB3aWR0aCwgaXNQcmludGluZykpOworICAgIH0KKyAgICByZXR1cm4gYm91bmRpbmdCb3g7Cit9
CisKK3N0YXRpYyBGbG9hdFJlY3QgYm91bmRpbmdCb3hGb3JBbGxBY3RpdmVEZWNvcmF0aW9ucyhJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFRl
eHREZWNvcmF0aW9uIGRlY29yYXRpb24sIGZsb2F0IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLCBm
bG9hdCB3aWR0aCwgZmxvYXQgZG91YmxlT2Zmc2V0LCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29y
YXRpb25TdHlsZSwgY29uc3QgRmxvYXRQb2ludCBsb2NhbE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5
bGUmIGxpbmVTdHlsZSwgYm9vbCBpc1ByaW50aW5nLCBpbnQgYmFzZWxpbmUpCit7CisgICAgRmxv
YXRSZWN0IGJvdW5kaW5nQm94OworICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25V
bmRlcmxpbmUpIHsKKyAgICAgICAgaW50IHVuZGVybGluZU9mZnNldCA9IGNvbXB1dGVVbmRlcmxp
bmVPZmZzZXQobGluZVN0eWxlLnRleHRVbmRlcmxpbmVQb3NpdGlvbigpLCBsaW5lU3R5bGUuZm9u
dE1ldHJpY3MoKSwgJmlubGluZVRleHRCb3gsIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKKyAg
ICAgICAgCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5kaW5nQm94Rm9yU2luZ2xlRGVj
b3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGxvY2FsT3Jp
Z2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIHVuZGVybGluZU9mZnNldCArIGRvdWJs
ZU9mZnNldCwgdW5kZXJsaW5lT2Zmc2V0LCBiYXNlbGluZSArIDEpKTsKKyAgICB9CisgICAgaWYg
KGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKQorICAgICAgICBib3VuZGluZ0Jv
eC51bml0ZShib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oY29udGV4dCwgdGV4dERlY29y
YXRpb25UaGlja25lc3MsIHdpZHRoLCBsb2NhbE9yaWdpbiwgZGVjb3JhdGlvblN0eWxlLCBpc1By
aW50aW5nLCAtZG91YmxlT2Zmc2V0LCAwLCAtZG91YmxlT2Zmc2V0KSk7CisgICAgaWYgKGRlY29y
YXRpb24gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoKQorICAgICAgICBib3VuZGluZ0JveC51
bml0ZShib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oY29udGV4dCwgdGV4dERlY29yYXRp
b25UaGlja25lc3MsIHdpZHRoLCBsb2NhbE9yaWdpbiwgZGVjb3JhdGlvblN0eWxlLCBpc1ByaW50
aW5nLCAyICogYmFzZWxpbmUgLyAzLCAyICogYmFzZWxpbmUgLyAzLCBkb3VibGVPZmZzZXQgKyAy
ICogYmFzZWxpbmUgLyAzKSk7CisgICAgcmV0dXJuIGJvdW5kaW5nQm94OwogfQogI2VuZGlmIC8v
IENTUzNfVEVYVF9ERUNPUkFUSU9OCiAKLXZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0
aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2lu
LCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHls
ZSwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQordm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERl
Y29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIFRleHREZWNvcmF0aW9uIGRlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVj
b3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIFRleHRQYWludGVyJiB0ZXh0
UGFpbnRlcikKIHsKKyNpZiAhRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIFVOVVNF
RF9QQVJBTSh0ZXh0UGFpbnRlcik7CisjZW5kaWYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlt
cHJvdmUgdGhpcyBydWxlIGFuZCBub3QgYWx3YXlzIGp1c3QgYXNzdW1lIDEuCiAgICAgY29uc3Qg
ZmxvYXQgdGV4dERlY29yYXRpb25UaGlja25lc3MgPSAxLmY7CiAKQEAgLTkzMSwxNSArOTkwLDE1
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAgICAKICAgICAvLyBHZXQgdGhlIHRleHQgZGVj
b3JhdGlvbiBjb2xvcnMuCiAgICAgQ29sb3IgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91
Z2g7Ci0gICAgcmVuZGVyZXIoKS5nZXRUZXh0RGVjb3JhdGlvbkNvbG9ycyhkZWNvLCB1bmRlcmxp
bmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSk7CisgICAgcmVuZGVyZXIoKS5nZXRUZXh0
RGVjb3JhdGlvbkNvbG9ycyhkZWNvcmF0aW9uLCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhy
b3VnaCwgdHJ1ZSk7CiAgICAgaWYgKGlzRmlyc3RMaW5lKCkpCi0gICAgICAgIHJlbmRlcmVyKCku
Z2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjbywgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRo
cm91Z2gsIHRydWUsIHRydWUpOworICAgICAgICByZW5kZXJlcigpLmdldFRleHREZWNvcmF0aW9u
Q29sb3JzKGRlY29yYXRpb24sIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0cnVl
LCB0cnVlKTsKICAgICAKICAgICAvLyBVc2UgYSBzcGVjaWFsIGZ1bmN0aW9uIGZvciB1bmRlcmxp
bmVzIHRvIGdldCB0aGUgcG9zaXRpb25pbmcgZXhhY3RseSByaWdodC4KICAgICBib29sIGlzUHJp
bnRpbmcgPSByZW5kZXJlcigpLmRvY3VtZW50KCkucHJpbnRpbmcoKTsKLSAgICBjb250ZXh0LT5z
ZXRTdHJva2VUaGlja25lc3ModGV4dERlY29yYXRpb25UaGlja25lc3MpOworICAgIGNvbnRleHQu
c2V0U3Ryb2tlVGhpY2tuZXNzKHRleHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKIAotICAgIGJvb2wg
bGluZXNBcmVPcGFxdWUgPSAhaXNQcmludGluZyAmJiAoIShkZWNvICYgVGV4dERlY29yYXRpb25V
bmRlcmxpbmUpIHx8IHVuZGVybGluZS5hbHBoYSgpID09IDI1NSkgJiYgKCEoZGVjbyAmIFRleHRE
ZWNvcmF0aW9uT3ZlcmxpbmUpIHx8IG92ZXJsaW5lLmFscGhhKCkgPT0gMjU1KSAmJiAoIShkZWNv
ICYgVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgfHwgbGluZXRocm91Z2guYWxwaGEoKSA9PSAy
NTUpOworICAgIGJvb2wgbGluZXNBcmVPcGFxdWUgPSAhaXNQcmludGluZyAmJiAoIShkZWNvcmF0
aW9uICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpIHx8IHVuZGVybGluZS5hbHBoYSgpID09IDI1
NSkgJiYgKCEoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpIHx8IG92ZXJsaW5l
LmFscGhhKCkgPT0gMjU1KSAmJiAoIShkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25MaW5lVGhy
b3VnaCkgfHwgbGluZXRocm91Z2guYWxwaGEoKSA9PSAyNTUpOwogCiAgICAgY29uc3QgUmVuZGVy
U3R5bGUmIGxpbmVTdHlsZSA9IHRoaXMtPmxpbmVTdHlsZSgpOwogICAgIGludCBiYXNlbGluZSA9
IGxpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudCgpOwpAQCAtOTU4LDggKzEwMTcsOCBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICBjbGlwUmVjdC51bml0ZShzaGFkb3dS
ZWN0KTsKICAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gbWF4KGV4dHJhT2Zmc2V0LCBtYXgoMCwg
c2hhZG93WSkgKyBzaGFkb3dFeHRlbnQpOwogICAgICAgICB9Ci0gICAgICAgIGNvbnRleHQtPnNh
dmUoKTsKLSAgICAgICAgY29udGV4dC0+Y2xpcChjbGlwUmVjdCk7CisgICAgICAgIGNvbnRleHQu
c2F2ZSgpOworICAgICAgICBjb250ZXh0LmNsaXAoY2xpcFJlY3QpOwogICAgICAgICBleHRyYU9m
ZnNldCArPSBiYXNlbGluZSArIDI7CiAgICAgICAgIGxvY2FsT3JpZ2luLm1vdmUoMCwgZXh0cmFP
ZmZzZXQpOwogICAgICAgICBzZXRDbGlwID0gdHJ1ZTsKQEAgLTk3NywxOCArMTAzNiw0NiBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpbnQgc2hh
ZG93WCA9IGlzSG9yaXpvbnRhbCgpID8gc2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKICAgICAg
ICAgICAgIGludCBzaGFkb3dZID0gaXNIb3Jpem9udGFsKCkgPyBzaGFkb3ctPnkoKSA6IC1zaGFk
b3ctPngoKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnNldFNoYWRvdyhGbG9hdFNpemUoc2hhZG93
WCwgc2hhZG93WSAtIGV4dHJhT2Zmc2V0KSwgc2hhZG93LT5yYWRpdXMoKSwgc2hhZG93LT5jb2xv
cigpLCBjb2xvclNwYWNlKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U2hhZG93KEZsb2F0U2l6
ZShzaGFkb3dYLCBzaGFkb3dZIC0gZXh0cmFPZmZzZXQpLCBzaGFkb3ctPnJhZGl1cygpLCBzaGFk
b3ctPmNvbG9yKCksIGNvbG9yU3BhY2UpOwogICAgICAgICAgICAgc2V0U2hhZG93ID0gdHJ1ZTsK
ICAgICAgICAgICAgIHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOwogICAgICAgICB9CiAKICNpZiBF
TkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgIC8vIE9mZnNldCBiZXR3ZWVuIGxp
bmVzIC0gYWx3YXlzIG5vbi16ZXJvLCBzbyBsaW5lcyBuZXZlciBjcm9zcyBlYWNoIG90aGVyLgot
ICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQgPSB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyArIDEu
ZjsKKyAgICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERlY29yYXRpb25UaGlja25lc3Mg
KyAxOworICAgICAgICAKKyAgICAgICAgYm9vbCBjbGlwRGVjb3JhdGlvblRvTWFzayA9IGxpbmVT
dHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKSA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7CisgICAg
ICAgIAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4
dCwgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBEZWNvcmF0aW9uVG9NYXNrKSB7
CisgICAgICAgICAgICBjb25zdCBmbG9hdCBza2lwSW5rR2FwV2lkdGggPSAxOworCisgICAgICAg
ICAgICBzdGF0ZVNhdmVyLnNhdmUoKTsKKworICAgICAgICAgICAgRmxvYXRSZWN0IHVuZGVybGlu
ZVJlY3QgPSBib3VuZGluZ0JveEZvckFsbEFjdGl2ZURlY29yYXRpb25zKCp0aGlzLCBjb250ZXh0
LCBkZWNvcmF0aW9uLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGRvdWJsZU9mZnNl
dCwgZGVjb3JhdGlvblN0eWxlLCBsb2NhbE9yaWdpbiwgbGluZVN0eWxlLCBpc1ByaW50aW5nLCBi
YXNlbGluZSk7CisgICAgICAgICAgICBJbnRSZWN0IGVuY2xvc2luZ0RldmljZVJlY3QgPSBlbmNs
b3NpbmdJbnRSZWN0KHVuZGVybGluZVJlY3QpOworICAgICAgICAgICAgT3duUHRyPEltYWdlQnVm
ZmVyPiBpbWFnZUJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihlbmNsb3Np
bmdEZXZpY2VSZWN0LnNpemUoKSk7CisKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZlci5nZXQo
KSkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgbWFza0NvbnRleHQgPSAqaW1h
Z2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC5zZXRGaWxs
Q29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgICAg
ICBtYXNrQ29udGV4dC5zZXRMaW5lSm9pbihSb3VuZEpvaW4pOworICAgICAgICAgICAgICAgIG1h
c2tDb250ZXh0LnRyYW5zbGF0ZShGbG9hdFBvaW50KCkgLSBlbmNsb3NpbmdEZXZpY2VSZWN0Lmxv
Y2F0aW9uKCkpOworCisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQuZmlsbFJlY3QoZW5jbG9z
aW5nRGV2aWNlUmVjdCk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQuc2V0Q29tcG9zaXRl
T3BlcmF0aW9uKENvbXBvc2l0ZUNsZWFyKTsKKyAgICAKKyAgICAgICAgICAgICAgICB0ZXh0UGFp
bnRlci5wYWludFRleHRJbkNvbnRleHQobWFza0NvbnRleHQsIHNraXBJbmtHYXBXaWR0aCk7CisK
KyAgICAgICAgICAgICAgICBjb250ZXh0LmNsaXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmdl
dCgpLCBlbmNsb3NpbmdEZXZpY2VSZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogI2Vu
ZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0
eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxlKGRlY29yYXRpb25TdHlsZSkpOwot
ICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB7Ci0gICAgICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcih1bmRlcmxpbmUsIGNvbG9yU3BhY2UpOworICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxl
KGRlY29yYXRpb25TdHlsZSkpOworICAgICAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0
aW9uVW5kZXJsaW5lKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKHVuZGVy
bGluZSwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAg
ICAgICAgICAgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uID0gbGluZVN0
eWxlLnRleHRVbmRlcmxpbmVQb3NpdGlvbigpOwogICAgICAgICAgICAgY29uc3QgaW50IHVuZGVy
bGluZU9mZnNldCA9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQodW5kZXJsaW5lUG9zaXRpb24sIGxp
bmVTdHlsZS5mb250TWV0cmljcygpLCB0aGlzLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyk7CkBA
IC0xMDAxLDE4ICsxMDg4LDE4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4u
eCgpLCBsb2NhbE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGlu
Zyk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChs
b2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCksIHdpZHRo
LCBpc1ByaW50aW5nKTsKIAogICAgICAgICAgICAgICAgIGlmIChkZWNvcmF0aW9uU3R5bGUgPT0g
VGV4dERlY29yYXRpb25TdHlsZURvdWJsZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55
KCkgKyB1bmRlcmxpbmVPZmZzZXQgKyBkb3VibGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQo
bG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQgKyBkb3Vi
bGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7CiAgICAgICAgICAgICB9CiAjZWxzZQogICAg
ICAgICAgICAgLy8gTGVhdmUgb25lIHBpeGVsIG9mIHdoaXRlIGJldHdlZW4gdGhlIGJhc2VsaW5l
IGFuZCB0aGUgdW5kZXJsaW5lLgogICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0
KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyBiYXNlbGluZSAr
IDEpLCB3aWR0aCwgaXNQcmludGluZyk7CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04K
ICAgICAgICAgfQotICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpIHsK
LSAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG92ZXJsaW5lLCBjb2xvclNwYWNl
KTsKKyAgICAgICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKSB7Cisg
ICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKG92ZXJsaW5lLCBjb2xvclNwYWNlKTsK
ICNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgICAgICBzd2l0Y2ggKGRl
Y29yYXRpb25TdHlsZSkgewogICAgICAgICAgICAgY2FzZSBUZXh0RGVjb3JhdGlvblN0eWxlV2F2
eTogewpAQCAtMTAyMywxNSArMTExMCwxOSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0OgogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNP
UkFUSU9OCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KGxvY2FsT3Jp
Z2luLCB3aWR0aCwgaXNQcmludGluZyk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3TGlu
ZUZvclRleHQobG9jYWxPcmlnaW4sIHdpZHRoLCBpc1ByaW50aW5nKTsKICNpZiBFTkFCTEUoQ1NT
M19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgICAgICAgICAgaWYgKGRlY29yYXRpb25TdHlsZSA9
PSBUZXh0RGVjb3JhdGlvblN0eWxlRG91YmxlKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2lu
LnkoKSAtIGRvdWJsZU9mZnNldCksIHdpZHRoLCBpc1ByaW50aW5nKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGV4dC5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdpbi54KCks
IGxvY2FsT3JpZ2luLnkoKSAtIGRvdWJsZU9mZnNldCksIHdpZHRoLCBpc1ByaW50aW5nKTsKICAg
ICAgICAgICAgIH0KICNlbmRpZiAvLyBDU1MzX1RFWFRfREVDT1JBVElPTgogICAgICAgICB9Ci0g
ICAgICAgIGlmIChkZWNvICYgVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgewotICAgICAgICAg
ICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobGluZXRocm91Z2gsIGNvbG9yU3BhY2UpOworI2lm
IEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikKKyAgICAgICAgaWYgKGNsaXBEZWNvcmF0aW9u
VG9NYXNrKQorICAgICAgICAgICAgc3RhdGVTYXZlci5yZXN0b3JlKCk7CisjZW5kaWYKKyAgICAg
ICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoKSB7CisgICAgICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGxpbmV0aHJvdWdoLCBjb2xvclNwYWNlKTsKICNp
ZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgICAgICBzd2l0Y2ggKGRlY29y
YXRpb25TdHlsZSkgewogICAgICAgICAgICAgY2FzZSBUZXh0RGVjb3JhdGlvblN0eWxlV2F2eTog
ewpAQCAtMTA0MiwxOSArMTEzMywxOSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3Jh
dGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0OgogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFU
SU9OCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQo
bG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyAyICogYmFzZWxpbmUgLyAzKSwgd2lk
dGgsIGlzUHJpbnRpbmcpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0
KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyAyICogYmFzZWxp
bmUgLyAzKSwgd2lkdGgsIGlzUHJpbnRpbmcpOwogI2lmIEVOQUJMRShDU1MzX1RFWFRfREVDT1JB
VElPTikKICAgICAgICAgICAgICAgICBpZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0
aW9uU3R5bGVEb3VibGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdMaW5lRm9y
VGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgZG91Ymxl
T2Zmc2V0ICsgMiAqIGJhc2VsaW5lIC8gMyksIHdpZHRoLCBpc1ByaW50aW5nKTsKKyAgICAgICAg
ICAgICAgICAgICAgY29udGV4dC5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdp
bi54KCksIGxvY2FsT3JpZ2luLnkoKSArIGRvdWJsZU9mZnNldCArIDIgKiBiYXNlbGluZSAvIDMp
LCB3aWR0aCwgaXNQcmludGluZyk7CiAgICAgICAgICAgICB9CiAjZW5kaWYgLy8gQ1NTM19URVhU
X0RFQ09SQVRJT04KICAgICAgICAgfQogICAgIH0gd2hpbGUgKHNoYWRvdyk7CiAKICAgICBpZiAo
c2V0Q2xpcCkKLSAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICBjb250ZXh0LnJl
c3RvcmUoKTsKICAgICBlbHNlIGlmIChzZXRTaGFkb3cpCi0gICAgICAgIGNvbnRleHQtPmNsZWFy
U2hhZG93KCk7CisgICAgICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKIH0KIAogc3RhdGljIEdy
YXBoaWNzQ29udGV4dDo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgbGluZVN0eWxlRm9yTWFya2Vy
VHlwZShEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSBtYXJrZXJUeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKaW5kZXggMjZkZGIyMTJlOWIwZDBlMTNmNWNlMzM0
MzE5MmMyN2QzOWI2ZTI4ZS4uYTdjMmUzMTI3MWNiMDM5MmQ0ZmI1MDhmOWJjMWZiYWY2MGE2NjAw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0zMiw2ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5l
OwogY2xhc3MgRG9jdW1lbnRNYXJrZXI7CitjbGFzcyBUZXh0UGFpbnRlcjsKIAogY29uc3QgdW5z
aWduZWQgc2hvcnQgY05vVHJ1bmNhdGlvbiA9IFVTSFJUX01BWDsKIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IGNGdWxsVHJ1bmNhdGlvbiA9IFVTSFJUX01BWCAtIDE7CkBAIC0xNjksNyArMTcwLDcgQEAg
cHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBwYWludERlY29yYXRpb24o
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBUZXh0RGVjb3Jh
dGlvbiwgVGV4dERlY29yYXRpb25TdHlsZSwgY29uc3QgU2hhZG93RGF0YSopOworICAgIHZvaWQg
cGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9y
aWdpbiwgVGV4dERlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUsIGNvbnN0IFNoYWRvd0Rh
dGEqLCBUZXh0UGFpbnRlciYpOwogICAgIHZvaWQgcGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNv
bnN0IEZvbnQmLCBDb2xvciB0ZXh0Q29sb3IpOwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtl
cihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIERvY3VtZW50
TWFya2VyKiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgYm9vbCBncmFtbWFyKTsK
ICAgICB2b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UG9pbnQmIGJveE9yaWdpbiwgRG9jdW1lbnRNYXJrZXIqLCBjb25zdCBSZW5kZXJTdHlsZSYs
IGNvbnN0IEZvbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCmluZGV4IDJkMzE1NTA0ODc1NjVmMzU0ZGVhZjIxOTkwNTUxYTRjZDE4YWZkOTcu
LjlkY2YzNmMwODZhZWRlODM4ZWJhZWNmNTJjZTc3MjA1NWJiZGRlMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNzkyLDYgKzc5Miw3
IEBAIGJvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUmVwYWludElmVGV4dE9yQm9yZGVy
T3JPdXRsaW5lKGNvbnN0IFJlbmRlclN0eWxlCiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFU
SU9OKQogICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblN0
eWxlICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblN0eWxl
CiAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uQ29sb3Ig
IT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uQ29sb3IKKyAg
ICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25Ta2lwICE9IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvblNraXAKICNlbmRpZiAvLyBDU1Mz
X1RFWFRfREVDT1JBVElPTgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxD
b2xvciAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPnRleHRGaWxsQ29sb3IKICAgICAgICAg
fHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRTdHJva2VDb2xvciAhPSBvdGhlci0+cmFyZUluaGVy
aXRlZERhdGEtPnRleHRTdHJva2VDb2xvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE3ZGIwYTJiMzdkZGM3ZTg3OGY2NDgx
M2JhNjczN2Y2N2NmYTk0NTEuLmY1Y2IzYzE4MGIyZTg2ZGUwM2RlYWNjZDY4MWZhYjFlZDViZDk0
ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0xMS0wMSAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24g
b2YgdGV4dC1kZWNvcmF0aW9uLXNraXAgaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSB0ZXN0IHdoaWNoIGRyYXdzIGEgdmVyeSBsYXJn
ZSAicCIgd2l0aCB0ZXh0LWRlY29yYXRpb24tc2tpcDppbmsuIFRoZQorICAgICAgICB2aWV3cG9y
dCBpcyByZXN0cmljdGVkIHRvIGJlIGp1c3QgaHVnZ2luZyB0aGUgcGxhY2Ugd2hlcmUgYW4gdW5k
ZXJsaW5lIHdvdWxkCisgICAgICAgIGludGVyc2VjdCB0aGUgZGVzY2VuZGVyIG9mIHRoZSAicCIu
IFRoaXMgc2hvdWxkIGxvb2sgdGhlIHNhbWUgYXMgaWYgdGhlcmUgd2FzCisgICAgICAgIG5vIHVu
ZGVybGluZSBhdCBhbGwgKGJlY2F1c2Ugb2YgdGhlIHNraXBwaW5nIHVuZGVybGluZSkuCisKKyAg
ICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0
aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWw6IEFkZGVkLgorCiAyMDEzLTEw
LTMxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
OiBDcmFzaGVzIGluIC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VR
dW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOl0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3Rl
eHQtZGVjb3JhdGlvbi1za2lwLWluay1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjODUyZTMz
Zjk3NDhjYjliYzM0ZDA3OGVhZDE2MDkwNmE5MTRmYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAj
Ymlnc2tldyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiAtMTU2cHg7
CisgICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgIGZv
bnQtc2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFtaWx5OiBoZWx2ZXRpY2E7CisgICAgICAtd2Vi
a2l0LXRyYW5zZm9ybTogc2NhbGUoMzcpOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2lu
OiB0b3AgbGVmdDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgVGhlIGZv
bGxvd2luZyBzaG91bGQgYmUgYW4gdW5kZXJsaW5lZCBpdGFsaWNpemVkICJwIiBhcyB2aWV3ZWQg
dGhyb3VnaCBhIG5hcnJvdyBzbGl0IGFyb3VuZAorICB0aGUgZGVzY2VuZGVyLiBUaGUgInAiIGlz
IGluIDEycHQgc2l6ZSwgYnV0IGlzIGJsb3duIHVwIHRvIG11Y2ggbGFyZ2VyLiBUaGlzIHRlc3Rz
IHRoYXQKKyAgdGhlIHRleHQtZGVjb3JhdGlvbi1za2lwOiBpbmsgbWFzayBpcyBjYWxjdWxhdGVk
IHdpdGggbW9yZSBwcmVjaXNpb24gdGhhbiB1c2VyLXNwYWNlIHByZWNpc2lvbi4KKyAgSWYgd2Ug
ZG9uJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLCB0aGVyZSB3b24ndCBiZSBhIG5pY2UgY3Jpc3Ag
ZWRnZSBvbiB0aGUgc2xvcGUgb2YgdGhlIHVuZGVybGluZQorICB3aGVyZSBpdCBnZXRzIG1hc2tl
ZCBvZmYuIFRoaXMgdGVzdCB3b3VsZCBmYWlsIGJlY2F1c2UgdGhlcmUgd291bGQgYmUgZ2FyYmFn
ZSBnaWFudCBwaXhlbAorICBhbGlhc2luZyBuZWFyIHRoZSBjaGFyYWN0ZXIuIElmIHRleHQtZGVj
b3JhdGlvbi1za2lwOiBpbmsgaXNuJ3Qgd29ya2luZyBhdCBhbGwsIHRoZW4gdGhlCisgIHVuZGVy
bGluZSB3aWxsIHNpbXBseSBiZSBkcmF3biBsaWtlIG5vcm1hbCwgYW5kIHdvbid0IG1hdGNoIHRo
ZSBleHBlY3RlZCBjYXNlICh3aGVyZSB0aGVyZQorICBpcyBubyB1bmRlcmxpbmUpCisgICAgPGRp
diBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogODFw
eDsgaGVpZ2h0OiA0MDBweCI+CisgICAgICA8ZGl2IGlkPSJiaWdza2V3Ij5scGw8L2Rpdj4KKyAg
ICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90
ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlv
bi1za2lwLWluay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NTA4NzdhODYzNzM1ZGQ3ZDE2N2UzYzk0Mjhl
ZWY5YTE5ODg2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRp
b24tc2tpcC1pbmsuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAjYmlnc2tldyB7CisgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICBsZWZ0OiAtMTU2cHg7CisgICAgICB0b3A6IC00MDBweDsKKyAgICAgIGZv
bnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgIGZvbnQtc2l6ZTogMTJwdDsKKyAgICAgIGZvbnQtZmFt
aWx5OiBoZWx2ZXRpY2E7CisgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKKyAgICAg
IC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluazsKKyAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiBzY2FsZSgzNyk7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0
OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICBUaGUgZm9sbG93aW5nIHNo
b3VsZCBiZSBhbiB1bmRlcmxpbmVkIGl0YWxpY2l6ZWQgInAiIGFzIHZpZXdlZCB0aHJvdWdoIGEg
bmFycm93IHNsaXQgYXJvdW5kCisgIHRoZSBkZXNjZW5kZXIuIFRoZSAicCIgaXMgaW4gMTJwdCBz
aXplLCBidXQgaXMgYmxvd24gdXAgdG8gbXVjaCBsYXJnZXIuIFRoaXMgdGVzdHMgdGhhdAorICB0
aGUgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGluayBtYXNrIGlzIGNhbGN1bGF0ZWQgd2l0aCBtb3Jl
IHByZWNpc2lvbiB0aGFuIHVzZXItc3BhY2UgcHJlY2lzaW9uLgorICBJZiB3ZSBkb24ndCBoYXZl
IGVub3VnaCBwcmVjaXNpb24sIHRoZXJlIHdvbid0IGJlIGEgbmljZSBjcmlzcCBlZGdlIG9uIHRo
ZSBzbG9wZSBvZiB0aGUgdW5kZXJsaW5lCisgIHdoZXJlIGl0IGdldHMgbWFza2VkIG9mZi4gVGhp
cyB0ZXN0IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGVyZSB3b3VsZCBiZSBnYXJiYWdlIGdpYW50IHBp
eGVsCisgIGFsaWFzaW5nIG5lYXIgdGhlIGNoYXJhY3Rlci4gSWYgdGV4dC1kZWNvcmF0aW9uLXNr
aXA6IGluayBpc24ndCB3b3JraW5nIGF0IGFsbCwgdGhlbiB0aGUKKyAgdW5kZXJsaW5lIHdpbGwg
c2ltcGx5IGJlIGRyYXduIGxpa2Ugbm9ybWFsLCBhbmQgd29uJ3QgbWF0Y2ggdGhlIGV4cGVjdGVk
IGNhc2UgKHdoZXJlIHRoZXJlCisgIGlzIG5vIHVuZGVybGluZSkKKyAgICA8ZGl2IHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiA4MXB4OyBoZWlnaHQ6
IDQwMHB4Ij4KKyAgICAgIDxkaXYgaWQ9ImJpZ3NrZXciPmxwbDwvZGl2PgorICAgIDwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215774</attachid>
            <date>2013-11-01 16:00:51 -0700</date>
            <delta_ts>2013-11-02 02:47:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121806-20131101160050.patch</filename>
            <type>text/plain</type>
            <size>27271</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEyYmU5YjIwNTdjNWJi
YjBkYjMyNzljZTAyNTk2NWQzODk1NmRmZi4uNDdhNDA1MWJhYjc1ZmZlZmU3ZjI0MTRmMTk2ZDAw
YWFkM2Q4MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0ZXh0LWRlY29yYXRpb24tc2tpcCBpbmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTgwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBp
bmsgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgMS4gQmVm
b3JlIGRyYXdpbmcgYW55IGRlY29yYXRpb25zLCBmaWd1cmUgb3V0IHRoZSBib3VuZGluZyBib3gg
Zm9yIHRoZSBkZWNvcmF0aW9ucyB0aGF0IHdpbGwgYmUgZHJhd24KKyAgICAgICAgMi4gQ3JlYXRl
IGFuIEltYWdlQnVmZmVyIHdpdGggdGhlc2UgZGltZW5zaW9ucworICAgICAgICAzLiBEcmF3IHRl
eHQgaW50byB0aGlzIEltYWdlQnVmZmVyIHdpdGggYSB0aGlja2VyIHN0cm9rZQorICAgICAgICA0
LiBBcHBseSB0aGUgSW1hZ2VCdWZmZXIgYXMgYSBtYXNrIHRvIHRoZSBjb250ZXh0CisgICAgICAg
IDUuIERyYXcgZGVjb3JhdGlvbnMgbGlrZSBub3JtYWwKKyAgICAgICAgNi4gQ2xlYW4gdXAKKwor
ICAgICAgICBUZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dCk6IERvbid0
IGNhbGwgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzCisgICAgICAgIHdoZW4g
cGFpbnRpbmcgaXMgZGlzYWJsZWQKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludCk6IFBhc3MgdGhlIFRl
eHRQYWludGVyIHRvIHBhaW50RGVjb3JhdGlvbgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVVu
ZGVybGluZU9mZnNldCk6IFNtYWxsIGNsZWFudXAKKyAgICAgICAgKFdlYkNvcmU6OmdldFdhdnlT
dHJva2VDb250cm9sUG9pbnREaXN0YW5jZSk6IFB1bGxpbmcgb3V0IG9mIHN0cm9rZVdhdnlUZXh0
RGVjb3JhdGlvbigpCisgICAgICAgIChXZWJDb3JlOjpnZXRXYXZ5U3Ryb2tlU3RlcCk6IERpdHRv
CisgICAgICAgIChXZWJDb3JlOjpzdHJva2VXYXZ5VGV4dERlY29yYXRpb24pOiBVc2UgdGhlIHBy
ZXZpb3VzIDIgZnVuY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpnZXRTaW5nbGVEZWNvcmF0aW9u
Qm91bmRpbmdCb3gpOiBQdWxsaW5nIG91dCByZXBlYXRlZCBjb2RlIGludG8gYSBmdW5jdGlvbgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvbkJvdW5kaW5nQm94KTogQ29tcHV0ZSB0aGUg
Ym91bmRpbmcgYm94IGZvciBhbiB1bmRlcmxpbmUgd2hpY2gKKyAgICAgICAgaGFzbid0IGJlZW4g
ZHJhd24geWV0CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRp
b24pOiBDb25zdHJ1Y3QgYSBtYXNrIGFuZCBhcHBseSBpdCB0byB0aGUgR3JhcGhpY3NDb250ZXh0
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDogcGFpbnREZWNvcmF0aW9uIG5l
ZWRzIHRoZSBUZXh0UGFpbnRlcgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBh
aW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUpOiBSZWRyYXcgdGhlIHVuZGVybGluZSB3aGVuCisg
ICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwIGNoYW5nZXMKKwogMjAxMy0xMS0wMSAgTmljayBE
aWVnbyBZYW1hbmUgIDxuaWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEV4cGxp
Y2l0bHkgaW5pdGlhbGl6ZSBSZWZDb3VudGVkIGJhc2UgY2xhc3MgaW4gTWVkaWFTdHJlYW1UcmFj
aydzIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRiOTM5Yjg1YTRlNjNiMjNj
YWZmZjBmNTJjZGI1YTU1MDA4MjhhOGQuLmE4OGRlN2ZkMTFmOTQ5OWQzZWJmZjQxMWU1NjM0NTNm
NWJkYTU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRp
YyBGbG9hdFJlY3QgY29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dChH
cmFwaGljc0NvbnRleHQmIGNvCiAgICAgLy8gU2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTUgZm9yIGRldGFpbHMgb2Ygd2h5IDAuNSBpcyB0aGUgcmlnaHQgbWlu
aW11bSB0aGlja25lc3MgdG8gdXNlLgogICAgIEZsb2F0UmVjdCBpbml0aWFsQm91bmRzKHBvaW50
LCBGbG9hdFNpemUod2lkdGgsIG1heChjb250ZXh0LnN0cm9rZVRoaWNrbmVzcygpLCAwLjVmKSkp
OwogCi0gICAgaWYgKHByaW50aW5nIHx8ICFjb250ZXh0LmdldENUTShHcmFwaGljc0NvbnRleHQ6
OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpLnByZXNlcnZlc0F4aXNBbGlnbm1lbnQoKSkK
KyAgICBpZiAocHJpbnRpbmcgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWNvbnRl
eHQuZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSku
cHJlc2VydmVzQXhpc0FsaWdubWVudCgpKQogICAgICAgICByZXR1cm4gaW5pdGlhbEJvdW5kczsK
IAogICAgIC8vIE9uIHNjcmVlbiwgdXNlIGEgbWluaW11bSB0aGlja25lc3Mgb2YgMS4wIGluIHVz
ZXIgc3BhY2UgKGxhdGVyIHJvdW5kZWQgdG8gYW4gaW50ZWdyYWwgbnVtYmVyIGluIGRldmljZSBz
cGFjZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
ZmRhMmNhZTgzZmFhZjBkNDhiNzIxODJhNDE5NmYwYjc4ZDU4Y2YzMi4uNTVjNWZjZTdkMDMyZjA2
MmE3ZWNmMTliNDBkMmVhOTg1ZmFjMDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
aW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTU4MSw3
ICs1ODIsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqY29udGV4dCwgdGV4dFBhaW50U3R5bGUpOwogICAgICAgICBpZiAoY29tYmluZWRU
ZXh0KQogICAgICAgICAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENs
b2Nrd2lzZSkpOwotICAgICAgICBwYWludERlY29yYXRpb24oY29udGV4dCwgYm94T3JpZ2luLCB0
ZXh0RGVjb3JhdGlvbnMsIGxpbmVTdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksIHRleHRTaGFk
b3cpOworICAgICAgICBwYWludERlY29yYXRpb24oKmNvbnRleHQsIGJveE9yaWdpbiwgdGV4dERl
Y29yYXRpb25zLCBsaW5lU3R5bGUudGV4dERlY29yYXRpb25TdHlsZSgpLCB0ZXh0U2hhZG93LCB0
ZXh0UGFpbnRlcik7CiAgICAgICAgIGlmIChjb21iaW5lZFRleHQpCiAgICAgICAgICAgICBjb250
ZXh0LT5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwogICAg
IH0KQEAgLTc3OSw5ICs3ODAsNyBAQCBzdGF0aWMgaW50IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQo
Y29uc3QgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uLAogICAgIGNhc2Ug
VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI6IHsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJs
aW5lIHJlbGF0aXZlIHRvIHRoZSB1bmRlciBlZGdlIG9mIHRoZSBsb3dlc3QgZWxlbWVudCdzIGNv
bnRlbnQgYm94LgogICAgICAgICBjb25zdCBmbG9hdCBvZmZzZXQgPSBpbmxpbmVUZXh0Qm94LT5y
b290KCkubWF4TG9naWNhbFRvcCgpIC0gaW5saW5lVGV4dEJveC0+bG9naWNhbFRvcCgpOwotICAg
ICAgICBpZiAob2Zmc2V0ID4gMCkKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5s
b2dpY2FsSGVpZ2h0KCkgKyBnYXAgKyBvZmZzZXQ7Ci0gICAgICAgIHJldHVybiBpbmxpbmVUZXh0
Qm94LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXA7CisgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94
LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXAgKyBzdGQ6Om1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAg
ICB9CiAgICAgfQogCkBAIC04MDcsNiArODA2LDIxIEBAIHN0YXRpYyB2b2lkIGFkanVzdFN0ZXBU
b0RlY29yYXRpb25MZW5ndGgoZmxvYXQmIHN0ZXAsIGZsb2F0JiBjb250cm9sUG9pbnREaXN0YW5j
CiAgICAgY29udHJvbFBvaW50RGlzdGFuY2UgKz0gYWRqdXN0bWVudDsKIH0KIAorc3RhdGljIHZv
aWQgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoZmxvYXQgc3Ryb2tlVGhpY2tuZXNzLCBmbG9hdCYg
Y29udHJvbFBvaW50RGlzdGFuY2UsIGZsb2F0JiBzdGVwKQoreworICAgIC8vIERpc3RhbmNlIGJl
dHdlZW4gZGVjb3JhdGlvbidzIGF4aXMgYW5kIEJlemllciBjdXJ2ZSdzIGNvbnRyb2wgcG9pbnRz
LgorICAgIC8vIFRoZSBoZWlnaHQgb2YgdGhlIGN1cnZlIGlzIGJhc2VkIG9uIHRoaXMgZGlzdGFu
Y2UuIFVzZSBhIG1pbmltdW0gb2YgNiBwaXhlbHMgZGlzdGFuY2Ugc2luY2UKKyAgICAvLyB0aGUg
YWN0dWFsIGN1cnZlIHBhc3NlcyBhcHByb3hpbWF0ZWx5IGF0IGhhbGYgb2YgdGhhdCBkaXN0YW5j
ZSwgdGhhdCBpcyAzIHBpeGVscy4KKyAgICAvLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGN1
cnZlIGlzIGFsc28gYXBwcm94aW1hdGVseSAzIHBpeGVscy4gSW5jcmVhc2VzIHRoZSBjdXJ2ZSdz
IGhlaWdodAorICAgIC8vIGFzIHN0cm9ja1RoaWNrbmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0aGUg
Y3VydmUgbG9va3MgYmV0dGVyLgorICAgIGNvbnRyb2xQb2ludERpc3RhbmNlID0gMyAqIHN0ZDo6
bWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworCisgICAgLy8gSW5jcmVtZW50IHVzZWQg
dG8gZm9ybSB0aGUgZGlhbW9uZCBzaGFwZSBiZXR3ZWVuIHN0YXJ0IHBvaW50IChwMSksIGNvbnRy
b2wKKyAgICAvLyBwb2ludHMgYW5kIGVuZCBwb2ludCAocDIpIGFsb25nIHRoZSBheGlzIG9mIHRo
ZSBkZWNvcmF0aW9uLiBNYWtlcyB0aGUKKyAgICAvLyBjdXJ2ZSB3aWRlciBhcyBzdHJvY2tUaGlj
a25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KKyAgICBzdGVw
ID0gMiAqIHN0ZDo6bWF4PGZsb2F0PigyLCBzdHJva2VUaGlja25lc3MpOworfQorCiAvKgogICog
RHJhdyBvbmUgY3ViaWMgQmV6aWVyIGN1cnZlIGFuZCByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBs
b25nIHRoZSB0aGUgZGVjb3JhdGlvbidzIGF4aXMuCiAgKiBUaGUgc3RhcnQgcG9pbnQgKHAxKSwg
Y29udHJvbFBvaW50MSwgY29udHJvbFBvaW50MiBhbmQgZW5kIHBvaW50IChwMikgb2YgdGhlIEJl
emllciBjdXJ2ZQpAQCAtODM0LDI0ICs4NDgsMTYgQEAgc3RhdGljIHZvaWQgYWRqdXN0U3RlcFRv
RGVjb3JhdGlvbkxlbmd0aChmbG9hdCYgc3RlcCwgZmxvYXQmIGNvbnRyb2xQb2ludERpc3RhbmMK
ICAqICAgICAgICAgICAgIHwtLS0tLS0tLS0tLXwKICAqICAgICAgICAgICAgICAgICBzdGVwCiAg
Ki8KLXN0YXRpYyB2b2lkIHN0cm9rZVdhdnlUZXh0RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIEZsb2F0UG9pbnQmIHAxLCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgc3Ryb2tlVGhp
Y2tuZXNzKQorc3RhdGljIHZvaWQgc3Ryb2tlV2F2eVRleHREZWNvcmF0aW9uKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgRmxvYXRQb2ludCYgcDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJv
a2VUaGlja25lc3MpCiB7Ci0gICAgY29udGV4dC0+YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVz
KHAxLCBwMiwgc3Ryb2tlVGhpY2tuZXNzLCBjb250ZXh0LT5zdHJva2VTdHlsZSgpKTsKKyAgICBj
b250ZXh0LmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhwMSwgcDIsIHN0cm9rZVRoaWNrbmVz
cywgY29udGV4dC5zdHJva2VTdHlsZSgpKTsKIAogICAgIFBhdGggcGF0aDsKICAgICBwYXRoLm1v
dmVUbyhwMSk7CiAKLSAgICAvLyBEaXN0YW5jZSBiZXR3ZWVuIGRlY29yYXRpb24ncyBheGlzIGFu
ZCBCZXppZXIgY3VydmUncyBjb250cm9sIHBvaW50cy4KLSAgICAvLyBUaGUgaGVpZ2h0IG9mIHRo
ZSBjdXJ2ZSBpcyBiYXNlZCBvbiB0aGlzIGRpc3RhbmNlLiBVc2UgYSBtaW5pbXVtIG9mIDYgcGl4
ZWxzIGRpc3RhbmNlIHNpbmNlCi0gICAgLy8gdGhlIGFjdHVhbCBjdXJ2ZSBwYXNzZXMgYXBwcm94
aW1hdGVseSBhdCBoYWxmIG9mIHRoYXQgZGlzdGFuY2UsIHRoYXQgaXMgMyBwaXhlbHMuCi0gICAg
Ly8gVGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRoZSBjdXJ2ZSBpcyBhbHNvIGFwcHJveGltYXRlbHkg
MyBwaXhlbHMuIEluY3JlYXNlcyB0aGUgY3VydmUncyBoZWlnaHQKLSAgICAvLyBhcyBzdHJvY2tU
aGlja25lc3MgaW5jcmVhc2VzIHRvIG1ha2UgdGhlIGN1cnZlIGxvb2tzIGJldHRlci4KLSAgICBm
bG9hdCBjb250cm9sUG9pbnREaXN0YW5jZSA9IDMgKiBtYXg8ZmxvYXQ+KDIsIHN0cm9rZVRoaWNr
bmVzcyk7Ci0KLSAgICAvLyBJbmNyZW1lbnQgdXNlZCB0byBmb3JtIHRoZSBkaWFtb25kIHNoYXBl
IGJldHdlZW4gc3RhcnQgcG9pbnQgKHAxKSwgY29udHJvbAotICAgIC8vIHBvaW50cyBhbmQgZW5k
IHBvaW50IChwMikgYWxvbmcgdGhlIGF4aXMgb2YgdGhlIGRlY29yYXRpb24uIE1ha2VzIHRoZQot
ICAgIC8vIGN1cnZlIHdpZGVyIGFzIHN0cm9ja1RoaWNrbmVzcyBpbmNyZWFzZXMgdG8gbWFrZSB0
aGUgY3VydmUgbG9va3MgYmV0dGVyLgotICAgIGZsb2F0IHN0ZXAgPSAyICogbWF4PGZsb2F0Pigy
LCBzdHJva2VUaGlja25lc3MpOworICAgIGZsb2F0IGNvbnRyb2xQb2ludERpc3RhbmNlOworICAg
IGZsb2F0IHN0ZXA7CisgICAgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoc3Ryb2tlVGhpY2tuZXNz
LCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcCk7CiAKICAgICBib29sIGlzVmVydGljYWxMaW5l
ID0gKHAxLngoKSA9PSBwMi54KCkpOwogCkBAIC05MDcsMTMgKzkxMyw2NiBAQCBzdGF0aWMgdm9p
ZCBzdHJva2VXYXZ5VGV4dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBGbG9h
dFBvaW50JiBwMSwgRgogICAgICAgICB9CiAgICAgfQogCi0gICAgY29udGV4dC0+c2V0U2hvdWxk
QW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnN0cm9rZVBhdGgocGF0aCk7CisgICAgY29u
dGV4dC5zZXRTaG91bGRBbnRpYWxpYXModHJ1ZSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBh
dGgpOworfQorCisvLyBCZWNhdXNlIGZpbmRpbmcgdGhlIGJvdW5kaW5nIGJveCBvZiBhbiB1bmRl
cmxpbmUgaXMgc3RydWN0dXJhbGx5IHNpbWlsYXIgdG8gZmluZGluZworLy8gdGhlIGJvdW5kaW5n
IGJveCBvZiBhIHN0cmlrZXRocm91Z2gsIHdlIGNhbiBwdWxsIG91dCB0aGUgY29tcHV0YXRpb24g
YW5kIHBhcmFtZXRlcml6ZQorLy8gYnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNvcmF0aW9uICh5
T2Zmc2V0LCB1bmRlcmxpbmVPZmZzZXQsIGFuZCBkb3VibGVPZmZzZXQpLgorc3RhdGljIEZsb2F0
UmVjdCBib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBmbG9hdCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywKKyAgICBmbG9hdCB3aWR0aCwgRmxv
YXRQb2ludCBsb2NhbE9yaWdpbiwgVGV4dERlY29yYXRpb25TdHlsZSBkZWNvcmF0aW9uU3R5bGUs
CisgICAgYm9vbCBpc1ByaW50aW5nLCBmbG9hdCB5T2Zmc2V0LCBmbG9hdCB1bmRlcmxpbmVPZmZz
ZXQsIGZsb2F0IGRvdWJsZU9mZnNldCkKK3sKKyAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3g7CisK
KyAgICBzd2l0Y2ggKGRlY29yYXRpb25TdHlsZSkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25T
dHlsZVdhdnk6IHsKKyAgICAgICAgRmxvYXRQb2ludCBzdGFydChsb2NhbE9yaWdpbi54KCksIGxv
Y2FsT3JpZ2luLnkoKSArIHlPZmZzZXQpOworICAgICAgICBGbG9hdFBvaW50IGVuZCA9IHN0YXJ0
ICsgRmxvYXRTaXplKHdpZHRoLCAwKTsKKyAgICAgICAgY29udGV4dC5hZGp1c3RMaW5lVG9QaXhl
bEJvdW5kYXJpZXMoc3RhcnQsIGVuZCwgdGV4dERlY29yYXRpb25UaGlja25lc3MsIGNvbnRleHQu
c3Ryb2tlU3R5bGUoKSk7CisKKyAgICAgICAgZmxvYXQgY29udHJvbFBvaW50RGlzdGFuY2U7Cisg
ICAgICAgIGZsb2F0IHN0ZXA7CisgICAgICAgIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKHRleHRE
ZWNvcmF0aW9uVGhpY2tuZXNzLCBjb250cm9sUG9pbnREaXN0YW5jZSwgc3RlcCk7CisKKyAgICAg
ICAgYWRqdXN0U3RlcFRvRGVjb3JhdGlvbkxlbmd0aChzdGVwLCBjb250cm9sUG9pbnREaXN0YW5j
ZSwgd2lkdGgpOworCisgICAgICAgIGNvbnRyb2xQb2ludERpc3RhbmNlICs9IHRleHREZWNvcmF0
aW9uVGhpY2tuZXNzOworICAgICAgICBGbG9hdFBvaW50IGJvdW5kaW5nQm94T3JpZ2luID0gc3Rh
cnQgLSBGbG9hdFNpemUoMCwgY29udHJvbFBvaW50RGlzdGFuY2UpOworICAgICAgICBGbG9hdFNp
emUgYm91bmRpbmdCb3hTaXplID0gRmxvYXRTaXplKHdpZHRoLCAyICogY29udHJvbFBvaW50RGlz
dGFuY2UpOworICAgICAgICBib3VuZGluZ0JveCA9IEZsb2F0UmVjdChib3VuZGluZ0JveE9yaWdp
biwgYm91bmRpbmdCb3hTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6
CisgICAgICAgIGJvdW5kaW5nQm94ID0gY29udGV4dC5jb21wdXRlTGluZUJvdW5kc0ZvclRleHQo
bG9jYWxPcmlnaW4gKyBGbG9hdFNpemUoMCwgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGlzUHJp
bnRpbmcpOworICAgICAgICBpZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0aW9uU3R5
bGVEb3VibGUpCisgICAgICAgICAgICBib3VuZGluZ0JveC51bml0ZShjb250ZXh0LmNvbXB1dGVM
aW5lQm91bmRzRm9yVGV4dChsb2NhbE9yaWdpbiArIEZsb2F0U2l6ZSgwLCBkb3VibGVPZmZzZXQp
LCB3aWR0aCwgaXNQcmludGluZykpOworICAgIH0KKyAgICByZXR1cm4gYm91bmRpbmdCb3g7Cit9
CisKK3N0YXRpYyBGbG9hdFJlY3QgYm91bmRpbmdCb3hGb3JBbGxBY3RpdmVEZWNvcmF0aW9ucyhJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFRl
eHREZWNvcmF0aW9uIGRlY29yYXRpb24sIGZsb2F0IHRleHREZWNvcmF0aW9uVGhpY2tuZXNzLCBm
bG9hdCB3aWR0aCwgZmxvYXQgZG91YmxlT2Zmc2V0LCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29y
YXRpb25TdHlsZSwgY29uc3QgRmxvYXRQb2ludCBsb2NhbE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5
bGUmIGxpbmVTdHlsZSwgYm9vbCBpc1ByaW50aW5nLCBpbnQgYmFzZWxpbmUpCit7CisgICAgRmxv
YXRSZWN0IGJvdW5kaW5nQm94OworICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25V
bmRlcmxpbmUpIHsKKyAgICAgICAgaW50IHVuZGVybGluZU9mZnNldCA9IGNvbXB1dGVVbmRlcmxp
bmVPZmZzZXQobGluZVN0eWxlLnRleHRVbmRlcmxpbmVQb3NpdGlvbigpLCBsaW5lU3R5bGUuZm9u
dE1ldHJpY3MoKSwgJmlubGluZVRleHRCb3gsIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKKyAg
ICAgICAgCisgICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJvdW5kaW5nQm94Rm9yU2luZ2xlRGVj
b3JhdGlvbihjb250ZXh0LCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGxvY2FsT3Jp
Z2luLCBkZWNvcmF0aW9uU3R5bGUsIGlzUHJpbnRpbmcsIHVuZGVybGluZU9mZnNldCArIGRvdWJs
ZU9mZnNldCwgdW5kZXJsaW5lT2Zmc2V0LCBiYXNlbGluZSArIDEpKTsKKyAgICB9CisgICAgaWYg
KGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5lKQorICAgICAgICBib3VuZGluZ0Jv
eC51bml0ZShib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oY29udGV4dCwgdGV4dERlY29y
YXRpb25UaGlja25lc3MsIHdpZHRoLCBsb2NhbE9yaWdpbiwgZGVjb3JhdGlvblN0eWxlLCBpc1By
aW50aW5nLCAtZG91YmxlT2Zmc2V0LCAwLCAtZG91YmxlT2Zmc2V0KSk7CisgICAgaWYgKGRlY29y
YXRpb24gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoKQorICAgICAgICBib3VuZGluZ0JveC51
bml0ZShib3VuZGluZ0JveEZvclNpbmdsZURlY29yYXRpb24oY29udGV4dCwgdGV4dERlY29yYXRp
b25UaGlja25lc3MsIHdpZHRoLCBsb2NhbE9yaWdpbiwgZGVjb3JhdGlvblN0eWxlLCBpc1ByaW50
aW5nLCAyICogYmFzZWxpbmUgLyAzLCAyICogYmFzZWxpbmUgLyAzLCBkb3VibGVPZmZzZXQgKyAy
ICogYmFzZWxpbmUgLyAzKSk7CisgICAgcmV0dXJuIGJvdW5kaW5nQm94OwogfQogI2VuZGlmIC8v
IENTUzNfVEVYVF9ERUNPUkFUSU9OCiAKLXZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0
aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2lu
LCBUZXh0RGVjb3JhdGlvbiBkZWNvLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHls
ZSwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQordm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERl
Y29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIFRleHREZWNvcmF0aW9uIGRlY29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUgZGVj
b3JhdGlvblN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIFRleHRQYWludGVyJiB0ZXh0
UGFpbnRlcikKIHsKKyNpZiAhRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQorICAgIFVOVVNF
RF9QQVJBTSh0ZXh0UGFpbnRlcik7CisjZW5kaWYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlt
cHJvdmUgdGhpcyBydWxlIGFuZCBub3QgYWx3YXlzIGp1c3QgYXNzdW1lIDEuCiAgICAgY29uc3Qg
ZmxvYXQgdGV4dERlY29yYXRpb25UaGlja25lc3MgPSAxLmY7CiAKQEAgLTkzMSwxNSArOTkwLDE1
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAgICAKICAgICAvLyBHZXQgdGhlIHRleHQgZGVj
b3JhdGlvbiBjb2xvcnMuCiAgICAgQ29sb3IgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91
Z2g7Ci0gICAgcmVuZGVyZXIoKS5nZXRUZXh0RGVjb3JhdGlvbkNvbG9ycyhkZWNvLCB1bmRlcmxp
bmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSk7CisgICAgcmVuZGVyZXIoKS5nZXRUZXh0
RGVjb3JhdGlvbkNvbG9ycyhkZWNvcmF0aW9uLCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhy
b3VnaCwgdHJ1ZSk7CiAgICAgaWYgKGlzRmlyc3RMaW5lKCkpCi0gICAgICAgIHJlbmRlcmVyKCku
Z2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjbywgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRo
cm91Z2gsIHRydWUsIHRydWUpOworICAgICAgICByZW5kZXJlcigpLmdldFRleHREZWNvcmF0aW9u
Q29sb3JzKGRlY29yYXRpb24sIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0cnVl
LCB0cnVlKTsKICAgICAKICAgICAvLyBVc2UgYSBzcGVjaWFsIGZ1bmN0aW9uIGZvciB1bmRlcmxp
bmVzIHRvIGdldCB0aGUgcG9zaXRpb25pbmcgZXhhY3RseSByaWdodC4KICAgICBib29sIGlzUHJp
bnRpbmcgPSByZW5kZXJlcigpLmRvY3VtZW50KCkucHJpbnRpbmcoKTsKLSAgICBjb250ZXh0LT5z
ZXRTdHJva2VUaGlja25lc3ModGV4dERlY29yYXRpb25UaGlja25lc3MpOworICAgIGNvbnRleHQu
c2V0U3Ryb2tlVGhpY2tuZXNzKHRleHREZWNvcmF0aW9uVGhpY2tuZXNzKTsKIAotICAgIGJvb2wg
bGluZXNBcmVPcGFxdWUgPSAhaXNQcmludGluZyAmJiAoIShkZWNvICYgVGV4dERlY29yYXRpb25V
bmRlcmxpbmUpIHx8IHVuZGVybGluZS5hbHBoYSgpID09IDI1NSkgJiYgKCEoZGVjbyAmIFRleHRE
ZWNvcmF0aW9uT3ZlcmxpbmUpIHx8IG92ZXJsaW5lLmFscGhhKCkgPT0gMjU1KSAmJiAoIShkZWNv
ICYgVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgfHwgbGluZXRocm91Z2guYWxwaGEoKSA9PSAy
NTUpOworICAgIGJvb2wgbGluZXNBcmVPcGFxdWUgPSAhaXNQcmludGluZyAmJiAoIShkZWNvcmF0
aW9uICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpIHx8IHVuZGVybGluZS5hbHBoYSgpID09IDI1
NSkgJiYgKCEoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uT3ZlcmxpbmUpIHx8IG92ZXJsaW5l
LmFscGhhKCkgPT0gMjU1KSAmJiAoIShkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25MaW5lVGhy
b3VnaCkgfHwgbGluZXRocm91Z2guYWxwaGEoKSA9PSAyNTUpOwogCiAgICAgY29uc3QgUmVuZGVy
U3R5bGUmIGxpbmVTdHlsZSA9IHRoaXMtPmxpbmVTdHlsZSgpOwogICAgIGludCBiYXNlbGluZSA9
IGxpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudCgpOwpAQCAtOTU4LDggKzEwMTcsOCBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICBjbGlwUmVjdC51bml0ZShzaGFkb3dS
ZWN0KTsKICAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gbWF4KGV4dHJhT2Zmc2V0LCBtYXgoMCwg
c2hhZG93WSkgKyBzaGFkb3dFeHRlbnQpOwogICAgICAgICB9Ci0gICAgICAgIGNvbnRleHQtPnNh
dmUoKTsKLSAgICAgICAgY29udGV4dC0+Y2xpcChjbGlwUmVjdCk7CisgICAgICAgIGNvbnRleHQu
c2F2ZSgpOworICAgICAgICBjb250ZXh0LmNsaXAoY2xpcFJlY3QpOwogICAgICAgICBleHRyYU9m
ZnNldCArPSBiYXNlbGluZSArIDI7CiAgICAgICAgIGxvY2FsT3JpZ2luLm1vdmUoMCwgZXh0cmFP
ZmZzZXQpOwogICAgICAgICBzZXRDbGlwID0gdHJ1ZTsKQEAgLTk3NywxOCArMTAzNiw0NiBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UG9pbnQmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpbnQgc2hh
ZG93WCA9IGlzSG9yaXpvbnRhbCgpID8gc2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKICAgICAg
ICAgICAgIGludCBzaGFkb3dZID0gaXNIb3Jpem9udGFsKCkgPyBzaGFkb3ctPnkoKSA6IC1zaGFk
b3ctPngoKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnNldFNoYWRvdyhGbG9hdFNpemUoc2hhZG93
WCwgc2hhZG93WSAtIGV4dHJhT2Zmc2V0KSwgc2hhZG93LT5yYWRpdXMoKSwgc2hhZG93LT5jb2xv
cigpLCBjb2xvclNwYWNlKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U2hhZG93KEZsb2F0U2l6
ZShzaGFkb3dYLCBzaGFkb3dZIC0gZXh0cmFPZmZzZXQpLCBzaGFkb3ctPnJhZGl1cygpLCBzaGFk
b3ctPmNvbG9yKCksIGNvbG9yU3BhY2UpOwogICAgICAgICAgICAgc2V0U2hhZG93ID0gdHJ1ZTsK
ICAgICAgICAgICAgIHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOwogICAgICAgICB9CiAKICNpZiBF
TkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCiAgICAgICAgIC8vIE9mZnNldCBiZXR3ZWVuIGxp
bmVzIC0gYWx3YXlzIG5vbi16ZXJvLCBzbyBsaW5lcyBuZXZlciBjcm9zcyBlYWNoIG90aGVyLgot
ICAgICAgICBmbG9hdCBkb3VibGVPZmZzZXQgPSB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyArIDEu
ZjsKKyAgICAgICAgZmxvYXQgZG91YmxlT2Zmc2V0ID0gdGV4dERlY29yYXRpb25UaGlja25lc3Mg
KyAxOworICAgICAgICAKKyAgICAgICAgYm9vbCBjbGlwRGVjb3JhdGlvblRvTWFzayA9IGxpbmVT
dHlsZS50ZXh0RGVjb3JhdGlvblNraXAoKSA9PSBUZXh0RGVjb3JhdGlvblNraXBJbms7CisgICAg
ICAgIAorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4
dCwgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBEZWNvcmF0aW9uVG9NYXNrKSB7
CisgICAgICAgICAgICBjb25zdCBmbG9hdCBza2lwSW5rR2FwV2lkdGggPSAxOworCisgICAgICAg
ICAgICBzdGF0ZVNhdmVyLnNhdmUoKTsKKworICAgICAgICAgICAgRmxvYXRSZWN0IHVuZGVybGlu
ZVJlY3QgPSBib3VuZGluZ0JveEZvckFsbEFjdGl2ZURlY29yYXRpb25zKCp0aGlzLCBjb250ZXh0
LCBkZWNvcmF0aW9uLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcywgd2lkdGgsIGRvdWJsZU9mZnNl
dCwgZGVjb3JhdGlvblN0eWxlLCBsb2NhbE9yaWdpbiwgbGluZVN0eWxlLCBpc1ByaW50aW5nLCBi
YXNlbGluZSk7CisgICAgICAgICAgICBJbnRSZWN0IGVuY2xvc2luZ0RldmljZVJlY3QgPSBlbmNs
b3NpbmdJbnRSZWN0KHVuZGVybGluZVJlY3QpOworICAgICAgICAgICAgT3duUHRyPEltYWdlQnVm
ZmVyPiBpbWFnZUJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihlbmNsb3Np
bmdEZXZpY2VSZWN0LnNpemUoKSk7CisKKyAgICAgICAgICAgIGlmIChpbWFnZUJ1ZmZlci5nZXQo
KSkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgbWFza0NvbnRleHQgPSAqaW1h
Z2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICAgICAgICAgICAgICBtYXNrQ29udGV4dC5zZXRGaWxs
Q29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgICAg
ICBtYXNrQ29udGV4dC5zZXRMaW5lSm9pbihSb3VuZEpvaW4pOworICAgICAgICAgICAgICAgIG1h
c2tDb250ZXh0LnRyYW5zbGF0ZShGbG9hdFBvaW50KCkgLSBlbmNsb3NpbmdEZXZpY2VSZWN0Lmxv
Y2F0aW9uKCkpOworCisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQuZmlsbFJlY3QoZW5jbG9z
aW5nRGV2aWNlUmVjdCk7CisgICAgICAgICAgICAgICAgbWFza0NvbnRleHQuc2V0Q29tcG9zaXRl
T3BlcmF0aW9uKENvbXBvc2l0ZUNsZWFyKTsKKyAgICAKKyAgICAgICAgICAgICAgICB0ZXh0UGFp
bnRlci5wYWludFRleHRJbkNvbnRleHQobWFza0NvbnRleHQsIHNraXBJbmtHYXBXaWR0aCk7CisK
KyAgICAgICAgICAgICAgICBjb250ZXh0LmNsaXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLmdl
dCgpLCBlbmNsb3NpbmdEZXZpY2VSZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogI2Vu
ZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFUSU9OCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0
eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxlKGRlY29yYXRpb25TdHlsZSkpOwot
ICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uVW5kZXJsaW5lKSB7Ci0gICAgICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcih1bmRlcmxpbmUsIGNvbG9yU3BhY2UpOworICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRleHREZWNvcmF0aW9uU3R5bGVUb1N0cm9rZVN0eWxl
KGRlY29yYXRpb25TdHlsZSkpOworICAgICAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0
aW9uVW5kZXJsaW5lKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKHVuZGVy
bGluZSwgY29sb3JTcGFjZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAg
ICAgICAgICAgVGV4dFVuZGVybGluZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uID0gbGluZVN0
eWxlLnRleHRVbmRlcmxpbmVQb3NpdGlvbigpOwogICAgICAgICAgICAgY29uc3QgaW50IHVuZGVy
bGluZU9mZnNldCA9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQodW5kZXJsaW5lUG9zaXRpb24sIGxp
bmVTdHlsZS5mb250TWV0cmljcygpLCB0aGlzLCB0ZXh0RGVjb3JhdGlvblRoaWNrbmVzcyk7CkBA
IC0xMDAxLDE4ICsxMDg4LDE4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREZWNvcmF0aW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4u
eCgpLCBsb2NhbE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGlu
Zyk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3TGluZUZvclRleHQoRmxvYXRQb2ludChs
b2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCksIHdpZHRo
LCBpc1ByaW50aW5nKTsKIAogICAgICAgICAgICAgICAgIGlmIChkZWNvcmF0aW9uU3R5bGUgPT0g
VGV4dERlY29yYXRpb25TdHlsZURvdWJsZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55
KCkgKyB1bmRlcmxpbmVPZmZzZXQgKyBkb3VibGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQo
bG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQgKyBkb3Vi
bGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7CiAgICAgICAgICAgICB9CiAjZWxzZQogICAg
ICAgICAgICAgLy8gTGVhdmUgb25lIHBpeGVsIG9mIHdoaXRlIGJldHdlZW4gdGhlIGJhc2VsaW5l
IGFuZCB0aGUgdW5kZXJsaW5lLgotICAgICAgICAgICAgY29udGV4dC0+ZHJhd0xpbmVGb3JUZXh0
KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyBiYXNlbGluZSAr
IDEpLCB3aWR0aCwgaXNQcmludGluZyk7CisgICAgICAgICAgICBjb250ZXh0LmRyYXdMaW5lRm9y
VGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgYmFzZWxp
bmUgKyAxKSwgd2lkdGgsIGlzUHJpbnRpbmcpOwogI2VuZGlmIC8vIENTUzNfVEVYVF9ERUNPUkFU
SU9OCiAgICAgICAgIH0KLSAgICAgICAgaWYgKGRlY28gJiBUZXh0RGVjb3JhdGlvbk92ZXJsaW5l
KSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvdmVybGluZSwgY29sb3JT
cGFjZSk7CisgICAgICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25PdmVybGluZSkg
eworICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihvdmVybGluZSwgY29sb3JTcGFj
ZSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAgICAgICAgc3dpdGNo
IChkZWNvcmF0aW9uU3R5bGUpIHsKICAgICAgICAgICAgIGNhc2UgVGV4dERlY29yYXRpb25TdHls
ZVdhdnk6IHsKQEAgLTEwMjMsMTUgKzExMTAsMTkgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWlu
dERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50Jgog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgZGVmYXVsdDoKICNlbmRpZiAvLyBDU1MzX1RFWFRf
REVDT1JBVElPTgotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdMaW5lRm9yVGV4dChsb2Nh
bE9yaWdpbiwgd2lkdGgsIGlzUHJpbnRpbmcpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZHJh
d0xpbmVGb3JUZXh0KGxvY2FsT3JpZ2luLCB3aWR0aCwgaXNQcmludGluZyk7CiAjaWYgRU5BQkxF
KENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAgICAgICAgICAgIGlmIChkZWNvcmF0aW9uU3R5
bGUgPT0gVGV4dERlY29yYXRpb25TdHlsZURvdWJsZSkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC0+ZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4ueCgpLCBsb2NhbE9y
aWdpbi55KCkgLSBkb3VibGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4u
eCgpLCBsb2NhbE9yaWdpbi55KCkgLSBkb3VibGVPZmZzZXQpLCB3aWR0aCwgaXNQcmludGluZyk7
CiAgICAgICAgICAgICB9CiAjZW5kaWYgLy8gQ1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAg
fQotICAgICAgICBpZiAoZGVjbyAmIFRleHREZWNvcmF0aW9uTGluZVRocm91Z2gpIHsKLSAgICAg
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKGxpbmV0aHJvdWdoLCBjb2xvclNwYWNlKTsK
KyNpZiBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCisgICAgICAgIGlmIChjbGlwRGVjb3Jh
dGlvblRvTWFzaykKKyAgICAgICAgICAgIHN0YXRlU2F2ZXIucmVzdG9yZSgpOworI2VuZGlmCisg
ICAgICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaCkgeworICAg
ICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihsaW5ldGhyb3VnaCwgY29sb3JTcGFjZSk7
CiAjaWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQogICAgICAgICAgICAgc3dpdGNoIChk
ZWNvcmF0aW9uU3R5bGUpIHsKICAgICAgICAgICAgIGNhc2UgVGV4dERlY29yYXRpb25TdHlsZVdh
dnk6IHsKQEAgLTEwNDIsMTkgKzExMzMsMTkgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERl
Y29yYXRpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JgogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZGVmYXVsdDoKICNlbmRpZiAvLyBDU1MzX1RFWFRfREVD
T1JBVElPTgotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdMaW5lRm9yVGV4dChGbG9hdFBv
aW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgMiAqIGJhc2VsaW5lIC8gMyks
IHdpZHRoLCBpc1ByaW50aW5nKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdMaW5lRm9y
VGV4dChGbG9hdFBvaW50KGxvY2FsT3JpZ2luLngoKSwgbG9jYWxPcmlnaW4ueSgpICsgMiAqIGJh
c2VsaW5lIC8gMyksIHdpZHRoLCBpc1ByaW50aW5nKTsKICNpZiBFTkFCTEUoQ1NTM19URVhUX0RF
Q09SQVRJT04pCiAgICAgICAgICAgICAgICAgaWYgKGRlY29yYXRpb25TdHlsZSA9PSBUZXh0RGVj
b3JhdGlvblN0eWxlRG91YmxlKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3TGlu
ZUZvclRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdpbi54KCksIGxvY2FsT3JpZ2luLnkoKSArIGRv
dWJsZU9mZnNldCArIDIgKiBiYXNlbGluZSAvIDMpLCB3aWR0aCwgaXNQcmludGluZyk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxP
cmlnaW4ueCgpLCBsb2NhbE9yaWdpbi55KCkgKyBkb3VibGVPZmZzZXQgKyAyICogYmFzZWxpbmUg
LyAzKSwgd2lkdGgsIGlzUHJpbnRpbmcpOwogICAgICAgICAgICAgfQogI2VuZGlmIC8vIENTUzNf
VEVYVF9ERUNPUkFUSU9OCiAgICAgICAgIH0KICAgICB9IHdoaWxlIChzaGFkb3cpOwogCiAgICAg
aWYgKHNldENsaXApCi0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAgICAgY29udGV4
dC5yZXN0b3JlKCk7CiAgICAgZWxzZSBpZiAoc2V0U2hhZG93KQotICAgICAgICBjb250ZXh0LT5j
bGVhclNoYWRvdygpOworICAgICAgICBjb250ZXh0LmNsZWFyU2hhZG93KCk7CiB9CiAKIHN0YXRp
YyBHcmFwaGljc0NvbnRleHQ6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlIGxpbmVTdHlsZUZvck1h
cmtlclR5cGUoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgbWFya2VyVHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4IDI2ZGRiMjEyZTliMGQwZTEzZjVj
ZTMzNDMxOTJjMjdkMzliNmUyOGUuLmE3YzJlMzEyNzFjYjAzOTJkNGZiNTA4ZjliYzFmYmFmNjBh
NjYwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtMzIs
NiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVy
bGluZTsKIGNsYXNzIERvY3VtZW50TWFya2VyOworY2xhc3MgVGV4dFBhaW50ZXI7CiAKIGNvbnN0
IHVuc2lnbmVkIHNob3J0IGNOb1RydW5jYXRpb24gPSBVU0hSVF9NQVg7CiBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBjRnVsbFRydW5jYXRpb24gPSBVU0hSVF9NQVggLSAxOwpAQCAtMTY5LDcgKzE3MCw3
IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHZvaWQgcGFpbnREZWNvcmF0
aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgVGV4dERl
Y29yYXRpb24sIFRleHREZWNvcmF0aW9uU3R5bGUsIGNvbnN0IFNoYWRvd0RhdGEqKTsKKyAgICB2
b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBi
b3hPcmlnaW4sIFRleHREZWNvcmF0aW9uLCBUZXh0RGVjb3JhdGlvblN0eWxlLCBjb25zdCBTaGFk
b3dEYXRhKiwgVGV4dFBhaW50ZXImKTsKICAgICB2b2lkIHBhaW50U2VsZWN0aW9uKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBGb250JiwgQ29sb3IgdGV4dENvbG9yKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRN
YXJrZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBEb2N1
bWVudE1hcmtlciosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYsIGJvb2wgZ3JhbW1h
cik7CiAgICAgdm9pZCBwYWludFRleHRNYXRjaE1hcmtlcihHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIERvY3VtZW50TWFya2VyKiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBGb250Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAppbmRleCAyZDMxNTUwNDg3NTY1ZjM1NGRlYWYyMTk5MDU1MWE0Y2QxOGFm
ZDk3Li45ZGNmMzZjMDg2YWVkZTgzOGViYWVjZjUyY2U3NzIwNTViYmRkZTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTc5Miw2ICs3
OTIsNyBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRleHRPckJv
cmRlck9yT3V0bGluZShjb25zdCBSZW5kZXJTdHlsZQogI2lmIEVOQUJMRShDU1MzX1RFWFRfREVD
T1JBVElPTikKICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRp
b25TdHlsZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25T
dHlsZQogICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvbkNv
bG9yICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90ZXh0RGVjb3JhdGlvbkNvbG9y
CisgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHREZWNvcmF0aW9uU2tpcCAhPSBv
dGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dERlY29yYXRpb25Ta2lwCiAjZW5kaWYgLy8g
Q1NTM19URVhUX0RFQ09SQVRJT04KICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRG
aWxsQ29sb3IgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9yCiAgICAg
ICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0U3Ryb2tlQ29sb3IgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0U3Ryb2tlQ29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxN2RiMGEyYjM3ZGRjN2U4Nzhm
NjQ4MTNiYTY3MzdmNjdjZmE5NDUxLi5mNWNiM2MxODBiMmU4NmRlMDNkZWFjY2Q2ODFmYWIxZWQ1
YmQ5NGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMTEtMDEgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0
aW9uIG9mIHRleHQtZGVjb3JhdGlvbi1za2lwIGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgdGVzdCB3aGljaCBkcmF3cyBhIHZlcnkg
bGFyZ2UgInAiIHdpdGggdGV4dC1kZWNvcmF0aW9uLXNraXA6aW5rLiBUaGUKKyAgICAgICAgdmll
d3BvcnQgaXMgcmVzdHJpY3RlZCB0byBiZSBqdXN0IGh1Z2dpbmcgdGhlIHBsYWNlIHdoZXJlIGFu
IHVuZGVybGluZSB3b3VsZAorICAgICAgICBpbnRlcnNlY3QgdGhlIGRlc2NlbmRlciBvZiB0aGUg
InAiLiBUaGlzIHNob3VsZCBsb29rIHRoZSBzYW1lIGFzIGlmIHRoZXJlIHdhcworICAgICAgICBu
byB1bmRlcmxpbmUgYXQgYWxsIChiZWNhdXNlIG9mIHRoZSBza2lwcGluZyB1bmRlcmxpbmUpLgor
CisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNv
cmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtZGVj
b3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay5odG1sOiBBZGRlZC4KKwogMjAx
My0xMC0zMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTjogQ3Jhc2hlcyBpbiAtW1VJRGVsZWdhdGUgd2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFi
YXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTpdLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9u
LXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tp
cC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yzg1
MmUzM2Y5NzQ4Y2I5YmMzNGQwNzhlYWQxNjA5MDZhOTE0ZmMwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNv
cmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+Cisg
ICAgI2JpZ3NrZXcgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgbGVmdDogLTE1
NnB4OworICAgICAgdG9wOiAtNDAwcHg7CisgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAg
ICBmb250LXNpemU6IDEycHQ7CisgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNhOworICAgICAg
LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDM3KTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9y
aWdpbjogdG9wIGxlZnQ7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIFRo
ZSBmb2xsb3dpbmcgc2hvdWxkIGJlIGFuIHVuZGVybGluZWQgaXRhbGljaXplZCAicCIgYXMgdmll
d2VkIHRocm91Z2ggYSBuYXJyb3cgc2xpdCBhcm91bmQKKyAgdGhlIGRlc2NlbmRlci4gVGhlICJw
IiBpcyBpbiAxMnB0IHNpemUsIGJ1dCBpcyBibG93biB1cCB0byBtdWNoIGxhcmdlci4gVGhpcyB0
ZXN0cyB0aGF0CisgIHRoZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIG1hc2sgaXMgY2FsY3Vs
YXRlZCB3aXRoIG1vcmUgcHJlY2lzaW9uIHRoYW4gdXNlci1zcGFjZSBwcmVjaXNpb24uCisgIElm
IHdlIGRvbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbiwgdGhlcmUgd29uJ3QgYmUgYSBuaWNlIGNy
aXNwIGVkZ2Ugb24gdGhlIHNsb3BlIG9mIHRoZSB1bmRlcmxpbmUKKyAgd2hlcmUgaXQgZ2V0cyBt
YXNrZWQgb2ZmLiBUaGlzIHRlc3Qgd291bGQgZmFpbCBiZWNhdXNlIHRoZXJlIHdvdWxkIGJlIGdh
cmJhZ2UgZ2lhbnQgcGl4ZWwKKyAgYWxpYXNpbmcgbmVhciB0aGUgY2hhcmFjdGVyLiBJZiB0ZXh0
LWRlY29yYXRpb24tc2tpcDogaW5rIGlzbid0IHdvcmtpbmcgYXQgYWxsLCB0aGVuIHRoZQorICB1
bmRlcmxpbmUgd2lsbCBzaW1wbHkgYmUgZHJhd24gbGlrZSBub3JtYWwsIGFuZCB3b24ndCBtYXRj
aCB0aGUgZXhwZWN0ZWQgY2FzZSAod2hlcmUgdGhlcmUKKyAgaXMgbm8gdW5kZXJsaW5lKQorICAg
IDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6
IDgxcHg7IGhlaWdodDogNDAwcHgiPgorICAgICAgPGRpdiBpZD0iYmlnc2tldyI+bHBsPC9kaXY+
CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0LWRlY29y
YXRpb24tc2tpcC1pbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzUwODc3YTg2MzczNWRkN2QxNjdlM2M5
NDI4ZWVmOWExOTg4NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNv
cmF0aW9uLXNraXAtaW5rLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgI2JpZ3NrZXcgeworICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgbGVmdDogLTE1NnB4OworICAgICAgdG9wOiAtNDAwcHg7CisgICAg
ICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgICBmb250LXNpemU6IDEycHQ7CisgICAgICBmb250
LWZhbWlseTogaGVsdmV0aWNhOworICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cisg
ICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBpbms7CisgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogc2NhbGUoMzcpOworICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3Ag
bGVmdDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgVGhlIGZvbGxvd2lu
ZyBzaG91bGQgYmUgYW4gdW5kZXJsaW5lZCBpdGFsaWNpemVkICJwIiBhcyB2aWV3ZWQgdGhyb3Vn
aCBhIG5hcnJvdyBzbGl0IGFyb3VuZAorICB0aGUgZGVzY2VuZGVyLiBUaGUgInAiIGlzIGluIDEy
cHQgc2l6ZSwgYnV0IGlzIGJsb3duIHVwIHRvIG11Y2ggbGFyZ2VyLiBUaGlzIHRlc3RzIHRoYXQK
KyAgdGhlIHRleHQtZGVjb3JhdGlvbi1za2lwOiBpbmsgbWFzayBpcyBjYWxjdWxhdGVkIHdpdGgg
bW9yZSBwcmVjaXNpb24gdGhhbiB1c2VyLXNwYWNlIHByZWNpc2lvbi4KKyAgSWYgd2UgZG9uJ3Qg
aGF2ZSBlbm91Z2ggcHJlY2lzaW9uLCB0aGVyZSB3b24ndCBiZSBhIG5pY2UgY3Jpc3AgZWRnZSBv
biB0aGUgc2xvcGUgb2YgdGhlIHVuZGVybGluZQorICB3aGVyZSBpdCBnZXRzIG1hc2tlZCBvZmYu
IFRoaXMgdGVzdCB3b3VsZCBmYWlsIGJlY2F1c2UgdGhlcmUgd291bGQgYmUgZ2FyYmFnZSBnaWFu
dCBwaXhlbAorICBhbGlhc2luZyBuZWFyIHRoZSBjaGFyYWN0ZXIuIElmIHRleHQtZGVjb3JhdGlv
bi1za2lwOiBpbmsgaXNuJ3Qgd29ya2luZyBhdCBhbGwsIHRoZW4gdGhlCisgIHVuZGVybGluZSB3
aWxsIHNpbXBseSBiZSBkcmF3biBsaWtlIG5vcm1hbCwgYW5kIHdvbid0IG1hdGNoIHRoZSBleHBl
Y3RlZCBjYXNlICh3aGVyZSB0aGVyZQorICBpcyBubyB1bmRlcmxpbmUpCisgICAgPGRpdiBzdHls
ZT0icG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogODFweDsgaGVp
Z2h0OiA0MDBweCI+CisgICAgICA8ZGl2IGlkPSJiaWdza2V3Ij5scGw8L2Rpdj4KKyAgICA8L2Rp
dj4KKworPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>