<?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>26869</bug_id>
          
          <creation_ts>2009-06-30 16:23:04 -0700</creation_ts>
          <short_desc>Add fill modes for CSS Animations (don&apos;t reset state after the animation finishes)</short_desc>
          <delta_ts>2010-03-05 15:11:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35772</blocked>
    
    <blocked>35815</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Matuschak">andy</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>gene</cc>
    
    <cc>ml</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129210</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Matuschak">andy</who>
    <bug_when>2009-06-30 16:23:04 -0700</bug_when>
    <thetext>The following animation seems simple:
- box 1 slides on-screen from the left
- then box 2 slides on-screen from the right
- (they stay there)

But because the styles of animated objects are reset after the animation finishes, this is not easily solved without Javascript or other ugliness.

Core Animation has fill modes which specify this kind of behavior: http://developer.apple.com/documentation/graphicsimaging/Reference/CAMediaTiming_protocol/Introduction/Introduction.html#//apple_ref/doc/constant_group/Fill_Modes

Something like this would really help build nice sequential animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171620</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-12-14 16:13:26 -0800</bug_when>
    <thetext>*** Bug 32465 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195207</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-02 13:45:52 -0800</bug_when>
    <thetext>See http://lists.w3.org/Archives/Public/www-style/2010Mar/0010.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195215</commentid>
    <comment_count>3</comment_count>
      <attachid>49843</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-02 13:56:04 -0800</bug_when>
    <thetext>Created attachment 49843
Patch and testcases for fill-mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195217</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 14:00:34 -0800</bug_when>
    <thetext>Attachment 49843 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/animation/Animation.h:62:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.h:63:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.h:102:  More than one command on the same line  [whitespace/newline] [4]
WebCore/page/animation/AnimationBase.cpp:1031:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/AnimationBase.cpp:1036:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/css/CSSParser.cpp:2578:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/KeyframeAnimation.cpp:116:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/KeyframeAnimation.cpp:128:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/KeyframeAnimation.cpp:129:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/KeyframeAnimation.cpp:241:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/page/animation/KeyframeAnimation.cpp:247:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/css/CSSStyleSelector.cpp:5665:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/page/animation/AnimationBase.h:74:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:75:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:89:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/animation/Animation.cpp:114:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.cpp:120:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 17 in 29 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>195230</commentid>
    <comment_count>5</comment_count>
      <attachid>49848</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-02 14:15:26 -0800</bug_when>
    <thetext>Created attachment 49848
updated patch (fixing some style errors)

I fixed some style errors. I left the rest because they follow the style of the existing file and would require more substantial changes for no real gain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195233</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 14:20:02 -0800</bug_when>
    <thetext>Attachment 49848 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/animation/Animation.h:102:  More than one command on the same line  [whitespace/newline] [4]
WebCore/page/animation/AnimationBase.cpp:1036:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/page/animation/AnimationBase.h:74:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:75:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:89:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/animation/Animation.cpp:114:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.cpp:120:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 7 in 29 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>195270</commentid>
    <comment_count>7</comment_count>
      <attachid>49857</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-02 15:24:50 -0800</bug_when>
    <thetext>Created attachment 49857
added convenience methods for testing fill mode

I left the style errors in after re-reading the thread on webkit-dev about not touching code outside the domain of the patch for style fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195272</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 15:28:26 -0800</bug_when>
    <thetext>Attachment 49857 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/animation/Animation.h:102:  More than one command on the same line  [whitespace/newline] [4]
WebCore/page/animation/AnimationBase.h:74:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:75:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:89:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/animation/Animation.cpp:114:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.cpp:120:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 6 in 29 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>195277</commentid>
    <comment_count>9</comment_count>
      <attachid>49857</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-02 15:41:26 -0800</bug_when>
    <thetext>Comment on attachment 49857
added convenience methods for testing fill mode

&gt; diff --git a/LayoutTests/animations/fill-mode-transform.html b/LayoutTests/animations/fill-mode-transform.html

&gt; +      setTimeout(&quot;snapshot(&apos;a&apos;, 0)&quot;, 100);
&gt; +      setTimeout(&quot;snapshot(&apos;a&apos;, 1)&quot;, 500);
&gt; +      setTimeout(&quot;snapshot(&apos;a&apos;, 2)&quot;, 1350);
&gt; +      setTimeout(&quot;snapshot(&apos;b&apos;, 3)&quot;, 100);
&gt; +      setTimeout(&quot;snapshot(&apos;b&apos;, 4)&quot;, 500);
&gt; +      setTimeout(&quot;snapshot(&apos;b&apos;, 5)&quot;, 1350);
&gt; +      setTimeout(&quot;snapshot(&apos;c&apos;, 6)&quot;, 100);
&gt; +      setTimeout(&quot;snapshot(&apos;c&apos;, 7)&quot;, 500);
&gt; +      setTimeout(&quot;snapshot(&apos;c&apos;, 8)&quot;, 1350);
&gt; +      setTimeout(&quot;snapshot(&apos;d&apos;, 9)&quot;, 100);
&gt; +      setTimeout(&quot;snapshot(&apos;d&apos;, 10)&quot;, 500);
&gt; +      setTimeout(&quot;snapshot(&apos;d&apos;, 11)&quot;, 1350);

A test like this will fail on the bots sporadically. We shouldn&apos;t add any new animation tests that rely on setTimeout.

&gt; diff --git a/WebCore/css/CSSComputedStyleDeclaration.cpp b/WebCore/css/CSSComputedStyleDeclaration.cpp
&gt; index 8039e35..407450c 100644
&gt; --- a/WebCore/css/CSSComputedStyleDeclaration.cpp
&gt; +++ b/WebCore/css/CSSComputedStyleDeclaration.cpp
&gt; @@ -146,6 +146,7 @@ static const int computedProperties[] = {
&gt;      CSSPropertyWebkitAnimationDelay,
&gt;      CSSPropertyWebkitAnimationDirection,
&gt;      CSSPropertyWebkitAnimationDuration,
&gt; +    CSSPropertyWebkitAnimationFillMode,
&gt;      CSSPropertyWebkitAnimationIterationCount,
&gt;      CSSPropertyWebkitAnimationName,
&gt;      CSSPropertyWebkitAnimationPlayState,
&gt; @@ -1198,6 +1199,24 @@ PassRefPtr&lt;CSSValue&gt; CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
&gt;          }
&gt;          case CSSPropertyWebkitAnimationDuration:
&gt;              return getDurationValue(style-&gt;animations());
&gt; +        case CSSPropertyWebkitAnimationFillMode: {
&gt; +            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
&gt; +            const AnimationList* t = style-&gt;animations();
&gt; +            if (t) {
&gt; +                for (size_t i = 0; i &lt; t-&gt;size(); ++i) {
&gt; +                    if (t-&gt;animation(i)-&gt;fillMode() == Animation::AnimationFillModeNone)
&gt; +                        list-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueNone));
&gt; +                    else if (t-&gt;animation(i)-&gt;fillMode() == Animation::AnimationFillModeForwards)
&gt; +                        list-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueForwards));
&gt; +                    else if (t-&gt;animation(i)-&gt;fillMode() == Animation::AnimationFillModeBackwards)
&gt; +                        list-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueBackwards));
&gt; +                    else
&gt; +                        list-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueBoth));

Use a switch()?

&gt; diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp

&gt; +    CSSPrimitiveValue* primitiveValue = static_cast&lt;CSSPrimitiveValue*&gt;(value);
&gt; +    switch (primitiveValue-&gt;getIdent()) {
&gt; +

Extra blank line here.

&gt; diff --git a/WebCore/page/animation/AnimationBase.cpp b/WebCore/page/animation/AnimationBase.cpp

&gt;                  }
&gt; +
&gt;              } else {

Extra line here.

&gt; diff --git a/WebCore/page/animation/KeyframeAnimation.cpp b/WebCore/page/animation/KeyframeAnimation.cpp

&gt; @@ -233,12 +235,12 @@ void KeyframeAnimation::endAnimation()
&gt;  #if USE(ACCELERATED_COMPOSITING)
&gt;      if (m_object-&gt;hasLayer()) {
&gt;          RenderLayer* layer = toRenderBoxModelObject(m_object)-&gt;layer();
&gt; -        if (layer-&gt;isComposited())
&gt; +        if (layer-&gt;isComposited() &amp;&amp; !m_animation-&gt;fillsForwards())
&gt;              layer-&gt;backing()-&gt;animationFinished(m_keyframes.animationName());

Why are we calling endAnimation() if it fills fowrards?

&gt; diff --git a/WebCore/platform/animation/Animation.h b/WebCore/platform/animation/Animation.h

&gt; @@ -119,6 +129,7 @@ private:
&gt;      int m_iterationCount;
&gt;      double m_delay;
&gt;      double m_duration;
&gt; +    AnimationFillMode m_fillMode : 2;

Put this next to the other bitfield member to optimize packing.

&gt; diff --git a/WebCore/platform/graphics/mac/GraphicsLayerCA.mm b/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
&gt; index 22e39f5..9e79b8f 100644
&gt; --- a/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
&gt; +++ b/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
&gt; @@ -1859,12 +1859,20 @@ void GraphicsLayerCA::setupAnimation(CAPropertyAnimation* propertyAnim, const An
&gt;      else if (anim-&gt;direction() == Animation::AnimationDirectionAlternate)
&gt;          repeatCount /= 2;
&gt;  
&gt; +    NSString* fillMode = kCAFillModeRemoved;
&gt; +    if (anim-&gt;fillMode() == Animation::AnimationFillModeBackwards)
&gt; +       fillMode = kCAFillModeBackwards;
&gt; +    else if (anim-&gt;fillMode() == Animation::AnimationFillModeForwards)
&gt; +       fillMode = kCAFillModeForwards;
&gt; +    else if (anim-&gt;fillMode() == Animation::AnimationFillModeBoth)
&gt; +       fillMode = kCAFillModeBoth;

switch()?

r=me, if you can explain why calling endAnimation() is correct even when filling forwards, and fix up the layout tests not rely on a lot of setTimeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195302</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-02 16:15:17 -0800</bug_when>
    <thetext>&gt; r=me, if you can explain why calling endAnimation() is correct even when
&gt; filling forwards

That&apos;s because the state machine calls endAnimation when it no longer needs to do calculations - basically when it enters the Done state (and now FillingForwards). We still want to fire the events and make the last paint (because we may not have painted at progress == 1)

&gt; and fix up the layout tests not rely on a lot of setTimeouts.

This is a pretty huge task, since it would require fixing the pause animation API - which doesn&apos;t handle animation-delay (and delay is essential to test filling backwards). This sounds like a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195664</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-03 10:55:00 -0800</bug_when>
    <thetext>We found a bug. Don&apos;t commit this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195667</commentid>
    <comment_count>12</comment_count>
      <attachid>49857</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-03 11:00:06 -0800</bug_when>
    <thetext>Comment on attachment 49857
added convenience methods for testing fill mode

cancelling review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195864</commentid>
    <comment_count>13</comment_count>
      <attachid>49979</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-03 19:32:29 -0800</bug_when>
    <thetext>Created attachment 49979
updated patch

Cleaned up the patch a lot. Removal of animations now works. Also, endAnimation() is unchanged, with other parts of the code guarding against entering it.

The tests now do not use timeouts (*), which should make the bots happy. They are slightly less comprehensive as a result, but too bad. Added an extra test for animation removal.

(*) There is one timeout, but that is a zero delay just to give style a chance to resolve. The result of the test is not dependent on timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195866</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-03 19:38:21 -0800</bug_when>
    <thetext>Attachment 49979 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/animation/Animation.h:102:  More than one command on the same line  [whitespace/newline] [4]
WebCore/page/animation/AnimationBase.h:74:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:75:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:89:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/animation/Animation.cpp:116:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.cpp:120:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 6 in 31 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>195982</commentid>
    <comment_count>15</comment_count>
      <attachid>50001</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-04 02:56:24 -0800</bug_when>
    <thetext>Created attachment 50001
fill mode patch

minor build error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195985</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-04 03:01:48 -0800</bug_when>
    <thetext>Attachment 50001 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/animation/Animation.h:102:  More than one command on the same line  [whitespace/newline] [4]
WebCore/page/animation/AnimationBase.h:74:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:75:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/animation/AnimationBase.h:89:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/animation/Animation.cpp:116:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/platform/animation/Animation.cpp:120:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 6 in 31 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>196147</commentid>
    <comment_count>17</comment_count>
      <attachid>50001</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-03-04 11:16:01 -0800</bug_when>
    <thetext>Comment on attachment 50001
fill mode patch

&gt; diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
&gt; index ed01ea2..03b5f1b 100644
&gt; --- a/LayoutTests/ChangeLog
&gt; +++ b/LayoutTests/ChangeLog
&gt; @@ -1,3 +1,32 @@
&gt; +2010-03-03  Dean Jackson  &lt;dino@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Reviewed by Simon Fraser and Chris Marrin.
&gt; +
&gt; +        Bug 26869: Add fill modes for CSS Animations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=26869
&gt;                  
&gt;                  if (m_object) {
&gt; -                    resumeOverriddenAnimations();
&gt; +                    if (m_animation-&gt;fillsForwards())
&gt; +                        m_animState = AnimationStateFillingForwards;
&gt; +                    else
&gt; +                        resumeOverriddenAnimations();

The interaction between fill-mode and resumed transitions needs to be tested. I don&apos;t think it will work in it&apos;s current form. When you&apos;re in AnimationStateFillingForwards and the animation is destroyed, you probably need to call resumeOverriddenAnimations().

&gt; +        case AnimationStateFillingForwards:
&gt;          case AnimationStateDone:
&gt;              // We&apos;re done. Stay in this state until we are deleted
&gt;              break;

Maybe getting an event in this state should call resumeOverriddenAnimations()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196401</commentid>
    <comment_count>18</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-05 05:00:05 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/animations/computed-style-expected.txt
	M	LayoutTests/animations/computed-style.html
	A	LayoutTests/animations/fill-mode-expected.txt
	A	LayoutTests/animations/fill-mode-removed-expected.txt
	A	LayoutTests/animations/fill-mode-removed.html
	A	LayoutTests/animations/fill-mode-transform-expected.txt
	A	LayoutTests/animations/fill-mode-transform.html
	A	LayoutTests/animations/fill-mode.html
	M	LayoutTests/animations/fill-unset-properties-expected.txt
	M	LayoutTests/animations/fill-unset-properties.html
	M	LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt
	M	LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt
	M	LayoutTests/platform/mac/fast/css/getComputedStyle/computed-style-expected.txt
	M	LayoutTests/platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt
	M	LayoutTests/svg/css/getComputedStyle-basic-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/css/CSSComputedStyleDeclaration.cpp
	M	WebCore/css/CSSParser.cpp
	M	WebCore/css/CSSParser.h
	M	WebCore/css/CSSPropertyNames.in
	M	WebCore/css/CSSStyleSelector.cpp
	M	WebCore/css/CSSStyleSelector.h
	M	WebCore/css/CSSValueKeywords.in
	M	WebCore/page/animation/AnimationBase.cpp
	M	WebCore/page/animation/AnimationBase.h
	M	WebCore/page/animation/KeyframeAnimation.cpp
	M	WebCore/platform/animation/Animation.cpp
	M	WebCore/platform/animation/Animation.h
	M	WebCore/platform/animation/AnimationList.cpp
	M	WebCore/platform/graphics/mac/GraphicsLayerCA.mm
Committed r55576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196649</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 14:06:13 -0800</bug_when>
    <thetext>This broke the leopard bots:
http://build.webkit.org/results/Leopard%20Intel%20Release%20(Tests)/r55576%20(11326)/animations/fill-mode-transform-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196674</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 14:36:35 -0800</bug_when>
    <thetext>Bots have been broken for 9 hours.  I&apos;ll email Dino and Simon, but I think we should roll this out.

http://trac.webkit.org/changeset/55576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196687</commentid>
    <comment_count>21</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-05 14:44:09 -0800</bug_when>
    <thetext>Let&apos;s not rollout just yet. I&apos;ll update the Leopard expected results. In fact, they are the correct results. It&apos;s actually caused by another bug (mentioned in the diagnosis 35714)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196701</commentid>
    <comment_count>22</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2010-03-05 14:54:57 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/mac-leopard/Skipped
Committed r55596

Skipped the test on leopard. Other tests hit the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196706</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 14:58:17 -0800</bug_when>
    <thetext>Thank you for fixing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49843</attachid>
            <date>2010-03-02 13:56:04 -0800</date>
            <delta_ts>2010-03-02 14:15:26 -0800</delta_ts>
            <desc>Patch and testcases for fill-mode</desc>
            <filename>fill-mode.patch</filename>
            <type>text/plain</type>
            <size>45526</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDAxZWEyLi5iOGE2Y2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDMt
MDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyNjg2OTogQWRkIGZpbGwgbW9kZXMgZm9y
IENTUyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjg2OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlIHByb3BlcnR5LAorICAgICAgICBhbmQgdXBkYXRlIGV4aXN0aW5nIGNvbXB1dGVk
IHN0eWxlIHRlc3RzIHdpdGggdGhlIAorICAgICAgICBuZXcgcHJvcGVydHkuCisKKyAgICAgICAg
KiBhbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmlt
YXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwt
bW9kZS10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0w
Mi0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhhdGNoZXIgYW5kIFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGViNDBhN2QuLjY4
YjA5MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBAQCBQQVNTIHRlc3QxU3R5bGUud2Via2l0QW5pbWF0
aW9uTmFtZSBpcyAnYW5pbTEnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSBp
cyAnYW5pbTIsIGFuaW0zJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9u
IGlzICcxMHMnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gaXMgJzVz
LCAyLjVzJworUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIGlzICdiYWNr
d2FyZHMnCitQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgaXMgJ2Zvcndh
cmRzLCBib3RoJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
IGlzICcxMCcKIFBBU1MgdGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBp
cyAnMTAsIGluZmluaXRlJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvblRpbWluZ0Z1
bmN0aW9uIGlzICdjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSknCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggNDdmM2I5ZC4uODljOGVlZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiBhbmltMTsKICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwczsKKyAgICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CiAgICAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTA7CiAgICAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1k
aXJlY3Rpb246IG5vcm1hbDsKQEAgLTIwLDYgKzIxLDcgQEAKICAgICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltMiwgYW5pbTM7CiAg
ICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1cywgMjUwMG1zOworICAgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBib3RoOwogICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZpbml0ZTsKICAgICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIsIGVhc2UtaW4tb3V0OwogICAg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRlOwpAQCAt
NjAsNiArNjIsOSBAQCBzaG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwg
IidhbmltMiwgYW5pbTMnIik7CiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25E
dXJhdGlvbiIsICInMTBzJyIpOwogc2hvdWxkQmUoInRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9u
RHVyYXRpb24iLCAiJzVzLCAyLjVzJyIpOwogCitzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRB
bmltYXRpb25GaWxsTW9kZSIsICInYmFja3dhcmRzJyIpOworc2hvdWxkQmUoInRlc3QyU3R5bGUu
d2Via2l0QW5pbWF0aW9uRmlsbE1vZGUiLCAiJ2ZvcndhcmRzLCBib3RoJyIpOworCiBzaG91bGRC
ZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAnIik7CiBz
aG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAs
IGluZmluaXRlJyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwt
bW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiMTZlYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJhIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYiIgZWxlbWVudCBhdCAwLjFzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImMiIGVs
ZW1lbnQgYXQgMC4xcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJkIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYSIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImIiIGVs
ZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMjUKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJjIiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjI1CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiZCIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImEiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJiIiBlbGVtZW50IGF0IDEuM3Mgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYyIgZWxlbWVudCBhdCAxLjNzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDMwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImQiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAzMDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFhOTgwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg4MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTMw
IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0
aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisK
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNp
bXBsZSBmaWxsIG1vZGUgb24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoMTAwcHgpOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMjVzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1lcyAiYW5pbSIgeworICAgICAg
ICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMDBweCk7IH0KKyAgICAgICAg
dG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMzAwcHgpOyB9CisgICAgfQorICAg
ICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRz
OworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CisgICAgfQorICAgICNkIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIH0KKyAgCisgIHJlc3Vs
dCA9ICIiOworCisgIGNvbnN0IGV4cGVjdGVkID0gIFsgCisgICAgICAgICAgICAgICAgICAgICAg
WyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAg
ICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBhIGF0IDAuNSAtIDAuMjUgaW50
byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQg
MS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIw
MCwwIF0sIC8vIGIgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAg
ICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBiIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAg
ICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGIgYXQgMS4zNSAtIDAuMSBh
ZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGMg
YXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAs
MSwyMjUsMCBdLCAvLyBjIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAg
ICAgICAgWyAxLDAsMCwxLDMwMCwwIF0sIC8vIGMgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisg
ICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIwMCwwIF0sIC8vIGQgYXQgMC4xIC0gMC4x
NSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAv
LyBkIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAs
MCwxLDMwMCwwIF0sIC8vIGQgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAg
ICAgICAgIF07CisgIGNvbnN0IHRvbGVyYW5jZSA9IFsgMC4yLDAuMiwwLjIsMC4yLDUsMC4yIF07
CisgIGNvbnN0IHByb3AgPSBbICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIgXTsKKyAgCisg
IGZ1bmN0aW9uIGlzRXF1YWwoYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCisgIHsKKyAgICAg
IHZhciBkaWZmID0gTWF0aC5hYnMoYWN0dWFsIC0gZGVzaXJlZCk7CisgICAgICByZXR1cm4gZGlm
ZiA8PSB0b2xlcmFuY2U7CisgIH0KKyAgCisgIHZhciBudW1TbmFwc2hvdHMgPSAwOworICAKKyAg
ZnVuY3Rpb24gc25hcHNob3QoaWQsIGluZGV4KQorICB7CisgICAgICB2YXIgdCA9IG5ldyBXZWJL
aXRDU1NNYXRyaXgod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpKS53ZWJraXRUcmFuc2Zvcm0pOworICAgICAgZm9yIChpID0gMDsgaSA8IDY7ICsraSkg
eworICAgICAgICAgIGlmICghaXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFtpbmRleF1baV0s
IHRvbGVyYW5jZVtpXSkpCisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtLSAnIitwcm9w
W2ldKyInIHdhczogIit0W3Byb3BbaV1dKyIsIGV4cGVjdGVkOiAiK2V4cGVjdGVkW2luZGV4XVtp
XSsiIG9uIHJ1bjogIiArIGluZGV4ICsgIiBsb29raW5nIGF0IGVsZW1lbnQ6ICIgKyBpZCArICI8
YnI+IjsKKyAgICAgIH0KKyAgICAgIAorICAgICAgbnVtU25hcHNob3RzKys7CisgICAgICBpZiAo
bnVtU25hcHNob3RzID09IDEyKSB7CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdCB8fCAiUEFTUyI7CisgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICB9CisKKyAgZnVuY3Rpb24gc3RhcnQoKQor
ICB7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYScsIDApIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdhJywgMSkiLCA1MDApOworICAgICAgc2V0VGltZW91dCgic25h
cHNob3QoJ2EnLCAyKSIsIDEzNTApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3QoJ2InLCAz
KSIsIDEwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYicsIDQpIiwgNTAwKTsKKyAg
ICAgIHNldFRpbWVvdXQoInNuYXBzaG90KCdiJywgNSkiLCAxMzUwKTsKKyAgICAgIHNldFRpbWVv
dXQoInNuYXBzaG90KCdjJywgNikiLCAxMDApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3Qo
J2MnLCA3KSIsIDUwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYycsIDgpIiwgMTM1
MCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnZCcsIDkpIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdkJywgMTApIiwgNTAwKTsKKyAgICAgIHNldFRpbWVvdXQoInNu
YXBzaG90KCdkJywgMTEpIiwgMTM1MCk7CisgIH0KKyAgCisgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgc3RhcnQsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0
aCBmb3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3
aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0
cyBlYWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJh
IiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4K
KyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJk
cworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9maWxsLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjcx
YjFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUu
aHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+
CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBhbmltYXRpb248L3RpdGxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZGVsYXk6IDAuMjVzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1uYW1lOiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1l
cyAiYW5pbSIgeworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7IH0KKyAgICAgICAgdG8gICB7
IGxlZnQ6IDMwMHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQor
ICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTog
Zm9yd2FyZHM7CisgICAgfQorICAgICNkIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxv
dzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQgc3JjPSJhbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKworICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBw
cm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsiYW5pbSIsIDAuMTAs
ICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImEiLCAibGVmdCIs
IDIyNSwgNV0sCisgICAgICBbImFuaW0iLCAxLjMsICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAg
ICAgWyJhbmltIiwgMC4xMCwgImIiLCAibGVmdCIsIDIwMCwgNV0sCisgICAgICBbImFuaW0iLCAw
LjUwLCAiYiIsICJsZWZ0IiwgMjI1LCA1XSwKKyAgICAgIFsiYW5pbSIsIDEuMywgImIiLCAibGVm
dCIsIDEwMCwgNV0sCisgICAgICBbImFuaW0iLCAwLjEwLCAiYyIsICJsZWZ0IiwgMTAwLCA1XSwK
KyAgICAgIFsiYW5pbSIsIDAuNTAsICJjIiwgImxlZnQiLCAyMjUsIDVdLAorICAgICAgWyJhbmlt
IiwgMS4zLCAiYyIsICJsZWZ0IiwgMzAwLCA1XSwKKyAgICAgIFsiYW5pbSIsIDAuMTAsICJkIiwg
ImxlZnQiLCAyMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImQiLCAibGVmdCIsIDIyNSwg
NV0sCisgICAgICBbImFuaW0iLCAxLjMsICJkIiwgImxlZnQiLCAzMDAsIDVdLAorICAgIF07Cisg
ICAgCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgdW5kZWZpbmVkLCAibG9h
ZCIsIHRydWUsIHVuZGVmaW5lZCk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1Ro
aXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBm
b3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRo
IGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0cyBl
YWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJhIiBj
bGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4KKyAg
QmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJkcwor
PC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5k
ZXggYTU3YzVkYS4uYzNkZmZhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNSw0ICs1LDUgQEAg
VGVzdGluZyB3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246IFBBU1MKIFRlc3Rpbmcgd2Vi
a2l0QW5pbWF0aW9uTmFtZTogUEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EdXJhdGlvbjog
UEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EZWxheTogUEFTUworVGVzdGluZyB3ZWJraXRB
bmltYXRpb25GaWxsTW9kZTogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAppbmRleCBiNDdhMjg2Li5hNDlkZWNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKQEAg
LTEzLDYgKzEzLDcgQEAKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhLCBiLCBjLCBkLCBl
OwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMHMsIDIwczsKICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kZWxheTogMXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBm
b3J3YXJkcywgYmFja3dhcmRzOwogfQogQC13ZWJraXQta2V5ZnJhbWVzIGEgeyB9CiBALXdlYmtp
dC1rZXlmcmFtZXMgYiB7IH0KQEAgLTMyLDYgKzMzLDcgQEAKICAgICAgIHsgJ3Byb3BlcnR5Jzog
J3dlYmtpdEFuaW1hdGlvbk5hbWUnLCAgICAgICd2YWx1ZSc6ICdhLCBiLCBjLCBkLCBlJyB9LAog
ICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0QW5pbWF0aW9uRHVyYXRpb24nLCAgJ3ZhbHVlJzog
JzEwcywgMjBzLCAxMHMsIDIwcywgMTBzJyB9LAogICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0
QW5pbWF0aW9uRGVsYXknLCAgICAgJ3ZhbHVlJzogJzFzLCAxcywgMXMsIDFzLCAxcycgfSwKKyAg
ICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkZpbGxNb2RlJywgICd2YWx1ZSc6ICdm
b3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcycgfSwKICAg
ICBdOwogICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQKaW5kZXggZTYxZTIwYi4uMzJmZTNkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKQEAgLTg2LDYgKzg2LDcgQEAgem9vbTogMTsKIC13ZWJraXQtYW5pbWF0aW9u
LWRlbGF5OiAwczsKIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOwogLXdlYmtp
dC1hbmltYXRpb24tZHVyYXRpb246IDBzOworLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBu
b25lOwogLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogLXdlYmtpdC1hbmlt
YXRpb24tbmFtZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3Vi
aWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAppbmRleCBjOWZhOTQyLi5h
Njg5MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1y
ZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTg1LDYgKzg1LDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2Yg
YW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVj
dGlvbjogbm9ybWFsCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDBzCisgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lCiAgICAgLXdlYmtpdC1hbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiAxCiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZQogICAgIC13
ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwg
MC4yNSwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4
cGVjdGVkLnR4dAppbmRleCBmZjQ4NmU1Li5mODdjNGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC05Niw2ICs5Niw3IEBA
IHpvb206IDE7CiAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHM7CiAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IG5vcm1hbDsKIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsKKy13
ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogMTsKIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7CiAtd2Via2l0LWFu
aW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91
dC1yZW5kZXJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVj
dGVkLnR4dAppbmRleCBjMTI5MWExLi4yMzc3NGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRo
b3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dApAQCAtOTUsNiArOTUsNyBAQCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVt
ZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGVsYXk6IDBzCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWwKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMHMKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1maWxsLW1vZGU6IG5vbmUKICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24t
Y291bnQ6IDEKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lCiAgICAgLXdlYmtpdC1h
bmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2
Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggYmI4YzBiMy4u
YTFjNTNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxl
LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVk
U3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xOTAsNiArMTkwLDggQEAgcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24pIDogbm9ybWFsCiBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bikgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogMHMKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogW29iamVjdCBDU1NWYWx1ZUxp
c3RdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KSA6IDEKIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9u
LWNvdW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1uYW1lKSA6IG5vbmUKQEAgLTYwNCw2ICs2MDYsOCBAQCBn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbikgOiBu
b3JtYWwKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZGly
ZWN0aW9uKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiAwcwogZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiBbb2JqZWN0IENTU1ZhbHVlTGlz
dF0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogMQogZzogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogW29i
amVjdCBDU1NWYWx1ZUxpc3RdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLW5hbWUpIDogbm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjZDg1YWMyLi5iM2EwNWY3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEw
LTAzLTAyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMjY4Njk6IEFkZCBmaWxsIG1vZGVz
IGZvciBDU1MgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjY4NjkKKworICAgICAgICBUZXN0czogYW5pbWF0aW9ucy9maWxsLW1vZGUt
dHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwK
KworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAg
ICAgICAgLSBleHBvc2UgbmV3IHByb3BlcnR5CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgorICAgICAgICAgICAgLSBzdXBwb3J0IHBhcnNpbmcgb2YgbmV3IHByb3BlcnR5CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgICogcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAgICAgLSBuZXcgc3RhdGUgaW4gYW5pbWF0
aW9uIGVuZ2luZSBmb3IgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgdGhhdCBp
cyAiZmlsbGluZyIgZm9yd2FyZHMgaW4gdGltZS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgICAg
ICAgIGVuZ2luZSB0byBrZWVwIHRoZSBhbmltYXRpb24gYXJvdW5kIGFuZCBub3QgcmV2ZXJ0IHRv
IHRoZQorICAgICAgICAgICAgICBvbGQgc3R5bGUuCisgICAgICAgICAgICAtIHVwZGF0ZSB0aGUg
dGltZXIgY29kZSB0byBpbmRpY2F0ZSBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAg
a2VlcCBhbmltYXRpbmcgaWYgaXQgaXMgZmlsbGluZworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgICAgIC0gYmxlbmQgY29kZSB1cGRhdGVk
IHRvIHRha2UgZmlsbGluZyBiYWNrd2FyZHMgaW4gdGltZS4gVGhhdAorICAgICAgICAgICAgICBp
cywgdXNlIHRoZSBpbml0aWFsIGFuaW1hdGlvbiBzdHlsZSB2YWx1ZS4KKyAgICAgICAgICAgIC0g
bWFrZSBzdXJlIGhhcmR3YXJlIGxheWVycyBkbyBub3QgcmVtb3ZlIHRoZWlyIENBIGFuaW1hdGlv
bnMKKyAgICAgICAgICAgICAgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgZmlsbCBtb2RlLgorICAg
ICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgICAgIC0gTmV3IGZpbGwgbW9kZSBt
ZW1iZXIgdmFyaWFibGUKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlz
dC5jcHA6CisgICAgICAgICAgICAtIE1ha2Ugc3VyZSBuZXcgcHJvcGVydHkgaXMgZXhwYW5kZWQg
aW4gQ1NTIGxpc3RzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5
ZXJDQS5tbToKKyAgICAgICAgICAgIC0gVGVsbCBDb3JlIEFuaW1hdGlvbiB0byB1c2UgdGhlIGZp
bGwgbW9kZSB3aGVuCisgICAgICAgICAgICAgIGFuaW1hdGluZyBoYXJkd2FyZS1iYWNrZWQgbGF5
ZXJzLgorCiAyMDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hlciBhbmQgUGF2ZWwgRmVsZG1hbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDgwMzllMzUuLjQw
NzQ1MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtMTQ2LDYgKzE0Niw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10g
PSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheSwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bkR1cmF0aW9uLAorICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGUsCiAgICAg
Q1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbk5hbWUsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25QbGF5
U3RhdGUsCkBAIC0xMTk4LDYgKzExOTksMjQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAg
ICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246
CiAgICAgICAgICAgICByZXR1cm4gZ2V0RHVyYXRpb25WYWx1ZShzdHlsZS0+YW5pbWF0aW9ucygp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlOiB7Cisg
ICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOworICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9
IHN0eWxlLT5hbmltYXRpb25zKCk7CisgICAgICAgICAgICBpZiAodCkgeworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHQtPmFuaW1hdGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkZpbGxNb2RlTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZU5vbmUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodC0+YW5pbWF0aW9uKGkpLT5maWxsTW9kZSgpID09
IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVGb3J3YXJkcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihD
U1NWYWx1ZUZvcndhcmRzKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHQtPmFuaW1h
dGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQmFja3dh
cmRzKQorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlQmFja3dhcmRzKSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUJvdGgpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKSk7CisgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB7CiAgICAgICAgICAgICBS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFy
YXRlZCgpOwogICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmlt
YXRpb25zKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1YzY1MTQyLi4zODNmZTY3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTEzOTMsNiArMTM5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25E
ZWxheToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEFuaW1hdGlvbk5hbWU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlT
dGF0ZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6
CkBAIC0yNTcxLDYgKzI1NzIsMTUgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUFuaW1hdGlvbkR1cmF0aW9uKCkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkZpbGxNb2RlKCkKK3sKKyAgICBDU1NQ
YXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICh2YWx1
ZS0+aWQgPT0gQ1NTVmFsdWVOb25lIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8
CisgICAgICAgIHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCB2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVCb3RoKQorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlk
ZW50aWZpZXIodmFsdWUtPmlkKTsKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCkKIHsKICAgICBD
U1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwpAQCAtMjcxMyw2
ICsyNzIzLDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBw
cm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgaWYg
KGN1cnJWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRBbmltYXRpb25GaWxsTW9kZToKKyAgICAgICAgICAgICAgICAgICAgY3VyclZh
bHVlID0gcGFyc2VBbmltYXRpb25GaWxsTW9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAo
Y3VyclZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OgogICAgICAgICAgICAgICAgICAgICBj
dXJyVmFsdWUgPSBwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChjdXJyVmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLmQxMGRhNGMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5oCkBAIC05NSw2ICs5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZUFuaW1hdGlvbkRpcmVjdGlvbigpOwogICAgICAgICBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZUFuaW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHBhcnNlQW5pbWF0aW9uRmlsbE1vZGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VBbmltYXRpb25JdGVyYXRpb25Db3VudCgpOwogICAgICAgICBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBwYXJzZUFuaW1hdGlvbk5hbWUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VBbmltYXRpb25QbGF5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
CmluZGV4IDk2OTVkMGIuLjVmN2IxODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTUx
LDYgKzE1MSw3IEBAIHpvb20KIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1h
dGlvbi1kaXJlY3Rpb24KIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uCistd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGUKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudAogLXdlYmtp
dC1hbmltYXRpb24tbmFtZQogLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAppbmRleCAxMjRlYjlmLi5iY2JhMmE5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcApAQCAtNTI5MSw2ICs1MjkxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRBbmltYXRpb25EdXJhdGlvbjoKICAgICAgICAgSEFORExFX0FOSU1BVElPTl9WQUxVRShk
dXJhdGlvbiwgRHVyYXRpb24sIHZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlOgorICAgICAgICBIQU5ETEVfQU5JTUFUSU9O
X1ZBTFVFKGZpbGxNb2RlLCBGaWxsTW9kZSwgdmFsdWUpCisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgICAgIEhB
TkRMRV9BTklNQVRJT05fVkFMVUUoaXRlcmF0aW9uQ291bnQsIEl0ZXJhdGlvbkNvdW50LCB2YWx1
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTY1MCw2ICs1NjUzLDMwIEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6bWFwQW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1Zh
bHVlKiB2YWx1CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoKS8xMDAwLjBmKTsKIH0KIAordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpt
YXBBbmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7
CisgICAgaWYgKHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwp
IHsKKyAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlv
bkZpbGxNb2RlKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorIAorICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5p
bWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZU5vbmUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTVmFsdWVGb3J3YXJkczoKKyAgICAgICAgICAgIGxheWVyLT5zZXRGaWxsTW9k
ZShBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHMpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVCYWNrd2FyZHM6CisgICAgICAgICAgICBsYXllci0+
c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJkcyk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CisgICAgICAgICAgICBs
YXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lO
SVRJQUwpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaCBiL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCA2NDQwNTFjLi4yODRkNTYxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5oCkBAIC0yMzUsNiArMjM1LDcgQEAgcHVibGljOgogICAgICAgICB2
b2lkIG1hcEFuaW1hdGlvbkRlbGF5KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAgIHZv
aWQgbWFwQW5pbWF0aW9uRGlyZWN0aW9uKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAg
IHZvaWQgbWFwQW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKKyAgICAg
ICAgdm9pZCBtYXBBbmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAg
ICAgICB2b2lkIG1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiosIENTU1ZhbHVl
Kik7CiAgICAgICAgIHZvaWQgbWFwQW5pbWF0aW9uTmFtZShBbmltYXRpb24qLCBDU1NWYWx1ZSop
OwogICAgICAgICB2b2lkIG1hcEFuaW1hdGlvblBsYXlTdGF0ZShBbmltYXRpb24qLCBDU1NWYWx1
ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggY2EyYTQ3YS4uODdlMjU2OSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC02MzksNiArNjM5LDEzIEBAIGxpbmVzCiAjIGFsdGVybmF0
ZQogCiAjCisjIENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0ZJTExfTU9ERQorIworIyBmb3J3
YXJkcworIyBiYWNrd2FyZHMKKyMgYm90aAorCisjCiAjIENTU19QUk9QX19XRUJLSVRfQU5JTUFU
SU9OX0lURVJBVElPTl9DT1VOVAogIwogIyBpbmZpbml0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggMmEyYWI0Yi4uMjk4MTcxNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC05MTgsOCArOTE4LDggQEAgdm9pZCBBbmlt
YXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJs
ZSBwYXJhbSkKICAgICAvLyBFeGVjdXRlIHN0YXRlIG1hY2hpbmUKICAgICBzd2l0Y2ggKG1fYW5p
bVN0YXRlKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVOZXc6Ci0gICAgICAgICAgICBB
U1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8fCBpbnB1dCA9PSBBbmlt
YXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKLSAgICAgICAgICAgIGlmIChpbnB1dCA9
PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0aW9u
U3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5wdXQg
PT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1hdGlv
blN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5w
dXRQbGF5U3RhdGVQYXVzZWQpOworICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0
YXRlSW5wdXRTdGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxh
eVN0YXRlUnVubmluZykgewogICAgICAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhcnRUaW1lID0g
YmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUg
PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFRpbWVyOwogICAgICAgICAgICAgfQpAQCAtMTAyNiwx
MyArMTAyNiwxOCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmlt
U3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgICAgIG9uQW5pbWF0
aW9uRW5kKHBhcmFtKTsKIAogICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9u
U3RhdGVEb25lOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChtX29iamVj
dCkgewotICAgICAgICAgICAgICAgICAgICByZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpOwog
CisgICAgICAgICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChtX2FuaW1hdGlvbi0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2Rl
Rm9yd2FyZHMgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYW5pbWF0aW9uLT5maWxsTW9k
ZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlRmlsbGluZ0ZvcndhcmRzOwor
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMoKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAvLyBGaXJlIG9mZiBhbm90aGVyIHN0eWxlIGNoYW5nZSBzbyB3ZSBjYW4g
c2V0IHRoZSBmaW5hbCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICBtX2NvbXBBbmltLT5hbmlt
YXRpb25Db250cm9sbGVyKCktPmFkZE5vZGVDaGFuZ2VUb0Rpc3BhdGNoKG1fb2JqZWN0LT5ub2Rl
KCkpOwogICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAvLyBXZSBhcmUgcGF1c2luZyB3aGlsZSBydW5uaW5nLiBDYW5jZWwgdGhlIGFuaW1h
dGlvbiBhbmQgd2FpdAogICAgICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gYmVnaW5BbmltYXRp
b25VcGRhdGVUaW1lKCk7CkBAIC0xMDQyLDcgKzEwNDcsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6
OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQog
ICAgICAgICAgICAgLy8gfHRoaXN8IG1heSBiZSBkZWxldGVkIGhlcmUKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFRpbWVyOgotICAgICAg
ICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmlu
Zyk7CisgICAgICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlT
dGF0ZVJ1bm5pbmcpOwogICAgICAgICAgICAgQVNTRVJUKHBhdXNlZCgpKTsKICAgICAgICAgICAg
IC8vIFVwZGF0ZSB0aGUgdGltZXMKICAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5p
bWF0aW9uVXBkYXRlVGltZSgpIC0gbV9wYXVzZVRpbWU7CkBAIC0xMDU4LDcgKzEwNjMsNyBAQCB2
b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1
dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgLy8gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0
UmVzcG9uc2UsIHdlIGRvbid0IHlldCBoYXZlIGEgdmFsaWQgc3RhcnRUaW1lLCBzbyB3ZSBzZW5k
IDAgdG8gc3RhcnRBbmltYXRpb24uCiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBBbmltYXRpb25T
dGF0ZUlucHV0U3RhcnRUaW1lU2V0IGNvbWVzIGluIGFuZCB3ZSB3ZXJlIGluIEFuaW1hdGlvblN0
YXRlUGF1c2VkUnVuLCB3ZSB3aWxsIG5vdGljZQogICAgICAgICAgICAgLy8gdGhhdCB3ZSBoYXZl
IGFscmVhZHkgc2V0IHRoZSBzdGFydFRpbWUgYW5kIHdpbGwgaWdub3JlIGl0LgotICAgICAgICAg
ICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8
fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0KTsKKyAgICAgICAgICAg
IEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyB8fCBp
bnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0KTsKICAgICAgICAgICAgIEFT
U0VSVChwYXVzZWQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBw
YXVzZWQsIGJ1dCB3ZSBnZXQgdGhlIGNhbGxiYWNrIHRoYXQgbm90aWZpZXMgdXMgdGhhdCBhbiBh
Y2NlbGVyYXRlZCBhbmltYXRpb24gc3RhcnRlZCwKQEAgLTEwOTMsNiArMTA5OCw3IEBAIHZvaWQg
QW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBk
b3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgbV9mYWxsYmFja0FuaW1hdGluZyA9ICFzdGFy
dGVkOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQW5p
bWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHM6CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVE
b25lOgogICAgICAgICAgICAgLy8gV2UncmUgZG9uZS4gU3RheSBpbiB0aGlzIHN0YXRlIHVudGls
IHdlIGFyZSBkZWxldGVkCiAgICAgICAgICAgICBicmVhazsKQEAgLTExNTIsMTQgKzExNTgsMTQg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjpmaXJlQW5pbWF0aW9uRXZlbnRzSWZOZWVkZWQoKQogdm9p
ZCBBbmltYXRpb25CYXNlOjp1cGRhdGVQbGF5U3RhdGUoYm9vbCBydW4pCiB7CiAgICAgaWYgKHBh
dXNlZCgpID09IHJ1biB8fCBpc05ldygpKQotICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVu
ID8gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nIDogQW5pbWF0aW9uU3RhdGVJ
bnB1dFBsYXlTdGF0ZVBhdXNlZCwgLTEpOworICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVu
ID8gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcgOiBBbmltYXRpb25TdGF0ZUlu
cHV0UGxheVN0YXRlUGF1c2VkLCAtMSk7CiB9CiAKIGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1l
VG9OZXh0U2VydmljZSgpCiB7CiAgICAgLy8gUmV0dXJucyB0aGUgdGltZSBhdCB3aGljaCBuZXh0
IHNlcnZpY2UgaXMgcmVxdWlyZWQuIC0xIG1lYW5zIG5vIHNlcnZpY2UgaXMgcmVxdWlyZWQuIDAg
bWVhbnMgCiAgICAgLy8gc2VydmljZSBpcyByZXF1aXJlZCBub3csIGFuZCA+IDAgbWVhbnMgc2Vy
dmljZSBpcyByZXF1aXJlZCB0aGF0IG1hbnkgc2Vjb25kcyBpbiB0aGUgZnV0dXJlLgotICAgIGlm
IChwYXVzZWQoKSB8fCBpc05ldygpKQorICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygpIHx8IG1f
YW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlRmlsbGluZ0ZvcndhcmRzKQogICAgICAgICByZXR1
cm4gLTE7CiAgICAgCiAgICAgaWYgKG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlU3RhcnRX
YWl0VGltZXIpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5oIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggYzM2
N2UwYS4uYTk1NzExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25CYXNlLmgKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAg
LTcxLDcgKzcxLDggQEAgcHVibGljOgogICAgICAgICBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRU
aW1lciwgICAgICAvLyBpbiBwYXVzZSBtb2RlIHdoZW4gYW5pbWF0aW9uIHN0YXJ0ZWQKICAgICAg
ICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2UsICAgLy8gYW5pbWF0aW9uIHBhdXNl
ZCB3aGVuIGluIFNUQVJUSU5HIHN0YXRlCiAgICAgICAgIEFuaW1hdGlvblN0YXRlUGF1c2VkUnVu
LCAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwYXVzZWQgd2hlbiBpbiBMT09QSU5HIG9yIEVORElO
RyBzdGF0ZQotICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUgICAgICAgICAgICAgICAgICAvLyBl
bmQgdGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVtb3ZlZAorICAgICAgICBB
bmltYXRpb25TdGF0ZURvbmUsICAgICAgICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFu
aW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVtb3ZlZAorICAgICAgICBBbmltYXRpb25TdGF0ZUZpbGxp
bmdGb3J3YXJkcyAgICAgICAvLyBhbmltYXRpb24gaGFzIGVuZGVkIGFuZCBpcyByZXRhaW5pbmcg
aXRzIGZpbmFsIHZhbHVlCiAgICAgfTsKIAogICAgIGVudW0gQW5pbVN0YXRlSW5wdXQgewpAQCAt
ODUsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRFbmRUaW1l
ckZpcmVkLCAgICAgLy8gZW5kIHRpbWVyIGZpcmVkCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5w
dXRQYXVzZU92ZXJyaWRlLCAgICAgLy8gcGF1c2UgYW4gYW5pbWF0aW9uIGR1ZSB0byBvdmVycmlk
ZQogICAgICAgICBBbmltYXRpb25TdGF0ZUlucHV0UmVzdW1lT3ZlcnJpZGUsICAgIC8vIHJlc3Vt
ZSBhbiBvdmVycmlkZGVuIGFuaW1hdGlvbgotICAgICAgICBBbmltYXRpb25TdGF0ZUlucHV0UGxh
eVN0YXRlUnVubm5pbmcsIC8vIHBsYXkgc3RhdGUgcGF1c2VkIC0+IHJ1bm5pbmcKKyAgICAgICAg
QW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcsICAvLyBwbGF5IHN0YXRlIHBhdXNl
ZCAtPiBydW5uaW5nCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQs
ICAgLy8gcGxheSBzdGF0ZSBydW5uaW5nIC0+IHBhdXNlZAogICAgICAgICBBbmltYXRpb25TdGF0
ZUlucHV0RW5kQW5pbWF0aW9uICAgICAgIC8vIGZvcmNlIGFuIGVuZCBmcm9tIGFueSBzdGF0ZQog
ICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmlu
ZGV4IGM1ZTM2NjAuLjUwZGQ2OTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJh
bWVBbmltYXRpb24uY3BwCkBAIC0xMTIsMTggKzExMiwyMyBAQCB2b2lkIEtleWZyYW1lQW5pbWF0
aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlcgogICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0
QW5pbWF0aW9uLCAtMSk7CiAKICAgICAvLyBJZiB3ZSBnZXQgdGhpcyBmYXIgYW5kIHRoZSBhbmlt
YXRpb24gaXMgZG9uZSwgaXQgbWVhbnMgd2UgYXJlIGNsZWFuaW5nIHVwIGEganVzdCBmaW5pc2hl
ZCBhbmltYXRpb24uCi0gICAgLy8gSWYgc28sIHdlIG5lZWQgdG8gc2VuZCBiYWNrIHRoZSB0YXJn
ZXRTdHlsZS4KLSAgICBpZiAocG9zdEFjdGl2ZSgpKSB7CisgICAgLy8gSWYgdGhlcmUgaXNuJ3Qg
YSBmb3J3YXJkcyBmaWxsIG1vZGUsIHdlIG5lZWQgdG8gc2VuZCBiYWNrIHRoZSB0YXJnZXRTdHls
ZS4KKyAgICBpZiAocG9zdEFjdGl2ZSgpICYmIG1fYW5pbWF0aW9uLT5maWxsTW9kZSgpICE9IEFu
aW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVGb3J3YXJkcyAmJgorICAgICAgICBtX2FuaW1hdGlv
bi0+ZmlsbE1vZGUoKSAhPSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQm90aCkgewogICAg
ICAgICBpZiAoIWFuaW1hdGVkU3R5bGUpCiAgICAgICAgICAgICBhbmltYXRlZFN0eWxlID0gY29u
c3RfY2FzdDxSZW5kZXJTdHlsZSo+KHRhcmdldFN0eWxlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIC8vIElmIHdlIGFyZSB3YWl0aW5nIGZvciB0aGUgc3RhcnQgdGltZXIsIHdlIGRv
bid0IHdhbnQgdG8gY2hhbmdlIHRoZSBzdHlsZSB5ZXQuCi0gICAgLy8gU3BlY2lhbCBjYXNlIC0g
aWYgdGhlIGRlbGF5IHRpbWUgaXMgMCwgdGhlbiB3ZSBkbyB3YW50IHRvIHNldCB0aGUgZmlyc3Qg
ZnJhbWUgb2YgdGhlCisgICAgLy8gU3BlY2lhbCBjYXNlIDEgLSBpZiB0aGUgZGVsYXkgdGltZSBp
cyAwLCB0aGVuIHdlIGRvIHdhbnQgdG8gc2V0IHRoZSBmaXJzdCBmcmFtZSBvZiB0aGUKICAgICAv
LyBhbmltYXRpb24gcmlnaHQgYXdheS4gVGhpcyBhdm9pZHMgYSBmbGFzaCB3aGVuIHRoZSBhbmlt
YXRpb24gc3RhcnRzLgotICAgIGlmICh3YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5k
ZWxheSgpID4gMCkKLSAgICAgICAgcmV0dXJuOworICAgIC8vIFNwZWNpYWwgY2FzZSAyIC0gaWYg
dGhlcmUgaXMgYSBiYWNrd2FyZHMgZmlsbCBtb2RlLCB0aGVuIHdlIHdhbnQgdG8gY29udGludWUK
KyAgICAvLyB0aHJvdWdoIHRvIHRoZSBzdHlsZSBibGVuZCBzbyB0aGF0IHdlIGdldCB0aGUgZnJv
bVN0eWxlLgorICAgIGlmICh3YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5kZWxheSgp
ID4gMCAmJgorICAgICAgIG1fYW5pbWF0aW9uLT5maWxsTW9kZSgpICE9IEFuaW1hdGlvbjo6QW5p
bWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMgJiYKKyAgICAgICBtX2FuaW1hdGlvbi0+ZmlsbE1vZGUo
KSAhPSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQm90aCkKKyAgICAgICByZXR1cm47CiAK
ICAgICAvLyBGSVhNRTogd2UgbmVlZCB0byBiZSBtb3JlIGVmZmljaWVudCBhYm91dCBkZXRlcm1p
bmluZyB3aGljaCBrZXlmcmFtZXMgd2UgYXJlIGFuaW1hdGluZyBiZXR3ZWVuLgogICAgIC8vIFdl
IHNob3VsZCBjYWNoZSB0aGUgbGFzdCBwYWlyIG9yIHNvbWV0aGluZy4KQEAgLTIzMywxMiArMjM4
LDE0IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmVuZEFuaW1hdGlvbigpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdC0+aGFzTGF5ZXIoKSkgewog
ICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2Jq
ZWN0KS0+bGF5ZXIoKTsKLSAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAg
ICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSAmJiBtX2FuaW1hdGlvbi0+ZmlsbE1vZGUoKSAh
PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHMgJiYKKyAgICAgICAgICAgIG1f
YW5pbWF0aW9uLT5maWxsTW9kZSgpICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3Ro
KQogICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YW5pbWF0aW9uRmluaXNoZWQobV9rZXlm
cmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKICAgICB9CiAjZW5kaWYKICAgICAvLyBSZXN0b3JlIHRo
ZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKLSAgICBpZiAoIXBhdXNlZCgpKQorICAgIGlm
ICghcGF1c2VkKCkgJiYgbV9hbmltYXRpb24tPmZpbGxNb2RlKCkgIT0gQW5pbWF0aW9uOjpBbmlt
YXRpb25GaWxsTW9kZUZvcndhcmRzICYmCisgICAgICAgIG1fYW5pbWF0aW9uLT5maWxsTW9kZSgp
ICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKQogICAgICAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKG1fb2JqZWN0LT5ub2RlKCkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uLmNwcAppbmRleCAwNTc2MWY4Li5kMDUzZGZkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKQEAgLTMwLDEyICszMCwxNCBAQCBBbmltYXRpb246
OkFuaW1hdGlvbigpCiAgICAgLCBtX2l0ZXJhdGlvbkNvdW50KGluaXRpYWxBbmltYXRpb25JdGVy
YXRpb25Db3VudCgpKQogICAgICwgbV9kZWxheShpbml0aWFsQW5pbWF0aW9uRGVsYXkoKSkKICAg
ICAsIG1fZHVyYXRpb24oaW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCkpCisgICAgLCBtX2ZpbGxN
b2RlKGluaXRpYWxBbmltYXRpb25GaWxsTW9kZSgpKQogICAgICwgbV90aW1pbmdGdW5jdGlvbihp
bml0aWFsQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKSkKICAgICAsIG1fZGlyZWN0aW9uKGluaXRp
YWxBbmltYXRpb25EaXJlY3Rpb24oKSkKICAgICAsIG1fcGxheVN0YXRlKGluaXRpYWxBbmltYXRp
b25QbGF5U3RhdGUoKSkKICAgICAsIG1fZGVsYXlTZXQoZmFsc2UpCiAgICAgLCBtX2RpcmVjdGlv
blNldChmYWxzZSkKICAgICAsIG1fZHVyYXRpb25TZXQoZmFsc2UpCisgICAgLCBtX2ZpbGxNb2Rl
U2V0KGZhbHNlKQogICAgICwgbV9pdGVyYXRpb25Db3VudFNldChmYWxzZSkKICAgICAsIG1fbmFt
ZVNldChmYWxzZSkKICAgICAsIG1fcGxheVN0YXRlU2V0KGZhbHNlKQpAQCAtNTIsMTIgKzU0LDE0
IEBAIEFuaW1hdGlvbjo6QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiYgbykKICAgICAsIG1faXRl
cmF0aW9uQ291bnQoby5tX2l0ZXJhdGlvbkNvdW50KQogICAgICwgbV9kZWxheShvLm1fZGVsYXkp
CiAgICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKKyAgICAsIG1fZmlsbE1vZGUoby5tX2Zp
bGxNb2RlKQogICAgICwgbV90aW1pbmdGdW5jdGlvbihvLm1fdGltaW5nRnVuY3Rpb24pCiAgICAg
LCBtX2RpcmVjdGlvbihvLm1fZGlyZWN0aW9uKQogICAgICwgbV9wbGF5U3RhdGUoby5tX3BsYXlT
dGF0ZSkKICAgICAsIG1fZGVsYXlTZXQoby5tX2RlbGF5U2V0KQogICAgICwgbV9kaXJlY3Rpb25T
ZXQoby5tX2RpcmVjdGlvblNldCkKICAgICAsIG1fZHVyYXRpb25TZXQoby5tX2R1cmF0aW9uU2V0
KQorICAgICwgbV9maWxsTW9kZVNldChvLm1fZmlsbE1vZGVTZXQpCiAgICAgLCBtX2l0ZXJhdGlv
bkNvdW50U2V0KG8ubV9pdGVyYXRpb25Db3VudFNldCkKICAgICAsIG1fbmFtZVNldChvLm1fbmFt
ZVNldCkKICAgICAsIG1fcGxheVN0YXRlU2V0KG8ubV9wbGF5U3RhdGVTZXQpCkBAIC03NCw2ICs3
OCw3IEBAIEFuaW1hdGlvbiYgQW5pbWF0aW9uOjpvcGVyYXRvcj0oY29uc3QgQW5pbWF0aW9uJiBv
KQogICAgIG1faXRlcmF0aW9uQ291bnQgPSBvLm1faXRlcmF0aW9uQ291bnQ7CiAgICAgbV9kZWxh
eSA9IG8ubV9kZWxheTsKICAgICBtX2R1cmF0aW9uID0gby5tX2R1cmF0aW9uOworICAgIG1fZmls
bE1vZGUgPSBvLm1fZmlsbE1vZGU7CiAgICAgbV90aW1pbmdGdW5jdGlvbiA9IG8ubV90aW1pbmdG
dW5jdGlvbjsKICAgICBtX2RpcmVjdGlvbiA9IG8ubV9kaXJlY3Rpb247CiAgICAgbV9wbGF5U3Rh
dGUgPSBvLm1fcGxheVN0YXRlOwpAQCAtODEsNiArODYsNyBAQCBBbmltYXRpb24mIEFuaW1hdGlv
bjo6b3BlcmF0b3I9KGNvbnN0IEFuaW1hdGlvbiYgbykKICAgICBtX2RlbGF5U2V0ID0gby5tX2Rl
bGF5U2V0OwogICAgIG1fZGlyZWN0aW9uU2V0ID0gby5tX2RpcmVjdGlvblNldDsKICAgICBtX2R1
cmF0aW9uU2V0ID0gby5tX2R1cmF0aW9uU2V0OworICAgIG1fZmlsbE1vZGVTZXQgPSBvLm1fZmls
bE1vZGVTZXQ7CiAgICAgbV9pdGVyYXRpb25Db3VudFNldCA9IG8ubV9pdGVyYXRpb25Db3VudFNl
dDsKICAgICBtX25hbWVTZXQgPSBvLm1fbmFtZVNldDsKICAgICBtX3BsYXlTdGF0ZVNldCA9IG8u
bV9wbGF5U3RhdGVTZXQ7CkBAIC0xMDUsMTEgKzExMSwxMyBAQCBib29sIEFuaW1hdGlvbjo6YW5p
bWF0aW9uc01hdGNoKGNvbnN0IEFuaW1hdGlvbiogbywgYm9vbCBtYXRjaFBsYXlTdGF0ZXMpIGNv
bnN0CiAgICAgICAgICAgICAgICAgICBtX2l0ZXJhdGlvbkNvdW50ID09IG8tPm1faXRlcmF0aW9u
Q291bnQgJiYKICAgICAgICAgICAgICAgICAgIG1fZGVsYXkgPT0gby0+bV9kZWxheSAmJgogICAg
ICAgICAgICAgICAgICAgbV9kdXJhdGlvbiA9PSBvLT5tX2R1cmF0aW9uICYmCisgICAgICAgICAg
ICAgICAgICBtX2ZpbGxNb2RlID09IG8tPm1fZmlsbE1vZGUgJiYKICAgICAgICAgICAgICAgICAg
IG1fdGltaW5nRnVuY3Rpb24gPT0gby0+bV90aW1pbmdGdW5jdGlvbiAmJgogICAgICAgICAgICAg
ICAgICAgbV9kaXJlY3Rpb24gPT0gby0+bV9kaXJlY3Rpb24gJiYKICAgICAgICAgICAgICAgICAg
IG1fZGVsYXlTZXQgPT0gby0+bV9kZWxheVNldCAmJgogICAgICAgICAgICAgICAgICAgbV9kaXJl
Y3Rpb25TZXQgPT0gby0+bV9kaXJlY3Rpb25TZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fZHVy
YXRpb25TZXQgPT0gby0+bV9kdXJhdGlvblNldCAmJgorICAgICAgICAgICAgICAgICAgbV9maWxs
TW9kZVNldCA9PSBvLT5tX2ZpbGxNb2RlU2V0ICYmCiAgICAgICAgICAgICAgICAgICBtX2l0ZXJh
dGlvbkNvdW50U2V0ID09IG8tPm1faXRlcmF0aW9uQ291bnRTZXQgJiYKICAgICAgICAgICAgICAg
ICAgIG1fbmFtZVNldCA9PSBvLT5tX25hbWVTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fcHJv
cGVydHlTZXQgPT0gby0+bV9wcm9wZXJ0eVNldCAmJgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uaAppbmRleCAzMDZhMWI5Li5hMDQ5ZTdjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rl
bGF5U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kZWxheVNldDsgfQogICAgIGJvb2wgaXNEaXJlY3Rp
b25TZXQoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvblNldDsgfQogICAgIGJvb2wgaXNEdXJh
dGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb25TZXQ7IH0KKyAgICBib29sIGlzRmls
bE1vZGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlU2V0OyB9CiAgICAgYm9vbCBpc0l0
ZXJhdGlvbkNvdW50U2V0KCkgY29uc3QgeyByZXR1cm4gbV9pdGVyYXRpb25Db3VudFNldDsgfQog
ICAgIGJvb2wgaXNOYW1lU2V0KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2V0OyB9CiAgICAgYm9v
bCBpc1BsYXlTdGF0ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CkBAIC01
OCw4ICs1OSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gKCFtX2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAmJiAhbV9u
YW1lU2V0ICYmICFtX3BsYXlTdGF0ZVNldCAmJiAKLSAgICAgICAgICAgICAgICFtX2l0ZXJhdGlv
bkNvdW50U2V0ICYmICFtX2RlbGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3By
b3BlcnR5U2V0KTsKKyAgICAgICAgcmV0dXJuICghbV9kaXJlY3Rpb25TZXQgJiYgIW1fZHVyYXRp
b25TZXQgJiYgIW1fZmlsbE1vZGVTZXQgJiYKKyAgICAgICAgICAgICAgICAhbV9uYW1lU2V0ICYm
ICFtX3BsYXlTdGF0ZVNldCAmJiAhbV9pdGVyYXRpb25Db3VudFNldCAmJgorICAgICAgICAgICAg
ICAgICFtX2RlbGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0
KTsKICAgICB9CiAKICAgICBib29sIGlzRW1wdHlPclplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03
MCw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRGVsYXkoKSB7IG1fZGVsYXlTZXQg
PSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJEaXJlY3Rpb24oKSB7IG1fZGlyZWN0aW9uU2V0ID0g
ZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyRHVyYXRpb24oKSB7IG1fZHVyYXRpb25TZXQgPSBmYWxz
ZTsgfQorICAgIHZvaWQgY2xlYXJGaWxsTW9kZSgpIHsgbV9maWxsTW9kZVNldCA9IGZhbHNlOyB9
CiAgICAgdm9pZCBjbGVhckl0ZXJhdGlvbkNvdW50KCkgeyBtX2l0ZXJhdGlvbkNvdW50U2V0ID0g
ZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyTmFtZSgpIHsgbV9uYW1lU2V0ID0gZmFsc2U7IH0KICAg
ICB2b2lkIGNsZWFyUGxheVN0YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1QbGF5U3RhdGVQ
bGF5aW5nOyB9CkBAIC04MSw2ICs4NCw5IEBAIHB1YmxpYzoKICAgICBlbnVtIEFuaW1hdGlvbkRp
cmVjdGlvbiB7IEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlIH07CiAgICAgQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGlyZWN0aW9uOyB9CiAKKyAgICBlbnVtIEFuaW1hdGlvbkZpbGxNb2RlIHsgQW5pbWF0
aW9uRmlsbE1vZGVOb25lLCBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzLCBBbmltYXRpb25GaWxs
TW9kZUJhY2t3YXJkcywgQW5pbWF0aW9uRmlsbE1vZGVCb3RoIH07CisgICAgQW5pbWF0aW9uRmls
bE1vZGUgZmlsbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CisKICAgICBkb3Vi
bGUgZHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAKICAgICBlbnVtIHsg
SXRlcmF0aW9uQ291bnRJbmZpbml0ZSA9IC0xIH07CkBAIC05Myw2ICs5OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERlbGF5KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1f
ZGlyZWN0aW9uID0gZDsgbV9kaXJlY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXREdXJh
dGlvbihkb3VibGUgZCkgeyBBU1NFUlQoZCA+PSAwKTsgbV9kdXJhdGlvbiA9IGQ7IG1fZHVyYXRp
b25TZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZSBm
KSB7IG1fZmlsbE1vZGUgPSBmOyBtX2ZpbGxNb2RlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0
SXRlcmF0aW9uQ291bnQoaW50IGMpIHsgbV9pdGVyYXRpb25Db3VudCA9IGM7IG1faXRlcmF0aW9u
Q291bnRTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbikgeyBt
X25hbWUgPSBuOyBtX25hbWVTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRQbGF5U3RhdGUodW5z
aWduZWQgZCkgeyBtX3BsYXlTdGF0ZSA9IGQ7IG1fcGxheVN0YXRlU2V0ID0gdHJ1ZTsgfQpAQCAt
MTE5LDYgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1faXRlcmF0aW9uQ291bnQ7CiAgICAg
ZG91YmxlIG1fZGVsYXk7CiAgICAgZG91YmxlIG1fZHVyYXRpb247CisgICAgQW5pbWF0aW9uRmls
bE1vZGUgbV9maWxsTW9kZSA6IDI7CiAgICAgVGltaW5nRnVuY3Rpb24gbV90aW1pbmdGdW5jdGlv
bjsKICAgICBBbmltYXRpb25EaXJlY3Rpb24gbV9kaXJlY3Rpb24gOiAxOwogCkBAIC0xMjcsNiAr
MTM1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGVsYXlTZXQgICAgICAgICAgOiAxOwogICAg
IGJvb2wgbV9kaXJlY3Rpb25TZXQgICAgICA6IDE7CiAgICAgYm9vbCBtX2R1cmF0aW9uU2V0ICAg
ICAgIDogMTsKKyAgICBib29sIG1fZmlsbE1vZGVTZXQgICAgICAgOiAxOwogICAgIGJvb2wgbV9p
dGVyYXRpb25Db3VudFNldCA6IDE7CiAgICAgYm9vbCBtX25hbWVTZXQgICAgICAgICAgIDogMTsK
ICAgICBib29sIG1fcGxheVN0YXRlU2V0ICAgICAgOiAxOwpAQCAtMTM5LDYgKzE0OCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEFuaW1hdGlvbkRlbGF5KCkgeyByZXR1cm4g
MDsgfQogICAgIHN0YXRpYyBBbmltYXRpb25EaXJlY3Rpb24gaW5pdGlhbEFuaW1hdGlvbkRpcmVj
dGlvbigpIHsgcmV0dXJuIEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbDsgfQogICAgIHN0YXRpYyBk
b3VibGUgaW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRp
YyBBbmltYXRpb25GaWxsTW9kZSBpbml0aWFsQW5pbWF0aW9uRmlsbE1vZGUoKSB7IHJldHVybiBB
bmltYXRpb25GaWxsTW9kZU5vbmU7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxBbmltYXRpb25J
dGVyYXRpb25Db3VudCgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMgU3RyaW5nIGluaXRpYWxB
bmltYXRpb25OYW1lKCkgeyByZXR1cm4gU3RyaW5nKCJub25lIik7IH0KICAgICBzdGF0aWMgdW5z
aWduZWQgaW5pdGlhbEFuaW1hdGlvblBsYXlTdGF0ZSgpIHsgcmV0dXJuIEFuaW1QbGF5U3RhdGVQ
bGF5aW5nOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRp
b25MaXN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3Bw
CmluZGV4IDgwNGRlZGUuLmJkNWZkZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbkxpc3QuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvbkxpc3QuY3BwCkBAIC0zNyw2ICszNyw3IEBAIHZvaWQgQW5pbWF0aW9uTGlzdDo6
ZmlsbFVuc2V0UHJvcGVydGllcygpCiAgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0RlbGF5U2V0
LCBkZWxheSwgc2V0RGVsYXkpOwogICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNEaXJlY3Rpb25T
ZXQsIGRpcmVjdGlvbiwgc2V0RGlyZWN0aW9uKTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlz
RHVyYXRpb25TZXQsIGR1cmF0aW9uLCBzZXREdXJhdGlvbik7CisgICAgRklMTF9VTlNFVF9QUk9Q
RVJUWShpc0ZpbGxNb2RlU2V0LCBmaWxsTW9kZSwgc2V0RmlsbE1vZGUpOwogICAgIEZJTExfVU5T
RVRfUFJPUEVSVFkoaXNJdGVyYXRpb25Db3VudFNldCwgaXRlcmF0aW9uQ291bnQsIHNldEl0ZXJh
dGlvbkNvdW50KTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUGxheVN0YXRlU2V0LCBwbGF5
U3RhdGUsIHNldFBsYXlTdGF0ZSk7CiAgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc05hbWVTZXQs
IG5hbWUsIHNldE5hbWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvR3JhcGhpY3NMYXllckNBLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3Jh
cGhpY3NMYXllckNBLm1tCmluZGV4IDIyZTM5ZjUuLjllNzliOGYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW0KQEAgLTE4NTksMTIgKzE4
NTksMjAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKENBUHJvcGVydHlB
bmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW4KICAgICBlbHNlIGlmIChhbmltLT5kaXJl
Y3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkKICAgICAg
ICAgcmVwZWF0Q291bnQgLz0gMjsKIAorICAgIE5TU3RyaW5nKiBmaWxsTW9kZSA9IGtDQUZpbGxN
b2RlUmVtb3ZlZDsKKyAgICBpZiAoYW5pbS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1h
dGlvbkZpbGxNb2RlQmFja3dhcmRzKQorICAgICAgIGZpbGxNb2RlID0ga0NBRmlsbE1vZGVCYWNr
d2FyZHM7CisgICAgZWxzZSBpZiAoYW5pbS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1h
dGlvbkZpbGxNb2RlRm9yd2FyZHMpCisgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUZvcndh
cmRzOworICAgIGVsc2UgaWYgKGFuaW0tPmZpbGxNb2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRp
b25GaWxsTW9kZUJvdGgpCisgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUJvdGg7CisKICAg
ICBbcHJvcGVydHlBbmltIHNldER1cmF0aW9uOmR1cmF0aW9uXTsKICAgICBbcHJvcGVydHlBbmlt
IHNldFJlcGVhdENvdW50OnJlcGVhdENvdW50XTsKICAgICBbcHJvcGVydHlBbmltIHNldEF1dG9y
ZXZlcnNlczphbmltLT5kaXJlY3Rpb24oKV07CiAgICAgW3Byb3BlcnR5QW5pbSBzZXRSZW1vdmVk
T25Db21wbGV0aW9uOk5PXTsKICAgICBbcHJvcGVydHlBbmltIHNldEFkZGl0aXZlOmFkZGl0aXZl
XTsKLSAgICBbcHJvcGVydHlBbmltIHNldEZpbGxNb2RlOkAiZXh0ZW5kZWQiXTsKKyAgICBbcHJv
cGVydHlBbmltIHNldEZpbGxNb2RlOmZpbGxNb2RlXTsKIAogICAgIFtwcm9wZXJ0eUFuaW0gc2V0
RGVsZWdhdGU6bV9hbmltYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49848</attachid>
            <date>2010-03-02 14:15:26 -0800</date>
            <delta_ts>2010-03-02 15:24:50 -0800</delta_ts>
            <desc>updated patch (fixing some style errors)</desc>
            <filename>fill-mode.patch</filename>
            <type>text/plain</type>
            <size>45405</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDAxZWEyLi5iOGE2Y2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDMt
MDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyNjg2OTogQWRkIGZpbGwgbW9kZXMgZm9y
IENTUyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjg2OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlIHByb3BlcnR5LAorICAgICAgICBhbmQgdXBkYXRlIGV4aXN0aW5nIGNvbXB1dGVk
IHN0eWxlIHRlc3RzIHdpdGggdGhlIAorICAgICAgICBuZXcgcHJvcGVydHkuCisKKyAgICAgICAg
KiBhbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmlt
YXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwt
bW9kZS10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0w
Mi0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhhdGNoZXIgYW5kIFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGViNDBhN2QuLjY4
YjA5MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBAQCBQQVNTIHRlc3QxU3R5bGUud2Via2l0QW5pbWF0
aW9uTmFtZSBpcyAnYW5pbTEnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSBp
cyAnYW5pbTIsIGFuaW0zJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9u
IGlzICcxMHMnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gaXMgJzVz
LCAyLjVzJworUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIGlzICdiYWNr
d2FyZHMnCitQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgaXMgJ2Zvcndh
cmRzLCBib3RoJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
IGlzICcxMCcKIFBBU1MgdGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBp
cyAnMTAsIGluZmluaXRlJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvblRpbWluZ0Z1
bmN0aW9uIGlzICdjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSknCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggNDdmM2I5ZC4uODljOGVlZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiBhbmltMTsKICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwczsKKyAgICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CiAgICAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTA7CiAgICAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1k
aXJlY3Rpb246IG5vcm1hbDsKQEAgLTIwLDYgKzIxLDcgQEAKICAgICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltMiwgYW5pbTM7CiAg
ICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1cywgMjUwMG1zOworICAgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBib3RoOwogICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZpbml0ZTsKICAgICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIsIGVhc2UtaW4tb3V0OwogICAg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRlOwpAQCAt
NjAsNiArNjIsOSBAQCBzaG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwg
IidhbmltMiwgYW5pbTMnIik7CiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25E
dXJhdGlvbiIsICInMTBzJyIpOwogc2hvdWxkQmUoInRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9u
RHVyYXRpb24iLCAiJzVzLCAyLjVzJyIpOwogCitzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRB
bmltYXRpb25GaWxsTW9kZSIsICInYmFja3dhcmRzJyIpOworc2hvdWxkQmUoInRlc3QyU3R5bGUu
d2Via2l0QW5pbWF0aW9uRmlsbE1vZGUiLCAiJ2ZvcndhcmRzLCBib3RoJyIpOworCiBzaG91bGRC
ZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAnIik7CiBz
aG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAs
IGluZmluaXRlJyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwt
bW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiMTZlYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJhIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYiIgZWxlbWVudCBhdCAwLjFzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImMiIGVs
ZW1lbnQgYXQgMC4xcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJkIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYSIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImIiIGVs
ZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMjUKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJjIiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjI1CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiZCIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImEiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJiIiBlbGVtZW50IGF0IDEuM3Mgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYyIgZWxlbWVudCBhdCAxLjNzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDMwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImQiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAzMDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFhOTgwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg4MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTMw
IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0
aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisK
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNp
bXBsZSBmaWxsIG1vZGUgb24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoMTAwcHgpOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMjVzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1lcyAiYW5pbSIgeworICAgICAg
ICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMDBweCk7IH0KKyAgICAgICAg
dG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMzAwcHgpOyB9CisgICAgfQorICAg
ICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRz
OworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CisgICAgfQorICAgICNkIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIH0KKyAgCisgIHJlc3Vs
dCA9ICIiOworCisgIGNvbnN0IGV4cGVjdGVkID0gIFsgCisgICAgICAgICAgICAgICAgICAgICAg
WyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAg
ICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBhIGF0IDAuNSAtIDAuMjUgaW50
byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQg
MS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIw
MCwwIF0sIC8vIGIgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAg
ICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBiIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAg
ICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGIgYXQgMS4zNSAtIDAuMSBh
ZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGMg
YXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAs
MSwyMjUsMCBdLCAvLyBjIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAg
ICAgICAgWyAxLDAsMCwxLDMwMCwwIF0sIC8vIGMgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisg
ICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIwMCwwIF0sIC8vIGQgYXQgMC4xIC0gMC4x
NSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAv
LyBkIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAs
MCwxLDMwMCwwIF0sIC8vIGQgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAg
ICAgICAgIF07CisgIGNvbnN0IHRvbGVyYW5jZSA9IFsgMC4yLDAuMiwwLjIsMC4yLDUsMC4yIF07
CisgIGNvbnN0IHByb3AgPSBbICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIgXTsKKyAgCisg
IGZ1bmN0aW9uIGlzRXF1YWwoYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCisgIHsKKyAgICAg
IHZhciBkaWZmID0gTWF0aC5hYnMoYWN0dWFsIC0gZGVzaXJlZCk7CisgICAgICByZXR1cm4gZGlm
ZiA8PSB0b2xlcmFuY2U7CisgIH0KKyAgCisgIHZhciBudW1TbmFwc2hvdHMgPSAwOworICAKKyAg
ZnVuY3Rpb24gc25hcHNob3QoaWQsIGluZGV4KQorICB7CisgICAgICB2YXIgdCA9IG5ldyBXZWJL
aXRDU1NNYXRyaXgod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpKS53ZWJraXRUcmFuc2Zvcm0pOworICAgICAgZm9yIChpID0gMDsgaSA8IDY7ICsraSkg
eworICAgICAgICAgIGlmICghaXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFtpbmRleF1baV0s
IHRvbGVyYW5jZVtpXSkpCisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtLSAnIitwcm9w
W2ldKyInIHdhczogIit0W3Byb3BbaV1dKyIsIGV4cGVjdGVkOiAiK2V4cGVjdGVkW2luZGV4XVtp
XSsiIG9uIHJ1bjogIiArIGluZGV4ICsgIiBsb29raW5nIGF0IGVsZW1lbnQ6ICIgKyBpZCArICI8
YnI+IjsKKyAgICAgIH0KKyAgICAgIAorICAgICAgbnVtU25hcHNob3RzKys7CisgICAgICBpZiAo
bnVtU25hcHNob3RzID09IDEyKSB7CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdCB8fCAiUEFTUyI7CisgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICB9CisKKyAgZnVuY3Rpb24gc3RhcnQoKQor
ICB7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYScsIDApIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdhJywgMSkiLCA1MDApOworICAgICAgc2V0VGltZW91dCgic25h
cHNob3QoJ2EnLCAyKSIsIDEzNTApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3QoJ2InLCAz
KSIsIDEwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYicsIDQpIiwgNTAwKTsKKyAg
ICAgIHNldFRpbWVvdXQoInNuYXBzaG90KCdiJywgNSkiLCAxMzUwKTsKKyAgICAgIHNldFRpbWVv
dXQoInNuYXBzaG90KCdjJywgNikiLCAxMDApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3Qo
J2MnLCA3KSIsIDUwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYycsIDgpIiwgMTM1
MCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnZCcsIDkpIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdkJywgMTApIiwgNTAwKTsKKyAgICAgIHNldFRpbWVvdXQoInNu
YXBzaG90KCdkJywgMTEpIiwgMTM1MCk7CisgIH0KKyAgCisgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgc3RhcnQsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0
aCBmb3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3
aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0
cyBlYWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJh
IiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4K
KyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJk
cworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9maWxsLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjcx
YjFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUu
aHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+
CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBhbmltYXRpb248L3RpdGxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZGVsYXk6IDAuMjVzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1uYW1lOiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1l
cyAiYW5pbSIgeworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7IH0KKyAgICAgICAgdG8gICB7
IGxlZnQ6IDMwMHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQor
ICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTog
Zm9yd2FyZHM7CisgICAgfQorICAgICNkIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxv
dzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQgc3JjPSJhbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKworICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBw
cm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsiYW5pbSIsIDAuMTAs
ICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImEiLCAibGVmdCIs
IDIyNSwgNV0sCisgICAgICBbImFuaW0iLCAxLjMsICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAg
ICAgWyJhbmltIiwgMC4xMCwgImIiLCAibGVmdCIsIDIwMCwgNV0sCisgICAgICBbImFuaW0iLCAw
LjUwLCAiYiIsICJsZWZ0IiwgMjI1LCA1XSwKKyAgICAgIFsiYW5pbSIsIDEuMywgImIiLCAibGVm
dCIsIDEwMCwgNV0sCisgICAgICBbImFuaW0iLCAwLjEwLCAiYyIsICJsZWZ0IiwgMTAwLCA1XSwK
KyAgICAgIFsiYW5pbSIsIDAuNTAsICJjIiwgImxlZnQiLCAyMjUsIDVdLAorICAgICAgWyJhbmlt
IiwgMS4zLCAiYyIsICJsZWZ0IiwgMzAwLCA1XSwKKyAgICAgIFsiYW5pbSIsIDAuMTAsICJkIiwg
ImxlZnQiLCAyMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImQiLCAibGVmdCIsIDIyNSwg
NV0sCisgICAgICBbImFuaW0iLCAxLjMsICJkIiwgImxlZnQiLCAzMDAsIDVdLAorICAgIF07Cisg
ICAgCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgdW5kZWZpbmVkLCAibG9h
ZCIsIHRydWUsIHVuZGVmaW5lZCk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1Ro
aXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBm
b3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRo
IGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0cyBl
YWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJhIiBj
bGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4KKyAg
QmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJkcwor
PC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5k
ZXggYTU3YzVkYS4uYzNkZmZhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNSw0ICs1LDUgQEAg
VGVzdGluZyB3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246IFBBU1MKIFRlc3Rpbmcgd2Vi
a2l0QW5pbWF0aW9uTmFtZTogUEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EdXJhdGlvbjog
UEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EZWxheTogUEFTUworVGVzdGluZyB3ZWJraXRB
bmltYXRpb25GaWxsTW9kZTogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAppbmRleCBiNDdhMjg2Li5hNDlkZWNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKQEAg
LTEzLDYgKzEzLDcgQEAKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhLCBiLCBjLCBkLCBl
OwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMHMsIDIwczsKICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kZWxheTogMXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBm
b3J3YXJkcywgYmFja3dhcmRzOwogfQogQC13ZWJraXQta2V5ZnJhbWVzIGEgeyB9CiBALXdlYmtp
dC1rZXlmcmFtZXMgYiB7IH0KQEAgLTMyLDYgKzMzLDcgQEAKICAgICAgIHsgJ3Byb3BlcnR5Jzog
J3dlYmtpdEFuaW1hdGlvbk5hbWUnLCAgICAgICd2YWx1ZSc6ICdhLCBiLCBjLCBkLCBlJyB9LAog
ICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0QW5pbWF0aW9uRHVyYXRpb24nLCAgJ3ZhbHVlJzog
JzEwcywgMjBzLCAxMHMsIDIwcywgMTBzJyB9LAogICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0
QW5pbWF0aW9uRGVsYXknLCAgICAgJ3ZhbHVlJzogJzFzLCAxcywgMXMsIDFzLCAxcycgfSwKKyAg
ICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkZpbGxNb2RlJywgICd2YWx1ZSc6ICdm
b3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcycgfSwKICAg
ICBdOwogICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQKaW5kZXggZTYxZTIwYi4uMzJmZTNkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKQEAgLTg2LDYgKzg2LDcgQEAgem9vbTogMTsKIC13ZWJraXQtYW5pbWF0aW9u
LWRlbGF5OiAwczsKIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOwogLXdlYmtp
dC1hbmltYXRpb24tZHVyYXRpb246IDBzOworLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBu
b25lOwogLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogLXdlYmtpdC1hbmlt
YXRpb24tbmFtZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3Vi
aWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAppbmRleCBjOWZhOTQyLi5h
Njg5MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1y
ZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTg1LDYgKzg1LDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2Yg
YW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVj
dGlvbjogbm9ybWFsCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDBzCisgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lCiAgICAgLXdlYmtpdC1hbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiAxCiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZQogICAgIC13
ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwg
MC4yNSwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4
cGVjdGVkLnR4dAppbmRleCBmZjQ4NmU1Li5mODdjNGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC05Niw2ICs5Niw3IEBA
IHpvb206IDE7CiAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHM7CiAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IG5vcm1hbDsKIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsKKy13
ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogMTsKIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7CiAtd2Via2l0LWFu
aW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91
dC1yZW5kZXJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVj
dGVkLnR4dAppbmRleCBjMTI5MWExLi4yMzc3NGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRo
b3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dApAQCAtOTUsNiArOTUsNyBAQCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVt
ZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGVsYXk6IDBzCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWwKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMHMKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1maWxsLW1vZGU6IG5vbmUKICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24t
Y291bnQ6IDEKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lCiAgICAgLXdlYmtpdC1h
bmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2
Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggYmI4YzBiMy4u
YTFjNTNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxl
LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVk
U3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xOTAsNiArMTkwLDggQEAgcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24pIDogbm9ybWFsCiBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bikgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogMHMKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogW29iamVjdCBDU1NWYWx1ZUxp
c3RdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KSA6IDEKIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9u
LWNvdW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1uYW1lKSA6IG5vbmUKQEAgLTYwNCw2ICs2MDYsOCBAQCBn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbikgOiBu
b3JtYWwKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZGly
ZWN0aW9uKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiAwcwogZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiBbb2JqZWN0IENTU1ZhbHVlTGlz
dF0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogMQogZzogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogW29i
amVjdCBDU1NWYWx1ZUxpc3RdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLW5hbWUpIDogbm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjZDg1YWMyLi5iM2EwNWY3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEw
LTAzLTAyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMjY4Njk6IEFkZCBmaWxsIG1vZGVz
IGZvciBDU1MgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjY4NjkKKworICAgICAgICBUZXN0czogYW5pbWF0aW9ucy9maWxsLW1vZGUt
dHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwK
KworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAg
ICAgICAgLSBleHBvc2UgbmV3IHByb3BlcnR5CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgorICAgICAgICAgICAgLSBzdXBwb3J0IHBhcnNpbmcgb2YgbmV3IHByb3BlcnR5CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgICogcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAgICAgLSBuZXcgc3RhdGUgaW4gYW5pbWF0
aW9uIGVuZ2luZSBmb3IgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgdGhhdCBp
cyAiZmlsbGluZyIgZm9yd2FyZHMgaW4gdGltZS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgICAg
ICAgIGVuZ2luZSB0byBrZWVwIHRoZSBhbmltYXRpb24gYXJvdW5kIGFuZCBub3QgcmV2ZXJ0IHRv
IHRoZQorICAgICAgICAgICAgICBvbGQgc3R5bGUuCisgICAgICAgICAgICAtIHVwZGF0ZSB0aGUg
dGltZXIgY29kZSB0byBpbmRpY2F0ZSBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAg
a2VlcCBhbmltYXRpbmcgaWYgaXQgaXMgZmlsbGluZworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgICAgIC0gYmxlbmQgY29kZSB1cGRhdGVk
IHRvIHRha2UgZmlsbGluZyBiYWNrd2FyZHMgaW4gdGltZS4gVGhhdAorICAgICAgICAgICAgICBp
cywgdXNlIHRoZSBpbml0aWFsIGFuaW1hdGlvbiBzdHlsZSB2YWx1ZS4KKyAgICAgICAgICAgIC0g
bWFrZSBzdXJlIGhhcmR3YXJlIGxheWVycyBkbyBub3QgcmVtb3ZlIHRoZWlyIENBIGFuaW1hdGlv
bnMKKyAgICAgICAgICAgICAgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgZmlsbCBtb2RlLgorICAg
ICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgICAgIC0gTmV3IGZpbGwgbW9kZSBt
ZW1iZXIgdmFyaWFibGUKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlz
dC5jcHA6CisgICAgICAgICAgICAtIE1ha2Ugc3VyZSBuZXcgcHJvcGVydHkgaXMgZXhwYW5kZWQg
aW4gQ1NTIGxpc3RzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5
ZXJDQS5tbToKKyAgICAgICAgICAgIC0gVGVsbCBDb3JlIEFuaW1hdGlvbiB0byB1c2UgdGhlIGZp
bGwgbW9kZSB3aGVuCisgICAgICAgICAgICAgIGFuaW1hdGluZyBoYXJkd2FyZS1iYWNrZWQgbGF5
ZXJzLgorCiAyMDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hlciBhbmQgUGF2ZWwgRmVsZG1hbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDgwMzllMzUuLjQw
NzQ1MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtMTQ2LDYgKzE0Niw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10g
PSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheSwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bkR1cmF0aW9uLAorICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGUsCiAgICAg
Q1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbk5hbWUsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25QbGF5
U3RhdGUsCkBAIC0xMTk4LDYgKzExOTksMjQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAg
ICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246
CiAgICAgICAgICAgICByZXR1cm4gZ2V0RHVyYXRpb25WYWx1ZShzdHlsZS0+YW5pbWF0aW9ucygp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlOiB7Cisg
ICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOworICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9
IHN0eWxlLT5hbmltYXRpb25zKCk7CisgICAgICAgICAgICBpZiAodCkgeworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHQtPmFuaW1hdGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkZpbGxNb2RlTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZU5vbmUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodC0+YW5pbWF0aW9uKGkpLT5maWxsTW9kZSgpID09
IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVGb3J3YXJkcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihD
U1NWYWx1ZUZvcndhcmRzKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHQtPmFuaW1h
dGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQmFja3dh
cmRzKQorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlQmFja3dhcmRzKSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUJvdGgpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKSk7CisgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB7CiAgICAgICAgICAgICBS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFy
YXRlZCgpOwogICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmlt
YXRpb25zKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1YzY1MTQyLi5iMmRkM2JlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTEzOTMsNiArMTM5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25E
ZWxheToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEFuaW1hdGlvbk5hbWU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlT
dGF0ZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6
CkBAIC0yNTcxLDYgKzI1NzIsMTQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUFuaW1hdGlvbkR1cmF0aW9uKCkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkZpbGxNb2RlKCkKK3sKKyAgICBDU1NQ
YXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICh2YWx1
ZS0+aWQgPT0gQ1NTVmFsdWVOb25lIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8
IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVC
b3RoKQorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIo
dmFsdWUtPmlkKTsKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NT
UGFyc2VyOjpwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCkKIHsKICAgICBDU1NQYXJzZXJW
YWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwpAQCAtMjcxMyw2ICsyNzIyLDEx
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBwcm9wSWQsIFJl
ZlB0cjxDU1NWYWx1ZT4mIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1
ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRBbmltYXRpb25GaWxsTW9kZToKKyAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFy
c2VBbmltYXRpb25GaWxsTW9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclZhbHVl
KQorICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OgogICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUg
PSBwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChjdXJyVmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLmQxMGRhNGMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC05
NSw2ICs5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUFuaW1hdGlvbkRpcmVjdGlvbigpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUFuaW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHBhcnNlQW5pbWF0aW9uRmlsbE1vZGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VBbmltYXRpb25JdGVyYXRpb25Db3VudCgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZUFuaW1hdGlvbk5hbWUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VBbmltYXRpb25QbGF5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDk2
OTVkMGIuLjVmN2IxODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTUxLDYgKzE1MSw3
IEBAIHpvb20KIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb24KIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uCistd2Via2l0LWFuaW1hdGlvbi1maWxs
LW1vZGUKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudAogLXdlYmtpdC1hbmltYXRp
b24tbmFtZQogLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCAxMjRlYjlmLi42OTYzNmE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApA
QCAtNTI5MSw2ICs1MjkxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmlt
YXRpb25EdXJhdGlvbjoKICAgICAgICAgSEFORExFX0FOSU1BVElPTl9WQUxVRShkdXJhdGlvbiwg
RHVyYXRpb24sIHZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbkZpbGxNb2RlOgorICAgICAgICBIQU5ETEVfQU5JTUFUSU9OX1ZBTFVFKGZp
bGxNb2RlLCBGaWxsTW9kZSwgdmFsdWUpCisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgICAgIEhBTkRMRV9BTklN
QVRJT05fVkFMVUUoaXRlcmF0aW9uQ291bnQsIEl0ZXJhdGlvbkNvdW50LCB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTY1MCw2ICs1NjUzLDMxIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
bWFwQW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1
CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0
VmFsdWUoKS8xMDAwLjBmKTsKIH0KIAordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRp
b25GaWxsTW9kZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsKKyAgICAg
ICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkZpbGxNb2Rl
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorIAorICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwor
ICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKworICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgorICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRp
b25GaWxsTW9kZU5vbmUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlRm9yd2Fy
ZHM6CisgICAgICAgIGxheWVyLT5zZXRGaWxsTW9kZShBbmltYXRpb246OkFuaW1hdGlvbkZpbGxN
b2RlRm9yd2FyZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQmFja3dhcmRz
OgorICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9k
ZUJhY2t3YXJkcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVCb3RoOgorICAg
ICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgp
OworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFw
QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUtPmNzc1ZhbHVlVHlwZSgpID09IENTU1ZhbHVlOjpDU1Nf
SU5JVElBTCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IDY0NDA1MWMuLjI4NGQ1NjEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZvaWQgbWFwQW5pbWF0aW9uRGVsYXkoQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKICAgICAgICAg
dm9pZCBtYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKICAgICAg
ICAgdm9pZCBtYXBBbmltYXRpb25EdXJhdGlvbihBbmltYXRpb24qLCBDU1NWYWx1ZSopOworICAg
ICAgICB2b2lkIG1hcEFuaW1hdGlvbkZpbGxNb2RlKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAg
ICAgICAgIHZvaWQgbWFwQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uKiwgQ1NTVmFs
dWUqKTsKICAgICAgICAgdm9pZCBtYXBBbmltYXRpb25OYW1lKEFuaW1hdGlvbiosIENTU1ZhbHVl
Kik7CiAgICAgICAgIHZvaWQgbWFwQW5pbWF0aW9uUGxheVN0YXRlKEFuaW1hdGlvbiosIENTU1Zh
bHVlKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBjYTJhNDdhLi44N2UyNTY5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTYzOSw2ICs2MzksMTMgQEAgbGluZXMKICMgYWx0ZXJu
YXRlCiAKICMKKyMgQ1NTX1BST1BfX1dFQktJVF9BTklNQVRJT05fRklMTF9NT0RFCisjCisjIGZv
cndhcmRzCisjIGJhY2t3YXJkcworIyBib3RoCisKKyMKICMgQ1NTX1BST1BfX1dFQktJVF9BTklN
QVRJT05fSVRFUkFUSU9OX0NPVU5UCiAjCiAjIGluZmluaXRlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcAppbmRleCAyYTJhYjRiLi4yNjdmYjZkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAgLTkxOCw4ICs5MTgsOCBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91
YmxlIHBhcmFtKQogICAgIC8vIEV4ZWN1dGUgc3RhdGUgbWFjaGluZQogICAgIHN3aXRjaCAobV9h
bmltU3RhdGUpIHsKICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZU5ldzoKLSAgICAgICAgICAg
IEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nIHx8IGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpOwotICAgICAgICAgICAgaWYgKGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcpIHsKKyAgICAgICAgICAgIEFTU0VSVChpbnB1
dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0
aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJ
bnB1dFBsYXlTdGF0ZVBhdXNlZCk7CisgICAgICAgICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9u
U3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQ
bGF5U3RhdGVSdW5uaW5nKSB7CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0ZWRTdGFydFRpbWUg
PSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0
ZSA9IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXI7CiAgICAgICAgICAgICB9CkBAIC0xMDI2
LDEzICsxMDI2LDE4IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFu
aW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgb25Bbmlt
YXRpb25FbmQocGFyYW0pOwogCiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRp
b25TdGF0ZURvbmU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKG1fb2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCk7
CiAKKyAgICAgICAgICAgICAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG1fYW5pbWF0aW9uLT5maWxsTW9kZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1v
ZGVGb3J3YXJkcworICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9hbmltYXRpb24tPmZpbGxN
b2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHM7
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgIC8vIEZpcmUgb2ZmIGFub3RoZXIgc3R5bGUgY2hhbmdlIHNvIHdlIGNh
biBzZXQgdGhlIGZpbmFsIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgIG1fY29tcEFuaW0tPmFu
aW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2gobV9vYmplY3QtPm5v
ZGUoKSk7CiAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIC8vIFdlIGFyZSBwYXVzaW5nIHdoaWxlIHJ1bm5pbmcuIENhbmNlbCB0aGUgYW5p
bWF0aW9uIGFuZCB3YWl0CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSBiZWdpbkFuaW1h
dGlvblVwZGF0ZVRpbWUoKTsKQEAgLTEwNDIsNyArMTA0Nyw3IEBAIHZvaWQgQW5pbWF0aW9uQmFz
ZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0p
CiAgICAgICAgICAgICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVyZQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0VGltZXI6Ci0gICAg
ICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5u
aW5nKTsKKyAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxh
eVN0YXRlUnVubmluZyk7CiAgICAgICAgICAgICBBU1NFUlQocGF1c2VkKCkpOwogICAgICAgICAg
ICAgLy8gVXBkYXRlIHRoZSB0aW1lcwogICAgICAgICAgICAgbV9zdGFydFRpbWUgKz0gYmVnaW5B
bmltYXRpb25VcGRhdGVUaW1lKCkgLSBtX3BhdXNlVGltZTsKQEAgLTEwNTgsNyArMTA2Myw3IEBA
IHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlu
cHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAvLyBBbmltYXRpb25TdGF0ZVBhdXNlZFdh
aXRSZXNwb25zZSwgd2UgZG9uJ3QgeWV0IGhhdmUgYSB2YWxpZCBzdGFydFRpbWUsIHNvIHdlIHNl
bmQgMCB0byBzdGFydEFuaW1hdGlvbi4KICAgICAgICAgICAgIC8vIFdoZW4gdGhlIEFuaW1hdGlv
blN0YXRlSW5wdXRTdGFydFRpbWVTZXQgY29tZXMgaW4gYW5kIHdlIHdlcmUgaW4gQW5pbWF0aW9u
U3RhdGVQYXVzZWRSdW4sIHdlIHdpbGwgbm90aWNlCiAgICAgICAgICAgICAvLyB0aGF0IHdlIGhh
dmUgYWxyZWFkeSBzZXQgdGhlIHN0YXJ0VGltZSBhbmQgd2lsbCBpZ25vcmUgaXQuCi0gICAgICAg
ICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5n
IHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQpOworICAgICAgICAg
ICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nIHx8
IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQpOwogICAgICAgICAgICAg
QVNTRVJUKHBhdXNlZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYgd2UgYXJl
IHBhdXNlZCwgYnV0IHdlIGdldCB0aGUgY2FsbGJhY2sgdGhhdCBub3RpZmllcyB1cyB0aGF0IGFu
IGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBzdGFydGVkLApAQCAtMTA5Myw2ICsxMDk4LDcgQEAgdm9p
ZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQs
IGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICBtX2ZhbGxiYWNrQW5pbWF0aW5nID0gIXN0
YXJ0ZWQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
bmltYXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkczoKICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0
ZURvbmU6CiAgICAgICAgICAgICAvLyBXZSdyZSBkb25lLiBTdGF5IGluIHRoaXMgc3RhdGUgdW50
aWwgd2UgYXJlIGRlbGV0ZWQKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTE1MiwxNCArMTE1OCwx
NCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OmZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgpCiB2
b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVBsYXlTdGF0ZShib29sIHJ1bikKIHsKICAgICBpZiAo
cGF1c2VkKCkgPT0gcnVuIHx8IGlzTmV3KCkpCi0gICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShy
dW4gPyBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcgOiBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUGF1c2VkLCAtMSk7CisgICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShy
dW4gPyBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyA6IEFuaW1hdGlvblN0YXRl
SW5wdXRQbGF5U3RhdGVQYXVzZWQsIC0xKTsKIH0KIAogZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRp
bWVUb05leHRTZXJ2aWNlKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIGF0IHdoaWNoIG5l
eHQgc2VydmljZSBpcyByZXF1aXJlZC4gLTEgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4g
MCBtZWFucyAKICAgICAvLyBzZXJ2aWNlIGlzIHJlcXVpcmVkIG5vdywgYW5kID4gMCBtZWFucyBz
ZXJ2aWNlIGlzIHJlcXVpcmVkIHRoYXQgbWFueSBzZWNvbmRzIGluIHRoZSBmdXR1cmUuCi0gICAg
aWYgKHBhdXNlZCgpIHx8IGlzTmV3KCkpCisgICAgaWYgKHBhdXNlZCgpIHx8IGlzTmV3KCkgfHwg
bV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHMpCiAgICAgICAgIHJl
dHVybiAtMTsKICAgICAKICAgICBpZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFy
dFdhaXRUaW1lcikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25CYXNlLmggYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAppbmRleCBj
MzY3ZTBhLi5hOTU3MTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApA
QCAtNzEsNyArNzEsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0YXRlUGF1c2VkV2Fp
dFRpbWVyLCAgICAgIC8vIGluIHBhdXNlIG1vZGUgd2hlbiBhbmltYXRpb24gc3RhcnRlZAogICAg
ICAgICBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRSZXNwb25zZSwgICAvLyBhbmltYXRpb24gcGF1
c2VkIHdoZW4gaW4gU1RBUlRJTkcgc3RhdGUKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRS
dW4sICAgICAgICAgICAgLy8gYW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIExPT1BJTkcgb3IgRU5E
SU5HIHN0YXRlCi0gICAgICAgIEFuaW1hdGlvblN0YXRlRG9uZSAgICAgICAgICAgICAgICAgIC8v
IGVuZCB0aW1lciBmaXJlZCwgYW5pbWF0aW9uIGZpbmlzaGVkIGFuZCByZW1vdmVkCisgICAgICAg
IEFuaW1hdGlvblN0YXRlRG9uZSwgICAgICAgICAgICAgICAgIC8vIGVuZCB0aW1lciBmaXJlZCwg
YW5pbWF0aW9uIGZpbmlzaGVkIGFuZCByZW1vdmVkCisgICAgICAgIEFuaW1hdGlvblN0YXRlRmls
bGluZ0ZvcndhcmRzICAgICAgIC8vIGFuaW1hdGlvbiBoYXMgZW5kZWQgYW5kIGlzIHJldGFpbmlu
ZyBpdHMgZmluYWwgdmFsdWUKICAgICB9OwogCiAgICAgZW51bSBBbmltU3RhdGVJbnB1dCB7CkBA
IC04NSw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dEVuZFRp
bWVyRmlyZWQsICAgICAvLyBlbmQgdGltZXIgZmlyZWQKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJ
bnB1dFBhdXNlT3ZlcnJpZGUsICAgICAvLyBwYXVzZSBhbiBhbmltYXRpb24gZHVlIHRvIG92ZXJy
aWRlCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRSZXN1bWVPdmVycmlkZSwgICAgLy8gcmVz
dW1lIGFuIG92ZXJyaWRkZW4gYW5pbWF0aW9uCi0gICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRQ
bGF5U3RhdGVSdW5ubmluZywgLy8gcGxheSBzdGF0ZSBwYXVzZWQgLT4gcnVubmluZworICAgICAg
ICBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZywgIC8vIHBsYXkgc3RhdGUgcGF1
c2VkIC0+IHJ1bm5pbmcKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNl
ZCwgICAvLyBwbGF5IHN0YXRlIHJ1bm5pbmcgLT4gcGF1c2VkCiAgICAgICAgIEFuaW1hdGlvblN0
YXRlSW5wdXRFbmRBbmltYXRpb24gICAgICAgLy8gZm9yY2UgYW4gZW5kIGZyb20gYW55IHN0YXRl
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAK
aW5kZXggYzVlMzY2MC4uMjE4NDA0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHAKQEAgLTExMiwxNyArMTEyLDIyIEBAIHZvaWQgS2V5ZnJhbWVBbmlt
YXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UmVuZGVyCiAgICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlucHV0U3Rh
cnRBbmltYXRpb24sIC0xKTsKIAogICAgIC8vIElmIHdlIGdldCB0aGlzIGZhciBhbmQgdGhlIGFu
aW1hdGlvbiBpcyBkb25lLCBpdCBtZWFucyB3ZSBhcmUgY2xlYW5pbmcgdXAgYSBqdXN0IGZpbmlz
aGVkIGFuaW1hdGlvbi4KLSAgICAvLyBJZiBzbywgd2UgbmVlZCB0byBzZW5kIGJhY2sgdGhlIHRh
cmdldFN0eWxlLgotICAgIGlmIChwb3N0QWN0aXZlKCkpIHsKKyAgICAvLyBJZiB0aGVyZSBpc24n
dCBhIGZvcndhcmRzIGZpbGwgbW9kZSwgd2UgbmVlZCB0byBzZW5kIGJhY2sgdGhlIHRhcmdldFN0
eWxlLgorICAgIGlmIChwb3N0QWN0aXZlKCkgJiYgbV9hbmltYXRpb24tPmZpbGxNb2RlKCkgIT0g
QW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzCisgICAgICAgICYmIG1fYW5pbWF0
aW9uLT5maWxsTW9kZSgpICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKSB7CiAg
ICAgICAgIGlmICghYW5pbWF0ZWRTdHlsZSkKICAgICAgICAgICAgIGFuaW1hdGVkU3R5bGUgPSBj
b25zdF9jYXN0PFJlbmRlclN0eWxlKj4odGFyZ2V0U3R5bGUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgLy8gSWYgd2UgYXJlIHdhaXRpbmcgZm9yIHRoZSBzdGFydCB0aW1lciwgd2Ug
ZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIHN0eWxlIHlldC4KLSAgICAvLyBTcGVjaWFsIGNhc2Ug
LSBpZiB0aGUgZGVsYXkgdGltZSBpcyAwLCB0aGVuIHdlIGRvIHdhbnQgdG8gc2V0IHRoZSBmaXJz
dCBmcmFtZSBvZiB0aGUKKyAgICAvLyBTcGVjaWFsIGNhc2UgMSAtIGlmIHRoZSBkZWxheSB0aW1l
IGlzIDAsIHRoZW4gd2UgZG8gd2FudCB0byBzZXQgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZQogICAg
IC8vIGFuaW1hdGlvbiByaWdodCBhd2F5LiBUaGlzIGF2b2lkcyBhIGZsYXNoIHdoZW4gdGhlIGFu
aW1hdGlvbiBzdGFydHMuCi0gICAgaWYgKHdhaXRpbmdUb1N0YXJ0KCkgJiYgbV9hbmltYXRpb24t
PmRlbGF5KCkgPiAwKQorICAgIC8vIFNwZWNpYWwgY2FzZSAyIC0gaWYgdGhlcmUgaXMgYSBiYWNr
d2FyZHMgZmlsbCBtb2RlLCB0aGVuIHdlIHdhbnQgdG8gY29udGludWUKKyAgICAvLyB0aHJvdWdo
IHRvIHRoZSBzdHlsZSBibGVuZCBzbyB0aGF0IHdlIGdldCB0aGUgZnJvbVN0eWxlLgorICAgIGlm
ICh3YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5kZWxheSgpID4gMAorICAgICAgICAm
JiBtX2FuaW1hdGlvbi0+ZmlsbE1vZGUoKSAhPSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2Rl
QmFja3dhcmRzCisgICAgICAgICYmIG1fYW5pbWF0aW9uLT5maWxsTW9kZSgpICE9IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhN
RTogd2UgbmVlZCB0byBiZSBtb3JlIGVmZmljaWVudCBhYm91dCBkZXRlcm1pbmluZyB3aGljaCBr
ZXlmcmFtZXMgd2UgYXJlIGFuaW1hdGluZyBiZXR3ZWVuLgpAQCAtMjMzLDEyICsyMzgsMTQgQEAg
dm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKCkKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0LT5oYXNMYXllcigpKSB7CiAgICAgICAg
IFJlbmRlckxheWVyKiBsYXllciA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5s
YXllcigpOwotICAgICAgICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgpKQorICAgICAgICBpZiAo
bGF5ZXItPmlzQ29tcG9zaXRlZCgpICYmIG1fYW5pbWF0aW9uLT5maWxsTW9kZSgpICE9IEFuaW1h
dGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVGb3J3YXJkcworICAgICAgICAgICAgJiYgbV9hbmltYXRp
b24tPmZpbGxNb2RlKCkgIT0gQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgpCiAgICAg
ICAgICAgICBsYXllci0+YmFja2luZygpLT5hbmltYXRpb25GaW5pc2hlZChtX2tleWZyYW1lcy5h
bmltYXRpb25OYW1lKCkpOwogICAgIH0KICNlbmRpZgogICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdp
bmFsICh1bmFuaW1hdGVkKSBzdHlsZQotICAgIGlmICghcGF1c2VkKCkpCisgICAgaWYgKCFwYXVz
ZWQoKSAmJiBtX2FuaW1hdGlvbi0+ZmlsbE1vZGUoKSAhPSBBbmltYXRpb246OkFuaW1hdGlvbkZp
bGxNb2RlRm9yd2FyZHMKKyAgICAgICAgJiYgbV9hbmltYXRpb24tPmZpbGxNb2RlKCkgIT0gQW5p
bWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgpCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNh
bGMobV9vYmplY3QtPm5vZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9Bbmlt
YXRpb24uY3BwCmluZGV4IDA1NzYxZjguLmQwNTNkZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uLmNwcApAQCAtMzAsMTIgKzMwLDE0IEBAIEFuaW1hdGlvbjo6QW5pbWF0
aW9uKCkKICAgICAsIG1faXRlcmF0aW9uQ291bnQoaW5pdGlhbEFuaW1hdGlvbkl0ZXJhdGlvbkNv
dW50KCkpCiAgICAgLCBtX2RlbGF5KGluaXRpYWxBbmltYXRpb25EZWxheSgpKQogICAgICwgbV9k
dXJhdGlvbihpbml0aWFsQW5pbWF0aW9uRHVyYXRpb24oKSkKKyAgICAsIG1fZmlsbE1vZGUoaW5p
dGlhbEFuaW1hdGlvbkZpbGxNb2RlKCkpCiAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uKGluaXRpYWxB
bmltYXRpb25UaW1pbmdGdW5jdGlvbigpKQogICAgICwgbV9kaXJlY3Rpb24oaW5pdGlhbEFuaW1h
dGlvbkRpcmVjdGlvbigpKQogICAgICwgbV9wbGF5U3RhdGUoaW5pdGlhbEFuaW1hdGlvblBsYXlT
dGF0ZSgpKQogICAgICwgbV9kZWxheVNldChmYWxzZSkKICAgICAsIG1fZGlyZWN0aW9uU2V0KGZh
bHNlKQogICAgICwgbV9kdXJhdGlvblNldChmYWxzZSkKKyAgICAsIG1fZmlsbE1vZGVTZXQoZmFs
c2UpCiAgICAgLCBtX2l0ZXJhdGlvbkNvdW50U2V0KGZhbHNlKQogICAgICwgbV9uYW1lU2V0KGZh
bHNlKQogICAgICwgbV9wbGF5U3RhdGVTZXQoZmFsc2UpCkBAIC01MiwxMiArNTQsMTQgQEAgQW5p
bWF0aW9uOjpBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiBvKQogICAgICwgbV9pdGVyYXRpb25D
b3VudChvLm1faXRlcmF0aW9uQ291bnQpCiAgICAgLCBtX2RlbGF5KG8ubV9kZWxheSkKICAgICAs
IG1fZHVyYXRpb24oby5tX2R1cmF0aW9uKQorICAgICwgbV9maWxsTW9kZShvLm1fZmlsbE1vZGUp
CiAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uKG8ubV90aW1pbmdGdW5jdGlvbikKICAgICAsIG1fZGly
ZWN0aW9uKG8ubV9kaXJlY3Rpb24pCiAgICAgLCBtX3BsYXlTdGF0ZShvLm1fcGxheVN0YXRlKQog
ICAgICwgbV9kZWxheVNldChvLm1fZGVsYXlTZXQpCiAgICAgLCBtX2RpcmVjdGlvblNldChvLm1f
ZGlyZWN0aW9uU2V0KQogICAgICwgbV9kdXJhdGlvblNldChvLm1fZHVyYXRpb25TZXQpCisgICAg
LCBtX2ZpbGxNb2RlU2V0KG8ubV9maWxsTW9kZVNldCkKICAgICAsIG1faXRlcmF0aW9uQ291bnRT
ZXQoby5tX2l0ZXJhdGlvbkNvdW50U2V0KQogICAgICwgbV9uYW1lU2V0KG8ubV9uYW1lU2V0KQog
ICAgICwgbV9wbGF5U3RhdGVTZXQoby5tX3BsYXlTdGF0ZVNldCkKQEAgLTc0LDYgKzc4LDcgQEAg
QW5pbWF0aW9uJiBBbmltYXRpb246Om9wZXJhdG9yPShjb25zdCBBbmltYXRpb24mIG8pCiAgICAg
bV9pdGVyYXRpb25Db3VudCA9IG8ubV9pdGVyYXRpb25Db3VudDsKICAgICBtX2RlbGF5ID0gby5t
X2RlbGF5OwogICAgIG1fZHVyYXRpb24gPSBvLm1fZHVyYXRpb247CisgICAgbV9maWxsTW9kZSA9
IG8ubV9maWxsTW9kZTsKICAgICBtX3RpbWluZ0Z1bmN0aW9uID0gby5tX3RpbWluZ0Z1bmN0aW9u
OwogICAgIG1fZGlyZWN0aW9uID0gby5tX2RpcmVjdGlvbjsKICAgICBtX3BsYXlTdGF0ZSA9IG8u
bV9wbGF5U3RhdGU7CkBAIC04MSw2ICs4Niw3IEBAIEFuaW1hdGlvbiYgQW5pbWF0aW9uOjpvcGVy
YXRvcj0oY29uc3QgQW5pbWF0aW9uJiBvKQogICAgIG1fZGVsYXlTZXQgPSBvLm1fZGVsYXlTZXQ7
CiAgICAgbV9kaXJlY3Rpb25TZXQgPSBvLm1fZGlyZWN0aW9uU2V0OwogICAgIG1fZHVyYXRpb25T
ZXQgPSBvLm1fZHVyYXRpb25TZXQ7CisgICAgbV9maWxsTW9kZVNldCA9IG8ubV9maWxsTW9kZVNl
dDsKICAgICBtX2l0ZXJhdGlvbkNvdW50U2V0ID0gby5tX2l0ZXJhdGlvbkNvdW50U2V0OwogICAg
IG1fbmFtZVNldCA9IG8ubV9uYW1lU2V0OwogICAgIG1fcGxheVN0YXRlU2V0ID0gby5tX3BsYXlT
dGF0ZVNldDsKQEAgLTEwNSwxMSArMTExLDEzIEBAIGJvb2wgQW5pbWF0aW9uOjphbmltYXRpb25z
TWF0Y2goY29uc3QgQW5pbWF0aW9uKiBvLCBib29sIG1hdGNoUGxheVN0YXRlcykgY29uc3QKICAg
ICAgICAgICAgICAgICAgIG1faXRlcmF0aW9uQ291bnQgPT0gby0+bV9pdGVyYXRpb25Db3VudCAm
JgogICAgICAgICAgICAgICAgICAgbV9kZWxheSA9PSBvLT5tX2RlbGF5ICYmCiAgICAgICAgICAg
ICAgICAgICBtX2R1cmF0aW9uID09IG8tPm1fZHVyYXRpb24gJiYKKyAgICAgICAgICAgICAgICAg
IG1fZmlsbE1vZGUgPT0gby0+bV9maWxsTW9kZSAmJgogICAgICAgICAgICAgICAgICAgbV90aW1p
bmdGdW5jdGlvbiA9PSBvLT5tX3RpbWluZ0Z1bmN0aW9uICYmCiAgICAgICAgICAgICAgICAgICBt
X2RpcmVjdGlvbiA9PSBvLT5tX2RpcmVjdGlvbiAmJgogICAgICAgICAgICAgICAgICAgbV9kZWxh
eVNldCA9PSBvLT5tX2RlbGF5U2V0ICYmCiAgICAgICAgICAgICAgICAgICBtX2RpcmVjdGlvblNl
dCA9PSBvLT5tX2RpcmVjdGlvblNldCAmJgogICAgICAgICAgICAgICAgICAgbV9kdXJhdGlvblNl
dCA9PSBvLT5tX2R1cmF0aW9uU2V0ICYmCisgICAgICAgICAgICAgICAgICBtX2ZpbGxNb2RlU2V0
ID09IG8tPm1fZmlsbE1vZGVTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1faXRlcmF0aW9uQ291
bnRTZXQgPT0gby0+bV9pdGVyYXRpb25Db3VudFNldCAmJgogICAgICAgICAgICAgICAgICAgbV9u
YW1lU2V0ID09IG8tPm1fbmFtZVNldCAmJgogICAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eVNl
dCA9PSBvLT5tX3Byb3BlcnR5U2V0ICYmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlv
bi5oCmluZGV4IDMwNmExYjkuLjliZjBmY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbi5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGVsYXlTZXQo
KSBjb25zdCB7IHJldHVybiBtX2RlbGF5U2V0OyB9CiAgICAgYm9vbCBpc0RpcmVjdGlvblNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uU2V0OyB9CiAgICAgYm9vbCBpc0R1cmF0aW9uU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlvblNldDsgfQorICAgIGJvb2wgaXNGaWxsTW9kZVNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGVTZXQ7IH0KICAgICBib29sIGlzSXRlcmF0aW9u
Q291bnRTZXQoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdGlvbkNvdW50U2V0OyB9CiAgICAgYm9v
bCBpc05hbWVTZXQoKSBjb25zdCB7IHJldHVybiBtX25hbWVTZXQ7IH0KICAgICBib29sIGlzUGxh
eVN0YXRlU2V0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5U3RhdGVTZXQ7IH0KQEAgLTU4LDggKzU5
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiAoIW1fZGlyZWN0aW9uU2V0ICYmICFtX2R1cmF0aW9uU2V0ICYmICFtX25hbWVTZXQg
JiYgIW1fcGxheVN0YXRlU2V0ICYmIAotICAgICAgICAgICAgICAgIW1faXRlcmF0aW9uQ291bnRT
ZXQgJiYgIW1fZGVsYXlTZXQgJiYgIW1fdGltaW5nRnVuY3Rpb25TZXQgJiYgIW1fcHJvcGVydHlT
ZXQpOworICAgICAgICByZXR1cm4gKCFtX2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAm
JiAhbV9maWxsTW9kZVNldAorICAgICAgICAgICAgICAgICYmICFtX25hbWVTZXQgJiYgIW1fcGxh
eVN0YXRlU2V0ICYmICFtX2l0ZXJhdGlvbkNvdW50U2V0CisgICAgICAgICAgICAgICAgJiYgIW1f
ZGVsYXlTZXQgJiYgIW1fdGltaW5nRnVuY3Rpb25TZXQgJiYgIW1fcHJvcGVydHlTZXQpOwogICAg
IH0KIAogICAgIGJvb2wgaXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkgY29uc3QKQEAgLTcwLDYgKzcy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJEZWxheSgpIHsgbV9kZWxheVNldCA9IGZhbHNl
OyB9CiAgICAgdm9pZCBjbGVhckRpcmVjdGlvbigpIHsgbV9kaXJlY3Rpb25TZXQgPSBmYWxzZTsg
fQogICAgIHZvaWQgY2xlYXJEdXJhdGlvbigpIHsgbV9kdXJhdGlvblNldCA9IGZhbHNlOyB9Cisg
ICAgdm9pZCBjbGVhckZpbGxNb2RlKCkgeyBtX2ZpbGxNb2RlU2V0ID0gZmFsc2U7IH0KICAgICB2
b2lkIGNsZWFySXRlcmF0aW9uQ291bnQoKSB7IG1faXRlcmF0aW9uQ291bnRTZXQgPSBmYWxzZTsg
fQogICAgIHZvaWQgY2xlYXJOYW1lKCkgeyBtX25hbWVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQg
Y2xlYXJQbGF5U3RhdGUoKSB7IG1fcGxheVN0YXRlU2V0ID0gQW5pbVBsYXlTdGF0ZVBsYXlpbmc7
IH0KQEAgLTgxLDYgKzg0LDkgQEAgcHVibGljOgogICAgIGVudW0gQW5pbWF0aW9uRGlyZWN0aW9u
IHsgQW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsLCBBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGUg
fTsKICAgICBBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9k
aXJlY3Rpb247IH0KIAorICAgIGVudW0gQW5pbWF0aW9uRmlsbE1vZGUgeyBBbmltYXRpb25GaWxs
TW9kZU5vbmUsIEFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHMsIEFuaW1hdGlvbkZpbGxNb2RlQmFj
a3dhcmRzLCBBbmltYXRpb25GaWxsTW9kZUJvdGggfTsKKyAgICBBbmltYXRpb25GaWxsTW9kZSBm
aWxsTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGU7IH0KKwogICAgIGRvdWJsZSBkdXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KIAogICAgIGVudW0geyBJdGVyYXRp
b25Db3VudEluZmluaXRlID0gLTEgfTsKQEAgLTkzLDYgKzk5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0RGVsYXkoZG91YmxlIGMpIHsgbV9kZWxheSA9IGM7IG1fZGVsYXlTZXQgPSB0cnVlOyB9
CiAgICAgdm9pZCBzZXREaXJlY3Rpb24oQW5pbWF0aW9uRGlyZWN0aW9uIGQpIHsgbV9kaXJlY3Rp
b24gPSBkOyBtX2RpcmVjdGlvblNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldER1cmF0aW9uKGRv
dWJsZSBkKSB7IEFTU0VSVChkID49IDApOyBtX2R1cmF0aW9uID0gZDsgbV9kdXJhdGlvblNldCA9
IHRydWU7IH0KKyAgICB2b2lkIHNldEZpbGxNb2RlKEFuaW1hdGlvbkZpbGxNb2RlIGYpIHsgbV9m
aWxsTW9kZSA9IGY7IG1fZmlsbE1vZGVTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRJdGVyYXRp
b25Db3VudChpbnQgYykgeyBtX2l0ZXJhdGlvbkNvdW50ID0gYzsgbV9pdGVyYXRpb25Db3VudFNl
dCA9IHRydWU7IH0KICAgICB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJiBuKSB7IG1fbmFtZSA9
IG47IG1fbmFtZVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFBsYXlTdGF0ZSh1bnNpZ25lZCBk
KSB7IG1fcGxheVN0YXRlID0gZDsgbV9wbGF5U3RhdGVTZXQgPSB0cnVlOyB9CkBAIC0xMTksNiAr
MTI2LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pdGVyYXRpb25Db3VudDsKICAgICBkb3VibGUg
bV9kZWxheTsKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKKyAgICBBbmltYXRpb25GaWxsTW9kZSBt
X2ZpbGxNb2RlIDogMjsKICAgICBUaW1pbmdGdW5jdGlvbiBtX3RpbWluZ0Z1bmN0aW9uOwogICAg
IEFuaW1hdGlvbkRpcmVjdGlvbiBtX2RpcmVjdGlvbiA6IDE7CiAKQEAgLTEyNyw2ICsxMzUsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9kZWxheVNldCAgICAgICAgICA6IDE7CiAgICAgYm9vbCBt
X2RpcmVjdGlvblNldCAgICAgIDogMTsKICAgICBib29sIG1fZHVyYXRpb25TZXQgICAgICAgOiAx
OworICAgIGJvb2wgbV9maWxsTW9kZVNldCAgICAgICA6IDE7CiAgICAgYm9vbCBtX2l0ZXJhdGlv
bkNvdW50U2V0IDogMTsKICAgICBib29sIG1fbmFtZVNldCAgICAgICAgICAgOiAxOwogICAgIGJv
b2wgbV9wbGF5U3RhdGVTZXQgICAgICA6IDE7CkBAIC0xMzksNiArMTQ4LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsQW5pbWF0aW9uRGVsYXkoKSB7IHJldHVybiAwOyB9CiAg
ICAgc3RhdGljIEFuaW1hdGlvbkRpcmVjdGlvbiBpbml0aWFsQW5pbWF0aW9uRGlyZWN0aW9uKCkg
eyByZXR1cm4gQW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsOyB9CiAgICAgc3RhdGljIGRvdWJsZSBp
bml0aWFsQW5pbWF0aW9uRHVyYXRpb24oKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIEFuaW1h
dGlvbkZpbGxNb2RlIGluaXRpYWxBbmltYXRpb25GaWxsTW9kZSgpIHsgcmV0dXJuIEFuaW1hdGlv
bkZpbGxNb2RlTm9uZTsgfQogICAgIHN0YXRpYyBpbnQgaW5pdGlhbEFuaW1hdGlvbkl0ZXJhdGlv
bkNvdW50KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhbEFuaW1hdGlv
bk5hbWUoKSB7IHJldHVybiBTdHJpbmcoIm5vbmUiKTsgfQogICAgIHN0YXRpYyB1bnNpZ25lZCBp
bml0aWFsQW5pbWF0aW9uUGxheVN0YXRlKCkgeyByZXR1cm4gQW5pbVBsYXlTdGF0ZVBsYXlpbmc7
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3Qu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAKaW5kZXgg
ODA0ZGVkZS4uYmQ1ZmRlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24v
QW5pbWF0aW9uTGlzdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uTGlzdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAgdm9pZCBBbmltYXRpb25MaXN0OjpmaWxsVW5z
ZXRQcm9wZXJ0aWVzKCkKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzRGVsYXlTZXQsIGRlbGF5
LCBzZXREZWxheSk7CiAgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0RpcmVjdGlvblNldCwgZGly
ZWN0aW9uLCBzZXREaXJlY3Rpb24pOwogICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNEdXJhdGlv
blNldCwgZHVyYXRpb24sIHNldER1cmF0aW9uKTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlz
RmlsbE1vZGVTZXQsIGZpbGxNb2RlLCBzZXRGaWxsTW9kZSk7CiAgICAgRklMTF9VTlNFVF9QUk9Q
RVJUWShpc0l0ZXJhdGlvbkNvdW50U2V0LCBpdGVyYXRpb25Db3VudCwgc2V0SXRlcmF0aW9uQ291
bnQpOwogICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNQbGF5U3RhdGVTZXQsIHBsYXlTdGF0ZSwg
c2V0UGxheVN0YXRlKTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzTmFtZVNldCwgbmFtZSwg
c2V0TmFtZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFw
aGljc0xheWVyQ0EubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW0KaW5kZXggMjJlMzlmNS4uOWU3OWI4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQpAQCAtMTg1OSwxMiArMTg1OSwyMCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmltYXRpb24oQ0FQcm9wZXJ0eUFuaW1hdGlv
biogcHJvcGVydHlBbmltLCBjb25zdCBBbgogICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVjdGlvbigp
ID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKQogICAgICAgICByZXBl
YXRDb3VudCAvPSAyOwogCisgICAgTlNTdHJpbmcqIGZpbGxNb2RlID0ga0NBRmlsbE1vZGVSZW1v
dmVkOworICAgIGlmIChhbmltLT5maWxsTW9kZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmls
bE1vZGVCYWNrd2FyZHMpCisgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUJhY2t3YXJkczsK
KyAgICBlbHNlIGlmIChhbmltLT5maWxsTW9kZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmls
bE1vZGVGb3J3YXJkcykKKyAgICAgICBmaWxsTW9kZSA9IGtDQUZpbGxNb2RlRm9yd2FyZHM7Cisg
ICAgZWxzZSBpZiAoYW5pbS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxN
b2RlQm90aCkKKyAgICAgICBmaWxsTW9kZSA9IGtDQUZpbGxNb2RlQm90aDsKKwogICAgIFtwcm9w
ZXJ0eUFuaW0gc2V0RHVyYXRpb246ZHVyYXRpb25dOwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0UmVw
ZWF0Q291bnQ6cmVwZWF0Q291bnRdOwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0QXV0b3JldmVyc2Vz
OmFuaW0tPmRpcmVjdGlvbigpXTsKICAgICBbcHJvcGVydHlBbmltIHNldFJlbW92ZWRPbkNvbXBs
ZXRpb246Tk9dOwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0QWRkaXRpdmU6YWRkaXRpdmVdOwotICAg
IFtwcm9wZXJ0eUFuaW0gc2V0RmlsbE1vZGU6QCJleHRlbmRlZCJdOworICAgIFtwcm9wZXJ0eUFu
aW0gc2V0RmlsbE1vZGU6ZmlsbE1vZGVdOwogCiAgICAgW3Byb3BlcnR5QW5pbSBzZXREZWxlZ2F0
ZTptX2FuaW1hdGlvbkRlbGVnYXRlLmdldCgpXTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49857</attachid>
            <date>2010-03-02 15:24:50 -0800</date>
            <delta_ts>2010-03-03 19:32:29 -0800</delta_ts>
            <desc>added convenience methods for testing fill mode</desc>
            <filename>fill-mode.patch</filename>
            <type>text/plain</type>
            <size>45319</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDAxZWEyLi5iOGE2Y2U1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDMt
MDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyNjg2OTogQWRkIGZpbGwgbW9kZXMgZm9y
IENTUyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjg2OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlIHByb3BlcnR5LAorICAgICAgICBhbmQgdXBkYXRlIGV4aXN0aW5nIGNvbXB1dGVk
IHN0eWxlIHRlc3RzIHdpdGggdGhlIAorICAgICAgICBuZXcgcHJvcGVydHkuCisKKyAgICAgICAg
KiBhbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmlt
YXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwt
bW9kZS10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1v
ZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9j
b21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0w
Mi0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhhdGNoZXIgYW5kIFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGViNDBhN2QuLjY4
YjA5MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBAQCBQQVNTIHRlc3QxU3R5bGUud2Via2l0QW5pbWF0
aW9uTmFtZSBpcyAnYW5pbTEnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSBp
cyAnYW5pbTIsIGFuaW0zJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9u
IGlzICcxMHMnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gaXMgJzVz
LCAyLjVzJworUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIGlzICdiYWNr
d2FyZHMnCitQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgaXMgJ2Zvcndh
cmRzLCBib3RoJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
IGlzICcxMCcKIFBBU1MgdGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBp
cyAnMTAsIGluZmluaXRlJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvblRpbWluZ0Z1
bmN0aW9uIGlzICdjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSknCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggNDdmM2I5ZC4uODljOGVlZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiBhbmltMTsKICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwczsKKyAgICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CiAgICAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTA7CiAgICAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1k
aXJlY3Rpb246IG5vcm1hbDsKQEAgLTIwLDYgKzIxLDcgQEAKICAgICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltMiwgYW5pbTM7CiAg
ICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1cywgMjUwMG1zOworICAgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBib3RoOwogICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZpbml0ZTsKICAgICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIsIGVhc2UtaW4tb3V0OwogICAg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRlOwpAQCAt
NjAsNiArNjIsOSBAQCBzaG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwg
IidhbmltMiwgYW5pbTMnIik7CiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25E
dXJhdGlvbiIsICInMTBzJyIpOwogc2hvdWxkQmUoInRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9u
RHVyYXRpb24iLCAiJzVzLCAyLjVzJyIpOwogCitzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRB
bmltYXRpb25GaWxsTW9kZSIsICInYmFja3dhcmRzJyIpOworc2hvdWxkQmUoInRlc3QyU3R5bGUu
d2Via2l0QW5pbWF0aW9uRmlsbE1vZGUiLCAiJ2ZvcndhcmRzLCBib3RoJyIpOworCiBzaG91bGRC
ZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAnIik7CiBz
aG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAs
IGluZmluaXRlJyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwt
bW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiMTZlYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJhIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYiIgZWxlbWVudCBhdCAwLjFzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImMiIGVs
ZW1lbnQgYXQgMC4xcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJkIiBlbGVtZW50IGF0IDAuMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYSIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImIiIGVs
ZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMjUKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJjIiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjI1CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiZCIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDIyNQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImEiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxMDAKK1BBU1MgLSAibGVmdCIg
cHJvcGVydHkgZm9yICJiIiBlbGVtZW50IGF0IDEuM3Mgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYyIgZWxlbWVudCBhdCAxLjNzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDMwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImQiIGVs
ZW1lbnQgYXQgMS4zcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAzMDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFhOTgwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIDMg
c25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhpbiBhIHNwZWNpZmll
ZCByYW5nZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK1BBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg4MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTMw
IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0
aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisK
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNp
bXBsZSBmaWxsIG1vZGUgb24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoMTAwcHgpOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMjVzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1l
OiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1lcyAiYW5pbSIgeworICAgICAg
ICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMDBweCk7IH0KKyAgICAgICAg
dG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMzAwcHgpOyB9CisgICAgfQorICAg
ICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRz
OworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CisgICAgfQorICAgICNkIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIH0KKyAgCisgIHJlc3Vs
dCA9ICIiOworCisgIGNvbnN0IGV4cGVjdGVkID0gIFsgCisgICAgICAgICAgICAgICAgICAgICAg
WyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAg
ICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBhIGF0IDAuNSAtIDAuMjUgaW50
byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGEgYXQg
MS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIw
MCwwIF0sIC8vIGIgYXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAg
ICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAvLyBiIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAg
ICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGIgYXQgMS4zNSAtIDAuMSBh
ZnRlciBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDEwMCwwIF0sIC8vIGMg
YXQgMC4xIC0gMC4xNSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAs
MSwyMjUsMCBdLCAvLyBjIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAg
ICAgICAgWyAxLDAsMCwxLDMwMCwwIF0sIC8vIGMgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisg
ICAgICAgICAgICAgICAgICAgICAgWyAxLDAsMCwxLDIwMCwwIF0sIC8vIGQgYXQgMC4xIC0gMC4x
NSBiZWZvcmUgYW5pbQorICAgICAgICAgICAgICAgICAgICAgIFsgMSwwLDAsMSwyMjUsMCBdLCAv
LyBkIGF0IDAuNSAtIDAuMjUgaW50byBhbmltCisgICAgICAgICAgICAgICAgICAgICAgWyAxLDAs
MCwxLDMwMCwwIF0sIC8vIGQgYXQgMS4zNSAtIDAuMSBhZnRlciBhbmltCisgICAgICAgICAgICAg
ICAgICAgIF07CisgIGNvbnN0IHRvbGVyYW5jZSA9IFsgMC4yLDAuMiwwLjIsMC4yLDUsMC4yIF07
CisgIGNvbnN0IHByb3AgPSBbICJhIiwgImIiLCAiYyIsICJkIiwgImUiLCAiZiIgXTsKKyAgCisg
IGZ1bmN0aW9uIGlzRXF1YWwoYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCisgIHsKKyAgICAg
IHZhciBkaWZmID0gTWF0aC5hYnMoYWN0dWFsIC0gZGVzaXJlZCk7CisgICAgICByZXR1cm4gZGlm
ZiA8PSB0b2xlcmFuY2U7CisgIH0KKyAgCisgIHZhciBudW1TbmFwc2hvdHMgPSAwOworICAKKyAg
ZnVuY3Rpb24gc25hcHNob3QoaWQsIGluZGV4KQorICB7CisgICAgICB2YXIgdCA9IG5ldyBXZWJL
aXRDU1NNYXRyaXgod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpKS53ZWJraXRUcmFuc2Zvcm0pOworICAgICAgZm9yIChpID0gMDsgaSA8IDY7ICsraSkg
eworICAgICAgICAgIGlmICghaXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFtpbmRleF1baV0s
IHRvbGVyYW5jZVtpXSkpCisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtLSAnIitwcm9w
W2ldKyInIHdhczogIit0W3Byb3BbaV1dKyIsIGV4cGVjdGVkOiAiK2V4cGVjdGVkW2luZGV4XVtp
XSsiIG9uIHJ1bjogIiArIGluZGV4ICsgIiBsb29raW5nIGF0IGVsZW1lbnQ6ICIgKyBpZCArICI8
YnI+IjsKKyAgICAgIH0KKyAgICAgIAorICAgICAgbnVtU25hcHNob3RzKys7CisgICAgICBpZiAo
bnVtU25hcHNob3RzID09IDEyKSB7CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdCB8fCAiUEFTUyI7CisgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICB9CisKKyAgZnVuY3Rpb24gc3RhcnQoKQor
ICB7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYScsIDApIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdhJywgMSkiLCA1MDApOworICAgICAgc2V0VGltZW91dCgic25h
cHNob3QoJ2EnLCAyKSIsIDEzNTApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3QoJ2InLCAz
KSIsIDEwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYicsIDQpIiwgNTAwKTsKKyAg
ICAgIHNldFRpbWVvdXQoInNuYXBzaG90KCdiJywgNSkiLCAxMzUwKTsKKyAgICAgIHNldFRpbWVv
dXQoInNuYXBzaG90KCdjJywgNikiLCAxMDApOworICAgICAgc2V0VGltZW91dCgic25hcHNob3Qo
J2MnLCA3KSIsIDUwMCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnYycsIDgpIiwgMTM1
MCk7CisgICAgICBzZXRUaW1lb3V0KCJzbmFwc2hvdCgnZCcsIDkpIiwgMTAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoInNuYXBzaG90KCdkJywgMTApIiwgNTAwKTsKKyAgICAgIHNldFRpbWVvdXQoInNu
YXBzaG90KCdkJywgMTEpIiwgMTM1MCk7CisgIH0KKyAgCisgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgc3RhcnQsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0
aCBmb3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3
aXRoIGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0
cyBlYWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJh
IiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4K
KyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJk
cworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9maWxsLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjcx
YjFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUu
aHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+
CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBhbmltYXRpb248L3RpdGxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZGVsYXk6IDAuMjVzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1uYW1lOiAiYW5pbSI7CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1l
cyAiYW5pbSIgeworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7IH0KKyAgICAgICAgdG8gICB7
IGxlZnQ6IDMwMHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQor
ICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTog
Zm9yd2FyZHM7CisgICAgfQorICAgICNkIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxv
dzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQgc3JjPSJhbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKworICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBw
cm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsiYW5pbSIsIDAuMTAs
ICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImEiLCAibGVmdCIs
IDIyNSwgNV0sCisgICAgICBbImFuaW0iLCAxLjMsICJhIiwgImxlZnQiLCAxMDAsIDVdLAorICAg
ICAgWyJhbmltIiwgMC4xMCwgImIiLCAibGVmdCIsIDIwMCwgNV0sCisgICAgICBbImFuaW0iLCAw
LjUwLCAiYiIsICJsZWZ0IiwgMjI1LCA1XSwKKyAgICAgIFsiYW5pbSIsIDEuMywgImIiLCAibGVm
dCIsIDEwMCwgNV0sCisgICAgICBbImFuaW0iLCAwLjEwLCAiYyIsICJsZWZ0IiwgMTAwLCA1XSwK
KyAgICAgIFsiYW5pbSIsIDAuNTAsICJjIiwgImxlZnQiLCAyMjUsIDVdLAorICAgICAgWyJhbmlt
IiwgMS4zLCAiYyIsICJsZWZ0IiwgMzAwLCA1XSwKKyAgICAgIFsiYW5pbSIsIDAuMTAsICJkIiwg
ImxlZnQiLCAyMDAsIDVdLAorICAgICAgWyJhbmltIiwgMC41MCwgImQiLCAibGVmdCIsIDIyNSwg
NV0sCisgICAgICBbImFuaW0iLCAxLjMsICJkIiwgImxlZnQiLCAzMDAsIDVdLAorICAgIF07Cisg
ICAgCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgdW5kZWZpbmVkLCAibG9h
ZCIsIHRydWUsIHVuZGVmaW5lZCk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1Ro
aXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBm
b3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAxIHNlY29uZCB3aXRo
IGEgMC4yNSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0cyBl
YWNoIHJlc3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCis8ZGl2IGlkPSJhIiBj
bGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4KKyAg
QmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJkcwor
PC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5k
ZXggYTU3YzVkYS4uYzNkZmZhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNSw0ICs1LDUgQEAg
VGVzdGluZyB3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246IFBBU1MKIFRlc3Rpbmcgd2Vi
a2l0QW5pbWF0aW9uTmFtZTogUEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EdXJhdGlvbjog
UEFTUwogVGVzdGluZyB3ZWJraXRBbmltYXRpb25EZWxheTogUEFTUworVGVzdGluZyB3ZWJraXRB
bmltYXRpb25GaWxsTW9kZTogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAppbmRleCBiNDdhMjg2Li5hNDlkZWNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKQEAg
LTEzLDYgKzEzLDcgQEAKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhLCBiLCBjLCBkLCBl
OwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMHMsIDIwczsKICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kZWxheTogMXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBm
b3J3YXJkcywgYmFja3dhcmRzOwogfQogQC13ZWJraXQta2V5ZnJhbWVzIGEgeyB9CiBALXdlYmtp
dC1rZXlmcmFtZXMgYiB7IH0KQEAgLTMyLDYgKzMzLDcgQEAKICAgICAgIHsgJ3Byb3BlcnR5Jzog
J3dlYmtpdEFuaW1hdGlvbk5hbWUnLCAgICAgICd2YWx1ZSc6ICdhLCBiLCBjLCBkLCBlJyB9LAog
ICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0QW5pbWF0aW9uRHVyYXRpb24nLCAgJ3ZhbHVlJzog
JzEwcywgMjBzLCAxMHMsIDIwcywgMTBzJyB9LAogICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0
QW5pbWF0aW9uRGVsYXknLCAgICAgJ3ZhbHVlJzogJzFzLCAxcywgMXMsIDFzLCAxcycgfSwKKyAg
ICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkZpbGxNb2RlJywgICd2YWx1ZSc6ICdm
b3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcywgYmFja3dhcmRzLCBmb3J3YXJkcycgfSwKICAg
ICBdOwogICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQKaW5kZXggZTYxZTIwYi4uMzJmZTNkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKQEAgLTg2LDYgKzg2LDcgQEAgem9vbTogMTsKIC13ZWJraXQtYW5pbWF0aW9u
LWRlbGF5OiAwczsKIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOwogLXdlYmtp
dC1hbmltYXRpb24tZHVyYXRpb246IDBzOworLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBu
b25lOwogLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogLXdlYmtpdC1hbmlt
YXRpb24tbmFtZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3Vi
aWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAppbmRleCBjOWZhOTQyLi5h
Njg5MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxl
L2NvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1y
ZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTg1LDYgKzg1LDcgQEAgQ29tcHV0ZWQgc3R5bGUgb2Yg
YW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgogICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVj
dGlvbjogbm9ybWFsCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDBzCisgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lCiAgICAgLXdlYmtpdC1hbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiAxCiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZQogICAgIC13
ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwg
MC4yNSwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4
cGVjdGVkLnR4dAppbmRleCBmZjQ4NmU1Li5mODdjNGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC05Niw2ICs5Niw3IEBA
IHpvb206IDE7CiAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHM7CiAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IG5vcm1hbDsKIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsKKy13
ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogMTsKIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7CiAtd2Via2l0LWFu
aW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91
dC1yZW5kZXJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVj
dGVkLnR4dAppbmRleCBjMTI5MWExLi4yMzc3NGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRo
b3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dApAQCAtOTUsNiArOTUsNyBAQCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVt
ZW50IHdob3NlIHBhcmVudCdzICdkaXNwbGF5JyB2YWx1ZSBpcyAnbm9uZSc6CiAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGVsYXk6IDBzCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWwKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMHMKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1maWxsLW1vZGU6IG5vbmUKICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24t
Y291bnQ6IDEKICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lCiAgICAgLXdlYmtpdC1h
bmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2
Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggYmI4YzBiMy4u
YTFjNTNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxl
LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVk
U3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xOTAsNiArMTkwLDggQEAgcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24pIDogbm9ybWFsCiBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bikgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogMHMKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogW29iamVjdCBDU1NWYWx1ZUxp
c3RdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZSkgOiBub25lCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KSA6IDEKIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9u
LWNvdW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1uYW1lKSA6IG5vbmUKQEAgLTYwNCw2ICs2MDYsOCBAQCBn
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbikgOiBu
b3JtYWwKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZGly
ZWN0aW9uKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiAwcwogZzogc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbikgOiBbb2JqZWN0IENTU1ZhbHVlTGlz
dF0KK2c6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
KSA6IG5vbmUKK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlKSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogMQogZzogc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQpIDogW29i
amVjdCBDU1NWYWx1ZUxpc3RdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLW5hbWUpIDogbm9uZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjZDg1YWMyLi5iM2EwNWY3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEw
LTAzLTAyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMjY4Njk6IEFkZCBmaWxsIG1vZGVz
IGZvciBDU1MgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjY4NjkKKworICAgICAgICBUZXN0czogYW5pbWF0aW9ucy9maWxsLW1vZGUt
dHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwK
KworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAg
ICAgICAgLSBleHBvc2UgbmV3IHByb3BlcnR5CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgorICAgICAgICAgICAgLSBzdXBwb3J0IHBhcnNpbmcgb2YgbmV3IHByb3BlcnR5CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgICogcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAgICAgLSBuZXcgc3RhdGUgaW4gYW5pbWF0
aW9uIGVuZ2luZSBmb3IgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgdGhhdCBp
cyAiZmlsbGluZyIgZm9yd2FyZHMgaW4gdGltZS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgICAg
ICAgIGVuZ2luZSB0byBrZWVwIHRoZSBhbmltYXRpb24gYXJvdW5kIGFuZCBub3QgcmV2ZXJ0IHRv
IHRoZQorICAgICAgICAgICAgICBvbGQgc3R5bGUuCisgICAgICAgICAgICAtIHVwZGF0ZSB0aGUg
dGltZXIgY29kZSB0byBpbmRpY2F0ZSBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAg
a2VlcCBhbmltYXRpbmcgaWYgaXQgaXMgZmlsbGluZworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgICAgIC0gYmxlbmQgY29kZSB1cGRhdGVk
IHRvIHRha2UgZmlsbGluZyBiYWNrd2FyZHMgaW4gdGltZS4gVGhhdAorICAgICAgICAgICAgICBp
cywgdXNlIHRoZSBpbml0aWFsIGFuaW1hdGlvbiBzdHlsZSB2YWx1ZS4KKyAgICAgICAgICAgIC0g
bWFrZSBzdXJlIGhhcmR3YXJlIGxheWVycyBkbyBub3QgcmVtb3ZlIHRoZWlyIENBIGFuaW1hdGlv
bnMKKyAgICAgICAgICAgICAgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgZmlsbCBtb2RlLgorICAg
ICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgICAgIC0gTmV3IGZpbGwgbW9kZSBt
ZW1iZXIgdmFyaWFibGUKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlz
dC5jcHA6CisgICAgICAgICAgICAtIE1ha2Ugc3VyZSBuZXcgcHJvcGVydHkgaXMgZXhwYW5kZWQg
aW4gQ1NTIGxpc3RzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5
ZXJDQS5tbToKKyAgICAgICAgICAgIC0gVGVsbCBDb3JlIEFuaW1hdGlvbiB0byB1c2UgdGhlIGZp
bGwgbW9kZSB3aGVuCisgICAgICAgICAgICAgIGFuaW1hdGluZyBoYXJkd2FyZS1iYWNrZWQgbGF5
ZXJzLgorCiAyMDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hlciBhbmQgUGF2ZWwgRmVsZG1hbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDgwMzllMzUuLjQw
NzQ1MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtMTQ2LDYgKzE0Niw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10g
PSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheSwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bkR1cmF0aW9uLAorICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGUsCiAgICAg
Q1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCwKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbk5hbWUsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25QbGF5
U3RhdGUsCkBAIC0xMTk4LDYgKzExOTksMjQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAg
ICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246
CiAgICAgICAgICAgICByZXR1cm4gZ2V0RHVyYXRpb25WYWx1ZShzdHlsZS0+YW5pbWF0aW9ucygp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlOiB7Cisg
ICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOworICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9
IHN0eWxlLT5hbmltYXRpb25zKCk7CisgICAgICAgICAgICBpZiAodCkgeworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHQtPmFuaW1hdGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkZpbGxNb2RlTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZU5vbmUpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodC0+YW5pbWF0aW9uKGkpLT5maWxsTW9kZSgpID09
IEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVGb3J3YXJkcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihD
U1NWYWx1ZUZvcndhcmRzKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHQtPmFuaW1h
dGlvbihpKS0+ZmlsbE1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQmFja3dh
cmRzKQorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlQmFja3dhcmRzKSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUJvdGgpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKSk7CisgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB7CiAgICAgICAgICAgICBS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFy
YXRlZCgpOwogICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmlt
YXRpb25zKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1YzY1MTQyLi5iMmRkM2JlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTEzOTMsNiArMTM5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25E
ZWxheToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEFuaW1hdGlvbk5hbWU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlT
dGF0ZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6
CkBAIC0yNTcxLDYgKzI1NzIsMTQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUFuaW1hdGlvbkR1cmF0aW9uKCkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkZpbGxNb2RlKCkKK3sKKyAgICBDU1NQ
YXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICh2YWx1
ZS0+aWQgPT0gQ1NTVmFsdWVOb25lIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8
IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVC
b3RoKQorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIo
dmFsdWUtPmlkKTsKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NT
UGFyc2VyOjpwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCkKIHsKICAgICBDU1NQYXJzZXJW
YWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwpAQCAtMjcxMyw2ICsyNzIyLDEx
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBwcm9wSWQsIFJl
ZlB0cjxDU1NWYWx1ZT4mIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1
ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRBbmltYXRpb25GaWxsTW9kZToKKyAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFy
c2VBbmltYXRpb25GaWxsTW9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclZhbHVl
KQorICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OgogICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUg
PSBwYXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChjdXJyVmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLmQxMGRhNGMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC05
NSw2ICs5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUFuaW1hdGlvbkRpcmVjdGlvbigpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUFuaW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHBhcnNlQW5pbWF0aW9uRmlsbE1vZGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VBbmltYXRpb25JdGVyYXRpb25Db3VudCgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZUFuaW1hdGlvbk5hbWUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VBbmltYXRpb25QbGF5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDk2
OTVkMGIuLjVmN2IxODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTUxLDYgKzE1MSw3
IEBAIHpvb20KIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb24KIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uCistd2Via2l0LWFuaW1hdGlvbi1maWxs
LW1vZGUKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudAogLXdlYmtpdC1hbmltYXRp
b24tbmFtZQogLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCAxMjRlYjlmLi42OTYzNmE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApA
QCAtNTI5MSw2ICs1MjkxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmlt
YXRpb25EdXJhdGlvbjoKICAgICAgICAgSEFORExFX0FOSU1BVElPTl9WQUxVRShkdXJhdGlvbiwg
RHVyYXRpb24sIHZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbkZpbGxNb2RlOgorICAgICAgICBIQU5ETEVfQU5JTUFUSU9OX1ZBTFVFKGZp
bGxNb2RlLCBGaWxsTW9kZSwgdmFsdWUpCisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgICAgIEhBTkRMRV9BTklN
QVRJT05fVkFMVUUoaXRlcmF0aW9uQ291bnQsIEl0ZXJhdGlvbkNvdW50LCB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTY1MCw2ICs1NjUzLDMxIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
bWFwQW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1
CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0
VmFsdWUoKS8xMDAwLjBmKTsKIH0KIAordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRp
b25GaWxsTW9kZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsKKyAgICAg
ICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkZpbGxNb2Rl
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorIAorICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwor
ICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKworICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgorICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRp
b25GaWxsTW9kZU5vbmUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlRm9yd2Fy
ZHM6CisgICAgICAgIGxheWVyLT5zZXRGaWxsTW9kZShBbmltYXRpb246OkFuaW1hdGlvbkZpbGxN
b2RlRm9yd2FyZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQmFja3dhcmRz
OgorICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9k
ZUJhY2t3YXJkcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVCb3RoOgorICAg
ICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgp
OworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFw
QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUtPmNzc1ZhbHVlVHlwZSgpID09IENTU1ZhbHVlOjpDU1Nf
SU5JVElBTCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IDY0NDA1MWMuLjI4NGQ1NjEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZvaWQgbWFwQW5pbWF0aW9uRGVsYXkoQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKICAgICAgICAg
dm9pZCBtYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKICAgICAg
ICAgdm9pZCBtYXBBbmltYXRpb25EdXJhdGlvbihBbmltYXRpb24qLCBDU1NWYWx1ZSopOworICAg
ICAgICB2b2lkIG1hcEFuaW1hdGlvbkZpbGxNb2RlKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAg
ICAgICAgIHZvaWQgbWFwQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uKiwgQ1NTVmFs
dWUqKTsKICAgICAgICAgdm9pZCBtYXBBbmltYXRpb25OYW1lKEFuaW1hdGlvbiosIENTU1ZhbHVl
Kik7CiAgICAgICAgIHZvaWQgbWFwQW5pbWF0aW9uUGxheVN0YXRlKEFuaW1hdGlvbiosIENTU1Zh
bHVlKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBjYTJhNDdhLi44N2UyNTY5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTYzOSw2ICs2MzksMTMgQEAgbGluZXMKICMgYWx0ZXJu
YXRlCiAKICMKKyMgQ1NTX1BST1BfX1dFQktJVF9BTklNQVRJT05fRklMTF9NT0RFCisjCisjIGZv
cndhcmRzCisjIGJhY2t3YXJkcworIyBib3RoCisKKyMKICMgQ1NTX1BST1BfX1dFQktJVF9BTklN
QVRJT05fSVRFUkFUSU9OX0NPVU5UCiAjCiAjIGluZmluaXRlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcAppbmRleCAyYTJhYjRiLi5iOGU5MzUzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAgLTkxOCw4ICs5MTgsOCBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91
YmxlIHBhcmFtKQogICAgIC8vIEV4ZWN1dGUgc3RhdGUgbWFjaGluZQogICAgIHN3aXRjaCAobV9h
bmltU3RhdGUpIHsKICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZU5ldzoKLSAgICAgICAgICAg
IEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nIHx8IGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpOwotICAgICAgICAgICAgaWYgKGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcpIHsKKyAgICAgICAgICAgIEFTU0VSVChpbnB1
dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0
aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJ
bnB1dFBsYXlTdGF0ZVBhdXNlZCk7CisgICAgICAgICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9u
U3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQ
bGF5U3RhdGVSdW5uaW5nKSB7CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0ZWRTdGFydFRpbWUg
PSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0
ZSA9IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXI7CiAgICAgICAgICAgICB9CkBAIC0xMDI2
LDEzICsxMDI2LDE3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFu
aW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgb25Bbmlt
YXRpb25FbmQocGFyYW0pOwogCiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRp
b25TdGF0ZURvbmU7Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICBpZiAobV9v
YmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fYW5pbWF0aW9uLT5maWxsc0ZvcndhcmRzKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlRmls
bGluZ0ZvcndhcmRzOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpOwogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIEZpcmUgb2ZmIGFub3RoZXIgc3R5bGUgY2hhbmdlIHNvIHdlIGNhbiBzZXQgdGhlIGZp
bmFsIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2gobV9vYmplY3QtPm5vZGUoKSk7CiAgICAg
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8v
IFdlIGFyZSBwYXVzaW5nIHdoaWxlIHJ1bm5pbmcuIENhbmNlbCB0aGUgYW5pbWF0aW9uIGFuZCB3
YWl0CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRp
bWUoKTsKQEAgLTEwNDIsNyArMTA0Niw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3Rh
dGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAg
ICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVyZQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0VGltZXI6Ci0gICAgICAgICAgICBBU1NF
UlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nKTsKKyAgICAg
ICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmlu
Zyk7CiAgICAgICAgICAgICBBU1NFUlQocGF1c2VkKCkpOwogICAgICAgICAgICAgLy8gVXBkYXRl
IHRoZSB0aW1lcwogICAgICAgICAgICAgbV9zdGFydFRpbWUgKz0gYmVnaW5BbmltYXRpb25VcGRh
dGVUaW1lKCkgLSBtX3BhdXNlVGltZTsKQEAgLTEwNTgsNyArMTA2Miw3IEBAIHZvaWQgQW5pbWF0
aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUg
cGFyYW0pCiAgICAgICAgICAgICAvLyBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRSZXNwb25zZSwg
d2UgZG9uJ3QgeWV0IGhhdmUgYSB2YWxpZCBzdGFydFRpbWUsIHNvIHdlIHNlbmQgMCB0byBzdGFy
dEFuaW1hdGlvbi4KICAgICAgICAgICAgIC8vIFdoZW4gdGhlIEFuaW1hdGlvblN0YXRlSW5wdXRT
dGFydFRpbWVTZXQgY29tZXMgaW4gYW5kIHdlIHdlcmUgaW4gQW5pbWF0aW9uU3RhdGVQYXVzZWRS
dW4sIHdlIHdpbGwgbm90aWNlCiAgICAgICAgICAgICAvLyB0aGF0IHdlIGhhdmUgYWxyZWFkeSBz
ZXQgdGhlIHN0YXJ0VGltZSBhbmQgd2lsbCBpZ25vcmUgaXQuCi0gICAgICAgICAgICBBU1NFUlQo
aW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5uaW5nIHx8IGlucHV0ID09
IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQpOworICAgICAgICAgICAgQVNTRVJUKGlu
cHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nIHx8IGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQpOwogICAgICAgICAgICAgQVNTRVJUKHBhdXNl
ZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHBhdXNlZCwgYnV0
IHdlIGdldCB0aGUgY2FsbGJhY2sgdGhhdCBub3RpZmllcyB1cyB0aGF0IGFuIGFjY2VsZXJhdGVk
IGFuaW1hdGlvbiBzdGFydGVkLApAQCAtMTA5Myw2ICsxMDk3LDcgQEAgdm9pZCBBbmltYXRpb25C
YXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJh
bSkKICAgICAgICAgICAgICAgICBtX2ZhbGxiYWNrQW5pbWF0aW5nID0gIXN0YXJ0ZWQ7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0
ZUZpbGxpbmdGb3J3YXJkczoKICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZURvbmU6CiAgICAg
ICAgICAgICAvLyBXZSdyZSBkb25lLiBTdGF5IGluIHRoaXMgc3RhdGUgdW50aWwgd2UgYXJlIGRl
bGV0ZWQKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTE1MiwxNCArMTE1NywxNCBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OmZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgpCiB2b2lkIEFuaW1hdGlv
bkJhc2U6OnVwZGF0ZVBsYXlTdGF0ZShib29sIHJ1bikKIHsKICAgICBpZiAocGF1c2VkKCkgPT0g
cnVuIHx8IGlzTmV3KCkpCi0gICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShydW4gPyBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcgOiBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0
YXRlUGF1c2VkLCAtMSk7CisgICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShydW4gPyBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyA6IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3Rh
dGVQYXVzZWQsIC0xKTsKIH0KIAogZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2
aWNlKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIGF0IHdoaWNoIG5leHQgc2VydmljZSBp
cyByZXF1aXJlZC4gLTEgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4gMCBtZWFucyAKICAg
ICAvLyBzZXJ2aWNlIGlzIHJlcXVpcmVkIG5vdywgYW5kID4gMCBtZWFucyBzZXJ2aWNlIGlzIHJl
cXVpcmVkIHRoYXQgbWFueSBzZWNvbmRzIGluIHRoZSBmdXR1cmUuCi0gICAgaWYgKHBhdXNlZCgp
IHx8IGlzTmV3KCkpCisgICAgaWYgKHBhdXNlZCgpIHx8IGlzTmV3KCkgfHwgbV9hbmltU3RhdGUg
PT0gQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHMpCiAgICAgICAgIHJldHVybiAtMTsKICAg
ICAKICAgICBpZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRUaW1lcikg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAppbmRleCBjMzY3ZTBhLi5hOTU3
MTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAor
KysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtNzEsNyArNzEs
OCBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFRpbWVyLCAgICAg
IC8vIGluIHBhdXNlIG1vZGUgd2hlbiBhbmltYXRpb24gc3RhcnRlZAogICAgICAgICBBbmltYXRp
b25TdGF0ZVBhdXNlZFdhaXRSZXNwb25zZSwgICAvLyBhbmltYXRpb24gcGF1c2VkIHdoZW4gaW4g
U1RBUlRJTkcgc3RhdGUKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW4sICAgICAgICAg
ICAgLy8gYW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIExPT1BJTkcgb3IgRU5ESU5HIHN0YXRlCi0g
ICAgICAgIEFuaW1hdGlvblN0YXRlRG9uZSAgICAgICAgICAgICAgICAgIC8vIGVuZCB0aW1lciBm
aXJlZCwgYW5pbWF0aW9uIGZpbmlzaGVkIGFuZCByZW1vdmVkCisgICAgICAgIEFuaW1hdGlvblN0
YXRlRG9uZSwgICAgICAgICAgICAgICAgIC8vIGVuZCB0aW1lciBmaXJlZCwgYW5pbWF0aW9uIGZp
bmlzaGVkIGFuZCByZW1vdmVkCisgICAgICAgIEFuaW1hdGlvblN0YXRlRmlsbGluZ0ZvcndhcmRz
ICAgICAgIC8vIGFuaW1hdGlvbiBoYXMgZW5kZWQgYW5kIGlzIHJldGFpbmluZyBpdHMgZmluYWwg
dmFsdWUKICAgICB9OwogCiAgICAgZW51bSBBbmltU3RhdGVJbnB1dCB7CkBAIC04NSw3ICs4Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dEVuZFRpbWVyRmlyZWQsICAg
ICAvLyBlbmQgdGltZXIgZmlyZWQKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dFBhdXNlT3Zl
cnJpZGUsICAgICAvLyBwYXVzZSBhbiBhbmltYXRpb24gZHVlIHRvIG92ZXJyaWRlCiAgICAgICAg
IEFuaW1hdGlvblN0YXRlSW5wdXRSZXN1bWVPdmVycmlkZSwgICAgLy8gcmVzdW1lIGFuIG92ZXJy
aWRkZW4gYW5pbWF0aW9uCi0gICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5u
bmluZywgLy8gcGxheSBzdGF0ZSBwYXVzZWQgLT4gcnVubmluZworICAgICAgICBBbmltYXRpb25T
dGF0ZUlucHV0UGxheVN0YXRlUnVubmluZywgIC8vIHBsYXkgc3RhdGUgcGF1c2VkIC0+IHJ1bm5p
bmcKICAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCwgICAvLyBwbGF5
IHN0YXRlIHJ1bm5pbmcgLT4gcGF1c2VkCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRFbmRB
bmltYXRpb24gICAgICAgLy8gZm9yY2UgYW4gZW5kIGZyb20gYW55IHN0YXRlCiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggYzVlMzY2
MC4uYTQzZmU5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5jcHAKQEAgLTExMiwxNyArMTEyLDE5IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmFuaW1h
dGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyCiAgICAg
ICAgIHVwZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24s
IC0xKTsKIAogICAgIC8vIElmIHdlIGdldCB0aGlzIGZhciBhbmQgdGhlIGFuaW1hdGlvbiBpcyBk
b25lLCBpdCBtZWFucyB3ZSBhcmUgY2xlYW5pbmcgdXAgYSBqdXN0IGZpbmlzaGVkIGFuaW1hdGlv
bi4KLSAgICAvLyBJZiBzbywgd2UgbmVlZCB0byBzZW5kIGJhY2sgdGhlIHRhcmdldFN0eWxlLgot
ICAgIGlmIChwb3N0QWN0aXZlKCkpIHsKKyAgICAvLyBJZiB0aGVyZSBpc24ndCBhIGZvcndhcmRz
IGZpbGwgbW9kZSwgd2UgbmVlZCB0byBzZW5kIGJhY2sgdGhlIHRhcmdldFN0eWxlLgorICAgIGlm
IChwb3N0QWN0aXZlKCkgJiYgIW1fYW5pbWF0aW9uLT5maWxsc0ZvcndhcmRzKCkpIHsKICAgICAg
ICAgaWYgKCFhbmltYXRlZFN0eWxlKQogICAgICAgICAgICAgYW5pbWF0ZWRTdHlsZSA9IGNvbnN0
X2Nhc3Q8UmVuZGVyU3R5bGUqPih0YXJnZXRTdHlsZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICAvLyBJZiB3ZSBhcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0IHRpbWVyLCB3ZSBkb24n
dCB3YW50IHRvIGNoYW5nZSB0aGUgc3R5bGUgeWV0LgotICAgIC8vIFNwZWNpYWwgY2FzZSAtIGlm
IHRoZSBkZWxheSB0aW1lIGlzIDAsIHRoZW4gd2UgZG8gd2FudCB0byBzZXQgdGhlIGZpcnN0IGZy
YW1lIG9mIHRoZQorICAgIC8vIFNwZWNpYWwgY2FzZSAxIC0gaWYgdGhlIGRlbGF5IHRpbWUgaXMg
MCwgdGhlbiB3ZSBkbyB3YW50IHRvIHNldCB0aGUgZmlyc3QgZnJhbWUgb2YgdGhlCiAgICAgLy8g
YW5pbWF0aW9uIHJpZ2h0IGF3YXkuIFRoaXMgYXZvaWRzIGEgZmxhc2ggd2hlbiB0aGUgYW5pbWF0
aW9uIHN0YXJ0cy4KLSAgICBpZiAod2FpdGluZ1RvU3RhcnQoKSAmJiBtX2FuaW1hdGlvbi0+ZGVs
YXkoKSA+IDApCisgICAgLy8gU3BlY2lhbCBjYXNlIDIgLSBpZiB0aGVyZSBpcyBhIGJhY2t3YXJk
cyBmaWxsIG1vZGUsIHRoZW4gd2Ugd2FudCB0byBjb250aW51ZQorICAgIC8vIHRocm91Z2ggdG8g
dGhlIHN0eWxlIGJsZW5kIHNvIHRoYXQgd2UgZ2V0IHRoZSBmcm9tU3R5bGUuCisgICAgaWYgKHdh
aXRpbmdUb1N0YXJ0KCkgJiYgbV9hbmltYXRpb24tPmRlbGF5KCkgPiAwICYmICFtX2FuaW1hdGlv
bi0+ZmlsbHNCYWNrd2FyZHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IHdl
IG5lZWQgdG8gYmUgbW9yZSBlZmZpY2llbnQgYWJvdXQgZGV0ZXJtaW5pbmcgd2hpY2gga2V5ZnJh
bWVzIHdlIGFyZSBhbmltYXRpbmcgYmV0d2Vlbi4KQEAgLTIzMywxMiArMjM1LDEyIEBAIHZvaWQg
S2V5ZnJhbWVBbmltYXRpb246OmVuZEFuaW1hdGlvbigpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdC0+aGFzTGF5ZXIoKSkgewogICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+bGF5ZXIo
KTsKLSAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAgICAgaWYgKGxheWVy
LT5pc0NvbXBvc2l0ZWQoKSAmJiAhbV9hbmltYXRpb24tPmZpbGxzRm9yd2FyZHMoKSkKICAgICAg
ICAgICAgIGxheWVyLT5iYWNraW5nKCktPmFuaW1hdGlvbkZpbmlzaGVkKG1fa2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSk7CiAgICAgfQogI2VuZGlmCiAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2lu
YWwgKHVuYW5pbWF0ZWQpIHN0eWxlCi0gICAgaWYgKCFwYXVzZWQoKSkKKyAgICBpZiAoIXBhdXNl
ZCgpICYmICFtX2FuaW1hdGlvbi0+ZmlsbHNGb3J3YXJkcygpKQogICAgICAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKG1fb2JqZWN0LT5ub2RlKCkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uLmNwcAppbmRleCAwNTc2MWY4Li5kMDUzZGZkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKQEAgLTMwLDEyICszMCwxNCBAQCBBbmltYXRpb246
OkFuaW1hdGlvbigpCiAgICAgLCBtX2l0ZXJhdGlvbkNvdW50KGluaXRpYWxBbmltYXRpb25JdGVy
YXRpb25Db3VudCgpKQogICAgICwgbV9kZWxheShpbml0aWFsQW5pbWF0aW9uRGVsYXkoKSkKICAg
ICAsIG1fZHVyYXRpb24oaW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCkpCisgICAgLCBtX2ZpbGxN
b2RlKGluaXRpYWxBbmltYXRpb25GaWxsTW9kZSgpKQogICAgICwgbV90aW1pbmdGdW5jdGlvbihp
bml0aWFsQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKSkKICAgICAsIG1fZGlyZWN0aW9uKGluaXRp
YWxBbmltYXRpb25EaXJlY3Rpb24oKSkKICAgICAsIG1fcGxheVN0YXRlKGluaXRpYWxBbmltYXRp
b25QbGF5U3RhdGUoKSkKICAgICAsIG1fZGVsYXlTZXQoZmFsc2UpCiAgICAgLCBtX2RpcmVjdGlv
blNldChmYWxzZSkKICAgICAsIG1fZHVyYXRpb25TZXQoZmFsc2UpCisgICAgLCBtX2ZpbGxNb2Rl
U2V0KGZhbHNlKQogICAgICwgbV9pdGVyYXRpb25Db3VudFNldChmYWxzZSkKICAgICAsIG1fbmFt
ZVNldChmYWxzZSkKICAgICAsIG1fcGxheVN0YXRlU2V0KGZhbHNlKQpAQCAtNTIsMTIgKzU0LDE0
IEBAIEFuaW1hdGlvbjo6QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiYgbykKICAgICAsIG1faXRl
cmF0aW9uQ291bnQoby5tX2l0ZXJhdGlvbkNvdW50KQogICAgICwgbV9kZWxheShvLm1fZGVsYXkp
CiAgICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKKyAgICAsIG1fZmlsbE1vZGUoby5tX2Zp
bGxNb2RlKQogICAgICwgbV90aW1pbmdGdW5jdGlvbihvLm1fdGltaW5nRnVuY3Rpb24pCiAgICAg
LCBtX2RpcmVjdGlvbihvLm1fZGlyZWN0aW9uKQogICAgICwgbV9wbGF5U3RhdGUoby5tX3BsYXlT
dGF0ZSkKICAgICAsIG1fZGVsYXlTZXQoby5tX2RlbGF5U2V0KQogICAgICwgbV9kaXJlY3Rpb25T
ZXQoby5tX2RpcmVjdGlvblNldCkKICAgICAsIG1fZHVyYXRpb25TZXQoby5tX2R1cmF0aW9uU2V0
KQorICAgICwgbV9maWxsTW9kZVNldChvLm1fZmlsbE1vZGVTZXQpCiAgICAgLCBtX2l0ZXJhdGlv
bkNvdW50U2V0KG8ubV9pdGVyYXRpb25Db3VudFNldCkKICAgICAsIG1fbmFtZVNldChvLm1fbmFt
ZVNldCkKICAgICAsIG1fcGxheVN0YXRlU2V0KG8ubV9wbGF5U3RhdGVTZXQpCkBAIC03NCw2ICs3
OCw3IEBAIEFuaW1hdGlvbiYgQW5pbWF0aW9uOjpvcGVyYXRvcj0oY29uc3QgQW5pbWF0aW9uJiBv
KQogICAgIG1faXRlcmF0aW9uQ291bnQgPSBvLm1faXRlcmF0aW9uQ291bnQ7CiAgICAgbV9kZWxh
eSA9IG8ubV9kZWxheTsKICAgICBtX2R1cmF0aW9uID0gby5tX2R1cmF0aW9uOworICAgIG1fZmls
bE1vZGUgPSBvLm1fZmlsbE1vZGU7CiAgICAgbV90aW1pbmdGdW5jdGlvbiA9IG8ubV90aW1pbmdG
dW5jdGlvbjsKICAgICBtX2RpcmVjdGlvbiA9IG8ubV9kaXJlY3Rpb247CiAgICAgbV9wbGF5U3Rh
dGUgPSBvLm1fcGxheVN0YXRlOwpAQCAtODEsNiArODYsNyBAQCBBbmltYXRpb24mIEFuaW1hdGlv
bjo6b3BlcmF0b3I9KGNvbnN0IEFuaW1hdGlvbiYgbykKICAgICBtX2RlbGF5U2V0ID0gby5tX2Rl
bGF5U2V0OwogICAgIG1fZGlyZWN0aW9uU2V0ID0gby5tX2RpcmVjdGlvblNldDsKICAgICBtX2R1
cmF0aW9uU2V0ID0gby5tX2R1cmF0aW9uU2V0OworICAgIG1fZmlsbE1vZGVTZXQgPSBvLm1fZmls
bE1vZGVTZXQ7CiAgICAgbV9pdGVyYXRpb25Db3VudFNldCA9IG8ubV9pdGVyYXRpb25Db3VudFNl
dDsKICAgICBtX25hbWVTZXQgPSBvLm1fbmFtZVNldDsKICAgICBtX3BsYXlTdGF0ZVNldCA9IG8u
bV9wbGF5U3RhdGVTZXQ7CkBAIC0xMDUsMTEgKzExMSwxMyBAQCBib29sIEFuaW1hdGlvbjo6YW5p
bWF0aW9uc01hdGNoKGNvbnN0IEFuaW1hdGlvbiogbywgYm9vbCBtYXRjaFBsYXlTdGF0ZXMpIGNv
bnN0CiAgICAgICAgICAgICAgICAgICBtX2l0ZXJhdGlvbkNvdW50ID09IG8tPm1faXRlcmF0aW9u
Q291bnQgJiYKICAgICAgICAgICAgICAgICAgIG1fZGVsYXkgPT0gby0+bV9kZWxheSAmJgogICAg
ICAgICAgICAgICAgICAgbV9kdXJhdGlvbiA9PSBvLT5tX2R1cmF0aW9uICYmCisgICAgICAgICAg
ICAgICAgICBtX2ZpbGxNb2RlID09IG8tPm1fZmlsbE1vZGUgJiYKICAgICAgICAgICAgICAgICAg
IG1fdGltaW5nRnVuY3Rpb24gPT0gby0+bV90aW1pbmdGdW5jdGlvbiAmJgogICAgICAgICAgICAg
ICAgICAgbV9kaXJlY3Rpb24gPT0gby0+bV9kaXJlY3Rpb24gJiYKICAgICAgICAgICAgICAgICAg
IG1fZGVsYXlTZXQgPT0gby0+bV9kZWxheVNldCAmJgogICAgICAgICAgICAgICAgICAgbV9kaXJl
Y3Rpb25TZXQgPT0gby0+bV9kaXJlY3Rpb25TZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fZHVy
YXRpb25TZXQgPT0gby0+bV9kdXJhdGlvblNldCAmJgorICAgICAgICAgICAgICAgICAgbV9maWxs
TW9kZVNldCA9PSBvLT5tX2ZpbGxNb2RlU2V0ICYmCiAgICAgICAgICAgICAgICAgICBtX2l0ZXJh
dGlvbkNvdW50U2V0ID09IG8tPm1faXRlcmF0aW9uQ291bnRTZXQgJiYKICAgICAgICAgICAgICAg
ICAgIG1fbmFtZVNldCA9PSBvLT5tX25hbWVTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fcHJv
cGVydHlTZXQgPT0gby0+bV9wcm9wZXJ0eVNldCAmJgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uaAppbmRleCAzMDZhMWI5Li5jZTAxMWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rl
bGF5U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kZWxheVNldDsgfQogICAgIGJvb2wgaXNEaXJlY3Rp
b25TZXQoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvblNldDsgfQogICAgIGJvb2wgaXNEdXJh
dGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb25TZXQ7IH0KKyAgICBib29sIGlzRmls
bE1vZGVTZXQoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlU2V0OyB9CiAgICAgYm9vbCBpc0l0
ZXJhdGlvbkNvdW50U2V0KCkgY29uc3QgeyByZXR1cm4gbV9pdGVyYXRpb25Db3VudFNldDsgfQog
ICAgIGJvb2wgaXNOYW1lU2V0KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2V0OyB9CiAgICAgYm9v
bCBpc1BsYXlTdGF0ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CkBAIC01
OCw4ICs1OSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gKCFtX2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAmJiAhbV9u
YW1lU2V0ICYmICFtX3BsYXlTdGF0ZVNldCAmJiAKLSAgICAgICAgICAgICAgICFtX2l0ZXJhdGlv
bkNvdW50U2V0ICYmICFtX2RlbGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3By
b3BlcnR5U2V0KTsKKyAgICAgICAgcmV0dXJuICghbV9kaXJlY3Rpb25TZXQgJiYgIW1fZHVyYXRp
b25TZXQgJiYgIW1fZmlsbE1vZGVTZXQKKyAgICAgICAgICAgICAgICAmJiAhbV9uYW1lU2V0ICYm
ICFtX3BsYXlTdGF0ZVNldCAmJiAhbV9pdGVyYXRpb25Db3VudFNldAorICAgICAgICAgICAgICAg
ICYmICFtX2RlbGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0
KTsKICAgICB9CiAKICAgICBib29sIGlzRW1wdHlPclplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03
MCw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRGVsYXkoKSB7IG1fZGVsYXlTZXQg
PSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJEaXJlY3Rpb24oKSB7IG1fZGlyZWN0aW9uU2V0ID0g
ZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyRHVyYXRpb24oKSB7IG1fZHVyYXRpb25TZXQgPSBmYWxz
ZTsgfQorICAgIHZvaWQgY2xlYXJGaWxsTW9kZSgpIHsgbV9maWxsTW9kZVNldCA9IGZhbHNlOyB9
CiAgICAgdm9pZCBjbGVhckl0ZXJhdGlvbkNvdW50KCkgeyBtX2l0ZXJhdGlvbkNvdW50U2V0ID0g
ZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyTmFtZSgpIHsgbV9uYW1lU2V0ID0gZmFsc2U7IH0KICAg
ICB2b2lkIGNsZWFyUGxheVN0YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1QbGF5U3RhdGVQ
bGF5aW5nOyB9CkBAIC04MSw2ICs4NCw5IEBAIHB1YmxpYzoKICAgICBlbnVtIEFuaW1hdGlvbkRp
cmVjdGlvbiB7IEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlIH07CiAgICAgQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGlyZWN0aW9uOyB9CiAKKyAgICBlbnVtIEFuaW1hdGlvbkZpbGxNb2RlIHsgQW5pbWF0
aW9uRmlsbE1vZGVOb25lLCBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzLCBBbmltYXRpb25GaWxs
TW9kZUJhY2t3YXJkcywgQW5pbWF0aW9uRmlsbE1vZGVCb3RoIH07CisgICAgQW5pbWF0aW9uRmls
bE1vZGUgZmlsbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CisKICAgICBkb3Vi
bGUgZHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAKICAgICBlbnVtIHsg
SXRlcmF0aW9uQ291bnRJbmZpbml0ZSA9IC0xIH07CkBAIC05Myw2ICs5OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERlbGF5KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1f
ZGlyZWN0aW9uID0gZDsgbV9kaXJlY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXREdXJh
dGlvbihkb3VibGUgZCkgeyBBU1NFUlQoZCA+PSAwKTsgbV9kdXJhdGlvbiA9IGQ7IG1fZHVyYXRp
b25TZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZSBm
KSB7IG1fZmlsbE1vZGUgPSBmOyBtX2ZpbGxNb2RlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0
SXRlcmF0aW9uQ291bnQoaW50IGMpIHsgbV9pdGVyYXRpb25Db3VudCA9IGM7IG1faXRlcmF0aW9u
Q291bnRTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbikgeyBt
X25hbWUgPSBuOyBtX25hbWVTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRQbGF5U3RhdGUodW5z
aWduZWQgZCkgeyBtX3BsYXlTdGF0ZSA9IGQ7IG1fcGxheVN0YXRlU2V0ID0gdHJ1ZTsgfQpAQCAt
MTEwLDYgKzExNyw5IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQW5pbWF0
aW9uJiBvKSBjb25zdCB7IHJldHVybiBhbmltYXRpb25zTWF0Y2goJm8pOyB9CiAgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IEFuaW1hdGlvbiYgbykgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBv
KTsgfQogCisgICAgYm9vbCBmaWxsc0JhY2t3YXJkcygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1v
ZGVTZXQgJiYgKG1fZmlsbE1vZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMgfHwgbV9m
aWxsTW9kZSA9PSBBbmltYXRpb25GaWxsTW9kZUJvdGgpOyB9CisgICAgYm9vbCBmaWxsc0Zvcndh
cmRzKCkgY29uc3QgeyByZXR1cm4gbV9maWxsTW9kZVNldCAmJiAobV9maWxsTW9kZSA9PSBBbmlt
YXRpb25GaWxsTW9kZUZvcndhcmRzIHx8IG1fZmlsbE1vZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVC
b3RoKTsgfQorCiBwcml2YXRlOgogICAgIEFuaW1hdGlvbigpOwogICAgIEFuaW1hdGlvbihjb25z
dCBBbmltYXRpb24mIG8pOwpAQCAtMTE5LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1f
aXRlcmF0aW9uQ291bnQ7CiAgICAgZG91YmxlIG1fZGVsYXk7CiAgICAgZG91YmxlIG1fZHVyYXRp
b247CisgICAgQW5pbWF0aW9uRmlsbE1vZGUgbV9maWxsTW9kZSA6IDI7CiAgICAgVGltaW5nRnVu
Y3Rpb24gbV90aW1pbmdGdW5jdGlvbjsKICAgICBBbmltYXRpb25EaXJlY3Rpb24gbV9kaXJlY3Rp
b24gOiAxOwogCkBAIC0xMjcsNiArMTM4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGVsYXlT
ZXQgICAgICAgICAgOiAxOwogICAgIGJvb2wgbV9kaXJlY3Rpb25TZXQgICAgICA6IDE7CiAgICAg
Ym9vbCBtX2R1cmF0aW9uU2V0ICAgICAgIDogMTsKKyAgICBib29sIG1fZmlsbE1vZGVTZXQgICAg
ICAgOiAxOwogICAgIGJvb2wgbV9pdGVyYXRpb25Db3VudFNldCA6IDE7CiAgICAgYm9vbCBtX25h
bWVTZXQgICAgICAgICAgIDogMTsKICAgICBib29sIG1fcGxheVN0YXRlU2V0ICAgICAgOiAxOwpA
QCAtMTM5LDYgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEFuaW1h
dGlvbkRlbGF5KCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBBbmltYXRpb25EaXJlY3Rpb24g
aW5pdGlhbEFuaW1hdGlvbkRpcmVjdGlvbigpIHsgcmV0dXJuIEFuaW1hdGlvbkRpcmVjdGlvbk5v
cm1hbDsgfQogICAgIHN0YXRpYyBkb3VibGUgaW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCkgeyBy
ZXR1cm4gMDsgfQorICAgIHN0YXRpYyBBbmltYXRpb25GaWxsTW9kZSBpbml0aWFsQW5pbWF0aW9u
RmlsbE1vZGUoKSB7IHJldHVybiBBbmltYXRpb25GaWxsTW9kZU5vbmU7IH0KICAgICBzdGF0aWMg
aW50IGluaXRpYWxBbmltYXRpb25JdGVyYXRpb25Db3VudCgpIHsgcmV0dXJuIDE7IH0KICAgICBz
dGF0aWMgU3RyaW5nIGluaXRpYWxBbmltYXRpb25OYW1lKCkgeyByZXR1cm4gU3RyaW5nKCJub25l
Iik7IH0KICAgICBzdGF0aWMgdW5zaWduZWQgaW5pdGlhbEFuaW1hdGlvblBsYXlTdGF0ZSgpIHsg
cmV0dXJuIEFuaW1QbGF5U3RhdGVQbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL0FuaW1hdGlvbkxpc3QuY3BwCmluZGV4IDgwNGRlZGUuLmJkNWZkZWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3BwCkBAIC0zNyw2ICszNyw3IEBA
IHZvaWQgQW5pbWF0aW9uTGlzdDo6ZmlsbFVuc2V0UHJvcGVydGllcygpCiAgICAgRklMTF9VTlNF
VF9QUk9QRVJUWShpc0RlbGF5U2V0LCBkZWxheSwgc2V0RGVsYXkpOwogICAgIEZJTExfVU5TRVRf
UFJPUEVSVFkoaXNEaXJlY3Rpb25TZXQsIGRpcmVjdGlvbiwgc2V0RGlyZWN0aW9uKTsKICAgICBG
SUxMX1VOU0VUX1BST1BFUlRZKGlzRHVyYXRpb25TZXQsIGR1cmF0aW9uLCBzZXREdXJhdGlvbik7
CisgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0ZpbGxNb2RlU2V0LCBmaWxsTW9kZSwgc2V0Rmls
bE1vZGUpOwogICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNJdGVyYXRpb25Db3VudFNldCwgaXRl
cmF0aW9uQ291bnQsIHNldEl0ZXJhdGlvbkNvdW50KTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZ
KGlzUGxheVN0YXRlU2V0LCBwbGF5U3RhdGUsIHNldFBsYXlTdGF0ZSk7CiAgICAgRklMTF9VTlNF
VF9QUk9QRVJUWShpc05hbWVTZXQsIG5hbWUsIHNldE5hbWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCmluZGV4IDIyZTM5ZjUuLjllNzli
OGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5
ZXJDQS5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVy
Q0EubW0KQEAgLTE4NTksMTIgKzE4NTksMjAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVw
QW5pbWF0aW9uKENBUHJvcGVydHlBbmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW4KICAg
ICBlbHNlIGlmIChhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVj
dGlvbkFsdGVybmF0ZSkKICAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsKIAorICAgIE5TU3RyaW5n
KiBmaWxsTW9kZSA9IGtDQUZpbGxNb2RlUmVtb3ZlZDsKKyAgICBpZiAoYW5pbS0+ZmlsbE1vZGUo
KSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlQmFja3dhcmRzKQorICAgICAgIGZpbGxN
b2RlID0ga0NBRmlsbE1vZGVCYWNrd2FyZHM7CisgICAgZWxzZSBpZiAoYW5pbS0+ZmlsbE1vZGUo
KSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHMpCisgICAgICAgZmlsbE1v
ZGUgPSBrQ0FGaWxsTW9kZUZvcndhcmRzOworICAgIGVsc2UgaWYgKGFuaW0tPmZpbGxNb2RlKCkg
PT0gQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGgpCisgICAgICAgZmlsbE1vZGUgPSBr
Q0FGaWxsTW9kZUJvdGg7CisKICAgICBbcHJvcGVydHlBbmltIHNldER1cmF0aW9uOmR1cmF0aW9u
XTsKICAgICBbcHJvcGVydHlBbmltIHNldFJlcGVhdENvdW50OnJlcGVhdENvdW50XTsKICAgICBb
cHJvcGVydHlBbmltIHNldEF1dG9yZXZlcnNlczphbmltLT5kaXJlY3Rpb24oKV07CiAgICAgW3By
b3BlcnR5QW5pbSBzZXRSZW1vdmVkT25Db21wbGV0aW9uOk5PXTsKICAgICBbcHJvcGVydHlBbmlt
IHNldEFkZGl0aXZlOmFkZGl0aXZlXTsKLSAgICBbcHJvcGVydHlBbmltIHNldEZpbGxNb2RlOkAi
ZXh0ZW5kZWQiXTsKKyAgICBbcHJvcGVydHlBbmltIHNldEZpbGxNb2RlOmZpbGxNb2RlXTsKIAog
ICAgIFtwcm9wZXJ0eUFuaW0gc2V0RGVsZWdhdGU6bV9hbmltYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CiB9Cg==
</data>
<flag name="review"
          id="32842"
          type_id="1"
          status="-"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49979</attachid>
            <date>2010-03-03 19:32:29 -0800</date>
            <delta_ts>2010-03-04 02:56:24 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>fill-mode.patch</filename>
            <type>text/plain</type>
            <size>52943</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDAxZWEyLi4wM2I1ZjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDMt
MDMgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlciBhbmQg
Q2hyaXMgTWFycmluLgorCisgICAgICAgIEJ1ZyAyNjg2OTogQWRkIGZpbGwgbW9kZXMgZm9yIENT
UyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjg2OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgLXdlYmtpdC1hbmltYXRpb24tZmls
bC1tb2RlIHByb3BlcnR5LAorICAgICAgICBhbmQgdXBkYXRlIGV4aXN0aW5nIGNvbXB1dGVkIHN0
eWxlIHRlc3RzIHdpdGggdGhlIAorICAgICAgICBuZXcgcHJvcGVydHkuCisKKyAgICAgICAgKiBh
bmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmltYXRp
b25zL2NvbXB1dGVkLXN0eWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS1yZW1v
dmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUt
cmVtb3ZlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10cmFu
c2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9k
ZS10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVz
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wMi0y
MyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhhdGNoZXIgYW5kIFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGViNDBhN2QuLjY4YjA5
MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhw
ZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBAQCBQQVNTIHRlc3QxU3R5bGUud2Via2l0QW5pbWF0aW9u
TmFtZSBpcyAnYW5pbTEnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSBpcyAn
YW5pbTIsIGFuaW0zJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9uIGlz
ICcxMHMnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gaXMgJzVzLCAy
LjVzJworUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIGlzICdiYWNrd2Fy
ZHMnCitQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgaXMgJ2ZvcndhcmRz
LCBib3RoJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGlz
ICcxMCcKIFBBU1MgdGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBpcyAn
MTAsIGluZmluaXRlJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0
aW9uIGlzICdjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSknCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggNDdmM2I5ZC4uODljOGVlZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBh
bmltMTsKICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwczsKKyAgICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CiAgICAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTA7CiAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IG5vcm1hbDsKQEAgLTIwLDYgKzIxLDcgQEAKICAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltMiwgYW5pbTM7CiAgICAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1cywgMjUwMG1zOworICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBib3RoOwogICAgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZpbml0ZTsKICAgICAgICAgLXdlYmtp
dC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIsIGVhc2UtaW4tb3V0OwogICAgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRlOwpAQCAtNjAs
NiArNjIsOSBAQCBzaG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwgIidh
bmltMiwgYW5pbTMnIik7CiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25EdXJh
dGlvbiIsICInMTBzJyIpOwogc2hvdWxkQmUoInRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVy
YXRpb24iLCAiJzVzLCAyLjVzJyIpOwogCitzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmlt
YXRpb25GaWxsTW9kZSIsICInYmFja3dhcmRzJyIpOworc2hvdWxkQmUoInRlc3QyU3R5bGUud2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGUiLCAiJ2ZvcndhcmRzLCBib3RoJyIpOworCiBzaG91bGRCZSgi
dGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAnIik7CiBzaG91
bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAsIGlu
ZmluaXRlJyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9k
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIyMjEwMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRo
ZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5pbWF0
ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LiBJdCB0YWtlcyBzbmFw
c2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLgorTm9u
ZQorQmFja3dhcmRzCitGb3J3YXJkcworQm90aAorQm90aCBpdGVyYXRpbmcKK1BBU1MgLSBzdGFy
dCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDIwMCBhY3R1YWw6IDIwMAorUEFT
UyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAK
K1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMjAwIGFjdHVhbDog
MjAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGUgZXhwZWN0ZWQ6IDIwMCBhY3R1
YWw6IDIwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFj
dHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAxMDAg
YWN0dWFsOiAxMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDMw
MCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDog
MzAwIGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVk
OiAyMDAgYWN0dWFsOiAyMDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLW1vZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2Zp
bGwtbW9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wOWM2Nzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9maWxsLW1vZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0
ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgbGVmdCBwcm9wZXJ0eSB3aXRoIGZvdXIg
ZGlmZmVyZW50IGZpbGwgbW9kZXMuIEl0IGFuaW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEg
MC4xIHNlY29uZCBkZWxheS4gQXQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9ucywgd2UgcmVtb3Zl
IHRoZSBhbmltYXRpb24gbmFtZSB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHZhbHVlIHRvIGp1bXAg
YmFjayB0byB0aGUgdW5hbmltYXRlZCBzdHlsZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMK
K0JvdGgKK1BBU1MgLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gaWQ6
IGIgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAtIGlkOiBjIGV4cGVjdGVkOiAxMDAg
YWN0dWFsOiAxMDAKK1BBU1MgLSBpZDogZCBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjM1NDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmVtb3ZlZC5odG1sCkBAIC0wLDAgKzEsMTEw
IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0
aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisK
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IGVu
ZCB2YWx1ZXMgd2l0aCBmaWxsIG1vZGVzIGFmdGVyIGFuaW1hdGlvbiBpcyByZW1vdmVkPC90aXRs
ZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9w
OiAxMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZHVyYXRpb246IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246
IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ICJhbmltIjsKKyAgICB9Cisg
ICAgQC13ZWJraXQta2V5ZnJhbWVzICJhbmltIiB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBw
eDsgfQorICAgICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZTogbm9uZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQor
ICAgICNjIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
OiBib3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBjb25zdCBudW1BbmltcyA9IDQ7CisgICAgdmFyIGFu
aW1zRmluaXNoZWQgPSAwOworICAgIGNvbnN0IGV4cGVjdGVkRW5kVmFsdWVzID0gWworICAgICAg
e2lkOiAiYSIsIHZhbHVlOiAxMDB9LAorICAgICAge2lkOiAiYiIsIHZhbHVlOiAxMDB9LAorICAg
ICAge2lkOiAiYyIsIHZhbHVlOiAxMDB9LAorICAgICAge2lkOiAiZCIsIHZhbHVlOiAxMDB9Cisg
ICAgXTsKKyAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgIAorICAgIGZ1bmN0aW9uIGFuaW1h
dGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS53ZWJraXRBbmlt
YXRpb25OYW1lID0gIm5vbmUiOworICAgICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51bUFu
aW1zKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGVuZFRlc3QsIDApOyAvLyB0aGlzIHNldCB0
aW1lb3V0IHNob3VsZCBiZSBvayBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUganVzdCBnaXZpbmcgc3R5bGUg
YSBjaGFuY2UgdG8gcmVzb2x2ZQorICAgICAgICB9CisgICAgfTsKKyAgCisgICAgZnVuY3Rpb24g
ZW5kVGVzdCgpIHsKKworICAgICAgICB2YXIgcmVzdWx0ID0gIiI7CisgICAgICAgIGZvciAodmFy
IGk9MDsgaSA8IGV4cGVjdGVkRW5kVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2
YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZEVuZFZhbHVlc1tpXS5pZCk7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRW5kVmFsdWVzW2ldLnZh
bHVlOworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGVsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhleHBlY3RlZFZh
bHVlIC0gcmVhbFZhbHVlKSA8IDUpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gIiAtIGlkOiAiICsgZXhwZWN0ZWRF
bmRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFs
OiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgIAorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1h
dGlvbkVuZCIsIGFuaW1hdGlvbkVuZGVkLCBmYWxzZSk7CisgICAgfTsKKyAgCisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRo
ZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFuaW1h
dGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0F0IHRoZSBlbmQg
b2YgdGhlIGFuaW1hdGlvbnMsIHdlIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG5hbWUgd2hpY2ggc2hv
dWxkCitjYXVzZSB0aGUgdmFsdWUgdG8ganVtcCBiYWNrIHRvIHRoZSB1bmFuaW1hdGVkIHN0eWxl
LgorPGRpdiBpZD0iYSIgY2xhc3M9ImJveCI+CisgIE5vbmUKKzwvZGl2PgorPGRpdiBpZD0iYiIg
Y2xhc3M9ImJveCI+CisgIEJhY2t3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJjIiBjbGFzcz0iYm94
Ij4KKyAgRm9yd2FyZHMKKzwvZGl2PgorPGRpdiBpZD0iZCIgY2xhc3M9ImJveCI+CisgIEJvdGgK
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg4ZGE1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9y
bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFu
aW1hdGlvbiBvZiB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmls
bCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRl
bGF5LiBJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0
aGUgYW5pbWF0aW9ucy4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK0JvdGggSXRl
cmF0ZQorTm90ZSB0aGF0IGR1ZSB0byBCdWcgMzU3MTQgdGhlIGV4cGVjdGVkIHZhbHVlcyBmb3Ig
dGhlIHN0YXJ0IG9mIHRoZSBhbmltYXRpb24gb24gZWxlbWVudHMgImEiIGFuZCAiYyIgYXJlIGlu
dGVudGlvbmFsbHkgaW5jb3JyZWN0LiBUaGUgZXhwZWN0ZWQgdmFsdWVzIHNob3VsZCBiZSAxMDAs
IG5vdCAyMDAuIElmIHRoaXMgdGVzdCBmYWlscywgdGhlbiBpdCdzIGxpa2VseSB0aGF0IGJ1ZyBo
YXMgYmVlbiBmaXhlZCBhbmQgdGhlIGV4cGVjdGVkIHZhbHVlcyBoZXJlIHNob3VsZCBiZSB1cGRh
dGVkLgorCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDIwMCBh
Y3R1YWw6IDIwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAy
MDAgYWN0dWFsOiAyMDAKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYyBleHBlY3Rl
ZDogMjAwIGFjdHVhbDogMjAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhw
ZWN0ZWQ6IDIwMCBhY3R1YWw6IDIwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBl
IGV4cGVjdGVkOiAyMDAgYWN0dWFsOiAyMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6
IGEgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBp
ZDogYiBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAt
IGlkOiBjIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9u
IC0gaWQ6IGQgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRp
b24gLSBpZDogZSBleHBlY3RlZDogMjAwIGFjdHVhbDogMjAwCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzFjNWM2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBmaWxs
IG1vZGUgb24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRp
YT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAg
IGxlZnQ6IDEwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEw
MHB4LCAwLCAwKTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IGFuaW07CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1lcyBhbmltIHsKKyAgICAgICAgZnJv
bSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDBweCwgMCwgMCk7IH0KKyAgICAg
ICAgdG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDBweCwgMCwgMCk7IH0K
KyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKKyAgICB9CisgICAgI2IgeworICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
OiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9
CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgLXdlYmtp
dC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBi
b3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgfQorICA8L3N0eWxl
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAg
IGNvbnN0IG51bUFuaW1zID0gNTsKKyAgICB2YXIgYW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29u
c3QgYWxsb3dhbmNlID0gNTsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtp
ZDogImEiLCBzdGFydDogMjAwLCBlbmQ6IDEwMH0sCisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDIw
MCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYyIsIHN0YXJ0OiAyMDAsIGVuZDogMzAwfSwKKyAg
ICAgIHtpZDogImQiLCBzdGFydDogMjAwLCBlbmQ6IDMwMH0sCisgICAgICB7aWQ6ICJlIiwgc3Rh
cnQ6IDIwMCwgZW5kOiAyMDB9CisgICAgXTsKKyAgICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7
CisgICAgICAgIGlmICgrK2FuaW1zRmluaXNoZWQgPT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZW5kVGVzdCwgMCk7IC8vIHRoaXMgc2V0IHRpbWVvdXQgc2hvdWxkIGJlIG9r
IGluIHRoZSB0ZXN0IGVudmlyb25tZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0IGdpdmluZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZl
CisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVuY3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAg
ICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0u
aWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5l
bmQ7CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gcGFy
c2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0XSk7CisgICAg
ICAgICAgICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2Fu
Y2UpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICByZXN1bHQgKz0gIiAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVk
VmFsdWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDog
IiArIHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworCisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVj
dGVkVmFsdWVzW2ldLmlkKTsKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVk
VmFsdWVzW2ldLnN0YXJ0OworICAgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgICB2YXIgcmVhbFZh
bHVlID0gcGFyc2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0
XSk7CisgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwg
YWxsb3dhbmNlKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOworICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgIH0KKyAgICAg
ICAgICByZXN1bHQgKz0gIiAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRW
YWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAi
ICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgfQorICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kZWQsIGZhbHNlKTsKKyAg
ICB9OworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMg
YW4gYW5pbWF0aW9uIG9mIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVu
dAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vj
b25kIGRlbGF5LgorSXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBl
bmQgb2YgdGhlIGFuaW1hdGlvbnMuCis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4KKyAgTm9uZQor
PC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4KKyAgQmFja3dhcmRzCis8L2Rpdj4KKzxk
aXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJkIiBj
bGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2IGlkPSJlIiBjbGFzcz0iYm94Ij4KKyAg
Qm90aCBJdGVyYXRlCis8L2Rpdj4KKzxwPgorICBOb3RlIHRoYXQgZHVlIHRvIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTcxNCI+QnVnIDM1NzE0PC9h
PgorICB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciB0aGUgc3RhcnQgb2YgdGhlIGFuaW1hdGlvbiBv
biBlbGVtZW50cyAiYSIgYW5kICJjIiBhcmUKKyAgaW50ZW50aW9uYWxseSBpbmNvcnJlY3QuIFRo
ZSBleHBlY3RlZCB2YWx1ZXMgc2hvdWxkIGJlIDEwMCwgbm90IDIwMC4gSWYgdGhpcworICB0ZXN0
IGZhaWxzLCB0aGVuIGl0J3MgbGlrZWx5IHRoYXQgYnVnIGhhcyBiZWVuIGZpeGVkIGFuZCB0aGUg
ZXhwZWN0ZWQgdmFsdWVzIGhlcmUKKyAgc2hvdWxkIGJlIHVwZGF0ZWQuCis8L3A+Cis8ZGl2IGlk
PSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Yzc0MWE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRt
bApAQCAtMCwwICsxLDEzMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1s
NC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgor
ICA8dGl0bGU+VGVzdCBzaW1wbGUgYW5pbWF0aW9uIHdpdGggZmlsbCBtb2RlczwvdGl0bGU+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgIHRvcDogMTBw
eDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1kZWxheTogMC4xczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0
aW9uOiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5l
YXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltOworICAgIH0KKyAgICBALXdl
YmtpdC1rZXlmcmFtZXMgYW5pbSB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBweDsgfQorICAg
ICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9u
ZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1j
b2xvcjogeWVsbG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOwor
ICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBh
bHRlcm5hdGU7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGNvbnN0IG51bUFuaW1zID0gNTsKKyAgICB2YXIg
YW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29uc3QgYWxsb3dhbmNlID0gNTsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtpZDogImEiLCBzdGFydDogMTAwLCBlbmQ6IDEwMH0s
CisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDIwMCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYyIs
IHN0YXJ0OiAxMDAsIGVuZDogMzAwfSwKKyAgICAgIHtpZDogImQiLCBzdGFydDogMjAwLCBlbmQ6
IDMwMH0sCisgICAgICB7aWQ6ICJlIiwgc3RhcnQ6IDIwMCwgZW5kOiAyMDB9CisgICAgXTsKKyAg
ICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAgIGlmICgrK2FuaW1zRmluaXNoZWQg
PT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZW5kVGVzdCwgMCk7IC8vIHRo
aXMgc2V0IHRpbWVvdXQgc2hvdWxkIGJlIG9rIGluIHRoZSB0ZXN0IGVudmlyb25tZW50CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0IGdpdmlu
ZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZlCisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVu
Y3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZh
bHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVk
VmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQi
KS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOworICAgICAgICAg
ICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7
CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmVzdWx0ICs9ICIgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVl
c1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIgKyBy
ZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKKworICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZh
bHVlc1tpXS5pZCk7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFs
dWVzW2ldLnN0YXJ0OworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhl
eHBlY3RlZFZhbHVlIC0gcmVhbFZhbHVlKSA8IGFsbG93YW5jZSkgeworICAgICAgICAgICAgICBy
ZXN1bHQgKz0gIlBBU1MiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmVz
dWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhw
ZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJy
PiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kZWQsIGZhbHNlKTsKKyAgICB9OworCisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFu
aW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0l0IHRha2Vz
IHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24u
Cis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBj
bGFzcz0iYm94Ij4KKyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3gi
PgorICBGb3J3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAor
PC9kaXY+Cis8ZGl2IGlkPSJlIiBjbGFzcz0iYm94Ij4KKyAgQm90aCBpdGVyYXRpbmcKKzwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGE1N2M1ZGEuLmMzZGZmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUs
NCArNSw1IEBAIFRlc3Rpbmcgd2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiBQQVNTCiBU
ZXN0aW5nIHdlYmtpdEFuaW1hdGlvbk5hbWU6IFBBU1MKIFRlc3Rpbmcgd2Via2l0QW5pbWF0aW9u
RHVyYXRpb246IFBBU1MKIFRlc3Rpbmcgd2Via2l0QW5pbWF0aW9uRGVsYXk6IFBBU1MKK1Rlc3Rp
bmcgd2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6IFBBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggYjQ3YTI4Ni4uYTQ5ZGVj
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRp
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGll
cy5odG1sCkBAIC0xMyw2ICsxMyw3IEBACiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYSwg
YiwgYywgZCwgZTsKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTBzLCAyMHM7CiAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDFzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogZm9yd2FyZHMsIGJhY2t3YXJkczsKIH0KIEAtd2Via2l0LWtleWZyYW1lcyBhIHsg
fQogQC13ZWJraXQta2V5ZnJhbWVzIGIgeyB9CkBAIC0zMiw2ICszMyw3IEBACiAgICAgICB7ICdw
cm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25OYW1lJywgICAgICAndmFsdWUnOiAnYSwgYiwgYywg
ZCwgZScgfSwKICAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkR1cmF0aW9uJywg
ICd2YWx1ZSc6ICcxMHMsIDIwcywgMTBzLCAyMHMsIDEwcycgfSwKICAgICAgIHsgJ3Byb3BlcnR5
JzogJ3dlYmtpdEFuaW1hdGlvbkRlbGF5JywgICAgICd2YWx1ZSc6ICcxcywgMXMsIDFzLCAxcywg
MXMnIH0sCisgICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25GaWxsTW9kZScsICAn
dmFsdWUnOiAnZm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2Fy
ZHMnIH0sCiAgICAgXTsKICAgICAKICAgICBmdW5jdGlvbiBzdGFydCgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGU2MWUyMGIuLjMyZmUzZDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC04Niw2ICs4Niw3IEBAIHpvb206IDE7CiAtd2Via2l0
LWFuaW1hdGlvbi1kZWxheTogMHM7CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1h
bDsKIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsKKy13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKIC13
ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7CiAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVu
Y3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0
LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKaW5kZXgg
YzlmYTk0Mi4uYTY4OTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CkBAIC04NSw2ICs4NSw3IEBAIENvbXB1dGVk
IHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdu
b25lJzoKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHMKICAgICAtd2Via2l0LWFuaW1h
dGlvbi1kaXJlY3Rpb246IG5vcm1hbAogICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAw
cworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZQogICAgIC13ZWJraXQtYW5p
bWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMQogICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5v
bmUKICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigw
LjI1LCAwLjEsIDAuMjUsIDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRl
ZC1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggZmY0ODZlNS4uZjg3YzRhYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtOTYs
NiArOTYsNyBAQCB6b29tOiAxOwogLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDBzOwogLXdlYmtp
dC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CiAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlv
bjogMHM7Cistd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CiAtd2Via2l0LWFuaW1h
dGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lOwog
LXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5k
ZXJlci1leHBlY3RlZC50eHQKaW5kZXggYzEyOTFhMS4uMjM3NzRjYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91
dC1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTk1LDYgKzk1LDcgQEAgQ29tcHV0ZWQgc3R5bGUg
b2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgog
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbjogbm9ybWFsCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDBzCisgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lCiAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiAxCiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZQogICAg
IC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4
IGJiOGMwYjMuLmExYzUzZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9n
ZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMTkwLDYgKzE5MCw4IEBAIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uKSA6
IG5vcm1hbAogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb24pIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCiByZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uKSA6IDBzCiByZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uKSA6IFtvYmplY3Qg
Q1NTVmFsdWVMaXN0XQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGUpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgt
d2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGUpIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCiByZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3Vu
dCkgOiAxCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9u
LWl0ZXJhdGlvbi1jb3VudCkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tbmFtZSkgOiBub25lCkBAIC02MDQsNiAr
NjA2LDggQEAgZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb24pIDogbm9ybWFsCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbikgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIGc6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogMHMKIGc6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogW29iamVjdCBD
U1NWYWx1ZUxpc3RdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZSkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQt
YW5pbWF0aW9uLWZpbGwtbW9kZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIGc6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KSA6IDEKIGc6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNv
dW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgt
d2Via2l0LWFuaW1hdGlvbi1uYW1lKSA6IG5vbmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q4NWFjMi4uZGIzMGMxMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
OCBAQAorMjAxMC0wMy0wMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyIGFuZCBDaHJpcyBNYXJyaW4uCisKKyAgICAgICAg
QnVnIDI2ODY5OiBBZGQgZmlsbCBtb2RlcyBmb3IgQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODY5CisKKyAgICAgICAgVGVz
dHM6IGFuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlv
bnMvZmlsbC1tb2RlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgICAgIC0g
cGFyc2UsIGFzc2lnbiBhbmQgcmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBuZXcKKyAgICAgICAg
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlIHByb3BlcnR5CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAgICAgLSBuZXcgc3RhdGUgaW4gYW5pbWF0aW9uIGVu
Z2luZSBmb3IgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgdGhhdCBpcyAiZmls
bGluZyIgZm9yd2FyZHMgaW4gdGltZS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgICAgICAgIGVu
Z2luZSB0byBrZWVwIHRoZSBhbmltYXRpb24gYXJvdW5kIGFuZCBub3QgcmV2ZXJ0IHRvIHRoZQor
ICAgICAgICAgICAgICBvbGQgc3R5bGUuCisgICAgICAgICAgICAtIHVwZGF0ZSB0aGUgdGltZXIg
Y29kZSB0byBpbmRpY2F0ZSBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAga2VlcCBh
bmltYXRpbmcgaWYgaXQgaXMgZmlsbGluZworICAgICAgICAgICAgLSBub3cgdGhhdCBhbmltYXRp
b25zIGNhbiBleHRlbmQgYmV5b25kIHRoZWlyIGVsYXBzZWQgdGltZSwKKyAgICAgICAgICAgICAg
bWFrZSBzdXJlIHByb2dyZXNzIHdvcmtzIGNvcnJlY3RseSB3aXRoIGl0ZXJhdGlvbiBjb3VudHMK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6YW5pbWF0ZSk6CisgICAgICAgICAgICAtIGVu
c3VyZSBjb3JyZWN0IHN0eWxlIHZhbHVlIGlzIHJldHVybmVkIGF0IHRoZSByaWdodAorICAgICAg
ICAgICAgICB0aW1lIGJ5IGNoZWNraW5nIGZvciBmaWxsIG1vZGUKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lQW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZCk6CisgICAgICAgICAgICAtIGNvbnRp
bnVlIHRvIHNlbmQgdGhlIGVuZCBldmVudCwgYnV0IG9ubHkgcmVtb3ZlIHRoZQorICAgICAgICAg
ICAgICBhbmltYXRpb24gaWYgaXQgaXNuJ3QgZmlsbGluZyBmb3J3YXJkcworICAgICAgICAqIHBs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgICAgIC0gbmV3IGZpbGwgbW9kZSBtZW1iZXIgcHJv
cGVydHkKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHA6Cisg
ICAgICAgICAgICAtIGVuc3VyZSB0aGUgZmlsbCBtb2RlIGlzIHByb3BhZ2F0ZWQgdG8gYSBsaXN0
IG9mIHN0eWxlIHZhbHVzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
TGF5ZXJDQS5tbToKKyAgICAgICAgICAgIC0gbWFrZSBoYXJkd2FyZSBsYXllcnMgdXNlIENvcmUg
QW5pbWF0aW9uJ3MgZmlsbCBtb2RlCisKIDIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyIGFuZCBQYXZl
bCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggODAzOWUzNS4uZjdjNWRjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0xNDYsNiArMTQ2LDcgQEAgc3RhdGljIGNvbnN0IGludCBjb21w
dXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRlbGF5
LAogICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uLAogICAgIENTU1Byb3Bl
cnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb24sCisgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25GaWxsTW9kZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
LAogICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uTmFtZSwKICAgICBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvblBsYXlTdGF0ZSwKQEAgLTExOTgsNiArMTE5OSwzMCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUoaW50IHByb3BlcgogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRB
bmltYXRpb25EdXJhdGlvbjoKICAgICAgICAgICAgIHJldHVybiBnZXREdXJhdGlvblZhbHVlKHN0
eWxlLT5hbmltYXRpb25zKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0
aW9uRmlsbE1vZGU6IHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBjb25zdCBB
bmltYXRpb25MaXN0KiB0ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKKyAgICAgICAgICAgIGlmICh0
KSB7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS0+ZmlsbE1v
ZGUoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmls
bE1vZGVOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlTm9uZSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQW5pbWF0aW9uOjpB
bmltYXRpb25GaWxsTW9kZUZvcndhcmRzOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+
YXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlRm9yd2Fy
ZHMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHM6CisgICAgICAgICAg
ICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50
aWZpZXIoQ1NTVmFsdWVCYWNrd2FyZHMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVC
b3RoOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlQm90aCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKSk7CisgICAgICAgICAgICBy
ZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwog
ICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmltYXRpb25zKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAppbmRleCA1YzY1MTQyLi5iMmRkM2JlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEzOTMs
NiArMTM5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bk5hbWU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlTdGF0ZToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CkBAIC0yNTcx
LDYgKzI1NzIsMTQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1h
dGlvbkR1cmF0aW9uKCkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkZpbGxNb2RlKCkKK3sKKyAgICBDU1NQYXJzZXJWYWx1
ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICh2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVOb25lIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8IHZhbHVlLT5p
ZCA9PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVCb3RoKQorICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlk
KTsKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCkKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFs
dWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwpAQCAtMjcxMyw2ICsyNzIyLDExIEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBwcm9wSWQsIFJlZlB0cjxDU1NW
YWx1ZT4mIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1ZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25GaWxsTW9kZToKKyAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRp
b25GaWxsTW9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclZhbHVlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bkl0ZXJhdGlvbkNvdW50OgogICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUgPSBwYXJzZUFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyVmFs
dWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLmQxMGRhNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC05NSw2ICs5NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFy
c2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFu
aW1hdGlvbkRpcmVjdGlvbigpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFu
aW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5p
bWF0aW9uRmlsbE1vZGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmlt
YXRpb25JdGVyYXRpb25Db3VudCgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJz
ZUFuaW1hdGlvbk5hbWUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmlt
YXRpb25QbGF5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDk2OTVkMGIuLjVm
N2IxODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTUxLDYgKzE1MSw3IEBAIHpvb20K
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24KIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uCistd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGUKIC13
ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudAogLXdlYmtpdC1hbmltYXRpb24tbmFtZQog
LXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCAxMjRlYjlmLi5iOGMzZmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNTI5MSw2
ICs1MjkxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJh
dGlvbjoKICAgICAgICAgSEFORExFX0FOSU1BVElPTl9WQUxVRShkdXJhdGlvbiwgRHVyYXRpb24s
IHZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1h
dGlvbkZpbGxNb2RlOgorICAgICAgICBIQU5ETEVfQU5JTUFUSU9OX1ZBTFVFKGZpbGxNb2RlLCBG
aWxsTW9kZSwgdmFsdWUpCisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgICAgIEhBTkRMRV9BTklNQVRJT05fVkFM
VUUoaXRlcmF0aW9uQ291bnQsIEl0ZXJhdGlvbkNvdW50LCB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTY1MCw2ICs1NjUzLDMwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0
aW9uRHVyYXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1CiAgICAgICAg
IGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKS8x
MDAwLjBmKTsKIH0KIAordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25GaWxsTW9k
ZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLT5j
c3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsKKyAgICAgICAgbGF5ZXIt
PnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkZpbGxNb2RlKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorIAorICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOworICAgIHN3aXRj
aCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToK
KyAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVO
b25lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUZvcndhcmRzOgorICAgICAg
ICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUZvcndhcmRz
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUJhY2t3YXJkczoKKyAgICAgICAg
bGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQm90aDoKKyAgICAgICAgbGF5ZXIt
PnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkl0
ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAg
ICAgaWYgKHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCA2NDQwNTFjLi4yODRkNTYxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5oCkBAIC0yMzUsNiArMjM1LDcgQEAgcHVibGljOgogICAgICAgICB2b2lkIG1hcEFu
aW1hdGlvbkRlbGF5KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAgIHZvaWQgbWFwQW5p
bWF0aW9uRGlyZWN0aW9uKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAgIHZvaWQgbWFw
QW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKKyAgICAgICAgdm9pZCBt
YXBBbmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgICAgICB2b2lk
IG1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAg
ICAgIHZvaWQgbWFwQW5pbWF0aW9uTmFtZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgICAg
ICB2b2lkIG1hcEFuaW1hdGlvblBsYXlTdGF0ZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggY2EyYTQ3YS4uODdlMjU2OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC02MzksNiArNjM5LDEzIEBAIGxpbmVzCiAjIGFsdGVybmF0ZQogCiAjCisj
IENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0ZJTExfTU9ERQorIworIyBmb3J3YXJkcworIyBi
YWNrd2FyZHMKKyMgYm90aAorCisjCiAjIENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0lURVJB
VElPTl9DT1VOVAogIwogIyBpbmZpbml0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHAKaW5kZXggMmEyYWI0Yi4uYzJkNzBlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCkBAIC05MTgsOCArOTE4LDggQEAgdm9pZCBBbmltYXRpb25CYXNl
Ojp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkK
ICAgICAvLyBFeGVjdXRlIHN0YXRlIG1hY2hpbmUKICAgICBzd2l0Y2ggKG1fYW5pbVN0YXRlKSB7
CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVOZXc6Ci0gICAgICAgICAgICBBU1NFUlQoaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1h
dGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKLSAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5uaW5nKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0
aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5w
dXRQbGF5U3RhdGVSdW5uaW5nIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3Rh
dGVQYXVzZWQpOworICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRT
dGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVu
bmluZykgewogICAgICAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhcnRUaW1lID0gYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRp
b25TdGF0ZVN0YXJ0V2FpdFRpbWVyOwogICAgICAgICAgICAgfQpAQCAtMTAyMSw2ICsxMDIxLDcg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0RW5kVGltZXJGaXJlZCB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0
UGxheVN0YXRlUGF1c2VkKTsKIAogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0
YXRlSW5wdXRFbmRUaW1lckZpcmVkKSB7CisKICAgICAgICAgICAgICAgICBBU1NFUlQocGFyYW0g
Pj0gMCk7CiAgICAgICAgICAgICAgICAgLy8gRW5kIHRpbWVyIGZpcmVkLCBmaW5pc2ggdXAKICAg
ICAgICAgICAgICAgICBvbkFuaW1hdGlvbkVuZChwYXJhbSk7CkBAIC0xMDI4LDcgKzEwMjksMTAg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1h
dGlvblN0YXRlRG9uZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAobV9v
YmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fYW5pbWF0aW9uLT5maWxsc0ZvcndhcmRzKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlRmls
bGluZ0ZvcndhcmRzOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpOwogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIEZpcmUgb2ZmIGFub3RoZXIgc3R5bGUgY2hhbmdlIHNvIHdlIGNhbiBzZXQgdGhlIGZp
bmFsIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2gobV9vYmplY3QtPm5vZGUoKSk7CkBAIC0x
MDQyLDcgKzEwNDYsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShB
bmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgLy8gfHRoaXN8
IG1heSBiZSBkZWxldGVkIGhlcmUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFu
aW1hdGlvblN0YXRlUGF1c2VkV2FpdFRpbWVyOgotICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09
IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyk7CisgICAgICAgICAgICBBU1NF
UlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcpOwogICAgICAg
ICAgICAgQVNTRVJUKHBhdXNlZCgpKTsKICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdGltZXMK
ICAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0g
bV9wYXVzZVRpbWU7CkBAIC0xMDU4LDcgKzEwNjIsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVw
ZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAg
ICAgICAgICAgLy8gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2UsIHdlIGRvbid0IHll
dCBoYXZlIGEgdmFsaWQgc3RhcnRUaW1lLCBzbyB3ZSBzZW5kIDAgdG8gc3RhcnRBbmltYXRpb24u
CiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0
IGNvbWVzIGluIGFuZCB3ZSB3ZXJlIGluIEFuaW1hdGlvblN0YXRlUGF1c2VkUnVuLCB3ZSB3aWxs
IG5vdGljZQogICAgICAgICAgICAgLy8gdGhhdCB3ZSBoYXZlIGFscmVhZHkgc2V0IHRoZSBzdGFy
dFRpbWUgYW5kIHdpbGwgaWdub3JlIGl0LgotICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25T
dGF0ZUlucHV0U3RhcnRUaW1lU2V0KTsKKyAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmlt
YXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0U3RhcnRUaW1lU2V0KTsKICAgICAgICAgICAgIEFTU0VSVChwYXVzZWQoKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBwYXVzZWQsIGJ1dCB3ZSBnZXQgdGhl
IGNhbGxiYWNrIHRoYXQgbm90aWZpZXMgdXMgdGhhdCBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24g
c3RhcnRlZCwKQEAgLTEwOTMsNiArMTA5Nyw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRl
U3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAg
ICAgICAgICAgbV9mYWxsYmFja0FuaW1hdGluZyA9ICFzdGFydGVkOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9y
d2FyZHM6CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVEb25lOgogICAgICAgICAgICAgLy8g
V2UncmUgZG9uZS4gU3RheSBpbiB0aGlzIHN0YXRlIHVudGlsIHdlIGFyZSBkZWxldGVkCiAgICAg
ICAgICAgICBicmVhazsKQEAgLTExNTIsMTQgKzExNTcsMTQgQEAgdm9pZCBBbmltYXRpb25CYXNl
OjpmaXJlQW5pbWF0aW9uRXZlbnRzSWZOZWVkZWQoKQogdm9pZCBBbmltYXRpb25CYXNlOjp1cGRh
dGVQbGF5U3RhdGUoYm9vbCBydW4pCiB7CiAgICAgaWYgKHBhdXNlZCgpID09IHJ1biB8fCBpc05l
dygpKQotICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVuID8gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5uaW5nIDogQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCwg
LTEpOworICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVuID8gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5pbmcgOiBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkLCAt
MSk7CiB9CiAKIGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSgpCiB7CiAg
ICAgLy8gUmV0dXJucyB0aGUgdGltZSBhdCB3aGljaCBuZXh0IHNlcnZpY2UgaXMgcmVxdWlyZWQu
IC0xIG1lYW5zIG5vIHNlcnZpY2UgaXMgcmVxdWlyZWQuIDAgbWVhbnMgCiAgICAgLy8gc2Vydmlj
ZSBpcyByZXF1aXJlZCBub3csIGFuZCA+IDAgbWVhbnMgc2VydmljZSBpcyByZXF1aXJlZCB0aGF0
IG1hbnkgc2Vjb25kcyBpbiB0aGUgZnV0dXJlLgotICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygp
KQorICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygpIHx8IG1fYW5pbVN0YXRlID09IEFuaW1hdGlv
blN0YXRlRmlsbGluZ0ZvcndhcmRzKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgCiAgICAgaWYg
KG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXIpIHsKQEAgLTExODQs
OCArMTE4OSwxMCBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91YmxlIHNjYWxl
LCBkb3VibGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogICAgIGlmIChtX2FuaW1hdGlv
bi0+aXRlcmF0aW9uQ291bnQoKSA+IDApCiAgICAgICAgIGR1ciAqPSBtX2FuaW1hdGlvbi0+aXRl
cmF0aW9uQ291bnQoKTsKIAotICAgIGlmIChwb3N0QWN0aXZlKCkgfHwgIW1fYW5pbWF0aW9uLT5k
dXJhdGlvbigpIHx8IChtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSA+IDAgJiYgZWxhcHNl
ZFRpbWUgPj0gZHVyKSkKKyAgICBpZiAocG9zdEFjdGl2ZSgpIHx8ICFtX2FuaW1hdGlvbi0+ZHVy
YXRpb24oKSkKICAgICAgICAgcmV0dXJuIDEuMDsKKyAgICBpZiAobV9hbmltYXRpb24tPml0ZXJh
dGlvbkNvdW50KCkgPiAwICYmIGVsYXBzZWRUaW1lID49IGR1cikKKyAgICAgICAgcmV0dXJuICht
X2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSAlIDIpID8gMS4wIDogMC4wOwogCiAgICAgLy8g
Q29tcHV0ZSB0aGUgZnJhY3Rpb25hbCB0aW1lLCB0YWtpbmcgaW50byBhY2NvdW50IGRpcmVjdGlv
bi4KICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0ZXJhdGlvbnMsIHdl
IGFzc3VtZSB0aGF0IHdlIHdvdWxkIGhhdmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmgKaW5kZXggYzM2N2UwYS4uYTk1NzExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmgKQEAgLTcxLDcgKzcxLDggQEAgcHVibGljOgogICAgICAgICBBbmltYXRpb25T
dGF0ZVBhdXNlZFdhaXRUaW1lciwgICAgICAvLyBpbiBwYXVzZSBtb2RlIHdoZW4gYW5pbWF0aW9u
IHN0YXJ0ZWQKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2UsICAgLy8g
YW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIFNUQVJUSU5HIHN0YXRlCiAgICAgICAgIEFuaW1hdGlv
blN0YXRlUGF1c2VkUnVuLCAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwYXVzZWQgd2hlbiBpbiBM
T09QSU5HIG9yIEVORElORyBzdGF0ZQotICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUgICAgICAg
ICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVt
b3ZlZAorICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUsICAgICAgICAgICAgICAgICAvLyBlbmQg
dGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVtb3ZlZAorICAgICAgICBBbmlt
YXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkcyAgICAgICAvLyBhbmltYXRpb24gaGFzIGVuZGVkIGFu
ZCBpcyByZXRhaW5pbmcgaXRzIGZpbmFsIHZhbHVlCiAgICAgfTsKIAogICAgIGVudW0gQW5pbVN0
YXRlSW5wdXQgewpAQCAtODUsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0
YXRlSW5wdXRFbmRUaW1lckZpcmVkLCAgICAgLy8gZW5kIHRpbWVyIGZpcmVkCiAgICAgICAgIEFu
aW1hdGlvblN0YXRlSW5wdXRQYXVzZU92ZXJyaWRlLCAgICAgLy8gcGF1c2UgYW4gYW5pbWF0aW9u
IGR1ZSB0byBvdmVycmlkZQogICAgICAgICBBbmltYXRpb25TdGF0ZUlucHV0UmVzdW1lT3ZlcnJp
ZGUsICAgIC8vIHJlc3VtZSBhbiBvdmVycmlkZGVuIGFuaW1hdGlvbgotICAgICAgICBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcsIC8vIHBsYXkgc3RhdGUgcGF1c2VkIC0+IHJ1
bm5pbmcKKyAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcsICAvLyBw
bGF5IHN0YXRlIHBhdXNlZCAtPiBydW5uaW5nCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRQ
bGF5U3RhdGVQYXVzZWQsICAgLy8gcGxheSBzdGF0ZSBydW5uaW5nIC0+IHBhdXNlZAogICAgICAg
ICBBbmltYXRpb25TdGF0ZUlucHV0RW5kQW5pbWF0aW9uICAgICAgIC8vIGZvcmNlIGFuIGVuZCBm
cm9tIGFueSBzdGF0ZQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVB
bmltYXRpb24uY3BwCmluZGV4IGM1ZTM2NjAuLjBlNzZlYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0xMjAsOSArMTIwLDExIEBAIHZvaWQg
S2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUmVuZGVyCiAgICAgfQogCiAgICAgLy8gSWYgd2UgYXJlIHdhaXRpbmcgZm9y
IHRoZSBzdGFydCB0aW1lciwgd2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIHN0eWxlIHlldC4K
LSAgICAvLyBTcGVjaWFsIGNhc2UgLSBpZiB0aGUgZGVsYXkgdGltZSBpcyAwLCB0aGVuIHdlIGRv
IHdhbnQgdG8gc2V0IHRoZSBmaXJzdCBmcmFtZSBvZiB0aGUKKyAgICAvLyBTcGVjaWFsIGNhc2Ug
MSAtIGlmIHRoZSBkZWxheSB0aW1lIGlzIDAsIHRoZW4gd2UgZG8gd2FudCB0byBzZXQgdGhlIGZp
cnN0IGZyYW1lIG9mIHRoZQogICAgIC8vIGFuaW1hdGlvbiByaWdodCBhd2F5LiBUaGlzIGF2b2lk
cyBhIGZsYXNoIHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydHMuCi0gICAgaWYgKHdhaXRpbmdUb1N0
YXJ0KCkgJiYgbV9hbmltYXRpb24tPmRlbGF5KCkgPiAwKQorICAgIC8vIFNwZWNpYWwgY2FzZSAy
IC0gaWYgdGhlcmUgaXMgYSBiYWNrd2FyZHMgZmlsbCBtb2RlLCB0aGVuIHdlIHdhbnQgdG8gY29u
dGludWUKKyAgICAvLyB0aHJvdWdoIHRvIHRoZSBzdHlsZSBibGVuZCBzbyB0aGF0IHdlIGdldCB0
aGUgZnJvbVN0eWxlLgorICAgIGlmICh3YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5k
ZWxheSgpID4gMCAmJiAhbV9hbmltYXRpb24tPmZpbGxzQmFja3dhcmRzKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiB3ZSBuZWVkIHRvIGJlIG1vcmUgZWZmaWNpZW50IGFib3V0
IGRldGVybWluaW5nIHdoaWNoIGtleWZyYW1lcyB3ZSBhcmUgYW5pbWF0aW5nIGJldHdlZW4uCkBA
IC0yNjAsNyArMjYyLDEwIEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om9uQW5pbWF0aW9uSXRl
cmF0aW9uKGRvdWJsZSBlbGFwc2VkVGltZSkKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om9uQW5p
bWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKICAgICBzZW5kQW5pbWF0aW9uRXZlbnQo
ZXZlbnROYW1lcygpLndlYmtpdEFuaW1hdGlvbkVuZEV2ZW50LCBlbGFwc2VkVGltZSk7Ci0gICAg
ZW5kQW5pbWF0aW9uKCk7CisgICAgLy8gRW5kIHRoZSBhbmltYXRpb24gaWYgd2UgZG9uJ3QgZmls
bCBmb3J3YXJkcy4gRm9yd2FyZCBmaWxsaW5nCisgICAgLy8gYW5pbWF0aW9ucyBhcmUgZW5kZWQg
cHJvcGVybHkgaW4gdGhlIGNsYXNzIGRlc3RydWN0b3IuCisgICAgaWYgKCFtX2FuaW1hdGlvbi0+
ZmlsbHNGb3J3YXJkcygpKQorICAgICAgICBlbmRBbmltYXRpb24oKTsKIH0KIAogYm9vbCBLZXlm
cmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBkb3VibGUgZWxhcHNlZFRpbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmNwcAppbmRleCAwNTc2MWY4Li5iYzMzYTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbi5jcHAKQEAgLTMyLDEwICszMiwxMiBAQCBBbmltYXRpb246OkFuaW1h
dGlvbigpCiAgICAgLCBtX2R1cmF0aW9uKGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpKQogICAg
ICwgbV90aW1pbmdGdW5jdGlvbihpbml0aWFsQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKSkKICAg
ICAsIG1fZGlyZWN0aW9uKGluaXRpYWxBbmltYXRpb25EaXJlY3Rpb24oKSkKKyAgICAsIG1fZmls
bE1vZGUoaW5pdGlhbEFuaW1hdGlvbkZpbGxNb2RlKCkpCiAgICAgLCBtX3BsYXlTdGF0ZShpbml0
aWFsQW5pbWF0aW9uUGxheVN0YXRlKCkpCiAgICAgLCBtX2RlbGF5U2V0KGZhbHNlKQogICAgICwg
bV9kaXJlY3Rpb25TZXQoZmFsc2UpCiAgICAgLCBtX2R1cmF0aW9uU2V0KGZhbHNlKQorICAgICwg
bV9maWxsTW9kZVNldChmYWxzZSkKICAgICAsIG1faXRlcmF0aW9uQ291bnRTZXQoZmFsc2UpCiAg
ICAgLCBtX25hbWVTZXQoZmFsc2UpCiAgICAgLCBtX3BsYXlTdGF0ZVNldChmYWxzZSkKQEAgLTU0
LDEwICs1NiwxMiBAQCBBbmltYXRpb246OkFuaW1hdGlvbihjb25zdCBBbmltYXRpb24mIG8pCiAg
ICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKICAgICAsIG1fdGltaW5nRnVuY3Rpb24oby5t
X3RpbWluZ0Z1bmN0aW9uKQogICAgICwgbV9kaXJlY3Rpb24oby5tX2RpcmVjdGlvbikKKyAgICAs
IG1fZmlsbE1vZGUoby5tX2ZpbGxNb2RlKQogICAgICwgbV9wbGF5U3RhdGUoby5tX3BsYXlTdGF0
ZSkKICAgICAsIG1fZGVsYXlTZXQoby5tX2RlbGF5U2V0KQogICAgICwgbV9kaXJlY3Rpb25TZXQo
by5tX2RpcmVjdGlvblNldCkKICAgICAsIG1fZHVyYXRpb25TZXQoby5tX2R1cmF0aW9uU2V0KQor
ICAgICwgbV9maWxsTW9kZVNldChvLm1fZmlsbE1vZGVTZXQpCiAgICAgLCBtX2l0ZXJhdGlvbkNv
dW50U2V0KG8ubV9pdGVyYXRpb25Db3VudFNldCkKICAgICAsIG1fbmFtZVNldChvLm1fbmFtZVNl
dCkKICAgICAsIG1fcGxheVN0YXRlU2V0KG8ubV9wbGF5U3RhdGVTZXQpCkBAIC03NiwxMSArODAs
MTMgQEAgQW5pbWF0aW9uJiBBbmltYXRpb246Om9wZXJhdG9yPShjb25zdCBBbmltYXRpb24mIG8p
CiAgICAgbV9kdXJhdGlvbiA9IG8ubV9kdXJhdGlvbjsKICAgICBtX3RpbWluZ0Z1bmN0aW9uID0g
by5tX3RpbWluZ0Z1bmN0aW9uOwogICAgIG1fZGlyZWN0aW9uID0gby5tX2RpcmVjdGlvbjsKKyAg
ICBtX2ZpbGxNb2RlID0gby5tX2ZpbGxNb2RlOwogICAgIG1fcGxheVN0YXRlID0gby5tX3BsYXlT
dGF0ZTsKIAogICAgIG1fZGVsYXlTZXQgPSBvLm1fZGVsYXlTZXQ7CiAgICAgbV9kaXJlY3Rpb25T
ZXQgPSBvLm1fZGlyZWN0aW9uU2V0OwogICAgIG1fZHVyYXRpb25TZXQgPSBvLm1fZHVyYXRpb25T
ZXQ7CisgICAgbV9maWxsTW9kZVNldCA9IG8ubV9maWxsTW9kZVNldDsKICAgICBtX2l0ZXJhdGlv
bkNvdW50U2V0ID0gby5tX2l0ZXJhdGlvbkNvdW50U2V0OwogICAgIG1fbmFtZVNldCA9IG8ubV9u
YW1lU2V0OwogICAgIG1fcGxheVN0YXRlU2V0ID0gby5tX3BsYXlTdGF0ZVNldDsKQEAgLTEwNyw5
ICsxMTMsMTEgQEAgYm9vbCBBbmltYXRpb246OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmltYXRp
b24qIG8sIGJvb2wgbWF0Y2hQbGF5U3RhdGVzKSBjb25zdAogICAgICAgICAgICAgICAgICAgbV9k
dXJhdGlvbiA9PSBvLT5tX2R1cmF0aW9uICYmCiAgICAgICAgICAgICAgICAgICBtX3RpbWluZ0Z1
bmN0aW9uID09IG8tPm1fdGltaW5nRnVuY3Rpb24gJiYKICAgICAgICAgICAgICAgICAgIG1fZGly
ZWN0aW9uID09IG8tPm1fZGlyZWN0aW9uICYmCisgICAgICAgICAgICAgICAgICBtX2ZpbGxNb2Rl
ID09IG8tPm1fZmlsbE1vZGUgJiYKICAgICAgICAgICAgICAgICAgIG1fZGVsYXlTZXQgPT0gby0+
bV9kZWxheVNldCAmJgogICAgICAgICAgICAgICAgICAgbV9kaXJlY3Rpb25TZXQgPT0gby0+bV9k
aXJlY3Rpb25TZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fZHVyYXRpb25TZXQgPT0gby0+bV9k
dXJhdGlvblNldCAmJgorICAgICAgICAgICAgICAgICAgbV9maWxsTW9kZVNldCA9PSBvLT5tX2Zp
bGxNb2RlU2V0ICYmCiAgICAgICAgICAgICAgICAgICBtX2l0ZXJhdGlvbkNvdW50U2V0ID09IG8t
Pm1faXRlcmF0aW9uQ291bnRTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fbmFtZVNldCA9PSBv
LT5tX25hbWVTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fcHJvcGVydHlTZXQgPT0gby0+bV9w
cm9wZXJ0eVNldCAmJgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAppbmRleCAz
MDZhMWI5Li4zMjYyOGUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApA
QCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlbGF5U2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kZWxheVNldDsgfQogICAgIGJvb2wgaXNEaXJlY3Rpb25TZXQoKSBjb25zdCB7IHJl
dHVybiBtX2RpcmVjdGlvblNldDsgfQogICAgIGJvb2wgaXNEdXJhdGlvblNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fZHVyYXRpb25TZXQ7IH0KKyAgICBib29sIGlzRmlsbE1vZGVTZXQoKSBjb25zdCB7
IHJldHVybiBtX2ZpbGxNb2RlU2V0OyB9CiAgICAgYm9vbCBpc0l0ZXJhdGlvbkNvdW50U2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9pdGVyYXRpb25Db3VudFNldDsgfQogICAgIGJvb2wgaXNOYW1lU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2V0OyB9CiAgICAgYm9vbCBpc1BsYXlTdGF0ZVNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CkBAIC01OCw4ICs1OSw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gKCFt
X2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAmJiAhbV9uYW1lU2V0ICYmICFtX3BsYXlT
dGF0ZVNldCAmJiAKLSAgICAgICAgICAgICAgICFtX2l0ZXJhdGlvbkNvdW50U2V0ICYmICFtX2Rl
bGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0KTsKKyAgICAg
ICAgcmV0dXJuICghbV9kaXJlY3Rpb25TZXQgJiYgIW1fZHVyYXRpb25TZXQgJiYgIW1fZmlsbE1v
ZGVTZXQKKyAgICAgICAgICAgICAgICAmJiAhbV9uYW1lU2V0ICYmICFtX3BsYXlTdGF0ZVNldCAm
JiAhbV9pdGVyYXRpb25Db3VudFNldAorICAgICAgICAgICAgICAgICYmICFtX2RlbGF5U2V0ICYm
ICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0KTsKICAgICB9CiAKICAgICBi
b29sIGlzRW1wdHlPclplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03MCw2ICs3Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyRGVsYXkoKSB7IG1fZGVsYXlTZXQgPSBmYWxzZTsgfQogICAgIHZv
aWQgY2xlYXJEaXJlY3Rpb24oKSB7IG1fZGlyZWN0aW9uU2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyRHVyYXRpb24oKSB7IG1fZHVyYXRpb25TZXQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xl
YXJGaWxsTW9kZSgpIHsgbV9maWxsTW9kZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhckl0
ZXJhdGlvbkNvdW50KCkgeyBtX2l0ZXJhdGlvbkNvdW50U2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyTmFtZSgpIHsgbV9uYW1lU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyUGxheVN0
YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1QbGF5U3RhdGVQbGF5aW5nOyB9CkBAIC04MSw2
ICs4NCw5IEBAIHB1YmxpYzoKICAgICBlbnVtIEFuaW1hdGlvbkRpcmVjdGlvbiB7IEFuaW1hdGlv
bkRpcmVjdGlvbk5vcm1hbCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIH07CiAgICAgQW5p
bWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uOyB9
CiAKKyAgICBlbnVtIEFuaW1hdGlvbkZpbGxNb2RlIHsgQW5pbWF0aW9uRmlsbE1vZGVOb25lLCBB
bmltYXRpb25GaWxsTW9kZUZvcndhcmRzLCBBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJkcywgQW5p
bWF0aW9uRmlsbE1vZGVCb3RoIH07CisgICAgQW5pbWF0aW9uRmlsbE1vZGUgZmlsbE1vZGUoKSBj
b25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CisKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAKICAgICBlbnVtIHsgSXRlcmF0aW9uQ291bnRJbmZp
bml0ZSA9IC0xIH07CkBAIC05Myw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlbGF5
KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQg
c2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1fZGlyZWN0aW9uID0gZDsgbV9k
aXJlY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXREdXJhdGlvbihkb3VibGUgZCkgeyBB
U1NFUlQoZCA+PSAwKTsgbV9kdXJhdGlvbiA9IGQ7IG1fZHVyYXRpb25TZXQgPSB0cnVlOyB9Cisg
ICAgdm9pZCBzZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZSBmKSB7IG1fZmlsbE1vZGUgPSBm
OyBtX2ZpbGxNb2RlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0SXRlcmF0aW9uQ291bnQoaW50
IGMpIHsgbV9pdGVyYXRpb25Db3VudCA9IGM7IG1faXRlcmF0aW9uQ291bnRTZXQgPSB0cnVlOyB9
CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbikgeyBtX25hbWUgPSBuOyBtX25hbWVT
ZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRQbGF5U3RhdGUodW5zaWduZWQgZCkgeyBtX3BsYXlT
dGF0ZSA9IGQ7IG1fcGxheVN0YXRlU2V0ID0gdHJ1ZTsgfQpAQCAtMTEwLDYgKzExNyw5IEBAIHB1
YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQW5pbWF0aW9uJiBvKSBjb25zdCB7IHJl
dHVybiBhbmltYXRpb25zTWF0Y2goJm8pOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEFu
aW1hdGlvbiYgbykgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvKTsgfQogCisgICAgYm9vbCBm
aWxsc0JhY2t3YXJkcygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGVTZXQgJiYgKG1fZmlsbE1v
ZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMgfHwgbV9maWxsTW9kZSA9PSBBbmltYXRp
b25GaWxsTW9kZUJvdGgpOyB9CisgICAgYm9vbCBmaWxsc0ZvcndhcmRzKCkgY29uc3QgeyByZXR1
cm4gbV9maWxsTW9kZVNldCAmJiAobV9maWxsTW9kZSA9PSBBbmltYXRpb25GaWxsTW9kZUZvcndh
cmRzIHx8IG1fZmlsbE1vZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCb3RoKTsgfQorCiBwcml2YXRl
OgogICAgIEFuaW1hdGlvbigpOwogICAgIEFuaW1hdGlvbihjb25zdCBBbmltYXRpb24mIG8pOwpA
QCAtMTIxLDEyICsxMzEsMTQgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAg
ICBUaW1pbmdGdW5jdGlvbiBtX3RpbWluZ0Z1bmN0aW9uOwogICAgIEFuaW1hdGlvbkRpcmVjdGlv
biBtX2RpcmVjdGlvbiA6IDE7CisgICAgQW5pbWF0aW9uRmlsbE1vZGUgbV9maWxsTW9kZSA6IDI7
CiAKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSAgICAgOiAyOwogCiAgICAgYm9vbCBtX2RlbGF5
U2V0ICAgICAgICAgIDogMTsKICAgICBib29sIG1fZGlyZWN0aW9uU2V0ICAgICAgOiAxOwogICAg
IGJvb2wgbV9kdXJhdGlvblNldCAgICAgICA6IDE7CisgICAgYm9vbCBtX2ZpbGxNb2RlU2V0ICAg
ICAgIDogMTsKICAgICBib29sIG1faXRlcmF0aW9uQ291bnRTZXQgOiAxOwogICAgIGJvb2wgbV9u
YW1lU2V0ICAgICAgICAgICA6IDE7CiAgICAgYm9vbCBtX3BsYXlTdGF0ZVNldCAgICAgIDogMTsK
QEAgLTEzOSw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxBbmlt
YXRpb25EZWxheSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgQW5pbWF0aW9uRGlyZWN0aW9u
IGluaXRpYWxBbmltYXRpb25EaXJlY3Rpb24oKSB7IHJldHVybiBBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWw7IH0KICAgICBzdGF0aWMgZG91YmxlIGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpIHsg
cmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgQW5pbWF0aW9uRmlsbE1vZGUgaW5pdGlhbEFuaW1hdGlv
bkZpbGxNb2RlKCkgeyByZXR1cm4gQW5pbWF0aW9uRmlsbE1vZGVOb25lOyB9CiAgICAgc3RhdGlj
IGludCBpbml0aWFsQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoKSB7IHJldHVybiAxOyB9CiAgICAg
c3RhdGljIFN0cmluZyBpbml0aWFsQW5pbWF0aW9uTmFtZSgpIHsgcmV0dXJuIFN0cmluZygibm9u
ZSIpOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxBbmltYXRpb25QbGF5U3RhdGUoKSB7
IHJldHVybiBBbmltUGxheVN0YXRlUGxheWluZzsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb25MaXN0LmNwcAppbmRleCA4MDRkZWRlLi5iZDVmZGVlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcApAQCAtMzcsNiArMzcsNyBA
QCB2b2lkIEFuaW1hdGlvbkxpc3Q6OmZpbGxVbnNldFByb3BlcnRpZXMoKQogICAgIEZJTExfVU5T
RVRfUFJPUEVSVFkoaXNEZWxheVNldCwgZGVsYXksIHNldERlbGF5KTsKICAgICBGSUxMX1VOU0VU
X1BST1BFUlRZKGlzRGlyZWN0aW9uU2V0LCBkaXJlY3Rpb24sIHNldERpcmVjdGlvbik7CiAgICAg
RklMTF9VTlNFVF9QUk9QRVJUWShpc0R1cmF0aW9uU2V0LCBkdXJhdGlvbiwgc2V0RHVyYXRpb24p
OworICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNGaWxsTW9kZVNldCwgZmlsbE1vZGUsIHNldEZp
bGxNb2RlKTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzSXRlcmF0aW9uQ291bnRTZXQsIGl0
ZXJhdGlvbkNvdW50LCBzZXRJdGVyYXRpb25Db3VudCk7CiAgICAgRklMTF9VTlNFVF9QUk9QRVJU
WShpc1BsYXlTdGF0ZVNldCwgcGxheVN0YXRlLCBzZXRQbGF5U3RhdGUpOwogICAgIEZJTExfVU5T
RVRfUFJPUEVSVFkoaXNOYW1lU2V0LCBuYW1lLCBzZXROYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbSBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQppbmRleCAyMmUzOWY1Li41YjNh
NWMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXll
ckNBLm1tCkBAIC0xODU5LDEyICsxODU5LDI4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1
cEFuaW1hdGlvbihDQVByb3BlcnR5QW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW0sIGNvbnN0IEFuCiAg
ICAgZWxzZSBpZiAoYW5pbS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJl
Y3Rpb25BbHRlcm5hdGUpCiAgICAgICAgIHJlcGVhdENvdW50IC89IDI7CiAKKyAgICBOU1N0cmlu
ZyogZmlsbE1vZGU7CisgICAgc3dpdGNoIChhbmltLT5maWxsTW9kZSgpKSB7CisgICAgY2FzZSBB
bmltYXRpb246OkFuaW1hdGlvbkZpbGxNb2RlTm9uZToKKyAgICAgICAgZmlsbE1vZGUgPSBrQ0FG
aWxsTW9kZVJlbW92ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmlt
YXRpb25GaWxsTW9kZUJhY2t3YXJkczoKKyAgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUJh
Y2t3YXJkczsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRpb246OkFuaW1hdGlvbkZp
bGxNb2RlRm9yd2FyZHM6CisgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUZvcndhcmRzOwor
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUJvdGg6
CisgICAgICAgZmlsbE1vZGUgPSBrQ0FGaWxsTW9kZUJvdGg7CisgICAgICAgYnJlYWs7CisgICAg
fQorCiAgICAgW3Byb3BlcnR5QW5pbSBzZXREdXJhdGlvbjpkdXJhdGlvbl07CiAgICAgW3Byb3Bl
cnR5QW5pbSBzZXRSZXBlYXRDb3VudDpyZXBlYXRDb3VudF07CiAgICAgW3Byb3BlcnR5QW5pbSBz
ZXRBdXRvcmV2ZXJzZXM6YW5pbS0+ZGlyZWN0aW9uKCldOwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0
UmVtb3ZlZE9uQ29tcGxldGlvbjpOT107CiAgICAgW3Byb3BlcnR5QW5pbSBzZXRBZGRpdGl2ZTph
ZGRpdGl2ZV07Ci0gICAgW3Byb3BlcnR5QW5pbSBzZXRGaWxsTW9kZTpAImV4dGVuZGVkIl07Cisg
ICAgW3Byb3BlcnR5QW5pbSBzZXRGaWxsTW9kZTpmaWxsTW9kZV07CiAKICAgICBbcHJvcGVydHlB
bmltIHNldERlbGVnYXRlOm1fYW5pbWF0aW9uRGVsZWdhdGUuZ2V0KCldOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50001</attachid>
            <date>2010-03-04 02:56:24 -0800</date>
            <delta_ts>2010-03-04 16:47:45 -0800</delta_ts>
            <desc>fill mode patch</desc>
            <filename>fill-mode.patch</filename>
            <type>text/plain</type>
            <size>52947</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDAxZWEyLi4wM2I1ZjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDMt
MDMgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlciBhbmQg
Q2hyaXMgTWFycmluLgorCisgICAgICAgIEJ1ZyAyNjg2OTogQWRkIGZpbGwgbW9kZXMgZm9yIENT
UyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjg2OQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgLXdlYmtpdC1hbmltYXRpb24tZmls
bC1tb2RlIHByb3BlcnR5LAorICAgICAgICBhbmQgdXBkYXRlIGV4aXN0aW5nIGNvbXB1dGVkIHN0
eWxlIHRlc3RzIHdpdGggdGhlIAorICAgICAgICBuZXcgcHJvcGVydHkuCisKKyAgICAgICAgKiBh
bmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhbmltYXRp
b25zL2NvbXB1dGVkLXN0eWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS1yZW1v
dmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUt
cmVtb3ZlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10cmFu
c2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9k
ZS10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLW1vZGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVz
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21w
dXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wMi0y
MyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhhdGNoZXIgYW5kIFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGViNDBhN2QuLjY4YjA5
MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUtZXhw
ZWN0ZWQudHh0CkBAIC03LDYgKzcsOCBAQCBQQVNTIHRlc3QxU3R5bGUud2Via2l0QW5pbWF0aW9u
TmFtZSBpcyAnYW5pbTEnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSBpcyAn
YW5pbTIsIGFuaW0zJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkR1cmF0aW9uIGlz
ICcxMHMnCiBQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVyYXRpb24gaXMgJzVzLCAy
LjVzJworUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIGlzICdiYWNrd2Fy
ZHMnCitQQVNTIHRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgaXMgJ2ZvcndhcmRz
LCBib3RoJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGlz
ICcxMCcKIFBBU1MgdGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBpcyAn
MTAsIGluZmluaXRlJwogUEFTUyB0ZXN0MVN0eWxlLndlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0
aW9uIGlzICdjdWJpYy1iZXppZXIoMCwgMCwgMSwgMSknCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggNDdmM2I5ZC4uODljOGVlZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBh
bmltMTsKICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwczsKKyAgICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CiAgICAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTA7CiAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IG5vcm1hbDsKQEAgLTIwLDYgKzIxLDcgQEAKICAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOwogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltMiwgYW5pbTM7CiAgICAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1cywgMjUwMG1zOworICAgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBib3RoOwogICAgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZpbml0ZTsKICAgICAgICAgLXdlYmtp
dC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIsIGVhc2UtaW4tb3V0OwogICAgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRlOwpAQCAtNjAs
NiArNjIsOSBAQCBzaG91bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwgIidh
bmltMiwgYW5pbTMnIik7CiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25EdXJh
dGlvbiIsICInMTBzJyIpOwogc2hvdWxkQmUoInRlc3QyU3R5bGUud2Via2l0QW5pbWF0aW9uRHVy
YXRpb24iLCAiJzVzLCAyLjVzJyIpOwogCitzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmlt
YXRpb25GaWxsTW9kZSIsICInYmFja3dhcmRzJyIpOworc2hvdWxkQmUoInRlc3QyU3R5bGUud2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGUiLCAiJ2ZvcndhcmRzLCBib3RoJyIpOworCiBzaG91bGRCZSgi
dGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAnIik7CiBzaG91
bGRCZSgidGVzdDJTdHlsZS53ZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCIsICInMTAsIGlu
ZmluaXRlJyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9k
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIyMjEwMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRo
ZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5pbWF0
ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LiBJdCB0YWtlcyBzbmFw
c2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLgorTm9u
ZQorQmFja3dhcmRzCitGb3J3YXJkcworQm90aAorQm90aCBpdGVyYXRpbmcKK1BBU1MgLSBzdGFy
dCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDIwMCBhY3R1YWw6IDIwMAorUEFT
UyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAK
K1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMjAwIGFjdHVhbDog
MjAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGUgZXhwZWN0ZWQ6IDIwMCBhY3R1
YWw6IDIwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFj
dHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAxMDAg
YWN0dWFsOiAxMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDMw
MCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDog
MzAwIGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVk
OiAyMDAgYWN0dWFsOiAyMDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLW1vZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2Zp
bGwtbW9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wOWM2Nzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9maWxsLW1vZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0
ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgbGVmdCBwcm9wZXJ0eSB3aXRoIGZvdXIg
ZGlmZmVyZW50IGZpbGwgbW9kZXMuIEl0IGFuaW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEg
MC4xIHNlY29uZCBkZWxheS4gQXQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9ucywgd2UgcmVtb3Zl
IHRoZSBhbmltYXRpb24gbmFtZSB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHZhbHVlIHRvIGp1bXAg
YmFjayB0byB0aGUgdW5hbmltYXRlZCBzdHlsZS4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMK
K0JvdGgKK1BBU1MgLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gaWQ6
IGIgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAtIGlkOiBjIGV4cGVjdGVkOiAxMDAg
YWN0dWFsOiAxMDAKK1BBU1MgLSBpZDogZCBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjM1NDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmVtb3ZlZC5odG1sCkBAIC0wLDAgKzEsMTEw
IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0
aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisK
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IGVu
ZCB2YWx1ZXMgd2l0aCBmaWxsIG1vZGVzIGFmdGVyIGFuaW1hdGlvbiBpcyByZW1vdmVkPC90aXRs
ZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9w
OiAxMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZHVyYXRpb246IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246
IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ICJhbmltIjsKKyAgICB9Cisg
ICAgQC13ZWJraXQta2V5ZnJhbWVzICJhbmltIiB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBw
eDsgfQorICAgICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZTogbm9uZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQor
ICAgICNjIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
OiBib3RoOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBjb25zdCBudW1BbmltcyA9IDQ7CisgICAgdmFyIGFu
aW1zRmluaXNoZWQgPSAwOworICAgIGNvbnN0IGV4cGVjdGVkRW5kVmFsdWVzID0gWworICAgICAg
e2lkOiAiYSIsIHZhbHVlOiAxMDB9LAorICAgICAge2lkOiAiYiIsIHZhbHVlOiAxMDB9LAorICAg
ICAge2lkOiAiYyIsIHZhbHVlOiAxMDB9LAorICAgICAge2lkOiAiZCIsIHZhbHVlOiAxMDB9Cisg
ICAgXTsKKyAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgIAorICAgIGZ1bmN0aW9uIGFuaW1h
dGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS53ZWJraXRBbmlt
YXRpb25OYW1lID0gIm5vbmUiOworICAgICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51bUFu
aW1zKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGVuZFRlc3QsIDApOyAvLyB0aGlzIHNldCB0
aW1lb3V0IHNob3VsZCBiZSBvayBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUganVzdCBnaXZpbmcgc3R5bGUg
YSBjaGFuY2UgdG8gcmVzb2x2ZQorICAgICAgICB9CisgICAgfTsKKyAgCisgICAgZnVuY3Rpb24g
ZW5kVGVzdCgpIHsKKworICAgICAgICB2YXIgcmVzdWx0ID0gIiI7CisgICAgICAgIGZvciAodmFy
IGk9MDsgaSA8IGV4cGVjdGVkRW5kVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2
YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZEVuZFZhbHVlc1tpXS5pZCk7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRW5kVmFsdWVzW2ldLnZh
bHVlOworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGVsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhleHBlY3RlZFZh
bHVlIC0gcmVhbFZhbHVlKSA8IDUpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gIiAtIGlkOiAiICsgZXhwZWN0ZWRF
bmRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFs
OiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgIAorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1h
dGlvbkVuZCIsIGFuaW1hdGlvbkVuZGVkLCBmYWxzZSk7CisgICAgfTsKKyAgCisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRo
ZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFuaW1h
dGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0F0IHRoZSBlbmQg
b2YgdGhlIGFuaW1hdGlvbnMsIHdlIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG5hbWUgd2hpY2ggc2hv
dWxkCitjYXVzZSB0aGUgdmFsdWUgdG8ganVtcCBiYWNrIHRvIHRoZSB1bmFuaW1hdGVkIHN0eWxl
LgorPGRpdiBpZD0iYSIgY2xhc3M9ImJveCI+CisgIE5vbmUKKzwvZGl2PgorPGRpdiBpZD0iYiIg
Y2xhc3M9ImJveCI+CisgIEJhY2t3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJjIiBjbGFzcz0iYm94
Ij4KKyAgRm9yd2FyZHMKKzwvZGl2PgorPGRpdiBpZD0iZCIgY2xhc3M9ImJveCI+CisgIEJvdGgK
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg4ZGE1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9y
bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFu
aW1hdGlvbiBvZiB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmls
bCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRl
bGF5LiBJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0
aGUgYW5pbWF0aW9ucy4KK05vbmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK0JvdGggSXRl
cmF0ZQorTm90ZSB0aGF0IGR1ZSB0byBCdWcgMzU3MTQgdGhlIGV4cGVjdGVkIHZhbHVlcyBmb3Ig
dGhlIHN0YXJ0IG9mIHRoZSBhbmltYXRpb24gb24gZWxlbWVudHMgImEiIGFuZCAiYyIgYXJlIGlu
dGVudGlvbmFsbHkgaW5jb3JyZWN0LiBUaGUgZXhwZWN0ZWQgdmFsdWVzIHNob3VsZCBiZSAxMDAs
IG5vdCAyMDAuIElmIHRoaXMgdGVzdCBmYWlscywgdGhlbiBpdCdzIGxpa2VseSB0aGF0IGJ1ZyBo
YXMgYmVlbiBmaXhlZCBhbmQgdGhlIGV4cGVjdGVkIHZhbHVlcyBoZXJlIHNob3VsZCBiZSB1cGRh
dGVkLgorCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDIwMCBh
Y3R1YWw6IDIwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAy
MDAgYWN0dWFsOiAyMDAKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYyBleHBlY3Rl
ZDogMjAwIGFjdHVhbDogMjAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhw
ZWN0ZWQ6IDIwMCBhY3R1YWw6IDIwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBl
IGV4cGVjdGVkOiAyMDAgYWN0dWFsOiAyMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6
IGEgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBp
ZDogYiBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAt
IGlkOiBjIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9u
IC0gaWQ6IGQgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRp
b24gLSBpZDogZSBleHBlY3RlZDogMjAwIGFjdHVhbDogMjAwCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzFjNWM2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC1tb2RlLXRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VO
IgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBmaWxs
IG1vZGUgb24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRp
YT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAg
IGxlZnQ6IDEwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEw
MHB4LCAwLCAwKTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IGFuaW07CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1lcyBhbmltIHsKKyAgICAgICAgZnJv
bSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDBweCwgMCwgMCk7IH0KKyAgICAg
ICAgdG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDBweCwgMCwgMCk7IH0K
KyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKKyAgICB9CisgICAgI2IgeworICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
OiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9
CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgLXdlYmtp
dC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBi
b3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgfQorICA8L3N0eWxl
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAg
IGNvbnN0IG51bUFuaW1zID0gNTsKKyAgICB2YXIgYW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29u
c3QgYWxsb3dhbmNlID0gNTsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtp
ZDogImEiLCBzdGFydDogMjAwLCBlbmQ6IDEwMH0sCisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDIw
MCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYyIsIHN0YXJ0OiAyMDAsIGVuZDogMzAwfSwKKyAg
ICAgIHtpZDogImQiLCBzdGFydDogMjAwLCBlbmQ6IDMwMH0sCisgICAgICB7aWQ6ICJlIiwgc3Rh
cnQ6IDIwMCwgZW5kOiAyMDB9CisgICAgXTsKKyAgICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7
CisgICAgICAgIGlmICgrK2FuaW1zRmluaXNoZWQgPT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZW5kVGVzdCwgMCk7IC8vIHRoaXMgc2V0IHRpbWVvdXQgc2hvdWxkIGJlIG9r
IGluIHRoZSB0ZXN0IGVudmlyb25tZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0IGdpdmluZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZl
CisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVuY3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAg
ICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0u
aWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5l
bmQ7CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gcGFy
c2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0XSk7CisgICAg
ICAgICAgICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2Fu
Y2UpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICByZXN1bHQgKz0gIiAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVk
VmFsdWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDog
IiArIHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworCisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVj
dGVkVmFsdWVzW2ldLmlkKTsKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVk
VmFsdWVzW2ldLnN0YXJ0OworICAgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgICB2YXIgcmVhbFZh
bHVlID0gcGFyc2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0
XSk7CisgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwg
YWxsb3dhbmNlKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOworICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgIH0KKyAgICAg
ICAgICByZXN1bHQgKz0gIiAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRW
YWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAi
ICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgfQorICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kZWQsIGZhbHNlKTsKKyAg
ICB9OworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMg
YW4gYW5pbWF0aW9uIG9mIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVu
dAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vj
b25kIGRlbGF5LgorSXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBl
bmQgb2YgdGhlIGFuaW1hdGlvbnMuCis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4KKyAgTm9uZQor
PC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94Ij4KKyAgQmFja3dhcmRzCis8L2Rpdj4KKzxk
aXYgaWQ9ImMiIGNsYXNzPSJib3giPgorICBGb3J3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJkIiBj
bGFzcz0iYm94Ij4KKyAgQm90aAorPC9kaXY+Cis8ZGl2IGlkPSJlIiBjbGFzcz0iYm94Ij4KKyAg
Qm90aCBJdGVyYXRlCis8L2Rpdj4KKzxwPgorICBOb3RlIHRoYXQgZHVlIHRvIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTcxNCI+QnVnIDM1NzE0PC9h
PgorICB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciB0aGUgc3RhcnQgb2YgdGhlIGFuaW1hdGlvbiBv
biBlbGVtZW50cyAiYSIgYW5kICJjIiBhcmUKKyAgaW50ZW50aW9uYWxseSBpbmNvcnJlY3QuIFRo
ZSBleHBlY3RlZCB2YWx1ZXMgc2hvdWxkIGJlIDEwMCwgbm90IDIwMC4gSWYgdGhpcworICB0ZXN0
IGZhaWxzLCB0aGVuIGl0J3MgbGlrZWx5IHRoYXQgYnVnIGhhcyBiZWVuIGZpeGVkIGFuZCB0aGUg
ZXhwZWN0ZWQgdmFsdWVzIGhlcmUKKyAgc2hvdWxkIGJlIHVwZGF0ZWQuCis8L3A+Cis8ZGl2IGlk
PSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Yzc0MWE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRt
bApAQCAtMCwwICsxLDEzMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1s
NC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgor
ICA8dGl0bGU+VGVzdCBzaW1wbGUgYW5pbWF0aW9uIHdpdGggZmlsbCBtb2RlczwvdGl0bGU+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgIHRvcDogMTBw
eDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1kZWxheTogMC4xczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0
aW9uOiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5l
YXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltOworICAgIH0KKyAgICBALXdl
YmtpdC1rZXlmcmFtZXMgYW5pbSB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBweDsgfQorICAg
ICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9u
ZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1j
b2xvcjogeWVsbG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOwor
ICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBh
bHRlcm5hdGU7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGNvbnN0IG51bUFuaW1zID0gNTsKKyAgICB2YXIg
YW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29uc3QgYWxsb3dhbmNlID0gNTsKKyAgICBjb25zdCBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtpZDogImEiLCBzdGFydDogMTAwLCBlbmQ6IDEwMH0s
CisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDIwMCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYyIs
IHN0YXJ0OiAxMDAsIGVuZDogMzAwfSwKKyAgICAgIHtpZDogImQiLCBzdGFydDogMjAwLCBlbmQ6
IDMwMH0sCisgICAgICB7aWQ6ICJlIiwgc3RhcnQ6IDIwMCwgZW5kOiAyMDB9CisgICAgXTsKKyAg
ICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAgIGlmICgrK2FuaW1zRmluaXNoZWQg
PT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZW5kVGVzdCwgMCk7IC8vIHRo
aXMgc2V0IHRpbWVvdXQgc2hvdWxkIGJlIG9rIGluIHRoZSB0ZXN0IGVudmlyb25tZW50CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0IGdpdmlu
ZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZlCisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVu
Y3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZh
bHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVk
VmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQi
KS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOworICAgICAgICAg
ICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7
CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmVzdWx0ICs9ICIgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVl
c1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIgKyBy
ZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKKworICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZh
bHVlc1tpXS5pZCk7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFs
dWVzW2ldLnN0YXJ0OworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhl
eHBlY3RlZFZhbHVlIC0gcmVhbFZhbHVlKSA8IGFsbG93YW5jZSkgeworICAgICAgICAgICAgICBy
ZXN1bHQgKz0gIlBBU1MiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmVz
dWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhw
ZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJy
PiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kZWQsIGZhbHNlKTsKKyAgICB9OworCisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFu
aW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0l0IHRha2Vz
IHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24u
Cis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBj
bGFzcz0iYm94Ij4KKyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3gi
PgorICBGb3J3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAor
PC9kaXY+Cis8ZGl2IGlkPSJlIiBjbGFzcz0iYm94Ij4KKyAgQm90aCBpdGVyYXRpbmcKKzwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGE1N2M1ZGEuLmMzZGZmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUs
NCArNSw1IEBAIFRlc3Rpbmcgd2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiBQQVNTCiBU
ZXN0aW5nIHdlYmtpdEFuaW1hdGlvbk5hbWU6IFBBU1MKIFRlc3Rpbmcgd2Via2l0QW5pbWF0aW9u
RHVyYXRpb246IFBBU1MKIFRlc3Rpbmcgd2Via2l0QW5pbWF0aW9uRGVsYXk6IFBBU1MKK1Rlc3Rp
bmcgd2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6IFBBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggYjQ3YTI4Ni4uYTQ5ZGVj
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRp
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGll
cy5odG1sCkBAIC0xMyw2ICsxMyw3IEBACiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYSwg
YiwgYywgZCwgZTsKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTBzLCAyMHM7CiAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDFzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogZm9yd2FyZHMsIGJhY2t3YXJkczsKIH0KIEAtd2Via2l0LWtleWZyYW1lcyBhIHsg
fQogQC13ZWJraXQta2V5ZnJhbWVzIGIgeyB9CkBAIC0zMiw2ICszMyw3IEBACiAgICAgICB7ICdw
cm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25OYW1lJywgICAgICAndmFsdWUnOiAnYSwgYiwgYywg
ZCwgZScgfSwKICAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkR1cmF0aW9uJywg
ICd2YWx1ZSc6ICcxMHMsIDIwcywgMTBzLCAyMHMsIDEwcycgfSwKICAgICAgIHsgJ3Byb3BlcnR5
JzogJ3dlYmtpdEFuaW1hdGlvbkRlbGF5JywgICAgICd2YWx1ZSc6ICcxcywgMXMsIDFzLCAxcywg
MXMnIH0sCisgICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25GaWxsTW9kZScsICAn
dmFsdWUnOiAnZm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2Fy
ZHMnIH0sCiAgICAgXTsKICAgICAKICAgICBmdW5jdGlvbiBzdGFydCgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IGU2MWUyMGIuLjMyZmUzZDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC04Niw2ICs4Niw3IEBAIHpvb206IDE7CiAtd2Via2l0
LWFuaW1hdGlvbi1kZWxheTogMHM7CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1h
bDsKIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsKKy13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogbm9uZTsKIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKIC13
ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7CiAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVu
Y3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0
LXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKaW5kZXgg
YzlmYTk0Mi4uYTY4OTBlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxl
LXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CkBAIC04NSw2ICs4NSw3IEBAIENvbXB1dGVk
IHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdu
b25lJzoKICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMHMKICAgICAtd2Via2l0LWFuaW1h
dGlvbi1kaXJlY3Rpb246IG5vcm1hbAogICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAw
cworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZQogICAgIC13ZWJraXQtYW5p
bWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMQogICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5v
bmUKICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigw
LjI1LCAwLjEsIDAuMjUsIDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRl
ZC1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggZmY0ODZlNS4uZjg3YzRhYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtOTYs
NiArOTYsNyBAQCB6b29tOiAxOwogLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDBzOwogLXdlYmtp
dC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CiAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlv
bjogMHM7Cistd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CiAtd2Via2l0LWFuaW1h
dGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lOwog
LXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5k
ZXJlci1leHBlY3RlZC50eHQKaW5kZXggYzEyOTFhMS4uMjM3NzRjYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQt
c3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91
dC1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAgLTk1LDYgKzk1LDcgQEAgQ29tcHV0ZWQgc3R5bGUg
b2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFsdWUgaXMgJ25vbmUnOgog
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcwogICAgIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbjogbm9ybWFsCiAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDBzCisgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lCiAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiAxCiAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbm9uZQogICAg
IC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4
IGJiOGMwYjMuLmExYzUzZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9n
ZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMTkwLDYgKzE5MCw4IEBAIHJl
Y3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uKSA6
IG5vcm1hbAogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb24pIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCiByZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uKSA6IDBzCiByZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uKSA6IFtvYmplY3Qg
Q1NTVmFsdWVMaXN0XQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1h
dGlvbi1maWxsLW1vZGUpIDogbm9uZQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgt
d2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGUpIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCiByZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3Vu
dCkgOiAxCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5pbWF0aW9u
LWl0ZXJhdGlvbi1jb3VudCkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tbmFtZSkgOiBub25lCkBAIC02MDQsNiAr
NjA2LDggQEAgZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb24pIDogbm9ybWFsCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbikgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIGc6IHN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogMHMKIGc6IHN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24pIDogW29iamVjdCBD
U1NWYWx1ZUxpc3RdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZSkgOiBub25lCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQt
YW5pbWF0aW9uLWZpbGwtbW9kZSkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIGc6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KSA6IDEKIGc6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNv
dW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgt
d2Via2l0LWFuaW1hdGlvbi1uYW1lKSA6IG5vbmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q4NWFjMi4uZGIzMGMxMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
OCBAQAorMjAxMC0wMy0wMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyIGFuZCBDaHJpcyBNYXJyaW4uCisKKyAgICAgICAg
QnVnIDI2ODY5OiBBZGQgZmlsbCBtb2RlcyBmb3IgQ1NTIEFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODY5CisKKyAgICAgICAgVGVz
dHM6IGFuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlv
bnMvZmlsbC1tb2RlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgICAgIC0g
cGFyc2UsIGFzc2lnbiBhbmQgcmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBuZXcKKyAgICAgICAg
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlIHByb3BlcnR5CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAgICAgLSBuZXcgc3RhdGUgaW4gYW5pbWF0aW9uIGVu
Z2luZSBmb3IgYSBmaW5pc2hlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgdGhhdCBpcyAiZmls
bGluZyIgZm9yd2FyZHMgaW4gdGltZS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgICAgICAgIGVu
Z2luZSB0byBrZWVwIHRoZSBhbmltYXRpb24gYXJvdW5kIGFuZCBub3QgcmV2ZXJ0IHRvIHRoZQor
ICAgICAgICAgICAgICBvbGQgc3R5bGUuCisgICAgICAgICAgICAtIHVwZGF0ZSB0aGUgdGltZXIg
Y29kZSB0byBpbmRpY2F0ZSBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAga2VlcCBh
bmltYXRpbmcgaWYgaXQgaXMgZmlsbGluZworICAgICAgICAgICAgLSBub3cgdGhhdCBhbmltYXRp
b25zIGNhbiBleHRlbmQgYmV5b25kIHRoZWlyIGVsYXBzZWQgdGltZSwKKyAgICAgICAgICAgICAg
bWFrZSBzdXJlIHByb2dyZXNzIHdvcmtzIGNvcnJlY3RseSB3aXRoIGl0ZXJhdGlvbiBjb3VudHMK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6YW5pbWF0ZSk6CisgICAgICAgICAgICAtIGVu
c3VyZSBjb3JyZWN0IHN0eWxlIHZhbHVlIGlzIHJldHVybmVkIGF0IHRoZSByaWdodAorICAgICAg
ICAgICAgICB0aW1lIGJ5IGNoZWNraW5nIGZvciBmaWxsIG1vZGUKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lQW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZCk6CisgICAgICAgICAgICAtIGNvbnRp
bnVlIHRvIHNlbmQgdGhlIGVuZCBldmVudCwgYnV0IG9ubHkgcmVtb3ZlIHRoZQorICAgICAgICAg
ICAgICBhbmltYXRpb24gaWYgaXQgaXNuJ3QgZmlsbGluZyBmb3J3YXJkcworICAgICAgICAqIHBs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgICAgIC0gbmV3IGZpbGwgbW9kZSBtZW1iZXIgcHJv
cGVydHkKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHA6Cisg
ICAgICAgICAgICAtIGVuc3VyZSB0aGUgZmlsbCBtb2RlIGlzIHByb3BhZ2F0ZWQgdG8gYSBsaXN0
IG9mIHN0eWxlIHZhbHVzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
TGF5ZXJDQS5tbToKKyAgICAgICAgICAgIC0gbWFrZSBoYXJkd2FyZSBsYXllcnMgdXNlIENvcmUg
QW5pbWF0aW9uJ3MgZmlsbCBtb2RlCisKIDIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyIGFuZCBQYXZl
bCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggODAzOWUzNS4uZjdjNWRjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0xNDYsNiArMTQ2LDcgQEAgc3RhdGljIGNvbnN0IGludCBjb21w
dXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRlbGF5
LAogICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uLAogICAgIENTU1Byb3Bl
cnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb24sCisgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25GaWxsTW9kZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
LAogICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uTmFtZSwKICAgICBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvblBsYXlTdGF0ZSwKQEAgLTExOTgsNiArMTE5OSwzMCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUoaW50IHByb3BlcgogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRB
bmltYXRpb25EdXJhdGlvbjoKICAgICAgICAgICAgIHJldHVybiBnZXREdXJhdGlvblZhbHVlKHN0
eWxlLT5hbmltYXRpb25zKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0
aW9uRmlsbE1vZGU6IHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBjb25zdCBB
bmltYXRpb25MaXN0KiB0ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKKyAgICAgICAgICAgIGlmICh0
KSB7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS0+ZmlsbE1v
ZGUoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmls
bE1vZGVOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlTm9uZSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQW5pbWF0aW9uOjpB
bmltYXRpb25GaWxsTW9kZUZvcndhcmRzOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+
YXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlRm9yd2Fy
ZHMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHM6CisgICAgICAgICAg
ICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50
aWZpZXIoQ1NTVmFsdWVCYWNrd2FyZHMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVC
b3RoOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlQm90aCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKSk7CisgICAgICAgICAgICBy
ZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwog
ICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmltYXRpb25zKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAppbmRleCA1YzY1MTQyLi5iMmRkM2JlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEzOTMs
NiArMTM5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bk5hbWU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlTdGF0ZToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CkBAIC0yNTcx
LDYgKzI1NzIsMTQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1h
dGlvbkR1cmF0aW9uKCkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkZpbGxNb2RlKCkKK3sKKyAgICBDU1NQYXJzZXJWYWx1
ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICh2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVOb25lIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZvcndhcmRzIHx8IHZhbHVlLT5p
ZCA9PSBDU1NWYWx1ZUJhY2t3YXJkcyB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVCb3RoKQorICAg
ICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlk
KTsKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KCkKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFs
dWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwpAQCAtMjcxMyw2ICsyNzIyLDExIEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KGludCBwcm9wSWQsIFJlZlB0cjxDU1NW
YWx1ZT4mIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1ZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25GaWxsTW9kZToKKyAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRp
b25GaWxsTW9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclZhbHVlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bkl0ZXJhdGlvbkNvdW50OgogICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUgPSBwYXJzZUFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyVmFs
dWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLmQxMGRhNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC05NSw2ICs5NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFy
c2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFu
aW1hdGlvbkRpcmVjdGlvbigpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFu
aW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5p
bWF0aW9uRmlsbE1vZGUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmlt
YXRpb25JdGVyYXRpb25Db3VudCgpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJz
ZUFuaW1hdGlvbk5hbWUoKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmlt
YXRpb25QbGF5U3RhdGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4gYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDk2OTVkMGIuLjVm
N2IxODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMTUxLDYgKzE1MSw3IEBAIHpvb20K
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24KIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uCistd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGUKIC13
ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudAogLXdlYmtpdC1hbmltYXRpb24tbmFtZQog
LXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCAxMjRlYjlmLi5iOGMzZmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNTI5MSw2
ICs1MjkxLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJh
dGlvbjoKICAgICAgICAgSEFORExFX0FOSU1BVElPTl9WQUxVRShkdXJhdGlvbiwgRHVyYXRpb24s
IHZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1h
dGlvbkZpbGxNb2RlOgorICAgICAgICBIQU5ETEVfQU5JTUFUSU9OX1ZBTFVFKGZpbGxNb2RlLCBG
aWxsTW9kZSwgdmFsdWUpCisgICAgICAgIHJldHVybjsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgICAgIEhBTkRMRV9BTklNQVRJT05fVkFM
VUUoaXRlcmF0aW9uQ291bnQsIEl0ZXJhdGlvbkNvdW50LCB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTY1MCw2ICs1NjUzLDMwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0
aW9uRHVyYXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1CiAgICAgICAg
IGFuaW1hdGlvbi0+c2V0RHVyYXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKS8x
MDAwLjBmKTsKIH0KIAordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25GaWxsTW9k
ZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLT5j
c3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsKKyAgICAgICAgbGF5ZXIt
PnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkZpbGxNb2RlKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorIAorICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOworICAgIHN3aXRj
aCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToK
KyAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVO
b25lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUZvcndhcmRzOgorICAgICAg
ICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZUZvcndhcmRz
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUJhY2t3YXJkczoKKyAgICAgICAg
bGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQm90aDoKKyAgICAgICAgbGF5ZXIt
PnNldEZpbGxNb2RlKEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVCb3RoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkl0
ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAg
ICAgaWYgKHZhbHVlLT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJQUwpIHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCA2NDQwNTFjLi4yODRkNTYxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5oCkBAIC0yMzUsNiArMjM1LDcgQEAgcHVibGljOgogICAgICAgICB2b2lkIG1hcEFu
aW1hdGlvbkRlbGF5KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAgIHZvaWQgbWFwQW5p
bWF0aW9uRGlyZWN0aW9uKEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgICAgIHZvaWQgbWFw
QW5pbWF0aW9uRHVyYXRpb24oQW5pbWF0aW9uKiwgQ1NTVmFsdWUqKTsKKyAgICAgICAgdm9pZCBt
YXBBbmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgICAgICB2b2lk
IG1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAg
ICAgIHZvaWQgbWFwQW5pbWF0aW9uTmFtZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogICAgICAg
ICB2b2lkIG1hcEFuaW1hdGlvblBsYXlTdGF0ZShBbmltYXRpb24qLCBDU1NWYWx1ZSopOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggY2EyYTQ3YS4uODdlMjU2OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC02MzksNiArNjM5LDEzIEBAIGxpbmVzCiAjIGFsdGVybmF0ZQogCiAjCisj
IENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0ZJTExfTU9ERQorIworIyBmb3J3YXJkcworIyBi
YWNrd2FyZHMKKyMgYm90aAorCisjCiAjIENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0lURVJB
VElPTl9DT1VOVAogIwogIyBpbmZpbml0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHAKaW5kZXggMmEyYWI0Yi4uYzJkNzBlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCkBAIC05MTgsOCArOTE4LDggQEAgdm9pZCBBbmltYXRpb25CYXNl
Ojp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkK
ICAgICAvLyBFeGVjdXRlIHN0YXRlIG1hY2hpbmUKICAgICBzd2l0Y2ggKG1fYW5pbVN0YXRlKSB7
CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVOZXc6Ci0gICAgICAgICAgICBBU1NFUlQoaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1h
dGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKLSAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5uaW5nKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0
aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5w
dXRQbGF5U3RhdGVSdW5uaW5nIHx8IGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3Rh
dGVQYXVzZWQpOworICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRT
dGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVu
bmluZykgewogICAgICAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhcnRUaW1lID0gYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRp
b25TdGF0ZVN0YXJ0V2FpdFRpbWVyOwogICAgICAgICAgICAgfQpAQCAtMTAyMSw2ICsxMDIxLDcg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0RW5kVGltZXJGaXJlZCB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0
UGxheVN0YXRlUGF1c2VkKTsKIAogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0
YXRlSW5wdXRFbmRUaW1lckZpcmVkKSB7CisKICAgICAgICAgICAgICAgICBBU1NFUlQocGFyYW0g
Pj0gMCk7CiAgICAgICAgICAgICAgICAgLy8gRW5kIHRpbWVyIGZpcmVkLCBmaW5pc2ggdXAKICAg
ICAgICAgICAgICAgICBvbkFuaW1hdGlvbkVuZChwYXJhbSk7CkBAIC0xMDI4LDcgKzEwMjksMTAg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1h
dGlvblN0YXRlRG9uZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAobV9v
YmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fYW5pbWF0aW9uLT5maWxsc0ZvcndhcmRzKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlRmls
bGluZ0ZvcndhcmRzOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpOwogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIEZpcmUgb2ZmIGFub3RoZXIgc3R5bGUgY2hhbmdlIHNvIHdlIGNhbiBzZXQgdGhlIGZp
bmFsIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2gobV9vYmplY3QtPm5vZGUoKSk7CkBAIC0x
MDQyLDcgKzEwNDYsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShB
bmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgLy8gfHRoaXN8
IG1heSBiZSBkZWxldGVkIGhlcmUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFu
aW1hdGlvblN0YXRlUGF1c2VkV2FpdFRpbWVyOgotICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09
IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyk7CisgICAgICAgICAgICBBU1NF
UlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcpOwogICAgICAg
ICAgICAgQVNTRVJUKHBhdXNlZCgpKTsKICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdGltZXMK
ICAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0g
bV9wYXVzZVRpbWU7CkBAIC0xMDU4LDcgKzEwNjIsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVw
ZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAg
ICAgICAgICAgLy8gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2UsIHdlIGRvbid0IHll
dCBoYXZlIGEgdmFsaWQgc3RhcnRUaW1lLCBzbyB3ZSBzZW5kIDAgdG8gc3RhcnRBbmltYXRpb24u
CiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0
IGNvbWVzIGluIGFuZCB3ZSB3ZXJlIGluIEFuaW1hdGlvblN0YXRlUGF1c2VkUnVuLCB3ZSB3aWxs
IG5vdGljZQogICAgICAgICAgICAgLy8gdGhhdCB3ZSBoYXZlIGFscmVhZHkgc2V0IHRoZSBzdGFy
dFRpbWUgYW5kIHdpbGwgaWdub3JlIGl0LgotICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5ubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25T
dGF0ZUlucHV0U3RhcnRUaW1lU2V0KTsKKyAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmlt
YXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0U3RhcnRUaW1lU2V0KTsKICAgICAgICAgICAgIEFTU0VSVChwYXVzZWQoKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBwYXVzZWQsIGJ1dCB3ZSBnZXQgdGhl
IGNhbGxiYWNrIHRoYXQgbm90aWZpZXMgdXMgdGhhdCBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24g
c3RhcnRlZCwKQEAgLTEwOTMsNiArMTA5Nyw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRl
U3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAg
ICAgICAgICAgbV9mYWxsYmFja0FuaW1hdGluZyA9ICFzdGFydGVkOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9y
d2FyZHM6CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVEb25lOgogICAgICAgICAgICAgLy8g
V2UncmUgZG9uZS4gU3RheSBpbiB0aGlzIHN0YXRlIHVudGlsIHdlIGFyZSBkZWxldGVkCiAgICAg
ICAgICAgICBicmVhazsKQEAgLTExNTIsMTQgKzExNTcsMTQgQEAgdm9pZCBBbmltYXRpb25CYXNl
OjpmaXJlQW5pbWF0aW9uRXZlbnRzSWZOZWVkZWQoKQogdm9pZCBBbmltYXRpb25CYXNlOjp1cGRh
dGVQbGF5U3RhdGUoYm9vbCBydW4pCiB7CiAgICAgaWYgKHBhdXNlZCgpID09IHJ1biB8fCBpc05l
dygpKQotICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVuID8gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5uaW5nIDogQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCwg
LTEpOworICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocnVuID8gQW5pbWF0aW9uU3RhdGVJbnB1
dFBsYXlTdGF0ZVJ1bm5pbmcgOiBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkLCAt
MSk7CiB9CiAKIGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSgpCiB7CiAg
ICAgLy8gUmV0dXJucyB0aGUgdGltZSBhdCB3aGljaCBuZXh0IHNlcnZpY2UgaXMgcmVxdWlyZWQu
IC0xIG1lYW5zIG5vIHNlcnZpY2UgaXMgcmVxdWlyZWQuIDAgbWVhbnMgCiAgICAgLy8gc2Vydmlj
ZSBpcyByZXF1aXJlZCBub3csIGFuZCA+IDAgbWVhbnMgc2VydmljZSBpcyByZXF1aXJlZCB0aGF0
IG1hbnkgc2Vjb25kcyBpbiB0aGUgZnV0dXJlLgotICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygp
KQorICAgIGlmIChwYXVzZWQoKSB8fCBpc05ldygpIHx8IG1fYW5pbVN0YXRlID09IEFuaW1hdGlv
blN0YXRlRmlsbGluZ0ZvcndhcmRzKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgCiAgICAgaWYg
KG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXIpIHsKQEAgLTExODQs
OCArMTE4OSwxMCBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91YmxlIHNjYWxl
LCBkb3VibGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogICAgIGlmIChtX2FuaW1hdGlv
bi0+aXRlcmF0aW9uQ291bnQoKSA+IDApCiAgICAgICAgIGR1ciAqPSBtX2FuaW1hdGlvbi0+aXRl
cmF0aW9uQ291bnQoKTsKIAotICAgIGlmIChwb3N0QWN0aXZlKCkgfHwgIW1fYW5pbWF0aW9uLT5k
dXJhdGlvbigpIHx8IChtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSA+IDAgJiYgZWxhcHNl
ZFRpbWUgPj0gZHVyKSkKKyAgICBpZiAocG9zdEFjdGl2ZSgpIHx8ICFtX2FuaW1hdGlvbi0+ZHVy
YXRpb24oKSkKICAgICAgICAgcmV0dXJuIDEuMDsKKyAgICBpZiAobV9hbmltYXRpb24tPml0ZXJh
dGlvbkNvdW50KCkgPiAwICYmIGVsYXBzZWRUaW1lID49IGR1cikKKyAgICAgICAgcmV0dXJuICht
X2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSAlIDIpID8gMS4wIDogMC4wOwogCiAgICAgLy8g
Q29tcHV0ZSB0aGUgZnJhY3Rpb25hbCB0aW1lLCB0YWtpbmcgaW50byBhY2NvdW50IGRpcmVjdGlv
bi4KICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0ZXJhdGlvbnMsIHdl
IGFzc3VtZSB0aGF0IHdlIHdvdWxkIGhhdmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmgKaW5kZXggYzM2N2UwYS4uYTk1NzExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmgKQEAgLTcxLDcgKzcxLDggQEAgcHVibGljOgogICAgICAgICBBbmltYXRpb25T
dGF0ZVBhdXNlZFdhaXRUaW1lciwgICAgICAvLyBpbiBwYXVzZSBtb2RlIHdoZW4gYW5pbWF0aW9u
IHN0YXJ0ZWQKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2UsICAgLy8g
YW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIFNUQVJUSU5HIHN0YXRlCiAgICAgICAgIEFuaW1hdGlv
blN0YXRlUGF1c2VkUnVuLCAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwYXVzZWQgd2hlbiBpbiBM
T09QSU5HIG9yIEVORElORyBzdGF0ZQotICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUgICAgICAg
ICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVt
b3ZlZAorICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUsICAgICAgICAgICAgICAgICAvLyBlbmQg
dGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVtb3ZlZAorICAgICAgICBBbmlt
YXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkcyAgICAgICAvLyBhbmltYXRpb24gaGFzIGVuZGVkIGFu
ZCBpcyByZXRhaW5pbmcgaXRzIGZpbmFsIHZhbHVlCiAgICAgfTsKIAogICAgIGVudW0gQW5pbVN0
YXRlSW5wdXQgewpAQCAtODUsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0
YXRlSW5wdXRFbmRUaW1lckZpcmVkLCAgICAgLy8gZW5kIHRpbWVyIGZpcmVkCiAgICAgICAgIEFu
aW1hdGlvblN0YXRlSW5wdXRQYXVzZU92ZXJyaWRlLCAgICAgLy8gcGF1c2UgYW4gYW5pbWF0aW9u
IGR1ZSB0byBvdmVycmlkZQogICAgICAgICBBbmltYXRpb25TdGF0ZUlucHV0UmVzdW1lT3ZlcnJp
ZGUsICAgIC8vIHJlc3VtZSBhbiBvdmVycmlkZGVuIGFuaW1hdGlvbgotICAgICAgICBBbmltYXRp
b25TdGF0ZUlucHV0UGxheVN0YXRlUnVubm5pbmcsIC8vIHBsYXkgc3RhdGUgcGF1c2VkIC0+IHJ1
bm5pbmcKKyAgICAgICAgQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcsICAvLyBw
bGF5IHN0YXRlIHBhdXNlZCAtPiBydW5uaW5nCiAgICAgICAgIEFuaW1hdGlvblN0YXRlSW5wdXRQ
bGF5U3RhdGVQYXVzZWQsICAgLy8gcGxheSBzdGF0ZSBydW5uaW5nIC0+IHBhdXNlZAogICAgICAg
ICBBbmltYXRpb25TdGF0ZUlucHV0RW5kQW5pbWF0aW9uICAgICAgIC8vIGZvcmNlIGFuIGVuZCBm
cm9tIGFueSBzdGF0ZQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVB
bmltYXRpb24uY3BwCmluZGV4IGM1ZTM2NjAuLjBlNzZlYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0xMjAsOSArMTIwLDExIEBAIHZvaWQg
S2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUmVuZGVyCiAgICAgfQogCiAgICAgLy8gSWYgd2UgYXJlIHdhaXRpbmcgZm9y
IHRoZSBzdGFydCB0aW1lciwgd2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIHN0eWxlIHlldC4K
LSAgICAvLyBTcGVjaWFsIGNhc2UgLSBpZiB0aGUgZGVsYXkgdGltZSBpcyAwLCB0aGVuIHdlIGRv
IHdhbnQgdG8gc2V0IHRoZSBmaXJzdCBmcmFtZSBvZiB0aGUKKyAgICAvLyBTcGVjaWFsIGNhc2Ug
MSAtIGlmIHRoZSBkZWxheSB0aW1lIGlzIDAsIHRoZW4gd2UgZG8gd2FudCB0byBzZXQgdGhlIGZp
cnN0IGZyYW1lIG9mIHRoZQogICAgIC8vIGFuaW1hdGlvbiByaWdodCBhd2F5LiBUaGlzIGF2b2lk
cyBhIGZsYXNoIHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydHMuCi0gICAgaWYgKHdhaXRpbmdUb1N0
YXJ0KCkgJiYgbV9hbmltYXRpb24tPmRlbGF5KCkgPiAwKQorICAgIC8vIFNwZWNpYWwgY2FzZSAy
IC0gaWYgdGhlcmUgaXMgYSBiYWNrd2FyZHMgZmlsbCBtb2RlLCB0aGVuIHdlIHdhbnQgdG8gY29u
dGludWUKKyAgICAvLyB0aHJvdWdoIHRvIHRoZSBzdHlsZSBibGVuZCBzbyB0aGF0IHdlIGdldCB0
aGUgZnJvbVN0eWxlLgorICAgIGlmICh3YWl0aW5nVG9TdGFydCgpICYmIG1fYW5pbWF0aW9uLT5k
ZWxheSgpID4gMCAmJiAhbV9hbmltYXRpb24tPmZpbGxzQmFja3dhcmRzKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiB3ZSBuZWVkIHRvIGJlIG1vcmUgZWZmaWNpZW50IGFib3V0
IGRldGVybWluaW5nIHdoaWNoIGtleWZyYW1lcyB3ZSBhcmUgYW5pbWF0aW5nIGJldHdlZW4uCkBA
IC0yNjAsNyArMjYyLDEwIEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om9uQW5pbWF0aW9uSXRl
cmF0aW9uKGRvdWJsZSBlbGFwc2VkVGltZSkKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om9uQW5p
bWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKICAgICBzZW5kQW5pbWF0aW9uRXZlbnQo
ZXZlbnROYW1lcygpLndlYmtpdEFuaW1hdGlvbkVuZEV2ZW50LCBlbGFwc2VkVGltZSk7Ci0gICAg
ZW5kQW5pbWF0aW9uKCk7CisgICAgLy8gRW5kIHRoZSBhbmltYXRpb24gaWYgd2UgZG9uJ3QgZmls
bCBmb3J3YXJkcy4gRm9yd2FyZCBmaWxsaW5nCisgICAgLy8gYW5pbWF0aW9ucyBhcmUgZW5kZWQg
cHJvcGVybHkgaW4gdGhlIGNsYXNzIGRlc3RydWN0b3IuCisgICAgaWYgKCFtX2FuaW1hdGlvbi0+
ZmlsbHNGb3J3YXJkcygpKQorICAgICAgICBlbmRBbmltYXRpb24oKTsKIH0KIAogYm9vbCBLZXlm
cmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBkb3VibGUgZWxhcHNlZFRpbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmNwcAppbmRleCAwNTc2MWY4Li5iYzMzYTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbi5jcHAKQEAgLTMyLDEwICszMiwxMiBAQCBBbmltYXRpb246OkFuaW1h
dGlvbigpCiAgICAgLCBtX2R1cmF0aW9uKGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpKQogICAg
ICwgbV90aW1pbmdGdW5jdGlvbihpbml0aWFsQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKSkKICAg
ICAsIG1fZGlyZWN0aW9uKGluaXRpYWxBbmltYXRpb25EaXJlY3Rpb24oKSkKKyAgICAsIG1fZmls
bE1vZGUoaW5pdGlhbEFuaW1hdGlvbkZpbGxNb2RlKCkpCiAgICAgLCBtX3BsYXlTdGF0ZShpbml0
aWFsQW5pbWF0aW9uUGxheVN0YXRlKCkpCiAgICAgLCBtX2RlbGF5U2V0KGZhbHNlKQogICAgICwg
bV9kaXJlY3Rpb25TZXQoZmFsc2UpCiAgICAgLCBtX2R1cmF0aW9uU2V0KGZhbHNlKQorICAgICwg
bV9maWxsTW9kZVNldChmYWxzZSkKICAgICAsIG1faXRlcmF0aW9uQ291bnRTZXQoZmFsc2UpCiAg
ICAgLCBtX25hbWVTZXQoZmFsc2UpCiAgICAgLCBtX3BsYXlTdGF0ZVNldChmYWxzZSkKQEAgLTU0
LDEwICs1NiwxMiBAQCBBbmltYXRpb246OkFuaW1hdGlvbihjb25zdCBBbmltYXRpb24mIG8pCiAg
ICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKICAgICAsIG1fdGltaW5nRnVuY3Rpb24oby5t
X3RpbWluZ0Z1bmN0aW9uKQogICAgICwgbV9kaXJlY3Rpb24oby5tX2RpcmVjdGlvbikKKyAgICAs
IG1fZmlsbE1vZGUoby5tX2ZpbGxNb2RlKQogICAgICwgbV9wbGF5U3RhdGUoby5tX3BsYXlTdGF0
ZSkKICAgICAsIG1fZGVsYXlTZXQoby5tX2RlbGF5U2V0KQogICAgICwgbV9kaXJlY3Rpb25TZXQo
by5tX2RpcmVjdGlvblNldCkKICAgICAsIG1fZHVyYXRpb25TZXQoby5tX2R1cmF0aW9uU2V0KQor
ICAgICwgbV9maWxsTW9kZVNldChvLm1fZmlsbE1vZGVTZXQpCiAgICAgLCBtX2l0ZXJhdGlvbkNv
dW50U2V0KG8ubV9pdGVyYXRpb25Db3VudFNldCkKICAgICAsIG1fbmFtZVNldChvLm1fbmFtZVNl
dCkKICAgICAsIG1fcGxheVN0YXRlU2V0KG8ubV9wbGF5U3RhdGVTZXQpCkBAIC03NiwxMSArODAs
MTMgQEAgQW5pbWF0aW9uJiBBbmltYXRpb246Om9wZXJhdG9yPShjb25zdCBBbmltYXRpb24mIG8p
CiAgICAgbV9kdXJhdGlvbiA9IG8ubV9kdXJhdGlvbjsKICAgICBtX3RpbWluZ0Z1bmN0aW9uID0g
by5tX3RpbWluZ0Z1bmN0aW9uOwogICAgIG1fZGlyZWN0aW9uID0gby5tX2RpcmVjdGlvbjsKKyAg
ICBtX2ZpbGxNb2RlID0gby5tX2ZpbGxNb2RlOwogICAgIG1fcGxheVN0YXRlID0gby5tX3BsYXlT
dGF0ZTsKIAogICAgIG1fZGVsYXlTZXQgPSBvLm1fZGVsYXlTZXQ7CiAgICAgbV9kaXJlY3Rpb25T
ZXQgPSBvLm1fZGlyZWN0aW9uU2V0OwogICAgIG1fZHVyYXRpb25TZXQgPSBvLm1fZHVyYXRpb25T
ZXQ7CisgICAgbV9maWxsTW9kZVNldCA9IG8ubV9maWxsTW9kZVNldDsKICAgICBtX2l0ZXJhdGlv
bkNvdW50U2V0ID0gby5tX2l0ZXJhdGlvbkNvdW50U2V0OwogICAgIG1fbmFtZVNldCA9IG8ubV9u
YW1lU2V0OwogICAgIG1fcGxheVN0YXRlU2V0ID0gby5tX3BsYXlTdGF0ZVNldDsKQEAgLTEwNyw5
ICsxMTMsMTEgQEAgYm9vbCBBbmltYXRpb246OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmltYXRp
b24qIG8sIGJvb2wgbWF0Y2hQbGF5U3RhdGVzKSBjb25zdAogICAgICAgICAgICAgICAgICAgbV9k
dXJhdGlvbiA9PSBvLT5tX2R1cmF0aW9uICYmCiAgICAgICAgICAgICAgICAgICBtX3RpbWluZ0Z1
bmN0aW9uID09IG8tPm1fdGltaW5nRnVuY3Rpb24gJiYKICAgICAgICAgICAgICAgICAgIG1fZGly
ZWN0aW9uID09IG8tPm1fZGlyZWN0aW9uICYmCisgICAgICAgICAgICAgICAgICBtX2ZpbGxNb2Rl
ID09IG8tPm1fZmlsbE1vZGUgJiYKICAgICAgICAgICAgICAgICAgIG1fZGVsYXlTZXQgPT0gby0+
bV9kZWxheVNldCAmJgogICAgICAgICAgICAgICAgICAgbV9kaXJlY3Rpb25TZXQgPT0gby0+bV9k
aXJlY3Rpb25TZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fZHVyYXRpb25TZXQgPT0gby0+bV9k
dXJhdGlvblNldCAmJgorICAgICAgICAgICAgICAgICAgbV9maWxsTW9kZVNldCA9PSBvLT5tX2Zp
bGxNb2RlU2V0ICYmCiAgICAgICAgICAgICAgICAgICBtX2l0ZXJhdGlvbkNvdW50U2V0ID09IG8t
Pm1faXRlcmF0aW9uQ291bnRTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fbmFtZVNldCA9PSBv
LT5tX25hbWVTZXQgJiYKICAgICAgICAgICAgICAgICAgIG1fcHJvcGVydHlTZXQgPT0gby0+bV9w
cm9wZXJ0eVNldCAmJgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAppbmRleCAz
MDZhMWI5Li4zMjYyOGUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApA
QCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlbGF5U2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kZWxheVNldDsgfQogICAgIGJvb2wgaXNEaXJlY3Rpb25TZXQoKSBjb25zdCB7IHJl
dHVybiBtX2RpcmVjdGlvblNldDsgfQogICAgIGJvb2wgaXNEdXJhdGlvblNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fZHVyYXRpb25TZXQ7IH0KKyAgICBib29sIGlzRmlsbE1vZGVTZXQoKSBjb25zdCB7
IHJldHVybiBtX2ZpbGxNb2RlU2V0OyB9CiAgICAgYm9vbCBpc0l0ZXJhdGlvbkNvdW50U2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9pdGVyYXRpb25Db3VudFNldDsgfQogICAgIGJvb2wgaXNOYW1lU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2V0OyB9CiAgICAgYm9vbCBpc1BsYXlTdGF0ZVNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CkBAIC01OCw4ICs1OSw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gKCFt
X2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAmJiAhbV9uYW1lU2V0ICYmICFtX3BsYXlT
dGF0ZVNldCAmJiAKLSAgICAgICAgICAgICAgICFtX2l0ZXJhdGlvbkNvdW50U2V0ICYmICFtX2Rl
bGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0KTsKKyAgICAg
ICAgcmV0dXJuICghbV9kaXJlY3Rpb25TZXQgJiYgIW1fZHVyYXRpb25TZXQgJiYgIW1fZmlsbE1v
ZGVTZXQKKyAgICAgICAgICAgICAgICAmJiAhbV9uYW1lU2V0ICYmICFtX3BsYXlTdGF0ZVNldCAm
JiAhbV9pdGVyYXRpb25Db3VudFNldAorICAgICAgICAgICAgICAgICYmICFtX2RlbGF5U2V0ICYm
ICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0KTsKICAgICB9CiAKICAgICBi
b29sIGlzRW1wdHlPclplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03MCw2ICs3Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyRGVsYXkoKSB7IG1fZGVsYXlTZXQgPSBmYWxzZTsgfQogICAgIHZv
aWQgY2xlYXJEaXJlY3Rpb24oKSB7IG1fZGlyZWN0aW9uU2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyRHVyYXRpb24oKSB7IG1fZHVyYXRpb25TZXQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xl
YXJGaWxsTW9kZSgpIHsgbV9maWxsTW9kZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhckl0
ZXJhdGlvbkNvdW50KCkgeyBtX2l0ZXJhdGlvbkNvdW50U2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyTmFtZSgpIHsgbV9uYW1lU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyUGxheVN0
YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1QbGF5U3RhdGVQbGF5aW5nOyB9CkBAIC04MSw2
ICs4NCw5IEBAIHB1YmxpYzoKICAgICBlbnVtIEFuaW1hdGlvbkRpcmVjdGlvbiB7IEFuaW1hdGlv
bkRpcmVjdGlvbk5vcm1hbCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIH07CiAgICAgQW5p
bWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uOyB9
CiAKKyAgICBlbnVtIEFuaW1hdGlvbkZpbGxNb2RlIHsgQW5pbWF0aW9uRmlsbE1vZGVOb25lLCBB
bmltYXRpb25GaWxsTW9kZUZvcndhcmRzLCBBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJkcywgQW5p
bWF0aW9uRmlsbE1vZGVCb3RoIH07CisgICAgQW5pbWF0aW9uRmlsbE1vZGUgZmlsbE1vZGUoKSBj
b25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CisKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAKICAgICBlbnVtIHsgSXRlcmF0aW9uQ291bnRJbmZp
bml0ZSA9IC0xIH07CkBAIC05Myw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlbGF5
KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQg
c2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1fZGlyZWN0aW9uID0gZDsgbV9k
aXJlY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXREdXJhdGlvbihkb3VibGUgZCkgeyBB
U1NFUlQoZCA+PSAwKTsgbV9kdXJhdGlvbiA9IGQ7IG1fZHVyYXRpb25TZXQgPSB0cnVlOyB9Cisg
ICAgdm9pZCBzZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZSBmKSB7IG1fZmlsbE1vZGUgPSBm
OyBtX2ZpbGxNb2RlU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0SXRlcmF0aW9uQ291bnQoaW50
IGMpIHsgbV9pdGVyYXRpb25Db3VudCA9IGM7IG1faXRlcmF0aW9uQ291bnRTZXQgPSB0cnVlOyB9
CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbikgeyBtX25hbWUgPSBuOyBtX25hbWVT
ZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRQbGF5U3RhdGUodW5zaWduZWQgZCkgeyBtX3BsYXlT
dGF0ZSA9IGQ7IG1fcGxheVN0YXRlU2V0ID0gdHJ1ZTsgfQpAQCAtMTEwLDYgKzExNyw5IEBAIHB1
YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQW5pbWF0aW9uJiBvKSBjb25zdCB7IHJl
dHVybiBhbmltYXRpb25zTWF0Y2goJm8pOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEFu
aW1hdGlvbiYgbykgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvKTsgfQogCisgICAgYm9vbCBm
aWxsc0JhY2t3YXJkcygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGVTZXQgJiYgKG1fZmlsbE1v
ZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHMgfHwgbV9maWxsTW9kZSA9PSBBbmltYXRp
b25GaWxsTW9kZUJvdGgpOyB9CisgICAgYm9vbCBmaWxsc0ZvcndhcmRzKCkgY29uc3QgeyByZXR1
cm4gbV9maWxsTW9kZVNldCAmJiAobV9maWxsTW9kZSA9PSBBbmltYXRpb25GaWxsTW9kZUZvcndh
cmRzIHx8IG1fZmlsbE1vZGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCb3RoKTsgfQorCiBwcml2YXRl
OgogICAgIEFuaW1hdGlvbigpOwogICAgIEFuaW1hdGlvbihjb25zdCBBbmltYXRpb24mIG8pOwpA
QCAtMTIxLDEyICsxMzEsMTQgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAg
ICBUaW1pbmdGdW5jdGlvbiBtX3RpbWluZ0Z1bmN0aW9uOwogICAgIEFuaW1hdGlvbkRpcmVjdGlv
biBtX2RpcmVjdGlvbiA6IDE7CisgICAgQW5pbWF0aW9uRmlsbE1vZGUgbV9maWxsTW9kZSA6IDI7
CiAKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSAgICAgOiAyOwogCiAgICAgYm9vbCBtX2RlbGF5
U2V0ICAgICAgICAgIDogMTsKICAgICBib29sIG1fZGlyZWN0aW9uU2V0ICAgICAgOiAxOwogICAg
IGJvb2wgbV9kdXJhdGlvblNldCAgICAgICA6IDE7CisgICAgYm9vbCBtX2ZpbGxNb2RlU2V0ICAg
ICAgIDogMTsKICAgICBib29sIG1faXRlcmF0aW9uQ291bnRTZXQgOiAxOwogICAgIGJvb2wgbV9u
YW1lU2V0ICAgICAgICAgICA6IDE7CiAgICAgYm9vbCBtX3BsYXlTdGF0ZVNldCAgICAgIDogMTsK
QEAgLTEzOSw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxBbmlt
YXRpb25EZWxheSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgQW5pbWF0aW9uRGlyZWN0aW9u
IGluaXRpYWxBbmltYXRpb25EaXJlY3Rpb24oKSB7IHJldHVybiBBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWw7IH0KICAgICBzdGF0aWMgZG91YmxlIGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpIHsg
cmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgQW5pbWF0aW9uRmlsbE1vZGUgaW5pdGlhbEFuaW1hdGlv
bkZpbGxNb2RlKCkgeyByZXR1cm4gQW5pbWF0aW9uRmlsbE1vZGVOb25lOyB9CiAgICAgc3RhdGlj
IGludCBpbml0aWFsQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoKSB7IHJldHVybiAxOyB9CiAgICAg
c3RhdGljIFN0cmluZyBpbml0aWFsQW5pbWF0aW9uTmFtZSgpIHsgcmV0dXJuIFN0cmluZygibm9u
ZSIpOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxBbmltYXRpb25QbGF5U3RhdGUoKSB7
IHJldHVybiBBbmltUGxheVN0YXRlUGxheWluZzsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb25MaXN0LmNwcAppbmRleCA4MDRkZWRlLi5iZDVmZGVlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcApAQCAtMzcsNiArMzcsNyBA
QCB2b2lkIEFuaW1hdGlvbkxpc3Q6OmZpbGxVbnNldFByb3BlcnRpZXMoKQogICAgIEZJTExfVU5T
RVRfUFJPUEVSVFkoaXNEZWxheVNldCwgZGVsYXksIHNldERlbGF5KTsKICAgICBGSUxMX1VOU0VU
X1BST1BFUlRZKGlzRGlyZWN0aW9uU2V0LCBkaXJlY3Rpb24sIHNldERpcmVjdGlvbik7CiAgICAg
RklMTF9VTlNFVF9QUk9QRVJUWShpc0R1cmF0aW9uU2V0LCBkdXJhdGlvbiwgc2V0RHVyYXRpb24p
OworICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNGaWxsTW9kZVNldCwgZmlsbE1vZGUsIHNldEZp
bGxNb2RlKTsKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzSXRlcmF0aW9uQ291bnRTZXQsIGl0
ZXJhdGlvbkNvdW50LCBzZXRJdGVyYXRpb25Db3VudCk7CiAgICAgRklMTF9VTlNFVF9QUk9QRVJU
WShpc1BsYXlTdGF0ZVNldCwgcGxheVN0YXRlLCBzZXRQbGF5U3RhdGUpOwogICAgIEZJTExfVU5T
RVRfUFJPUEVSVFkoaXNOYW1lU2V0LCBuYW1lLCBzZXROYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbSBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQppbmRleCAyMmUzOWY1Li44OWIx
ZDYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXll
ckNBLm1tCkBAIC0xODU5LDEyICsxODU5LDI4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1
cEFuaW1hdGlvbihDQVByb3BlcnR5QW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW0sIGNvbnN0IEFuCiAg
ICAgZWxzZSBpZiAoYW5pbS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJl
Y3Rpb25BbHRlcm5hdGUpCiAgICAgICAgIHJlcGVhdENvdW50IC89IDI7CiAKKyAgICBOU1N0cmlu
ZyogZmlsbE1vZGUgPSAwOworICAgIHN3aXRjaCAoYW5pbS0+ZmlsbE1vZGUoKSkgeworICAgIGNh
c2UgQW5pbWF0aW9uOjpBbmltYXRpb25GaWxsTW9kZU5vbmU6CisgICAgICAgIGZpbGxNb2RlID0g
a0NBRmlsbE1vZGVSZW1vdmVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbjo6
QW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHM6CisgICAgICAgIGZpbGxNb2RlID0ga0NBRmlsbE1v
ZGVCYWNrd2FyZHM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRp
b25GaWxsTW9kZUZvcndhcmRzOgorICAgICAgIGZpbGxNb2RlID0ga0NBRmlsbE1vZGVGb3J3YXJk
czsKKyAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRmlsbE1vZGVC
b3RoOgorICAgICAgIGZpbGxNb2RlID0ga0NBRmlsbE1vZGVCb3RoOworICAgICAgIGJyZWFrOwor
ICAgIH0KKwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0RHVyYXRpb246ZHVyYXRpb25dOwogICAgIFtw
cm9wZXJ0eUFuaW0gc2V0UmVwZWF0Q291bnQ6cmVwZWF0Q291bnRdOwogICAgIFtwcm9wZXJ0eUFu
aW0gc2V0QXV0b3JldmVyc2VzOmFuaW0tPmRpcmVjdGlvbigpXTsKICAgICBbcHJvcGVydHlBbmlt
IHNldFJlbW92ZWRPbkNvbXBsZXRpb246Tk9dOwogICAgIFtwcm9wZXJ0eUFuaW0gc2V0QWRkaXRp
dmU6YWRkaXRpdmVdOwotICAgIFtwcm9wZXJ0eUFuaW0gc2V0RmlsbE1vZGU6QCJleHRlbmRlZCJd
OworICAgIFtwcm9wZXJ0eUFuaW0gc2V0RmlsbE1vZGU6ZmlsbE1vZGVdOwogCiAgICAgW3Byb3Bl
cnR5QW5pbSBzZXREZWxlZ2F0ZTptX2FuaW1hdGlvbkRlbGVnYXRlLmdldCgpXTsKIH0K
</data>
<flag name="review"
          id="33022"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>