<?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>72281</bug_id>
          
          <creation_ts>2011-11-14 09:08:08 -0800</creation_ts>
          <short_desc>Fix find on web pages with -webkit-user-select: none for Chromium</short_desc>
          <delta_ts>2011-12-15 10:18:14 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Kosiba">mkosiba</reporter>
          <assigned_to name="Martin Kosiba">mkosiba</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501972</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-14 09:08:08 -0800</bug_when>
    <thetext>[Chromium] fix searching for text on web pages that prevent text selection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501976</commentid>
    <comment_count>1</comment_count>
      <attachid>114962</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-14 09:10:20 -0800</bug_when>
    <thetext>Created attachment 114962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501979</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-14 09:12:20 -0800</bug_when>
    <thetext>For an example of a webpage that actually exhibits this problem go to m.cnn.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501980</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 09:12:27 -0800</bug_when>
    <thetext>Attachment 114962 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Sourc...&quot; exit_code: 1

Source/WebKit/chromium/src/WebFrameImpl.cpp:1514:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 2 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>502086</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-14 10:57:13 -0800</bug_when>
    <thetext>So I think we should fix https://bugs.webkit.org/show_bug.cgi?id=40361 instead of fixing just Chromium port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502151</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-14 11:53:28 -0800</bug_when>
    <thetext>Fixing 40361 would require making changes to all of the ports - essentially moving all of them onto the rangeOfString function.
I will try and factor out the common &apos;find and update markers&apos; code and place that in a method on Editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505008</commentid>
    <comment_count>6</comment_count>
      <attachid>115627</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-17 11:26:32 -0800</bug_when>
    <thetext>Created attachment 115627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505024</commentid>
    <comment_count>7</comment_count>
      <attachid>115627</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-17 11:40:49 -0800</bug_when>
    <thetext>Comment on attachment 115627
Patch

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

The overall approach looks good but needs more polishing.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Adding findStringUsingMarkers to Editor. This new method uses markers
&gt; +        to indicate the active find result.

These descriptions should appear below &quot;Reviewed by&quot;

&gt; Source/WebCore/ChangeLog:8
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=72281

This line should appear immediately below the bug title.

&gt; Source/WebKit/chromium/ChangeLog:14
&gt; +        [Chromium] fix searching for text on web pages that prevent text selection
&gt; +
&gt; +        This will make it possible to search for text that has
&gt; +        selection disabled (via the webkit-user-select attribute).
&gt; +
&gt; +        WebFrameImpl::find will use findStringUsingMarkers, which is similar
&gt; +        to findString except that it manipulates markers directly rather
&gt; +        than passing the find result in the active selection.
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=72281
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

Ditto about the format.

&gt; Source/WebCore/editing/Editor.cpp:2776
&gt; +        if (!nextMatch
&gt; +            || (nextMatch-&gt;collapsed(ec)
&gt; +                &amp;&amp; !nextMatch-&gt;startContainer()-&gt;isInShadowTree()))

It seems like this fits in one line.

&gt; Source/WebCore/editing/Editor.cpp:2783
&gt; +            scrollRectToVisible(nextMatch-&gt;boundingBox(),

We don&apos;t wrap lines after -&gt; line this.

&gt; Source/WebCore/editing/Editor.cpp:2785
&gt; +                                ScrollAlignment::alignCenterIfNeeded,
&gt; +                                ScrollAlignment::alignCenterIfNeeded);

Wrong indentation these lines should be indented by exactly 8 spaces (4 spaces from where nextMatch is).

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1471
&gt; +            (options.matchCase ? 0 : CaseInsensitive) |
&gt; +            (wrapWithinFrame ? WrapAround : 0) |
&gt; +            (!options.findNext ? StartInSelection : 0);

Wrong indentation.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1474
&gt; +    m_activeMatch = frame()-&gt;editor()-&gt;findStringUsingMarkers(searchText,
&gt; +                                                              m_activeMatch.get(),
&gt; +                                                              findOptions);

Ditto.

&gt; Tools/DumpRenderTree/chromium/LayoutTestController.cpp:1818
&gt; +    const bool findResult = frame-&gt;find(0,
&gt; +                                    cppVariantToWebString(arguments[0]),
&gt; +                                    findOptions,
&gt; +                                    wrapAround,
&gt; +                                    0);

Wrong indentation.

&gt; LayoutTests/ChangeLog:9
&gt; +        [Chromium] fix searching for text on web pages that prevent text selection
&gt; +
&gt; +        Adding a layout test to verify that find works correctly on pages
&gt; +        that prevent text selection.
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=72281
&gt; +

Wrong format. See above.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled-expected.txt:1
&gt; +Searching for âoâ in âLorem ipsum dolor sit ametâ and with selection enabled:

Please use normal sentence instead of some latin.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled-expected.txt:8
&gt; +Searching for âipsumâ in âLorem ipsum dolor sit ametâ and with selection enabled:
&gt; +PASS: Got true as expected.
&gt; +
&gt; +Searching for âxâ in âLorem ipsum dolor sit ametâ and with selection enabled:
&gt; +PASS: Got false as expected.

It&apos;s hard to tell what&apos;s been tested by just looking at this result.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled.html:12
&gt; +    function log(message)
&gt; +    {
&gt; +        document.getElementById(&quot;console&quot;).appendChild(document.createTextNode(message + &quot;\n&quot;));
&gt; +    }

We don&apos;t normally indent scripts inside script element. Please outdent them.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled.html:18
&gt; +        log(&quot;Searching for \u2018&quot; + target + &quot;\u2019 in \u2018&quot; + text 
&gt; +            + &quot;\u2019 and with &quot; + selectionStatus);

These Unicode characters don&apos;t show up properly in the patch so you should avoid using them.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled.html:30
&gt; +        if (!window.internals || !window.layoutTestController) {
&gt; +            var found = expectedResult;
&gt; +        } else {
&gt; +            var found = layoutTestController.findString(target, []);
&gt; +        }

I don&apos;t see any point in checking window.internals since we&apos;re not accessing internals in this test.

Also, instead of declaring found here, you can just do:
assertTrue(&quot;layoutTestController.findString(&apos;&quot; + target + &quot;&apos;, [])&quot;, expectedResult)

This makes the test output much more descriptive.

&gt; LayoutTests/editing/text-iterator/findString-selection-disabled.html:35
&gt; +        if (found != expectedResult)
&gt; +            log(&quot;FAIL: Got &quot; + found + &quot; but expected &quot; + expectedResult + &quot;.&quot;);
&gt; +        else
&gt; +            log(&quot;PASS: Got &quot; + found + &quot; as expected.&quot;);

It seems like this test should be a script test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505027</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-17 11:41:41 -0800</bug_when>
    <thetext>Add a bunch of people who have been working on markers &amp; find feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505031</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-17 11:42:45 -0800</bug_when>
    <thetext>Removing [chromium] since this patch adds new method to Editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505895</commentid>
    <comment_count>10</comment_count>
      <attachid>115832</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-18 10:37:29 -0800</bug_when>
    <thetext>Created attachment 115832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505910</commentid>
    <comment_count>11</comment_count>
      <attachid>115832</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-18 10:56:18 -0800</bug_when>
    <thetext>Comment on attachment 115832
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:2785
&gt; +PassRefPtr&lt;Range&gt; Editor::findStringUsingMarkers(const String&amp; target, Range* previousMatch, FindOptions options)
&gt; +{
&gt; +    ExceptionCode ec = 0;
&gt; +
&gt; +    if (previousMatch)
&gt; +        m_frame-&gt;document()-&gt;markers()-&gt;setMarkersActive(previousMatch, false);
&gt; +
&gt; +    RefPtr&lt;Range&gt; nextMatch;
&gt; +    do {
&gt; +        nextMatch = rangeOfString(target, previousMatch, options);
&gt; +        if (!nextMatch || (nextMatch-&gt;collapsed(ec) &amp;&amp; !nextMatch-&gt;startContainer()-&gt;isInShadowTree()))
&gt; +            return 0;
&gt; +    } while (!insideVisibleArea(nextMatch.get()));
&gt; +
&gt; +    // Scroll the result into view.
&gt; +    nextMatch-&gt;firstNode()-&gt;renderer()-&gt;enclosingLayer()-&gt;scrollRectToVisible(
&gt; +        nextMatch-&gt;boundingBox(),
&gt; +        ScrollAlignment::alignCenterIfNeeded,
&gt; +        ScrollAlignment::alignCenterIfNeeded);
&gt; +    m_frame-&gt;document()-&gt;markers()-&gt;setMarkersActive(nextMatch.get(), true);
&gt; +
&gt; +    return nextMatch.release();
&gt; +}

Why does this code need to be inside Editor?

The caller is going to have to manipulate the markers directly anyway if it wants to, say, “leave find mode”, so encapsulating the creation and destruction of these markers here inside this function does not provide a useful abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506832</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-21 03:14:08 -0800</bug_when>
    <thetext>Darin,
    My first patch only modified only Chromium WebFrameImpl, but Ryosuke suggested that I move some of this into WebCore so that we encapsulate the &apos;scroll into view&apos; details from the port.
    I imagine Chrome and Safari have some duplication of code in the find implementations (btw. is the Safari find implementation in WebKit? I couldn&apos;t find it anywhere so I assume no). Ideally I&apos;d like to move this in a direction that allows more sharing.
    I can remove the code that touches the markers and rename the method to findStringAndScrollIntoView, would that be better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511882</commentid>
    <comment_count>13</comment_count>
      <attachid>117220</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-11-30 10:49:49 -0800</bug_when>
    <thetext>Created attachment 117220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513763</commentid>
    <comment_count>14</comment_count>
      <attachid>117625</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-02 08:03:35 -0800</bug_when>
    <thetext>Created attachment 117625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514311</commentid>
    <comment_count>15</comment_count>
      <attachid>117625</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-02 17:50:40 -0800</bug_when>
    <thetext>Comment on attachment 117625
Patch

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

New code has way too much comment! The preferred way of documenting code in WebKit is to name functions, variables, etc... to be self-descriptive; e.g. by introducing inline helper functions. It appears that you might want to restructure your code so that you wouldn&apos;t need so much comments. Also you might want to consider replacing some comments by assertions to check the conditions.

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

This blank line should be removed.

&gt; Source/WebCore/ChangeLog:10
&gt; +        Adding findStringUsingMarkers to Editor. This new method uses markers
&gt; +        to indicate the active find result.

This comment is no longer accurate. Please update.

&gt; Source/WebKit/chromium/ChangeLog:4
&gt; +

Ditto.

&gt; Source/WebCore/editing/Editor.cpp:2781
&gt; +        if (!nextMatch || (nextMatch-&gt;collapsed(ec) &amp;&amp; !nextMatch-&gt;startContainer()-&gt;isInShadowTree()))

Why is range being inside the shadow DOM or not important? That seems like a strange condition to check here.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1519
&gt; +        // Active match is changing.

Again, this comment seems useless. Please remove.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1537
&gt; +    const FindOptions findOptions = (options.forward ? 0 : Backwards) |
&gt; +        (options.matchCase ? 0 : CaseInsensitive) |
&gt; +        (wrapWithinFrame ? WrapAround : 0) |
&gt; +        (!options.findNext ? StartInSelection : 0);

WebKit style is to put at the beginning of next line.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1541
&gt; +    m_activeMatch = frame()-&gt;editor()-&gt;findStringAndScrollToVisible(
&gt; +        searchText,
&gt; +        m_activeMatch.get(),
&gt; +        findOptions);

Seems strange to put these arguments in separate lines. Since WebKit doesn&apos;t have 80-column restriction, you should put them all in one line.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1545
&gt; +        // Erase all previous tickmarks and highlighting.
&gt; +        invalidateArea(InvalidateAll);

The comment and the code does two different things. I suggest you remove the comment.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1551
&gt; +    // Store which frame was active. This will come in handy later when we
&gt; +    // change the active match ordinal below.

This is self-evident from the code. No need to add a comment.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1553
&gt; +    // Set this frame as the active frame (the one with the active highlight).

Again, this comment repeats the code. Please remove.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1562
&gt; +        // This is either a Find operation or a Find-next from a new start point
&gt; +        // due to a selection, so we set the flag to ask the scoping effort
&gt; +        // to find the active rect for us so we can update the ordinal (n of m).

What are you referring to by the ordinal (n of m) ?

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1574
&gt; +            // We are still the active frame, so increment (or decrement) the

This is so self-evident from the code.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1575
&gt; +            // |m_activeMatchIndex|, wrapping if needed (on single frame pages).

The problem is with this m_activeMatchIndex. It&apos;s not obvious that this index is per frame. So you probably want to rename this variable to be self-evident.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515915</commentid>
    <comment_count>16</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-06 07:55:19 -0800</bug_when>
    <thetext>Ryosuke,
    The code with comments isn&apos;t new new code - I simply moved a block of code out of an else block, it popped up as new because I changed indent on those lines. I do agree that most of the comments were pointless so I removed most of them.

&gt;&gt; Source/WebCore/editing/Editor.cpp:2781
&gt;&gt; +        if (!nextMatch || (nextMatch-&gt;collapsed(ec) &amp;&amp; !nextMatch-&gt;&gt;startContainer()-&gt;isInShadowTree()))

&gt;Why is range being inside the shadow DOM or not important? That seems like a 
&gt;strange condition to check here.

It seems to be important for some reason: Editor::countMatchesForText will stop searching if this condition is met, so will the Chromium scoping code. After looking at this a bit more it turns out that rangeOfString already covers the cases I was checking so I can simplify that piece of code more.

Thanks!
    Martin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515994</commentid>
    <comment_count>17</comment_count>
      <attachid>118066</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-06 10:05:49 -0800</bug_when>
    <thetext>Created attachment 118066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515996</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-06 10:08:30 -0800</bug_when>
    <thetext>Attachment 118066 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

Source/WebKit/chromium/src/WebFrameImpl.cpp:1526:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 21 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>517958</commentid>
    <comment_count>19</comment_count>
      <attachid>118066</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-08 17:19:26 -0800</bug_when>
    <thetext>Comment on attachment 118066
Patch

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

r- due to various nits.

&gt; Source/WebCore/editing/Editor.cpp:2785
&gt; +    nextMatch-&gt;firstNode()-&gt;renderer()-&gt;enclosingLayer()-&gt;scrollRectToVisible(
&gt; +        nextMatch-&gt;boundingBox(),
&gt; +        ScrollAlignment::alignCenterIfNeeded,
&gt; +        ScrollAlignment::alignCenterIfNeeded);

We don&apos;t line break per argument. WebKit style is to do:
    nextMatch-&gt;firstNode()-&gt;renderer()-&gt;enclosingLayer()-&gt;scrollRectToVisible(nextMatch-&gt;boundingBox(),
        ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::alignCenterIfNeeded);

&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1526
&gt;&gt; +    } else {
&gt;&gt; +        setMarkerActive(m_activeMatch.get(), false);
&gt;&gt; +    }
&gt; 
&gt; One line control clauses should not use braces.  [whitespace/braces] [4]

As style bot pointed out, you shouldn&apos;t have { } around a single-line statement.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1542
&gt; +            | (options.matchCase ? 0 : CaseInsensitive)
&gt; +            | (wrapWithinFrame ? WrapAround : 0)
&gt; +            | (!options.findNext ? StartInSelection : 0);

These lines are indented too much. | should appear exactly 4 spaces to the right of const.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1565
&gt; +                m_activeMatchIndexInActiveMatchFrame = 0;

I don&apos;t think &quot;InActiveMatchFrame&quot; is helpful. It&apos;s probably better to say m_activeMatchIndexInCurrentFrame and rename m_activeMatchFrame to m_currentActiveMatchFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518224</commentid>
    <comment_count>20</comment_count>
      <attachid>118562</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-09 05:47:48 -0800</bug_when>
    <thetext>Created attachment 118562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518411</commentid>
    <comment_count>21</comment_count>
      <attachid>118562</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-09 12:43:34 -0800</bug_when>
    <thetext>Comment on attachment 118562
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1568
&gt; +            options.forward ? ++m_activeMatchIndexInCurrentFrame : --m_activeMatchIndexInCurrentFrame;

We require a line per statement. Please use a regular if statement.

&gt; Tools/DumpRenderTree/chromium/LayoutTestController.cpp:1986
&gt; +    const bool findResult = frame-&gt;find(0,
&gt; +        cppVariantToWebString(arguments[0]),
&gt; +        findOptions,
&gt; +        wrapAround,
&gt; +        0);

Wrong style again. Please fix it before landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520031</commentid>
    <comment_count>22</comment_count>
      <attachid>119006</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-13 04:34:12 -0800</bug_when>
    <thetext>Created attachment 119006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520767</commentid>
    <comment_count>23</comment_count>
      <attachid>118562</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-14 00:57:35 -0800</bug_when>
    <thetext>Comment on attachment 118562
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1534
&gt; +        executeCommand(WebString::fromUTF8(&quot;Unselect&quot;));

Wait, I must have missed in my previews reviews. Why are we not calling frame()-&gt;selection()-&gt;clear() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520827</commentid>
    <comment_count>24</comment_count>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-14 03:34:53 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1534
&gt; &gt; +        executeCommand(WebString::fromUTF8(&quot;Unselect&quot;));

&gt; Wait, I must have missed in my previews reviews. Why are we not calling 
&gt; frame()-&gt;selection()-&gt;clear() ?

Good catch! The only reason I used that is because this is what the original implementation used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520849</commentid>
    <comment_count>25</comment_count>
      <attachid>119202</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-14 04:34:24 -0800</bug_when>
    <thetext>Created attachment 119202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521913</commentid>
    <comment_count>26</comment_count>
      <attachid>119202</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-15 08:29:26 -0800</bug_when>
    <thetext>Comment on attachment 119202
Patch

Thanks for the review Ryosuke!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521916</commentid>
    <comment_count>27</comment_count>
      <attachid>119202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 08:31:34 -0800</bug_when>
    <thetext>Comment on attachment 119202
Patch

Rejecting attachment 119202 from commit-queue.

mkosiba@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521921</commentid>
    <comment_count>28</comment_count>
      <attachid>119202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 08:38:31 -0800</bug_when>
    <thetext>Comment on attachment 119202
Patch

Rejecting attachment 119202 from commit-queue.

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

Last 500 characters of output:
kipped.rej
patching file LayoutTests/platform/qt-5.0/Skipped
Hunk #1 succeeded at 3681 (offset -3302 lines).
patching file LayoutTests/platform/qt-mac/Skipped
patching file LayoutTests/platform/qt-wk2/Skipped
Hunk #1 FAILED at 1869.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/qt-wk2/Skipped.rej
patching file LayoutTests/platform/wk2/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Ryosuke Niwa&apos;, u&apos;--for...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10902271</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521948</commentid>
    <comment_count>29</comment_count>
      <attachid>119436</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-15 09:15:21 -0800</bug_when>
    <thetext>Created attachment 119436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521954</commentid>
    <comment_count>30</comment_count>
      <attachid>119437</attachid>
    <who name="Martin Kosiba">mkosiba</who>
    <bug_when>2011-12-15 09:23:46 -0800</bug_when>
    <thetext>Created attachment 119437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522014</commentid>
    <comment_count>31</comment_count>
      <attachid>119437</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 10:18:04 -0800</bug_when>
    <thetext>Comment on attachment 119437
Patch

Clearing flags on attachment: 119437

Committed r102955: &lt;http://trac.webkit.org/changeset/102955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522015</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 10:18:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114962</attachid>
            <date>2011-11-14 09:10:20 -0800</date>
            <delta_ts>2011-11-17 11:26:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111114171018.patch</filename>
            <type>text/plain</type>
            <size>6059</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZWFhMzI1MWQ0NTU5Y2M3NGQ3ZDY2YjkxNDI0ZjUxMDE1ZmVjMjgyMy4uNWJjYTUzNmMwZjU0N2Yz
OTIxNzNmNTFlZjZmNzcxMWFjYjMzNzZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMS0xNCAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIGZpeCBzZWFyY2hpbmcgZm9yIHRleHQgb24gd2Vi
IHBhZ2VzIHRoYXQgcHJldmVudCB0ZXh0IHNlbGVjdGlvbgorCisgICAgICAgIFVzZSByYW5nZU9m
U3RyaW5nIHJhdGhlciB0aGFuIGZpbmRTdHJpbmcgYmVjYXVzZSBmaW5kU3RyaW5nCisgICAgICAg
IHVzZXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpmaW5kKToKKwogMjAxMS0x
MC0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBhbGxvdyBkZWJ1Z2dpbmcgZGVkaWNhdGVkIHdvcmtlciBpbml0aWFsaXph
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXgg
NDdjYTg4ZjgyNzIyNjIxYThhZjY0ZjdmZTJjNmUwODBhYmFjMWJhNC4uMzlmNmUwODUwYjAxNDdh
NGY5MWNlOTk5ZTFjOGNkNmI5MjQ4YjMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNDQ5LDUzICsxNDQ5LDU1IEBAIGJvb2wgV2ViRnJhbWVJ
bXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1l
SW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFtZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5m
aW5kTmV4dCkKKyAgICBpZiAoIW9wdGlvbnMuZmluZE5leHQpIHsKICAgICAgICAgZnJhbWUoKS0+
cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIGVsc2UKKyAgICAgICAgbV9hY3Rp
dmVNYXRjaCA9IDA7CisgICAgfSBlbHNlIHsKICAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0
aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgotCi0g
ICAgLy8gU3RhcnRzIHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAg
Ym9vbCBzdGFydEluU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICB9CiAKICAgICAvLyBJZiB0aGUgdXNl
ciBoYXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0IEZpbmQgb3BlcmF0aW9uIHdl
IHdhbnQKICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhlcndpc2UsIHdlIHN0YXJ0IHNl
YXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAvLyBvcGVyYXRpb24gbGVmdCBv
ZmYgKGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRpb24pLgogICAgIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7CiAg
ICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9uZSgpOwotICAgIGlmICgh
YWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAgICAgICAgc2VsZWN0aW9uID0g
VmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAgICAgICAgZnJhbWUoKS0+
c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgIH0KKyAgICBpZiAoYWN0
aXZlU2VsZWN0aW9uKQorICAgICAgICBtX2FjdGl2ZU1hdGNoID0gc2VsZWN0aW9uLmZpcnN0UmFu
Z2UoKS5nZXQoKTsKIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7Ci0g
ICAgYm9vbCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nKAotICAgICAgICBz
ZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0Y2hDYXNlLCB3cmFwV2l0aGlu
RnJhbWUsCi0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOworICAgIGNvbnN0IEZpbmRPcHRpb25z
IGZpbmRPcHRpb25zID0gKG9wdGlvbnMuZm9yd2FyZCA/IDAgOiBCYWNrd2FyZHMpIHwKKyAgICAg
ICAgICAgIChvcHRpb25zLm1hdGNoQ2FzZSA/IDAgOiBDYXNlSW5zZW5zaXRpdmUpIHwKKyAgICAg
ICAgICAgICh3cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5kIDogMCkgfAorICAgICAgICAgICAg
KCFvcHRpb25zLmZpbmROZXh0ID8gU3RhcnRJblNlbGVjdGlvbiA6IDApOworICAgIFJlZlB0cjxS
YW5nZT4gcmVzdWx0UmFuZ2UgPQorICAgICAgICAgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnJhbmdl
T2ZTdHJpbmcoc2VhcmNoVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fYWN0aXZlTWF0Y2guZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaW5kT3B0aW9ucyk7CisgICAgY29uc3QgYm9vbCBmb3VuZCA9
IHN0YXRpY19jYXN0PGJvb2w+KHJlc3VsdFJhbmdlKTsKICAgICBpZiAoZm91bmQpIHsKKyAgICAg
ICAgbV9hY3RpdmVNYXRjaCA9IHJlc3VsdFJhbmdlOwogICAgICAgICAvLyBTdG9yZSB3aGljaCBm
cmFtZSB3YXMgYWN0aXZlLiBUaGlzIHdpbGwgY29tZSBpbiBoYW5keSBsYXRlciB3aGVuIHdlCiAg
ICAgICAgIC8vIGNoYW5nZSB0aGUgYWN0aXZlIG1hdGNoIG9yZGluYWwgYmVsb3cuCiAgICAgICAg
IFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBtYWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1h
dGNoRnJhbWU7CiAgICAgICAgIC8vIFNldCB0aGlzIGZyYW1lIGFzIHRoZSBhY3RpdmUgZnJhbWUg
KHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhpZ2hsaWdodCkuCiAgICAgICAgIG1haW5GcmFtZUlt
cGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CiAKLSAgICAgICAgLy8gV2UgZm91bmQgc29t
ZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBzZWxlY3Rpb24gZm9yIGl0cyBwb3NpdGlv
bi4KLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0
aW9uKCktPnNlbGVjdGlvbigpKTsKLSAgICAgICAgSW50UmVjdCBjdXJyU2VsZWN0aW9uUmVjdDsK
LQotICAgICAgICAvLyBJZiB3ZSB0aG91Z2h0IHdlIGZvdW5kIHNvbWV0aGluZywgYnV0IGl0IGNv
dWxkbid0IGJlIHNlbGVjdGVkIChwZXJoYXBzCi0gICAgICAgIC8vIGJlY2F1c2UgaXQgd2FzIG1h
cmtlZCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lKSwgd2UgY2FuJ3Qgc2V0IGl0IHRvCi0gICAg
ICAgIC8vIGJlIGFjdGl2ZSBidXQgd2Ugc3RpbGwgY29udGludWUgc2VhcmNoaW5nLiBUaGlzIG1h
dGNoZXMgU2FmYXJpJ3MKLSAgICAgICAgLy8gYmVoYXZpb3IsIGluY2x1ZGluZyBzb21lIG9kZGl0
aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0YWJsZSB0ZXh0Ci0gICAgICAgIC8vIGFy
ZSBtaXhlZCBvbiBhIHBhZ2U6IHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMjcuCi0gICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNOb25lKCkgfHwgKG5ld1Nl
bGVjdGlvbi5zdGFydCgpID09IG5ld1NlbGVjdGlvbi5lbmQoKSkpCi0gICAgICAgICAgICBtX2Fj
dGl2ZU1hdGNoID0gMDsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
ID0gbmV3U2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgICAgICBjdXJyU2Vs
ZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCk7Ci0gICAgICAgICAgICBz
ZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7IC8vIEFjdGl2ZS4KLSAg
ICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGlnaGxpZ2h0aW5nIGZvciBhbGwgbWF0Y2hl
cy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2Vs
ZWN0IikpOwotICAgICAgICB9CisgICAgICAgIC8vIFdlIGZvdW5kIHNvbWV0aGluZywgc28gd2Ug
dHJ5IGFuZCBzZWxlY3QgaXQgc2luY2UgY2hhbmdpbmcgdGhlCisgICAgICAgIC8vIGFjdGl2ZSBz
ZWxlY3Rpb24gaXMgYW4gZXhwZWN0ZWQgc2lkZS1lZmZlY3Qgb2YgZmluZC4gVGhpcyBtaWdodAor
ICAgICAgICAvLyBmYWlsIGlmIHNlbGVjdGlvbiBpcyBkaXNhYmxlZCBmb3IgdGhlIHRhcmdldCwg
YnV0IHRoYXQncyBmaW5lLgorICAgICAgICBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0
aW9uKFZpc2libGVTZWxlY3Rpb24obV9hY3RpdmVNYXRjaC5nZXQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPV05TVFJFQU0p
KTsKKyAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnJldmVhbFNlbGVjdGlvbigpOworICAg
ICAgICAvLyBXZSBjYW4ndCBkZXBlbmQgb24gc2VsZWN0aW5nIHRleHQgdG8gYWx3YXlzIHNjcm9s
bCB0aGUgYWN0aXZlIG1hdGNoCisgICAgICAgIC8vIGludG8gdmlldyBiZWNhdXNlIG9mIHRoZSAt
d2Via2l0LXVzZXItc2VsZWN0IENTUyBhdHRyaWJ1dGUuCisgICAgICAgIG1fYWN0aXZlTWF0Y2gt
PmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT4KKyAgICAgICAgICAg
ICAgICBzY3JvbGxSZWN0VG9WaXNpYmxlKG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWdu
Q2VudGVySWZOZWVkZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworCisgICAgICAgIHNldE1hcmtlckFj
dGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCB0cnVlKTsgLy8gQWN0aXZlLgorICAgICAgICAvLyBX
ZWJLaXQgZHJhd3MgdGhlIGhpZ2hsaWdodGluZyBmb3IgYWxsIG1hdGNoZXMuCisgICAgICAgIGV4
ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOwogCiAgICAgICAg
IC8vIE1ha2Ugc3VyZSBubyBub2RlIGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcuY29tLzM4
NzAwLgogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsKQEAg
LTE1MjQsNyArMTUyNiw3IEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVy
LAogICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRjaENv
dW50IC0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25SZWN0KSB7
Ci0gICAgICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBmcmFtZVZpZXcoKS0+Y29udGVudHNU
b1dpbmRvdyhjdXJyU2VsZWN0aW9uUmVjdCk7CisgICAgICAgICAgICAgICAgKnNlbGVjdGlvblJl
Y3QgPSBmcmFtZVZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGlu
Z0JveCgpKTsKICAgICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKCpzZWxl
Y3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlmaWVyKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115627</attachid>
            <date>2011-11-17 11:26:32 -0800</date>
            <delta_ts>2011-11-18 10:37:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111117192631.patch</filename>
            <type>text/plain</type>
            <size>26778</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjOTI4ZDdlYmNkMDgyZmFk
ZWRjMjQ1NDYzZWIzODBhNmQ2ZDcwYjc4Li4xNmJhODRiZjI2ODRlNWM3OTQ0MjRiNGIwMDc4YjEy
MDE0ZjQzYmQwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMTcgIE1hcnRp
biBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBmaXgg
c2VhcmNoaW5nIGZvciB0ZXh0IG9uIHdlYiBwYWdlcyB0aGF0IHByZXZlbnQgdGV4dCBzZWxlY3Rp
b24KKworICAgICAgICBBZGRpbmcgZmluZFN0cmluZ1VzaW5nTWFya2VycyB0byBFZGl0b3IuIFRo
aXMgbmV3IG1ldGhvZCB1c2VzIG1hcmtlcnMKKyAgICAgICAgdG8gaW5kaWNhdGUgdGhlIGFjdGl2
ZSBmaW5kIHJlc3VsdC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24t
ZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nVXNpbmdNYXJrZXJzKToKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorCiAyMDExLTEwLTI0ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICA8c3ZnPiBmYWlscyB0byB1c2UgZXhwbGljaXQgd2lkdGggYW5k
IGhlaWdodCBpbnNpZGUgPGh0bWw+IGluc2lkZSBJRlJBTUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZWFhMzI1MWQ0NTU5Y2M3NGQ3ZDY2YjkxNDI0ZjUxMDE1ZmVjMjgyMy4uOTZhMmE4
NDNkMzI2YmM3MTQzOGYyZDA3YWM4ZjM3YTg3MDg2YzhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3Np
YmFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIGZpeCBzZWFyY2hpbmcgZm9yIHRl
eHQgb24gd2ViIHBhZ2VzIHRoYXQgcHJldmVudCB0ZXh0IHNlbGVjdGlvbgorCisgICAgICAgIFRo
aXMgd2lsbCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNlYXJjaCBmb3IgdGV4dCB0aGF0IGhhcworICAg
ICAgICBzZWxlY3Rpb24gZGlzYWJsZWQgKHZpYSB0aGUgd2Via2l0LXVzZXItc2VsZWN0IGF0dHJp
YnV0ZSkuCisKKyAgICAgICAgV2ViRnJhbWVJbXBsOjpmaW5kIHdpbGwgdXNlIGZpbmRTdHJpbmdV
c2luZ01hcmtlcnMsIHdoaWNoIGlzIHNpbWlsYXIKKyAgICAgICAgdG8gZmluZFN0cmluZyBleGNl
cHQgdGhhdCBpdCBtYW5pcHVsYXRlcyBtYXJrZXJzIGRpcmVjdGx5IHJhdGhlcgorICAgICAgICB0
aGFuIHBhc3NpbmcgdGhlIGZpbmQgcmVzdWx0IGluIHRoZSBhY3RpdmUgc2VsZWN0aW9uLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkZy
YW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZmluZCk6CisKIDIw
MTEtMTAtMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogYWxsb3cgZGVidWdnaW5nIGRlZGljYXRlZCB3b3JrZXIgaW5pdGlh
bGl6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1ZjJiZjRmYzc3OGZiOWU1
NTUwN2JmYTk1NTAyMGNjMmYwYzhjMGE4Li5hZGNhOTA3YWJjYjMzMjI1OWIzMmI4OTgyY2IwNzBk
YzcwYTQ5NmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02OSw2ICs2OSw3IEBA
CiAjaW5jbHVkZSAiVGV4dENoZWNraW5nSGVscGVyLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRy
b2wuaCIKICNpbmNsdWRlICJSZW5kZXJlZFBvc2l0aW9uLmgiCkBAIC0yNzU5LDYgKzI3NjAsMzUg
QEAgYm9vbCBFZGl0b3I6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRp
b25zIG9wdGlvbnMpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NSZWZQdHI8UmFuZ2U+IEVk
aXRvcjo6ZmluZFN0cmluZ1VzaW5nTWFya2Vycyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2Uq
IHByZXZpb3VzTWF0Y2gsIEZpbmRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisKKyAgICBpZiAocHJldmlvdXNNYXRjaCkKKyAgICAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+bWFya2VycygpLT5zZXRNYXJrZXJzQWN0aXZlKHByZXZpb3VzTWF0Y2gsIGZhbHNl
KTsKKworICAgIFJlZlB0cjxSYW5nZT4gbmV4dE1hdGNoOworICAgIGRvIHsKKyAgICAgICAgbmV4
dE1hdGNoID0gcmFuZ2VPZlN0cmluZyh0YXJnZXQsIHByZXZpb3VzTWF0Y2gsIG9wdGlvbnMpOwor
CisgICAgICAgIGlmICghbmV4dE1hdGNoCisgICAgICAgICAgICB8fCAobmV4dE1hdGNoLT5jb2xs
YXBzZWQoZWMpCisgICAgICAgICAgICAgICAgJiYgIW5leHRNYXRjaC0+c3RhcnRDb250YWluZXIo
KS0+aXNJblNoYWRvd1RyZWUoKSkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgIH0gd2hp
bGUgKCFpbnNpZGVWaXNpYmxlQXJlYShuZXh0TWF0Y2guZ2V0KCkpKTsKKworICAgIC8vIFNjcm9s
bCB0aGUgcmVzdWx0IGludG8gdmlldy4KKyAgICBuZXh0TWF0Y2gtPmZpcnN0Tm9kZSgpLT5yZW5k
ZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT4KKyAgICAgICAgICAgIHNjcm9sbFJlY3RUb1Zpc2li
bGUobmV4dE1hdGNoLT5ib3VuZGluZ0JveCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7
CisKKyAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPnNldE1hcmtlcnNBY3RpdmUo
bmV4dE1hdGNoLmdldCgpLCB0cnVlKTsKKworICAgIHJldHVybiBuZXh0TWF0Y2gucmVsZWFzZSgp
OworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdlT2ZTdHJpbmcoY29uc3QgU3Ry
aW5nJiB0YXJnZXQsIFJhbmdlKiByZWZlcmVuY2VSYW5nZSwgRmluZE9wdGlvbnMgb3B0aW9ucykK
IHsKICAgICBpZiAodGFyZ2V0LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IDEwZDcwOTg2ZGM1MmQ1ZjhjZDM5NmU4MjYzNGQwOWE0NGM3NjVmN2MuLjVhZjUwMTlhMjQ3NDk1
NGI0ZWIzNjI3ZjU4N2NiNDIyMDAzMjMyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAt
MzM1LDYgKzMzNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgU3RyaW5n
JiwgYm9vbCBmb3J3YXJkLCBib29sIGNhc2VGbGFnLCBib29sIHdyYXBGbGFnLCBib29sIHN0YXJ0
SW5TZWxlY3Rpb24pOwogCiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VPZlN0cmluZyhjb25z
dCBTdHJpbmcmLCBSYW5nZSosIEZpbmRPcHRpb25zKTsKKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBm
aW5kU3RyaW5nVXNpbmdNYXJrZXJzKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMp
OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbWFyaygpIGNvbnN0OyAvLyBNYXJrLCB0
byBiZSB1c2VkIGFzIGVtYWNzIHVzZXMgaXQuCiAgICAgdm9pZCBzZXRNYXJrKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCmluZGV4IDQ3Y2E4OGY4MjcyMjYyMWE4YWY2NGY3ZmUyYzZlMDgwYWJhYzFiYTQuLjYyODIz
NGViNDlhZTYxZWFlMDJkOTc2YmUyNDlhYzkxY2VkOTRiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTQ0OSwyOCArMTQ0OSwzMCBAQCBib29s
IFdlYkZyYW1lSW1wbDo6ZmluZChpbnQgaWRlbnRpZmllciwKIHsKICAgICBXZWJGcmFtZUltcGwq
IG1haW5GcmFtZUltcGwgPSB2aWV3SW1wbCgpLT5tYWluRnJhbWVJbXBsKCk7CiAKLSAgICBpZiAo
IW9wdGlvbnMuZmluZE5leHQpCi0gICAgICAgIGZyYW1lKCktPnBhZ2UoKS0+dW5tYXJrQWxsVGV4
dE1hdGNoZXMoKTsKLSAgICBlbHNlCi0gICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1h
dGNoLmdldCgpLCBmYWxzZSk7IC8vIEFjdGl2ZSBtYXRjaCBpcyBjaGFuZ2luZy4KLQotICAgIC8v
IFN0YXJ0cyB0aGUgc2VhcmNoIGZyb20gdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgotICAgIGJvb2wg
c3RhcnRJblNlbGVjdGlvbiA9IHRydWU7CisgICAgaWYgKCFvcHRpb25zLmZpbmROZXh0KSB7Cisg
ICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+dW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKyAgICAgICAg
bV9hY3RpdmVNYXRjaCA9IDA7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIHVzZXIgaGFzIHNlbGVj
dGVkIHNvbWV0aGluZyBzaW5jZSB0aGUgbGFzdCBGaW5kIG9wZXJhdGlvbiB3ZSB3YW50CiAgICAg
Ly8gdG8gc3RhcnQgZnJvbSB0aGVyZS4gT3RoZXJ3aXNlLCB3ZSBzdGFydCBzZWFyY2hpbmcgZnJv
bSB3aGVyZSB0aGUgbGFzdCBGaW5kCiAgICAgLy8gb3BlcmF0aW9uIGxlZnQgb2ZmIChlaXRoZXIg
YSBGaW5kIG9yIGEgRmluZE5leHQgb3BlcmF0aW9uKS4KICAgICBWaXNpYmxlU2VsZWN0aW9uIHNl
bGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOwogICAgIGJvb2wgYWN0
aXZlU2VsZWN0aW9uID0gIXNlbGVjdGlvbi5pc05vbmUoKTsKLSAgICBpZiAoIWFjdGl2ZVNlbGVj
dGlvbiAmJiBtX2FjdGl2ZU1hdGNoKSB7Ci0gICAgICAgIHNlbGVjdGlvbiA9IFZpc2libGVTZWxl
Y3Rpb24obV9hY3RpdmVNYXRjaC5nZXQoKSk7Ci0gICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAoYWN0aXZlU2VsZWN0aW9uKSB7Cisg
ICAgICAgIG1fYWN0aXZlTWF0Y2ggPSBzZWxlY3Rpb24uZmlyc3RSYW5nZSgpLmdldCgpOworICAg
ICAgICBleGVjdXRlQ29tbWFuZChXZWJTdHJpbmc6OmZyb21VVEY4KCJVbnNlbGVjdCIpKTsKICAg
ICB9CiAKICAgICBBU1NFUlQoZnJhbWUoKSAmJiBmcmFtZSgpLT52aWV3KCkpOwotICAgIGJvb2wg
Zm91bmQgPSBmcmFtZSgpLT5lZGl0b3IoKS0+ZmluZFN0cmluZygKLSAgICAgICAgc2VhcmNoVGV4
dCwgb3B0aW9ucy5mb3J3YXJkLCBvcHRpb25zLm1hdGNoQ2FzZSwgd3JhcFdpdGhpbkZyYW1lLAot
ICAgICAgICBzdGFydEluU2VsZWN0aW9uKTsKKyAgICBjb25zdCBGaW5kT3B0aW9ucyBmaW5kT3B0
aW9ucyA9IChvcHRpb25zLmZvcndhcmQgPyAwIDogQmFja3dhcmRzKSB8CisgICAgICAgICAgICAo
b3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUluc2Vuc2l0aXZlKSB8CisgICAgICAgICAgICAo
d3JhcFdpdGhpbkZyYW1lID8gV3JhcEFyb3VuZCA6IDApIHwKKyAgICAgICAgICAgICghb3B0aW9u
cy5maW5kTmV4dCA/IFN0YXJ0SW5TZWxlY3Rpb24gOiAwKTsKKyAgICBtX2FjdGl2ZU1hdGNoID0g
ZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRTdHJpbmdVc2luZ01hcmtlcnMoc2VhcmNoVGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9hY3RpdmVNYXRjaC5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZE9wdGlvbnMpOworICAgIGNvbnN0IGJv
b2wgZm91bmQgPSBzdGF0aWNfY2FzdDxib29sPihtX2FjdGl2ZU1hdGNoKTsKICAgICBpZiAoZm91
bmQpIHsKICAgICAgICAgLy8gU3RvcmUgd2hpY2ggZnJhbWUgd2FzIGFjdGl2ZS4gVGhpcyB3aWxs
IGNvbWUgaW4gaGFuZHkgbGF0ZXIgd2hlbiB3ZQogICAgICAgICAvLyBjaGFuZ2UgdGhlIGFjdGl2
ZSBtYXRjaCBvcmRpbmFsIGJlbG93LgpAQCAtMTQ3OCwyNSArMTQ4MCw2IEBAIGJvb2wgV2ViRnJh
bWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogICAgICAgICAvLyBTZXQgdGhpcyBmcmFtZSBh
cyB0aGUgYWN0aXZlIGZyYW1lICh0aGUgb25lIHdpdGggdGhlIGFjdGl2ZSBoaWdobGlnaHQpLgog
ICAgICAgICBtYWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWUgPSB0aGlzOwogCi0gICAg
ICAgIC8vIFdlIGZvdW5kIHNvbWV0aGluZywgc28gd2UgY2FuIG5vdyBxdWVyeSB0aGUgc2VsZWN0
aW9uIGZvciBpdHMgcG9zaXRpb24uCi0gICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0
aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7Ci0gICAgICAgIEludFJlY3Qg
Y3VyclNlbGVjdGlvblJlY3Q7Ci0KLSAgICAgICAgLy8gSWYgd2UgdGhvdWdodCB3ZSBmb3VuZCBz
b21ldGhpbmcsIGJ1dCBpdCBjb3VsZG4ndCBiZSBzZWxlY3RlZCAocGVyaGFwcwotICAgICAgICAv
LyBiZWNhdXNlIGl0IHdhcyBtYXJrZWQgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSksIHdlIGNh
bid0IHNldCBpdCB0bwotICAgICAgICAvLyBiZSBhY3RpdmUgYnV0IHdlIHN0aWxsIGNvbnRpbnVl
IHNlYXJjaGluZy4gVGhpcyBtYXRjaGVzIFNhZmFyaSdzCi0gICAgICAgIC8vIGJlaGF2aW9yLCBp
bmNsdWRpbmcgc29tZSBvZGRpdGllcyB3aGVuIHNlbGVjdGFibGUgYW5kIHVuLXNlbGVjdGFibGUg
dGV4dAotICAgICAgICAvLyBhcmUgbWl4ZWQgb24gYSBwYWdlOiBzZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI3LgotICAgICAgICBpZiAobmV3U2VsZWN0aW9u
LmlzTm9uZSgpIHx8IChuZXdTZWxlY3Rpb24uc3RhcnQoKSA9PSBuZXdTZWxlY3Rpb24uZW5kKCkp
KQotICAgICAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgbV9hY3RpdmVNYXRjaCA9IG5ld1NlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpOwot
ICAgICAgICAgICAgY3VyclNlbGVjdGlvblJlY3QgPSBtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0Jv
eCgpOwotICAgICAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIHRy
dWUpOyAvLyBBY3RpdmUuCi0gICAgICAgICAgICAvLyBXZWJLaXQgZHJhd3MgdGhlIGhpZ2hsaWdo
dGluZyBmb3IgYWxsIG1hdGNoZXMuCi0gICAgICAgICAgICBleGVjdXRlQ29tbWFuZChXZWJTdHJp
bmc6OmZyb21VVEY4KCJVbnNlbGVjdCIpKTsKLSAgICAgICAgfQotCiAgICAgICAgIC8vIE1ha2Ug
c3VyZSBubyBub2RlIGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcuY29tLzM4NzAwLgogICAg
ICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsKIApAQCAtMTUyNCwx
NCArMTUwNywxMSBAQCBib29sIFdlYkZyYW1lSW1wbDo6ZmluZChpbnQgaWRlbnRpZmllciwKICAg
ICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0Y2hDb3VudCAt
IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgewotICAg
ICAgICAgICAgICAgICpzZWxlY3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5k
b3coY3VyclNlbGVjdGlvblJlY3QpOworICAgICAgICAgICAgICAgICpzZWxlY3Rpb25SZWN0ID0g
ZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3cobV9hY3RpdmVNYXRjaC0+Ym91bmRpbmdCb3go
KSk7CiAgICAgICAgICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlvbigqc2VsZWN0aW9u
UmVjdCwgbV9hY3RpdmVNYXRjaEluZGV4ICsgMSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5nIHdhcyBmb3VuZCBp
biB0aGlzIGZyYW1lLgotICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLQogICAgICAgICAvLyBF
cmFzZSBhbGwgcHJldmlvdXMgdGlja21hcmtzIGFuZCBoaWdobGlnaHRpbmcuCiAgICAgICAgIGlu
dmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNjZjZmY5NTAzNTdiZmY4NDNkYTFjNGU5
YjAxZTU5MmI0NGQyMzVjLi43MmQ5ODhlNTgzMDNiOGQ0OTU2MjY0ZTNjM2JlMTBmYjRkZDIzZDdk
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW0Nocm9taXVtXSBmaXggc2VhcmNoaW5nIGZvciB0ZXh0IG9uIHdlYiBw
YWdlcyB0aGF0IHByZXZlbnQgdGV4dCBzZWxlY3Rpb24KKworICAgICAgICBQcm92aWRlZCBhIHBh
cnRpYWwgZmluZFN0cmluZyBpbXBsZW1lbnRhdGlvbi4gVGhpcyBkb2Vzbid0IHN1cHBvcnQKKyAg
ICAgICAgYWxsIG9mIHRoZSBGaW5kT3B0aW9ucyBzaW5jZSB0aGV5J3JlIG5vdCBleHBvc2VkIHZp
YSBXZWJGaW5kT3B0aW9ucy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuY3BwOgorICAg
ICAgICAoQ3BwVmFyaWFudDo6c2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9DcHBWYXJpYW50Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91
dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3Ry
aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorCiAyMDExLTEwLTI0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBjaGVjay13ZWJraXQtc3R5bGUgY29tcGxhaW5zIGFib3V0IFdFQktJVF9FWFBP
UlQgaW4gdGVzdC9XZWJVbml0VGVzdHMuaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9DcHBWYXJpYW50LmNwcAppbmRleCBiNTg3ZDc1YWFjNTE4ZGQ5MTgwZTFlNGE3ZWM2NmE1NDUx
YWRhNjIyLi5mOTYyYWYzNzk2NmYyZmJmZmY0MzQ4NDkyMzgzYjYzNDk1MWI5ZjQ3IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJpYW50LmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkNwcFZhcmlhbnQuaCIKIAogI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgi
CisjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgpAQCAtMjA5LDYg
KzIxMCwxMyBAQCB2b2lkIENwcFZhcmlhbnQ6OnNldChjb25zdCBOUFN0cmluZyYgbmV3VmFsdWUp
CiAgICAgV2ViQmluZGluZ3M6OmluaXRpYWxpemVWYXJpYW50V2l0aFN0cmluZ0NvcHkodGhpcywg
Jm5ld1ZhbHVlKTsKIH0KIAordm9pZCBDcHBWYXJpYW50OjpzZXQoY29uc3Qgc3RkOjp2ZWN0b3I8
aW50PiYgbmV3VmFsdWUpCit7CisgICAgV2ViVmVjdG9yPGludD4gaW50QXJyYXk7CisgICAgaW50
QXJyYXkuYXNzaWduKCZuZXdWYWx1ZVswXSwgbmV3VmFsdWUuc2l6ZSgpKTsKKyAgICBzZXQoV2Vi
QmluZGluZ3M6Om1ha2VJbnRBcnJheShpbnRBcnJheSkpOworfQorCiB2b2lkIENwcFZhcmlhbnQ6
OnNldChOUE9iamVjdCogbmV3VmFsdWUpCiB7CiAgICAgZnJlZURhdGEoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0NwcFZhcmlhbnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhi
ZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi4xOTBhMWFiMmNjODljYWU4ZDJhYTU1NWRhY2Y2OWM1MGVk
MzQ0NzIzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9DcHBWYXJp
YW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwVmFyaWFudC5oCkBA
IC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldChjb25zdCBzdGQ6OnN0cmluZyYp
OwogICAgIHZvaWQgc2V0KGNvbnN0IE5QU3RyaW5nJik7CiAgICAgdm9pZCBzZXQoY29uc3QgTlBW
YXJpYW50Jik7CisgICAgdm9pZCBzZXQoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYpOwogCiAgICAg
Ly8gTm90ZSB0aGF0IHNldHRpbmcgYSBDcHBWYXJpYW50IHRvIGFuIE5QT2JqZWN0IGludm9sdmVz
IHJlZi1jb3VudGluZwogICAgIC8vIHRoZSBhY3R1YWwgb2JqZWN0LiBmcmVlRGF0YSgpIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUgQ3BwVmFyaWFudApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGJjOGNh
MmMyZmRjMDFmNzI2NDNkNDM5ZmUxYzRlNGEzNWI5NmNmZDEuLmIyZTRiOTMzNDlhNTYyN2M5M2Qx
YThmYWJmNWRlNmVhNzRmMTY4NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJGaW5kT3B0
aW9ucy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25D
bGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgpAQCAtMTIxLDYgKzEyMiw3
IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwq
IHNoZWxsKQogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyk7CiAgICAgYmluZE1ldGhv
ZCgiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmluZE1ldGhv
ZCgiaGFzU3BlbGxpbmdNYXJrZXIiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5n
TWFya2VyKTsKKyAgICBiaW5kTWV0aG9kKCJmaW5kU3RyaW5nIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpmaW5kU3RyaW5nKTsKICAgICBiaW5kTWV0aG9kKCJpc0NvbW1hbmRFbmFibGVkIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjppc0NvbW1hbmRFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJs
YXllclRyZWVBc1RleHQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxheWVyVHJlZUFzVGV4dCk7
CiAgICAgYmluZE1ldGhvZCgibG9zZUNvbXBvc2l0b3JDb250ZXh0IiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpsb3NlQ29tcG9zaXRvckNvbnRleHQpOwpAQCAtMTc4NSw2ICsxNzg3LDM4IEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgcmVzdWx0LT5zZXQobV9zaGVsbC0+d2ViVmlldygp
LT5tYWluRnJhbWUoKS0+c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihhcmd1bWVu
dHNbMF0udG9JbnQzMigpLCBhcmd1bWVudHNbMV0udG9JbnQzMigpKSk7CiB9CiAKK3ZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8
IDEgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBX
ZWJGaW5kT3B0aW9ucyBmaW5kT3B0aW9uczsKKyAgICBib29sIHdyYXBBcm91bmQgPSBmYWxzZTsK
KyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyKSB7CisgICAgICAgIFZlY3RvcjxzdGQ6OnN0
cmluZz4gb3B0aW9uc0FycmF5ID0gYXJndW1lbnRzWzFdLnRvU3RyaW5nVmVjdG9yKCk7CisgICAg
ICAgIGZpbmRPcHRpb25zLm1hdGNoQ2FzZSA9IHRydWU7CisKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBvcHRpb25zQXJyYXkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nJiBvcHRpb24gPSBvcHRpb25zQXJyYXlbaV07CisgICAgICAgICAgICAvLyBG
SVhNRTogU3VwcG9ydCBhbGwgdGhlIG9wdGlvbnMsIHNvIHdlIGNhbiBydW4gZmluZFN0cmluZy5o
dG1sIHRvby4KKyAgICAgICAgICAgIGlmIChvcHRpb24gPT0gIkNhc2VJbnNlbnNpdGl2ZSIpCisg
ICAgICAgICAgICAgICAgZmluZE9wdGlvbnMubWF0Y2hDYXNlID0gZmFsc2U7CisgICAgICAgICAg
ICBlbHNlIGlmIChvcHRpb24gPT0gIkJhY2t3YXJkcyIpCisgICAgICAgICAgICAgICAgZmluZE9w
dGlvbnMuZm9yd2FyZCA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uID09ICJX
cmFwQXJvdW5kIikKKyAgICAgICAgICAgICAgICB3cmFwQXJvdW5kID0gdHJ1ZTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIFdlYkZyYW1lKiBmcmFtZSA9IG1fc2hlbGwtPndlYlZpZXcoKS0+bWFp
bkZyYW1lKCk7CisgICAgY29uc3QgYm9vbCBmaW5kUmVzdWx0ID0gZnJhbWUtPmZpbmQoMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhh
cmd1bWVudHNbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZE9w
dGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwQXJvdW5kLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgcmVzdWx0LT5zZXQo
ZmluZFJlc3VsdCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmltdW1U
aW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwMWI2ZWNj
NTViYmU3MWExY2I4MGMwOGI2ZmU3YjQxNWU0NWEwNWY3Li5kODI1Y2RlNGIxYzBiODM0NDE4ZDRh
MmYyMjc2MjRkOTgwODBjZTE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTM3MSw2ICszNzEsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBmaW5kU3RyaW5nKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50
ZXJ2YWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGU1
NmIwYzk3ZTM5MGI1YzBiNTVmY2Y0YjVlNzQ0YWUyMGRkNmY5YS4uZDEzZjQyYWE3YzI2Mzc1NGQx
OTI5OGRhZDJkODZlMjJmZTMwNjY4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTExLTE3
ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1
bV0gZml4IHNlYXJjaGluZyBmb3IgdGV4dCBvbiB3ZWIgcGFnZXMgdGhhdCBwcmV2ZW50IHRleHQg
c2VsZWN0aW9uCisKKyAgICAgICAgQWRkaW5nIGEgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQg
ZmluZCB3b3JrcyBjb3JyZWN0bHkgb24gcGFnZXMKKyAgICAgICAgdGhhdCBwcmV2ZW50IHRleHQg
c2VsZWN0aW9uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2Zp
bmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay13azIvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgor
ICAgICAgICAqIHBsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0
LW1hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkOgorICAgICAg
ICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCiAyMDExLTEwLTI0ICBMZXZpIFdlaW50cmF1YiAg
PGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICA8c3ZnPiBmYWlscyB0byB1c2UgZXhwbGlj
aXQgd2lkdGggYW5kIGhlaWdodCBpbnNpZGUgPGh0bWw+IGluc2lkZSBJRlJBTUUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlv
bi1kaXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0
b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjExMGE5Zjg3NzMyODRjZTAwYzQyYWFiMmE1MzQwMDU2ZmViNWYzYjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rp
b24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzcgQEAKK1NlYXJjaGluZyBmb3Ig
4oCYb+KAmSBpbiDigJhMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldOKAmSBhbmQgd2l0aCBzZWxl
Y3Rpb24gZW5hYmxlZDoKK1BBU1M6IEdvdCB0cnVlIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcg
Zm9yIOKAmGlwc3Vt4oCZIGluIOKAmExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV04oCZIGFuZCB3
aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUzogR290IHRydWUgYXMgZXhwZWN0ZWQuCisKK1Nl
YXJjaGluZyBmb3Ig4oCYeOKAmSBpbiDigJhMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldOKAmSBh
bmQgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1M6IEdvdCBmYWxzZSBhcyBleHBlY3RlZC4K
KworU2VhcmNoaW5nIGZvciDigJh0IGHigJkgaW4g4oCYTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFt
ZXTigJkgYW5kIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTOiBHb3QgdHJ1ZSBhcyBleHBl
Y3RlZC4KKworU2VhcmNoaW5nIGZvciDigJhtb3VudOKAmSBpbiDigJhpbnN1cm1vdW50YWJsZSBt
b3VudGFpbuKAmSBhbmQgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1M6IEdvdCB0cnVlIGFz
IGV4cGVjdGVkLgorCitTZWFyY2hpbmcgZm9yIOKAmFdhbGx54oCZIGluIOKAmGluc3VybW91bnRh
YmxlIG1vdW50YWlu4oCZIGFuZCB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUzogR290IGZh
bHNlIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcgZm9yIOKAmG/igJkgaW4g4oCYTG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXTigJkgYW5kIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUzog
R290IHRydWUgYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCYaXBzdW3igJkgaW4g4oCY
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXTigJkgYW5kIHdpdGggc2VsZWN0aW9uIGRpc2FibGVk
OgorUEFTUzogR290IHRydWUgYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCYeOKAmSBp
biDigJhMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldOKAmSBhbmQgd2l0aCBzZWxlY3Rpb24gZGlz
YWJsZWQ6CitQQVNTOiBHb3QgZmFsc2UgYXMgZXhwZWN0ZWQuCisKK1NlYXJjaGluZyBmb3Ig4oCY
dCBh4oCZIGluIOKAmExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV04oCZIGFuZCB3aXRoIHNlbGVj
dGlvbiBkaXNhYmxlZDoKK1BBU1M6IEdvdCB0cnVlIGFzIGV4cGVjdGVkLgorCitTZWFyY2hpbmcg
Zm9yIOKAmG1vdW504oCZIGluIOKAmGluc3VybW91bnRhYmxlIG1vdW50YWlu4oCZIGFuZCB3aXRo
IHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1M6IEdvdCB0cnVlIGFzIGV4cGVjdGVkLgorCitTZWFy
Y2hpbmcgZm9yIOKAmFdhbGx54oCZIGluIOKAmGluc3VybW91bnRhYmxlIG1vdW50YWlu4oCZIGFu
ZCB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1M6IEdvdCBmYWxzZSBhcyBleHBlY3RlZC4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0
cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2
NTBhMGNjMWI4NTc5MTk0ZmM3OTE2NGU0ZWZhMjMxYjJiYTQyMTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24t
ZGlzYWJsZWQuaHRtbApAQCAtMCwwICsxLDU2IEBACis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorIC5zZWxlY3Rpb25EaXNhYmxlZCB7IC13ZWJraXQtdXNl
ci1zZWxlY3Q6IG5vbmU7IH0KKyAuc2VsZWN0aW9uRW5hYmxlZCB7IC13ZWJraXQtdXNlci1zZWxl
Y3Q6IGF1dG87IH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHByZSBp
ZD0iY29uc29sZSIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsiPjwvcHJlPgorPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICJcbiIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0RmluZFN0cmluZ1Vz
aW5nTWFya2Vycyh0ZXh0LCB0YXJnZXQsIGRpc2FibGVTZWxlY3Rpb24sIGV4cGVjdGVkUmVzdWx0
KQorICAgIHsKKyAgICAgICAgdmFyIHNlbGVjdGlvblN0YXR1cyA9IGRpc2FibGVTZWxlY3Rpb24g
PyAic2VsZWN0aW9uIGRpc2FibGVkOiIgOiAic2VsZWN0aW9uIGVuYWJsZWQ6IjsKKyAgICAgICAg
bG9nKCJTZWFyY2hpbmcgZm9yIFx1MjAxOCIgKyB0YXJnZXQgKyAiXHUyMDE5IGluIFx1MjAxOCIg
KyB0ZXh0IAorICAgICAgICAgICAgKyAiXHUyMDE5IGFuZCB3aXRoICIgKyBzZWxlY3Rpb25TdGF0
dXMpOworCisgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGFpbmVyIik7CisgICAgICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSB0ZXh0OworICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgICAgICBjb250YWluZXIuY2xhc3NOYW1l
ID0gZGlzYWJsZVNlbGVjdGlvbiA/ICJzZWxlY3Rpb25EaXNhYmxlZCIgOiAic2VsZWN0aW9uRW5h
YmxlZCI7CisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzIHx8ICF3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHZhciBmb3VuZCA9IGV4cGVjdGVkUmVzdWx0
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIGZvdW5kID0gbGF5b3V0VGVzdENv
bnRyb2xsZXIuZmluZFN0cmluZyh0YXJnZXQsIFtdKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChmb3VuZCAhPSBleHBlY3RlZFJlc3VsdCkKKyAgICAgICAgICAgIGxvZygiRkFJTDogR290ICIg
KyBmb3VuZCArICIgYnV0IGV4cGVjdGVkICIgKyBleHBlY3RlZFJlc3VsdCArICIuIik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiUEFTUzogR290ICIgKyBmb3VuZCArICIgYXMgZXhw
ZWN0ZWQuIik7CisKKyAgICAgICAgY29udGFpbmVyLmlubmVyVGV4dCA9ICIiOworICAgICAgICBs
b2coIiIpOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZvciAoaSA9
IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgdmFyIGRpc2FibGVTZWxlY3Rpb24gPSAoaSA9PSAx
KTsKKworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiTG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQiLCAibyIsIGRpc2FibGVTZWxlY3Rpb24sIHRydWUpOworICAgICAgICB0ZXN0
RmluZFN0cmluZ1VzaW5nTWFya2VycygiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQiLCAiaXBz
dW0iLCBkaXNhYmxlU2VsZWN0aW9uLCB0cnVlKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2lu
Z01hcmtlcnMoIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IiwgIngiLCBkaXNhYmxlU2VsZWN0
aW9uLCBmYWxzZSk7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJzKCJMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldCIsICJ0IGEiLCBkaXNhYmxlU2VsZWN0aW9uLCB0cnVlKTsKKyAg
ICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoImluc3VybW91bnRhYmxlIG1vdW50YWlu
IiwgIm1vdW50IiwgZGlzYWJsZVNlbGVjdGlvbiwgdHJ1ZSk7CisgICAgICAgIHRlc3RGaW5kU3Ry
aW5nVXNpbmdNYXJrZXJzKCJpbnN1cm1vdW50YWJsZSBtb3VudGFpbiIsICJXYWxseSIsIGRpc2Fi
bGVTZWxlY3Rpb24sIGZhbHNlKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iik7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggY2IyYTgyMTdiMTMyNWFiZDM3OGM2OWFj
ZDQyNzVkNGMwYjBiNjJiNy4uNThiNWM1NGFjZWIzZGZjODdjMDJkNWIzZDUyYjM1YTQ0ZmRmNWYw
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTgzNSw2ICs4MzUsMTAgQEAgZmFzdC9o
dG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAjIEVGTCdzIERSVCBuZWVkcyBhIFBsYWluVGV4
dENvbnRyb2xsZXIgaW1wbGVtZW50YXRpb24KIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9iYXNpYy1p
dGVyYXRpb24uaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdl
cyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0
aW9uLWRpc2FibGVkLmh0bWwKKwogIyBFRkwncyBEUlQgbWlzc2VzIGFuICdFRElUSU5HIERFTEVH
QVRFJyBpbXBsZW1lbnRhdGlvbgogZWRpdGluZy9pbnB1dC9hdHRyaWJ1dGVkLXN1YnN0cmluZy1m
cm9tLXJhbmdlLWxpbmVzLmh0bWwKIGVkaXRpbmcvdGV4dC1pdGVyYXRvci90aGFpLWN1cnNvci1t
b3ZlbWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKaW5kZXggOWQxNWNm
ZWFhYmUxZGYyODBlNmU0YmNmMGMxMDBkMDVlNTE2N2JmNy4uMjg2ZjBlYjc1MDcyOWE3MWM3YzJh
OGVmMDQ2NGNkNzgyMzZkMmQyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
LXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZApA
QCAtNzkyLDYgKzc5MiwxMCBAQCBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbAog
ZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3Lmh0bWwKIGZhc3QvbWVkaWEvdmlldy1tb2Rl
LW1lZGlhLWZlYXR1cmUuaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBv
biBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmct
c2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBURVNU
UyBGQUlMSU5HCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxp
b24vU2tpcHBlZAppbmRleCAyN2RjNDE2NTFjZDFmOWIxZWNjZGM3MWRjNjE5Nzc3YTk3YzNiYjI5
Li44OWM3YTcyN2U3ZGI2NTliMjM2MDNkYzc4NWJkYzAzMTM2MGE2NDE2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1saW9uL1NraXBwZWQKQEAgLTUwLDYgKzUwLDEwIEBAIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTIuaHRtbAog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLWFj
Y2VwdGluZy1hdXRvY29ycmVjdGlvbi11c2luZy1wdW5jdHVhdGlvbi5odG1sICAKIAorIyBGcmFt
ZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlv
bgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMg
UGFzdGluZyByZXBsYWNlcyB0aGUgdGhyZWUgcGVyaW9kcyB3aXRoIGFuIGVsbGlwc2lzIG9uIExp
b24KIGVkaXRpbmcvcGFzdGVib2FyZC81NDc4MjUwLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZAppbmRleCA3ZTkxMzEwYWU3ODAxOTU0YTEwMmYy
Yzc4ZjhhMmU0ZGRiZTgyZTAwLi4zZjFkNTZjZGJmNWNmN2E5ODk5MDZiZWViYmVhNjYyMDkwMDBl
NmMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZApA
QCAtMTg1LDMgKzE4NSw3IEBAIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC10d2ljZS5odG1s
CiAKICMgSGlEUEkgdGVzdHMgaGF2ZSBsb3dlci1sZXZlbCBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMg
b24gTWFjCiBmYXN0L2hpZHBpCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9u
IHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1z
ZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBmMDNi
NGM2ZGNlYjQyOWY2MDcxYzdiNmI0ODdiMzVkODIyODMwNWFkLi4wMzFlN2Y3NjlmMDdiNzM4ZTQz
ZTY3ZDYzMGQ0NzQ2YTk2MmQyZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtNDUw
LDMgKzQ1MCw3IEBAIGh0dHAvdGVzdHMvaGlzdG9yeS9iYWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdl
LnBocAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NjYKIGZh
c3QvY3NzL3dlYmtpdC1tYXNrLWNyYXNoLWZpZWxkc2V0LWxlZ2VuZC5odG1sCiBmYXN0L2Nzcy93
ZWJraXQtbWFzay1jcmFzaC10YWJsZS5odG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBu
b3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmlu
ZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtNS4wL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tp
cHBlZAppbmRleCBlODlkOTQzY2UzYWZhOTdkNTljMDEyMWJhZjdjMWIyNmYxNWYwMzMxLi4xMDNj
NWViODE1MzI1Y2VlZGMyMjY3YzYyYjFhZWRkMTdlNzdlMjI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC01LjAvU2tpcHBlZApAQCAtNjk1NiwzICs2OTU2LDcgQEAgZmFzdC9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1mdWxseS1hbGlnbmVkLWhvcml6b250YWxseS5odG1sCiBmYXN0L3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAogZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1tZWRpYS1lbGVtZW50cy5odG1sCiBmYXN0L3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LW9mZnNjcmVlbi1jb250ZW50Lmh0bWwKKworIyBGcmFtZTo6ZmluZFN0cmlu
ZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LW1hYy9Ta2lwcGVkCmluZGV4IGI4YzM5MmFhNDNmMjk3ZTk2ZmI4ODlkYzBlZTkxYjFmOTY4ZGJk
YTQuLmI0NTkwOWQxNWNlZDQ1OWM1NzNjZmYwODBlZGJjYmIyYTIyNTE2NzcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LW1hYy9Ta2lwcGVkCkBAIC01MTgyLDMgKzUxODIsNyBAQCBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1tZXRob2RzLWFzeW5jLmh0bWwKICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDE0CiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2ZW50cy5odG1sCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLW5ldHdvcmsuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGlu
ZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJp
bmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0LXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQK
aW5kZXggMGE5MWQ2NGIzYzdmNmVjOWIzMTExNjliZjkwYzlmMjc2NGFhYTk1Yi4uMzkyMTI2Y2My
ODE2NGU4MWQzYzk4MGM4ZmZkOWI1MjU0ZGU2ZmQ2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2sy
L1NraXBwZWQKQEAgLTE4MzcsMyArMTgzNyw3IEBAIGZhc3QvY2FudmFzL2ZpbGxUZXh0LXNoYWRv
dy5odG1sCiBmYXN0L2NhbnZhcy9jYW52YXMtc3Ryb2tlVGV4dC1zdHJva2VzLXNoYWRvdy5odG1s
CiBzdmcvY3VzdG9tL2ZvbnQtZmFjZS1ub3QtaW4tZG9jdW1lbnQuc3ZnCiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUxTUHJvZ3Jlc3NFdmVudC1Qcm9ncmVzc0V2ZW50
LXNob3VsZC1tYXRjaC5odG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9u
IHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1z
ZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCA4YmE0
ZmQ4OTI5ZDUyOTc1MzAxYzg5OGU0ZjU0YjRhMmUzOTYwZmI1Li42MmEyY2JhMmJkY2Y2MTc1YmZj
NGQ0NDEyNGMzMWZlOWQxNjg2NjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtODc1
LDYgKzg3NSwxMCBAQCBsb2FkZXIvbG9hZC1kZWZlci1yZXN1bWUtY3Jhc2guaHRtbAogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2NjgKIG1lZGlhL3RyYWNrLwog
CisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQg
c2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2
MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0
bWwKKwogIyMjIEVORCBPRiAoMSkgQ2xhc3NpZmllZCBmYWlsdXJlcyB3aXRoIGJ1ZyByZXBvcnRz
CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115832</attachid>
            <date>2011-11-18 10:37:29 -0800</date>
            <delta_ts>2011-11-30 10:49:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111118183727.patch</filename>
            <type>text/plain</type>
            <size>25095</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjOTI4ZDdlYmNkMDgyZmFk
ZWRjMjQ1NDYzZWIzODBhNmQ2ZDcwYjc4Li40NjM0MDc4ZGJjZWE0MjBjZWU4NTQ2MTkxNDEwZTAz
ZTY5NzFmOWMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMTcgIE1hcnRp
biBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQgb24gd2Vi
IHBhZ2VzIHdpdGggLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgZmluZFN0
cmluZ1VzaW5nTWFya2VycyB0byBFZGl0b3IuIFRoaXMgbmV3IG1ldGhvZCB1c2VzIG1hcmtlcnMK
KyAgICAgICAgdG8gaW5kaWNhdGUgdGhlIGFjdGl2ZSBmaW5kIHJlc3VsdC4KKworICAgICAgICBU
ZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpmaW5kU3RyaW5nVXNpbmdNYXJrZXJzKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorCiAyMDExLTEwLTI0ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4K
IAogICAgICAgICA8c3ZnPiBmYWlscyB0byB1c2UgZXhwbGljaXQgd2lkdGggYW5kIGhlaWdodCBp
bnNpZGUgPGh0bWw+IGluc2lkZSBJRlJBTUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZWFhMzI1MWQ0NTU5Y2M3NGQ3ZDY2YjkxNDI0ZjUxMDE1ZmVjMjgyMy4uZTQ5OWY0NGRmNGM2YWM5
YmJiMzgyNzFhZjdiMzA1MmFlNmYzZjBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVzZXIt
c2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNlYXJjaCBm
b3IgdGV4dCB0aGF0IGhhcworICAgICAgICBzZWxlY3Rpb24gZGlzYWJsZWQgKHZpYSB0aGUgd2Vi
a2l0LXVzZXItc2VsZWN0IGF0dHJpYnV0ZSkuCisKKyAgICAgICAgV2ViRnJhbWVJbXBsOjpmaW5k
IHdpbGwgdXNlIGZpbmRTdHJpbmdVc2luZ01hcmtlcnMsIHdoaWNoIGlzIHNpbWlsYXIKKyAgICAg
ICAgdG8gZmluZFN0cmluZyBleGNlcHQgdGhhdCBpdCBtYW5pcHVsYXRlcyBtYXJrZXJzIGRpcmVj
dGx5IHJhdGhlcgorICAgICAgICB0aGFuIHBhc3NpbmcgdGhlIGZpbmQgcmVzdWx0IGluIHRoZSBh
Y3RpdmUgc2VsZWN0aW9uLgorCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZmluZCk6CisKIDIwMTEtMTAtMjQgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgZGVidWdnaW5nIGRlZGljYXRlZCB3b3JrZXIgaW5pdGlhbGl6YXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCA1ZjJiZjRmYzc3OGZiOWU1NTUwN2JmYTk1NTAyMGNjMmYw
YzhjMGE4Li5lNGQ3NTlkNmMxMGNjYmZmMGE3YTFjZDhjYzNkYTA5ZDIyMjE2YTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiVGV4dENo
ZWNraW5nSGVscGVyLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgogI2luY2x1
ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJS
ZW5kZXJlZFBvc2l0aW9uLmgiCkBAIC0yNzU5LDYgKzI3NjAsMzAgQEAgYm9vbCBFZGl0b3I6OmZp
bmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6ZmluZFN0cmluZ1Vz
aW5nTWFya2Vycyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHByZXZpb3VzTWF0Y2gsIEZp
bmRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisKKyAgICBp
ZiAocHJldmlvdXNNYXRjaCkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2Vycygp
LT5zZXRNYXJrZXJzQWN0aXZlKHByZXZpb3VzTWF0Y2gsIGZhbHNlKTsKKworICAgIFJlZlB0cjxS
YW5nZT4gbmV4dE1hdGNoOworICAgIGRvIHsKKyAgICAgICAgbmV4dE1hdGNoID0gcmFuZ2VPZlN0
cmluZyh0YXJnZXQsIHByZXZpb3VzTWF0Y2gsIG9wdGlvbnMpOworICAgICAgICBpZiAoIW5leHRN
YXRjaCB8fCAobmV4dE1hdGNoLT5jb2xsYXBzZWQoZWMpICYmICFuZXh0TWF0Y2gtPnN0YXJ0Q29u
dGFpbmVyKCktPmlzSW5TaGFkb3dUcmVlKCkpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
fSB3aGlsZSAoIWluc2lkZVZpc2libGVBcmVhKG5leHRNYXRjaC5nZXQoKSkpOworCisgICAgLy8g
U2Nyb2xsIHRoZSByZXN1bHQgaW50byB2aWV3LgorICAgIG5leHRNYXRjaC0+Zmlyc3ROb2RlKCkt
PnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoCisgICAg
ICAgIG5leHRNYXRjaC0+Ym91bmRpbmdCb3goKSwKKyAgICAgICAgU2Nyb2xsQWxpZ25tZW50Ojph
bGlnbkNlbnRlcklmTmVlZGVkLAorICAgICAgICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVy
SWZOZWVkZWQpOworICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+c2V0TWFya2Vy
c0FjdGl2ZShuZXh0TWF0Y2guZ2V0KCksIHRydWUpOworCisgICAgcmV0dXJuIG5leHRNYXRjaC5y
ZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhj
b25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBGaW5kT3B0aW9ucyBv
cHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggMTBkNzA5ODZkYzUyZDVmOGNkMzk2ZTgyNjM0ZDA5YTQ0Yzc2NWY3Yy4uNWFmNTAx
OWEyNDc0OTU0YjRlYjM2MjdmNTg3Y2I0MjIwMDMyMzIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHVibGljOgogICAgIGJvb2wgZmluZFN0cmluZyhjb25z
dCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wgd3JhcEZsYWcsIGJv
b2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZU9mU3Ry
aW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOworICAgIFBhc3NSZWZQdHI8
UmFuZ2U+IGZpbmRTdHJpbmdVc2luZ01hcmtlcnMoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBGaW5k
T3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJrKCkgY29uc3Q7IC8v
IE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lkIHNldE1hcmsoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKaW5kZXggNDdjYTg4ZjgyNzIyNjIxYThhZjY0ZjdmZTJjNmUwODBhYmFjMWJh
NC4uMmQ5YjhlZTQ1Y2EwZTNlZmY4NDJmOTNiMjVjOGUwOWZhYmFhZGNlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNDQ5LDI4ICsxNDQ5LDMx
IEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogewogICAgIFdlYkZy
YW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFtZUltcGwoKTsKIAot
ICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT51bm1h
cmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1f
YWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgot
Ci0gICAgLy8gU3RhcnRzIHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0g
ICAgYm9vbCBzdGFydEluU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICBpZiAoIW9wdGlvbnMuZmluZE5l
eHQpIHsKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwor
ICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKKyAgICB9CiAKICAgICAvLyBJZiB0aGUgdXNlciBo
YXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0IEZpbmQgb3BlcmF0aW9uIHdlIHdh
bnQKICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhlcndpc2UsIHdlIHN0YXJ0IHNlYXJj
aGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAvLyBvcGVyYXRpb24gbGVmdCBvZmYg
KGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRpb24pLgogICAgIFZpc2libGVTZWxl
Y3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7CiAgICAg
Ym9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9uZSgpOwotICAgIGlmICghYWN0
aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAgICAgICAgc2VsZWN0aW9uID0gVmlz
aWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAgICAgICAgZnJhbWUoKS0+c2Vs
ZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgIGlmIChhY3RpdmVTZWxlY3Rp
b24pIHsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IHNlbGVjdGlvbi5maXJzdFJhbmdlKCkuZ2V0
KCk7CisgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0
IikpOwogICAgIH0KIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7Ci0g
ICAgYm9vbCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nKAotICAgICAgICBz
ZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0Y2hDYXNlLCB3cmFwV2l0aGlu
RnJhbWUsCi0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOworICAgIGNvbnN0IEZpbmRPcHRpb25z
IGZpbmRPcHRpb25zID0gKG9wdGlvbnMuZm9yd2FyZCA/IDAgOiBCYWNrd2FyZHMpIHwKKyAgICAg
ICAgKG9wdGlvbnMubWF0Y2hDYXNlID8gMCA6IENhc2VJbnNlbnNpdGl2ZSkgfAorICAgICAgICAo
d3JhcFdpdGhpbkZyYW1lID8gV3JhcEFyb3VuZCA6IDApIHwKKyAgICAgICAgKCFvcHRpb25zLmZp
bmROZXh0ID8gU3RhcnRJblNlbGVjdGlvbiA6IDApOworICAgIG1fYWN0aXZlTWF0Y2ggPSBmcmFt
ZSgpLT5lZGl0b3IoKS0+ZmluZFN0cmluZ1VzaW5nTWFya2VycygKKyAgICAgICAgc2VhcmNoVGV4
dCwKKyAgICAgICAgbV9hY3RpdmVNYXRjaC5nZXQoKSwKKyAgICAgICAgZmluZE9wdGlvbnMpOwor
ICAgIGNvbnN0IGJvb2wgZm91bmQgPSBzdGF0aWNfY2FzdDxib29sPihtX2FjdGl2ZU1hdGNoKTsK
ICAgICBpZiAoZm91bmQpIHsKICAgICAgICAgLy8gU3RvcmUgd2hpY2ggZnJhbWUgd2FzIGFjdGl2
ZS4gVGhpcyB3aWxsIGNvbWUgaW4gaGFuZHkgbGF0ZXIgd2hlbiB3ZQogICAgICAgICAvLyBjaGFu
Z2UgdGhlIGFjdGl2ZSBtYXRjaCBvcmRpbmFsIGJlbG93LgpAQCAtMTQ3OCwyNSArMTQ4MSw2IEBA
IGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogICAgICAgICAvLyBTZXQg
dGhpcyBmcmFtZSBhcyB0aGUgYWN0aXZlIGZyYW1lICh0aGUgb25lIHdpdGggdGhlIGFjdGl2ZSBo
aWdobGlnaHQpLgogICAgICAgICBtYWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWUgPSB0
aGlzOwogCi0gICAgICAgIC8vIFdlIGZvdW5kIHNvbWV0aGluZywgc28gd2UgY2FuIG5vdyBxdWVy
eSB0aGUgc2VsZWN0aW9uIGZvciBpdHMgcG9zaXRpb24uCi0gICAgICAgIFZpc2libGVTZWxlY3Rp
b24gbmV3U2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7Ci0gICAg
ICAgIEludFJlY3QgY3VyclNlbGVjdGlvblJlY3Q7Ci0KLSAgICAgICAgLy8gSWYgd2UgdGhvdWdo
dCB3ZSBmb3VuZCBzb21ldGhpbmcsIGJ1dCBpdCBjb3VsZG4ndCBiZSBzZWxlY3RlZCAocGVyaGFw
cwotICAgICAgICAvLyBiZWNhdXNlIGl0IHdhcyBtYXJrZWQgLXdlYmtpdC11c2VyLXNlbGVjdDog
bm9uZSksIHdlIGNhbid0IHNldCBpdCB0bwotICAgICAgICAvLyBiZSBhY3RpdmUgYnV0IHdlIHN0
aWxsIGNvbnRpbnVlIHNlYXJjaGluZy4gVGhpcyBtYXRjaGVzIFNhZmFyaSdzCi0gICAgICAgIC8v
IGJlaGF2aW9yLCBpbmNsdWRpbmcgc29tZSBvZGRpdGllcyB3aGVuIHNlbGVjdGFibGUgYW5kIHVu
LXNlbGVjdGFibGUgdGV4dAotICAgICAgICAvLyBhcmUgbWl4ZWQgb24gYSBwYWdlOiBzZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI3LgotICAgICAgICBpZiAo
bmV3U2VsZWN0aW9uLmlzTm9uZSgpIHx8IChuZXdTZWxlY3Rpb24uc3RhcnQoKSA9PSBuZXdTZWxl
Y3Rpb24uZW5kKCkpKQotICAgICAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgbV9hY3RpdmVNYXRjaCA9IG5ld1NlbGVjdGlvbi50b05vcm1hbGl6
ZWRSYW5nZSgpOwotICAgICAgICAgICAgY3VyclNlbGVjdGlvblJlY3QgPSBtX2FjdGl2ZU1hdGNo
LT5ib3VuZGluZ0JveCgpOwotICAgICAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0
Y2guZ2V0KCksIHRydWUpOyAvLyBBY3RpdmUuCi0gICAgICAgICAgICAvLyBXZWJLaXQgZHJhd3Mg
dGhlIGhpZ2hsaWdodGluZyBmb3IgYWxsIG1hdGNoZXMuCi0gICAgICAgICAgICBleGVjdXRlQ29t
bWFuZChXZWJTdHJpbmc6OmZyb21VVEY4KCJVbnNlbGVjdCIpKTsKLSAgICAgICAgfQotCiAgICAg
ICAgIC8vIE1ha2Ugc3VyZSBubyBub2RlIGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcuY29t
LzM4NzAwLgogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsK
IApAQCAtMTUyNCwxNCArMTUwOCwxMSBAQCBib29sIFdlYkZyYW1lSW1wbDo6ZmluZChpbnQgaWRl
bnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0
TWF0Y2hDb3VudCAtIDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
UmVjdCkgewotICAgICAgICAgICAgICAgICpzZWxlY3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNv
bnRlbnRzVG9XaW5kb3coY3VyclNlbGVjdGlvblJlY3QpOworICAgICAgICAgICAgICAgICpzZWxl
Y3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3cobV9hY3RpdmVNYXRjaC0+
Ym91bmRpbmdCb3goKSk7CiAgICAgICAgICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlv
bigqc2VsZWN0aW9uUmVjdCwgbV9hY3RpdmVNYXRjaEluZGV4ICsgMSwgaWRlbnRpZmllcik7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5n
IHdhcyBmb3VuZCBpbiB0aGlzIGZyYW1lLgotICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLQog
ICAgICAgICAvLyBFcmFzZSBhbGwgcHJldmlvdXMgdGlja21hcmtzIGFuZCBoaWdobGlnaHRpbmcu
CiAgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNjZjZmY5NTAzNTdi
ZmY4NDNkYTFjNGU5YjAxZTU5MmI0NGQyMzVjLi5kY2M1ZmIwMjFkMmJkNDUzMDVhNDRlZDE5M2Vm
ZTU1ZWU3ZjhiNzY3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxta29z
aWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQgb24gd2ViIHBhZ2VzIHdpdGggLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlZCBhIHBhcnRpYWwgZmluZFN0cmlu
ZyBpbXBsZW1lbnRhdGlvbi4gVGhpcyBkb2Vzbid0IHN1cHBvcnQKKyAgICAgICAgYWxsIG9mIHRo
ZSBGaW5kT3B0aW9ucyBzaW5jZSB0aGV5J3JlIG5vdCBleHBvc2VkIHZpYSBXZWJGaW5kT3B0aW9u
cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwog
MjAxMS0xMC0yNCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Y2hlY2std2Via2l0LXN0eWxlIGNvbXBsYWlucyBhYm91dCBXRUJLSVRfRVhQT1JUIGluIHRlc3Qv
V2ViVW5pdFRlc3RzLmgKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBiYzhjYTJjMmZkYzAxZjcyNjQzZDQzOWZl
MWM0ZTRhMzViOTZjZmQxLi4zZDJkMTJkMjMxOTNkYzBkODM2ZDc4NzQzMGIzODMyMmQzNTE5YzRh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJXZWJFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1
ZGUgIldlYklEQkZhY3RvcnkuaCIKQEAgLTEyMSw2ICsxMjIsNyBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9y
Y2VSZWRTZWxlY3Rpb25Db2xvcnMpOwogICAgIGJpbmRNZXRob2QoImdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdyYW50RGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb24pOwogICAgIGJpbmRNZXRob2QoImhhc1NwZWxsaW5nTWFya2Vy
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtlcik7CisgICAgYmluZE1l
dGhvZCgiZmluZFN0cmluZyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyk7CiAg
ICAgYmluZE1ldGhvZCgiaXNDb21tYW5kRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
aXNDb21tYW5kRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgibGF5ZXJUcmVlQXNUZXh0IiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQpOwogICAgIGJpbmRNZXRob2QoImxv
c2VDb21wb3NpdG9yQ29udGV4dCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9zZUNvbXBvc2l0
b3JDb250ZXh0KTsKQEAgLTE3ODUsNiArMTc4NywzOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
QwogICAgIHJlc3VsdC0+c2V0KG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPnNlbGVj
dGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoYXJndW1lbnRzWzBdLnRvSW50MzIoKSwgYXJn
dW1lbnRzWzFdLnRvSW50MzIoKSkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpm
aW5kU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0u
aXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViRmluZE9wdGlvbnMgZmluZE9w
dGlvbnM7CisgICAgYm9vbCB3cmFwQXJvdW5kID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPj0gMikgeworICAgICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG9wdGlvbnNBcnJheSA9
IGFyZ3VtZW50c1sxXS50b1N0cmluZ1ZlY3RvcigpOworICAgICAgICBmaW5kT3B0aW9ucy5tYXRj
aENhc2UgPSB0cnVlOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uc0Fy
cmF5LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3B0aW9u
ID0gb3B0aW9uc0FycmF5W2ldOworICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgYWxsIHRo
ZSBvcHRpb25zLCBzbyB3ZSBjYW4gcnVuIGZpbmRTdHJpbmcuaHRtbCB0b28uCisgICAgICAgICAg
ICBpZiAob3B0aW9uID09ICJDYXNlSW5zZW5zaXRpdmUiKQorICAgICAgICAgICAgICAgIGZpbmRP
cHRpb25zLm1hdGNoQ2FzZSA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uID09
ICJCYWNrd2FyZHMiKQorICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLmZvcndhcmQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbiA9PSAiV3JhcEFyb3VuZCIpCisgICAgICAg
ICAgICAgICAgd3JhcEFyb3VuZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBXZWJG
cmFtZSogZnJhbWUgPSBtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpOworICAgIGNvbnN0
IGJvb2wgZmluZFJlc3VsdCA9IGZyYW1lLT5maW5kKDAsCisgICAgICAgIGNwcFZhcmlhbnRUb1dl
YlN0cmluZyhhcmd1bWVudHNbMF0pLAorICAgICAgICBmaW5kT3B0aW9ucywKKyAgICAgICAgd3Jh
cEFyb3VuZCwKKyAgICAgICAgMCk7CisgICAgcmVzdWx0LT5zZXQoZmluZFJlc3VsdCk7Cit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwMWI2ZWNjNTViYmU3MWExY2I4MGMwOGI2
ZmU3YjQxNWU0NWEwNWY3Li5kODI1Y2RlNGIxYzBiODM0NDE4ZDRhMmYyMjc2MjRkOTgwODBjZTE5
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmgKQEAgLTM3MSw2ICszNzEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1hcmtl
clRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAg
ICAgdm9pZCBoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBmaW5kU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIAogICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGU1NmIwYzk3ZTM5MGI1YzBiNTVm
Y2Y0YjVlNzQ0YWUyMGRkNmY5YS4uNzI4NGRkYTAzZTdlOWJlMzIwYjE2ODg3ODA0Yzc5OGYyOWU4
OGU0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29zaWJhICA8
bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRo
IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgbGF5b3V0IHRlc3QgdG8g
dmVyaWZ5IHRoYXQgZmluZCB3b3JrcyBjb3JyZWN0bHkgb24gcGFnZXMKKyAgICAgICAgdGhhdCBw
cmV2ZW50IHRleHQgc2VsZWN0aW9uLgorCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9y
L2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGlvbi9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTUuMC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0LXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgor
CiAyMDExLTEwLTI0ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICA8c3ZnPiBmYWlscyB0byB1c2UgZXhwbGljaXQgd2lkdGggYW5kIGhlaWdodCBpbnNpZGUg
PGh0bWw+IGluc2lkZSBJRlJBTUUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4
dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlz
YWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YjM2NWZmM2NlYjQzYzViZTA4ZTc2YmY1
ZTFkM2E3OGNmMWUwZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNDAgQEAKK1NlYXJjaGluZyBmb3IgJ2UnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRo
YXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZv
ciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2Vs
ZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ28n
LCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICd5JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0
aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScsIFtdKSBpcyBmYWxzZQorCitTZWFyY2hpbmcg
Zm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRo
IHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5n
KCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdtb3VudCcgaW4gJ2luc3VybW91
bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5maW5kU3RyaW5nKCdtb3VudCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBm
b3IgJ1dhbGx5JyBpbiAnaW5zdXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVu
YWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ1dhbGx5JywgW10p
IGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3IgJ2UnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQg
Y2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZmluZFN0cmluZygnZScsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3Ig
J28nIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVj
dGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbycs
IFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3knIGluICdTb21lIHNhbXBsZSB0ZXh0IHRo
YXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScsIFtdKSBpcyBmYWxzZQorCitTZWFyY2hpbmcg
Zm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRo
IHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmlu
ZygndCB0JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbW91bnQnIGluICdpbnN1cm1v
dW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5n
IGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24g
ZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ1dhbGx5Jywg
W10pIGlzIGZhbHNlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFmYzcxODIwZjc3NWM1ZDdmYTMwY2YyZjY4NDFiYWQ5MTdiNmE0YmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxl
Y3Rpb24tZGlzYWJsZWQuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorIC5zZWxlY3Rpb25EaXNhYmxlZCB7IC13ZWJr
aXQtdXNlci1zZWxlY3Q6IG5vbmU7IH0KKyAuc2VsZWN0aW9uRW5hYmxlZCB7IC13ZWJraXQtdXNl
ci1zZWxlY3Q6IGF1dG87IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNv
bnRhaW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlk
ZGVuOyI+PC9wcmU+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiB0ZXN0RmluZFN0cmlu
Z1VzaW5nTWFya2Vycyh0ZXh0LCB0YXJnZXQsIGRpc2FibGVTZWxlY3Rpb24sIGV4cGVjdGVkKQor
eworICAgIHZhciBzZWxlY3Rpb25TdGF0dXMgPSBkaXNhYmxlU2VsZWN0aW9uID8gInNlbGVjdGlv
biBkaXNhYmxlZDoiIDogInNlbGVjdGlvbiBlbmFibGVkOiI7CisgICAgbG9nKCJTZWFyY2hpbmcg
Zm9yICciICsgdGFyZ2V0ICsgIicgaW4gJyIgKyB0ZXh0ICsgIicgd2l0aCAiICsgc2VsZWN0aW9u
U3RhdHVzKTsKKworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGFpbmVyIik7CisgICAgY29udGFpbmVyLmlubmVyVGV4dCA9IHRleHQ7CisgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRUb3A7CisKKyAgICBjb250YWluZXIuY2xhc3NOYW1lID0gZGlzYWJsZVNl
bGVjdGlvbiA/ICJzZWxlY3Rpb25EaXNhYmxlZCIgOiAic2VsZWN0aW9uRW5hYmxlZCI7CisKKyAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnIiArIHRhcmdldCAr
ICInLCBbXSkiLCBleHBlY3RlZCk7CisKKyAgICBjb250YWluZXIuaW5uZXJUZXh0ID0gIiI7Cisg
ICAgbG9nKCIiKTsKK30KKworaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
dGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBsYXlvdXRUZXN0Q29udHJvbGxlciBv
YmplY3QnKTsKK2Vsc2UgeworICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAg
dmFyIGRpc2FibGVTZWxlY3Rpb24gPSAoaSA9PSAxKTsKKworICAgICAgICB0ZXN0RmluZFN0cmlu
Z1VzaW5nTWFya2VycygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJl
IiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2lu
Z01hcmtlcnMoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQiLCAibyIsIGRp
c2FibGVTZWxlY3Rpb24sICJ0cnVlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJr
ZXJzKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgInkiLCBkaXNhYmxl
U2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMo
IlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQiLCAidCB0IiwgZGlzYWJsZVNl
bGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoImlu
c3VybW91bnRhYmxlIG1vdW50YWluIiwgIm1vdW50IiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUi
KTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoImluc3VybW91bnRhYmxlIG1v
dW50YWluIiwgIldhbGx5IiwgZGlzYWJsZVNlbGVjdGlvbiwgImZhbHNlIik7CisgICAgfQorfQor
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnN0eWxlLnJlbW92ZVByb3BlcnR5
KCJ2aXNpYmlsaXR5Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5k
ZXggY2IyYTgyMTdiMTMyNWFiZDM3OGM2OWFjZDQyNzVkNGMwYjBiNjJiNy4uNThiNWM1NGFjZWIz
ZGZjODdjMDJkNWIzZDUyYjM1YTQ0ZmRmNWYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQK
QEAgLTgzNSw2ICs4MzUsMTAgQEAgZmFzdC9odG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAj
IEVGTCdzIERSVCBuZWVkcyBhIFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVtZW50YXRpb24KIGVk
aXRpbmcvdGV4dC1pdGVyYXRvci9iYXNpYy1pdGVyYXRpb24uaHRtbAogCisjIEZyYW1lOjpmaW5k
U3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0
LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyBFRkwncyBE
UlQgbWlzc2VzIGFuICdFRElUSU5HIERFTEVHQVRFJyBpbXBsZW1lbnRhdGlvbgogZWRpdGluZy9p
bnB1dC9hdHRyaWJ1dGVkLXN1YnN0cmluZy1mcm9tLXJhbmdlLWxpbmVzLmh0bWwKIGVkaXRpbmcv
dGV4dC1pdGVyYXRvci90aGFpLWN1cnNvci1tb3ZlbWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGstd2syL1NraXBwZWQKaW5kZXggOWQxNWNmZWFhYmUxZGYyODBlNmU0YmNmMGMxMDBkMDVlNTE2
N2JmNy4uMjg2ZjBlYjc1MDcyOWE3MWM3YzJhOGVmMDQ2NGNkNzgyMzZkMmQyNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZApAQCAtNzkyLDYgKzc5MiwxMCBAQCBmYXN0L21lZGlh
L21lZGlhLXF1ZXJ5LWxpc3QtMDYuaHRtbAogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTA3
Lmh0bWwKIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAogCisjIEZyYW1l
OjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9u
CisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGlu
Zy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwogIyBURVNUUyBGQUlMSU5HCiAjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tpcHBlZAppbmRleCAyN2RjNDE2NTFjZDFm
OWIxZWNjZGM3MWRjNjE5Nzc3YTk3YzNiYjI5Li44OWM3YTcyN2U3ZGI2NTliMjM2MDNkYzc4NWJk
YzAzMTM2MGE2NDE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQKQEAgLTUw
LDYgKzUwLDEwIEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29y
cmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUt
YXV0b2NvcnJlY3RlZC13b3JkLTIuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
cmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLWFjY2VwdGluZy1hdXRvY29ycmVjdGlvbi11c2luZy1w
dW5jdHVhdGlvbi5odG1sICAKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24g
cGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNl
bGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMgUGFzdGluZyByZXBsYWNlcyB0aGUgdGhyZWUgcGVy
aW9kcyB3aXRoIGFuIGVsbGlwc2lzIG9uIExpb24KIGVkaXRpbmcvcGFzdGVib2FyZC81NDc4MjUw
Lmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJk
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZApp
bmRleCA3ZTkxMzEwYWU3ODAxOTU0YTEwMmYyYzc4ZjhhMmU0ZGRiZTgyZTAwLi4zZjFkNTZjZGJm
NWNmN2E5ODk5MDZiZWViYmVhNjYyMDkwMDBlNmMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZApAQCAtMTg1LDMgKzE4NSw3IEBAIGh0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tbG9hZC10d2ljZS5odG1sCiAKICMgSGlEUEkgdGVzdHMgaGF2ZSBsb3dlci1s
ZXZlbCBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMgb24gTWFjCiBmYXN0L2hpZHBpCisKKyMgRnJhbWU6
OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24K
KyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5n
L3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBmMDNiNGM2ZGNlYjQyOWY2MDcxYzdiNmI0ODdiMzVkODIy
ODMwNWFkLi4wMzFlN2Y3NjlmMDdiNzM4ZTQzZTY3ZDYzMGQ0NzQ2YTk2MmQyZGQzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtNDUwLDMgKzQ1MCw3IEBAIGh0dHAvdGVzdHMvaGlzdG9y
eS9iYWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdlLnBocAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NjYKIGZhc3QvY3NzL3dlYmtpdC1tYXNrLWNyYXNoLWZpZWxk
c2V0LWxlZ2VuZC5odG1sCiBmYXN0L2Nzcy93ZWJraXQtbWFzay1jcmFzaC10YWJsZS5odG1sCisK
KyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBz
ZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYx
CitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAppbmRleCBlODlkOTQzY2UzYWZhOTdkNTlj
MDEyMWJhZjdjMWIyNmYxNWYwMzMxLi4xMDNjNWViODE1MzI1Y2VlZGMyMjY3YzYyYjFhZWRkMTdl
NzdlMjI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZApAQCAtNjk1NiwzICs2OTU2
LDcgQEAgZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1mdWxseS1hbGlnbmVkLWhvcml6b250
YWxseS5odG1sCiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxh
YmxlLWNvbnRlbnQuaHRtbAogZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1tZWRpYS1lbGVt
ZW50cy5odG1sCiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW9mZnNjcmVlbi1jb250ZW50
Lmh0bWwKKworIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBw
cmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkCmluZGV4IGI4YzM5MmFhNDNm
Mjk3ZTk2ZmI4ODlkYzBlZTkxYjFmOTY4ZGJkYTQuLmI0NTkwOWQxNWNlZDQ1OWM1NzNjZmYwODBl
ZGJjYmIyYTIyNTE2NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkCkBAIC01MTgy
LDMgKzUxODIsNyBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1tZXRob2RzLWFzeW5jLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwNDE0CiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2ZW50cy5o
dG1sCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLW5ldHdvcmsuaHRtbAorCisjIEZy
YW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0
aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRp
dGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKaW5kZXggMGE5MWQ2NGIzYzdmNmVjOWIzMTExNjli
ZjkwYzlmMjc2NGFhYTk1Yi4uMzkyMTI2Y2MyODE2NGU4MWQzYzk4MGM4ZmZkOWI1MjU0ZGU2ZmQ2
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKQEAgLTE4MzcsMyArMTgzNyw3IEBA
IGZhc3QvY2FudmFzL2ZpbGxUZXh0LXNoYWRvdy5odG1sCiBmYXN0L2NhbnZhcy9jYW52YXMtc3Ry
b2tlVGV4dC1zdHJva2VzLXNoYWRvdy5odG1sCiBzdmcvY3VzdG9tL2ZvbnQtZmFjZS1ub3QtaW4t
ZG9jdW1lbnQuc3ZnCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUxT
UHJvZ3Jlc3NFdmVudC1Qcm9ncmVzc0V2ZW50LXNob3VsZC1tYXRjaC5odG1sCisKKyMgRnJhbWU6
OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24K
KyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5n
L3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZAppbmRleCA4YmE0ZmQ4OTI5ZDUyOTc1MzAxYzg5OGU0ZjU0YjRhMmUz
OTYwZmI1Li42MmEyY2JhMmJkY2Y2MTc1YmZjNGQ0NDEyNGMzMWZlOWQxNjg2NjkxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvU2tpcHBlZApAQCAtODc1LDYgKzg3NSwxMCBAQCBsb2FkZXIvbG9hZC1kZWZl
ci1yZXN1bWUtY3Jhc2guaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDM2NjgKIG1lZGlhL3RyYWNrLwogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90
aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRT
dHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyMjIEVORCBPRiAoMSkgQ2xhc3NpZmll
ZCBmYWlsdXJlcyB3aXRoIGJ1ZyByZXBvcnRzCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117220</attachid>
            <date>2011-11-30 10:49:49 -0800</date>
            <delta_ts>2011-12-02 08:03:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111130184947.patch</filename>
            <type>text/plain</type>
            <size>25289</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY4YmUxOGMxNzdmMDg1
NDgxZDQ1M2Q2OTI3OWY0NDBkMTI3OTBiYS4uMTY0Y2JhMzE4NGI1MzZkNzA1MzA4ZjEzZmRlY2Iw
ZDAyNmI3OTQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGZpbmRT
dHJpbmdVc2luZ01hcmtlcnMgdG8gRWRpdG9yLiBUaGlzIG5ldyBtZXRob2QgdXNlcyBtYXJrZXJz
CisgICAgICAgIHRvIGluZGljYXRlIHRoZSBhY3RpdmUgZmluZCByZXN1bHQuCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6ZmluZFN0cmluZ1VzaW5nTWFya2Vycyk6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuaDoKKwogMjAxMS0xMS0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV1c2UgY2FjaGVkIHN0eWxlIGZ1bGx5IGlmIHRoZSBwYXJlbnQgaW5oZXJpdGVk
IHN0eWxlcyBhcmUgZXF1YWwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA0MDU5ZmI1
N2U4ZmZmZWI1Nzc5NjQxYzkxOGNjMmUyMzBlZmIyOTYuLmRlMjZkNzNkMDQ5ODFlNzQxOTNmOGNj
MjVkZDJlYmMyMDRiODY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRml4IGZpbmQgb24gd2ViIHBhZ2VzIHdpdGggLXdlYmtpdC11c2VyLXNlbGVjdDog
bm9uZSBmb3IgQ2hyb21pdW0KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHdpbGwgbWFrZSBpdCBwb3NzaWJsZSB0byBzZWFyY2ggZm9yIHRleHQg
dGhhdCBoYXMKKyAgICAgICAgc2VsZWN0aW9uIGRpc2FibGVkICh2aWEgdGhlIHdlYmtpdC11c2Vy
LXNlbGVjdCBhdHRyaWJ1dGUpLgorCisgICAgICAgIFdlYkZyYW1lSW1wbDo6ZmluZCB3aWxsIHVz
ZSBmaW5kU3RyaW5nVXNpbmdNYXJrZXJzLCB3aGljaCBpcyBzaW1pbGFyCisgICAgICAgIHRvIGZp
bmRTdHJpbmcgZXhjZXB0IHRoYXQgaXQgbWFuaXB1bGF0ZXMgbWFya2VycyBkaXJlY3RseSByYXRo
ZXIKKyAgICAgICAgdGhhbiBwYXNzaW5nIHRoZSBmaW5kIHJlc3VsdCBpbiB0aGUgYWN0aXZlIHNl
bGVjdGlvbi4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OmZpbmQpOgorCiAyMDExLTExLTMwICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9m
IGRlZmVycmVkIGJhY2tlbmQtPmZyb250LWVuZCBjb21tYW5kcyBwcm9jZXNzaW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGQwMGNlMTI3YTc4Nzc3OGM2YTBkZGM0OTJkZDY1ZGIx
ZmQ2N2QyZTQuLjFjZGI1ZjllZTBjMjNmZDBkMzcyNTQwMWUxNzc5ZTIwY2M3MjRiMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJUZXh0
Q2hlY2tpbmdIZWxwZXIuaCIKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUg
IlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUg
IlJlbmRlcmVkUG9zaXRpb24uaCIKQEAgLTI3NzEsNiArMjc3MiwyNyBAQCBib29sIEVkaXRvcjo6
ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpmaW5kU3RyaW5n
QW5kU2Nyb2xsVG9WaXNpYmxlKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcHJldmlvdXNN
YXRjaCwgRmluZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KworICAgIFJlZlB0cjxSYW5nZT4gbmV4dE1hdGNoOworICAgIGRvIHsKKyAgICAgICAgbmV4dE1h
dGNoID0gcmFuZ2VPZlN0cmluZyh0YXJnZXQsIHByZXZpb3VzTWF0Y2gsIG9wdGlvbnMpOworICAg
ICAgICBpZiAoIW5leHRNYXRjaCB8fCAobmV4dE1hdGNoLT5jb2xsYXBzZWQoZWMpICYmICFuZXh0
TWF0Y2gtPnN0YXJ0Q29udGFpbmVyKCktPmlzSW5TaGFkb3dUcmVlKCkpKQorICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgfSB3aGlsZSAoIWluc2lkZVZpc2libGVBcmVhKG5leHRNYXRjaC5nZXQo
KSkpOworCisgICAgLy8gU2Nyb2xsIHRoZSByZXN1bHQgaW50byB2aWV3LgorICAgIG5leHRNYXRj
aC0+Zmlyc3ROb2RlKCktPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoCisgICAgICAgIG5leHRNYXRjaC0+Ym91bmRpbmdCb3goKSwKKyAgICAgICAgU2Ny
b2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLAorICAgICAgICBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPm1hcmtl
cnMoKS0+c2V0TWFya2Vyc0FjdGl2ZShuZXh0TWF0Y2guZ2V0KCksIHRydWUpOworCisgICAgcmV0
dXJuIG5leHRNYXRjaC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6
cmFuZ2VPZlN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdl
LCBGaW5kT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMTBkNzA5ODZkYzUyZDVmOGNkMzk2ZTgyNjM0ZDA5YTQ0
Yzc2NWY3Yy4uMDM5MjkwYmNiMGRlMWE5MTM2YjZjOTQxMmM0YTU0ZGFjN2E4N2IwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHVibGljOgogICAgIGJvb2wg
ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJv
b2wgd3JhcEZsYWcsIGJvb2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJh
bmdlPiByYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOwor
ICAgIFBhc3NSZWZQdHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3Qg
U3RyaW5nJiwgUmFuZ2UqLCBGaW5kT3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBtYXJrKCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4K
ICAgICB2b2lkIHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggNzUxZDJjYjYyNDUzN2FmYmIx
ZGQ1Yjc3NDdhNTA5MjlkODE2NDM5ZC4uNGRkZjYxMDQ0MGY0MGJjNjY1YjRjYTk2MDY5OTVjODJj
ZTdkNDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CkBAIC0xNTEyLDU0ICsxNTEyLDQzIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVu
dGlmaWVyLAogewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCkt
Pm1haW5GcmFtZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKLSAgICAgICAg
ZnJhbWUoKS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIGVsc2UKLSAgICAg
ICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZl
IG1hdGNoIGlzIGNoYW5naW5nLgotCi0gICAgLy8gU3RhcnRzIHRoZSBzZWFyY2ggZnJvbSB0aGUg
Y3VycmVudCBzZWxlY3Rpb24uCi0gICAgYm9vbCBzdGFydEluU2VsZWN0aW9uID0gdHJ1ZTsKKyAg
ICBpZiAoIW9wdGlvbnMuZmluZE5leHQpIHsKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT51bm1h
cmtBbGxUZXh0TWF0Y2hlcygpOworICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKKyAgICB9IGVs
c2UgeworICAgICAgICAvLyBBY3RpdmUgbWF0Y2ggaXMgY2hhbmdpbmcuCisgICAgICAgIHNldE1h
cmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCBmYWxzZSk7CisgICAgfQogCiAgICAgLy8g
SWYgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIHNvbWV0aGluZyBzaW5jZSB0aGUgbGFzdCBGaW5kIG9w
ZXJhdGlvbiB3ZSB3YW50CiAgICAgLy8gdG8gc3RhcnQgZnJvbSB0aGVyZS4gT3RoZXJ3aXNlLCB3
ZSBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aGVyZSB0aGUgbGFzdCBGaW5kCiAgICAgLy8gb3BlcmF0
aW9uIGxlZnQgb2ZmIChlaXRoZXIgYSBGaW5kIG9yIGEgRmluZE5leHQgb3BlcmF0aW9uKS4KICAg
ICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0
aW9uKCkpOwogICAgIGJvb2wgYWN0aXZlU2VsZWN0aW9uID0gIXNlbGVjdGlvbi5pc05vbmUoKTsK
LSAgICBpZiAoIWFjdGl2ZVNlbGVjdGlvbiAmJiBtX2FjdGl2ZU1hdGNoKSB7Ci0gICAgICAgIHNl
bGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obV9hY3RpdmVNYXRjaC5nZXQoKSk7Ci0gICAgICAg
IGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAo
YWN0aXZlU2VsZWN0aW9uKSB7CisgICAgICAgIG1fYWN0aXZlTWF0Y2ggPSBzZWxlY3Rpb24uZmly
c3RSYW5nZSgpLmdldCgpOworICAgICAgICBleGVjdXRlQ29tbWFuZChXZWJTdHJpbmc6OmZyb21V
VEY4KCJVbnNlbGVjdCIpKTsKICAgICB9CiAKICAgICBBU1NFUlQoZnJhbWUoKSAmJiBmcmFtZSgp
LT52aWV3KCkpOwotICAgIGJvb2wgZm91bmQgPSBmcmFtZSgpLT5lZGl0b3IoKS0+ZmluZFN0cmlu
ZygKLSAgICAgICAgc2VhcmNoVGV4dCwgb3B0aW9ucy5mb3J3YXJkLCBvcHRpb25zLm1hdGNoQ2Fz
ZSwgd3JhcFdpdGhpbkZyYW1lLAotICAgICAgICBzdGFydEluU2VsZWN0aW9uKTsKKyAgICBjb25z
dCBGaW5kT3B0aW9ucyBmaW5kT3B0aW9ucyA9IChvcHRpb25zLmZvcndhcmQgPyAwIDogQmFja3dh
cmRzKSB8CisgICAgICAgIChvcHRpb25zLm1hdGNoQ2FzZSA/IDAgOiBDYXNlSW5zZW5zaXRpdmUp
IHwKKyAgICAgICAgKHdyYXBXaXRoaW5GcmFtZSA/IFdyYXBBcm91bmQgOiAwKSB8CisgICAgICAg
ICghb3B0aW9ucy5maW5kTmV4dCA/IFN0YXJ0SW5TZWxlY3Rpb24gOiAwKTsKKyAgICBtX2FjdGl2
ZU1hdGNoID0gZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUo
CisgICAgICAgIHNlYXJjaFRleHQsCisgICAgICAgIG1fYWN0aXZlTWF0Y2guZ2V0KCksCisgICAg
ICAgIGZpbmRPcHRpb25zKTsKKyAgICBjb25zdCBib29sIGZvdW5kID0gc3RhdGljX2Nhc3Q8Ym9v
bD4obV9hY3RpdmVNYXRjaCk7CiAgICAgaWYgKGZvdW5kKSB7CisgICAgICAgIHNldE1hcmtlckFj
dGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCB0cnVlKTsKKwogICAgICAgICAvLyBTdG9yZSB3aGlj
aCBmcmFtZSB3YXMgYWN0aXZlLiBUaGlzIHdpbGwgY29tZSBpbiBoYW5keSBsYXRlciB3aGVuIHdl
CiAgICAgICAgIC8vIGNoYW5nZSB0aGUgYWN0aXZlIG1hdGNoIG9yZGluYWwgYmVsb3cuCiAgICAg
ICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBtYWluRnJhbWVJbXBsLT5tX2FjdGl2
ZU1hdGNoRnJhbWU7CiAgICAgICAgIC8vIFNldCB0aGlzIGZyYW1lIGFzIHRoZSBhY3RpdmUgZnJh
bWUgKHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhpZ2hsaWdodCkuCiAgICAgICAgIG1haW5GcmFt
ZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CiAKLSAgICAgICAgLy8gV2UgZm91bmQg
c29tZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBzZWxlY3Rpb24gZm9yIGl0cyBwb3Np
dGlvbi4KLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oZnJhbWUoKS0+c2Vs
ZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKLSAgICAgICAgSW50UmVjdCBjdXJyU2VsZWN0aW9uUmVj
dDsKLQotICAgICAgICAvLyBJZiB3ZSB0aG91Z2h0IHdlIGZvdW5kIHNvbWV0aGluZywgYnV0IGl0
IGNvdWxkbid0IGJlIHNlbGVjdGVkIChwZXJoYXBzCi0gICAgICAgIC8vIGJlY2F1c2UgaXQgd2Fz
IG1hcmtlZCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lKSwgd2UgY2FuJ3Qgc2V0IGl0IHRvCi0g
ICAgICAgIC8vIGJlIGFjdGl2ZSBidXQgd2Ugc3RpbGwgY29udGludWUgc2VhcmNoaW5nLiBUaGlz
IG1hdGNoZXMgU2FmYXJpJ3MKLSAgICAgICAgLy8gYmVoYXZpb3IsIGluY2x1ZGluZyBzb21lIG9k
ZGl0aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0YWJsZSB0ZXh0Ci0gICAgICAgIC8v
IGFyZSBtaXhlZCBvbiBhIHBhZ2U6IHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMjcuCi0gICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNOb25lKCkgfHwgKG5l
d1NlbGVjdGlvbi5zdGFydCgpID09IG5ld1NlbGVjdGlvbi5lbmQoKSkpCi0gICAgICAgICAgICBt
X2FjdGl2ZU1hdGNoID0gMDsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZU1h
dGNoID0gbmV3U2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgICAgICBjdXJy
U2VsZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCk7Ci0gICAgICAgICAg
ICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7IC8vIEFjdGl2ZS4K
LSAgICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGlnaGxpZ2h0aW5nIGZvciBhbGwgbWF0
Y2hlcy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVu
c2VsZWN0IikpOwotICAgICAgICB9Ci0KICAgICAgICAgLy8gTWFrZSBzdXJlIG5vIG5vZGUgaXMg
Zm9jdXNlZC4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzg3MDAuCiAgICAgICAgIGZyYW1lKCktPmRv
Y3VtZW50KCktPnNldEZvY3VzZWROb2RlKDApOwogCkBAIC0xNTg3LDE0ICsxNTc2LDExIEBAIGJv
b2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAg
ICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25SZWN0KSB7Ci0gICAgICAgICAgICAgICAgKnNl
bGVjdGlvblJlY3QgPSBmcmFtZVZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhjdXJyU2VsZWN0aW9u
UmVjdCk7CisgICAgICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBmcmFtZVZpZXcoKS0+Y29u
dGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgpKTsKICAgICAgICAgICAg
ICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1h
dGNoSW5kZXggKyAxLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0gZWxzZSB7Ci0gICAgICAgIC8vIE5vdGhpbmcgd2FzIGZvdW5kIGluIHRoaXMgZnJhbWUuCi0g
ICAgICAgIG1fYWN0aXZlTWF0Y2ggPSAwOwotCiAgICAgICAgIC8vIEVyYXNlIGFsbCBwcmV2aW91
cyB0aWNrbWFya3MgYW5kIGhpZ2hsaWdodGluZy4KICAgICAgICAgaW52YWxpZGF0ZUFyZWEoSW52
YWxpZGF0ZUFsbCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDFjMTUzYmM5MDI4ODRkYmY1NDYwNzJhYWQyZjMxNWViYmZiMTc0NTAu
LmY3MzgzMWI5NzZiOTlkMDBmOWEyNjM4OTNjMTEyMDM5MzFkMWE4YjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAx
MS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29vZ2xlLmNvbT4KKworICAgICAgICBG
aXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIGZvciBD
aHJvbWl1bQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFByb3ZpZGVkIGEgcGFydGlhbCBmaW5kU3RyaW5nIGltcGxlbWVudGF0aW9uLiBUaGlzIGRvZXNu
J3Qgc3VwcG9ydAorICAgICAgICBhbGwgb2YgdGhlIEZpbmRPcHRpb25zIHNpbmNlIHRoZXkncmUg
bm90IGV4cG9zZWQgdmlhIFdlYkZpbmRPcHRpb25zLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDExLTExLTMwICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIEFkZCBzdGVwIHRvIHVwZGF0ZSBndGsg
ZGVwZW5kZW5jaWVzIHRvIHRoZSBidWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGFiNTYyNjI1ZDE1
MTc4ZGE3NWUzN2QwNDg5NzEyZDdkZGVmZWY4MzEuLjQzZjliZjhkZjYzZDM3M2E5ZWE1OGRmMWFm
ODIwZGM4MzljYjhkY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5o
IgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgpAQCAtMTIyLDYgKzEyMyw3IEBAIExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxs
KQogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyk7CiAgICAgYmluZE1ldGhvZCgiZ3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmluZE1ldGhvZCgiaGFz
U3BlbGxpbmdNYXJrZXIiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2Vy
KTsKKyAgICBiaW5kTWV0aG9kKCJmaW5kU3RyaW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpm
aW5kU3RyaW5nKTsKICAgICBiaW5kTWV0aG9kKCJpc0NvbW1hbmRFbmFibGVkIiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjppc0NvbW1hbmRFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJpc1BhZ2VC
b3hWaXNpYmxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hWaXNpYmxlKTsKICAg
ICBiaW5kTWV0aG9kKCJsYXllclRyZWVBc1RleHQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Omxh
eWVyVHJlZUFzVGV4dCk7CkBAIC0xOTQwLDYgKzE5NDIsMzggQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIEMKICAgICByZXN1bHQtPnNldChtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5z
ZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGFyZ3VtZW50c1swXS50b0ludDMyKCks
IGFyZ3VtZW50c1sxXS50b0ludDMyKCkpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZmluZFN0cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRz
WzBdLmlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkZpbmRPcHRpb25zIGZp
bmRPcHRpb25zOworICAgIGJvb2wgd3JhcEFyb3VuZCA9IGZhbHNlOworICAgIGlmIChhcmd1bWVu
dHMuc2l6ZSgpID49IDIpIHsKKyAgICAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBvcHRpb25zQXJy
YXkgPSBhcmd1bWVudHNbMV0udG9TdHJpbmdWZWN0b3IoKTsKKyAgICAgICAgZmluZE9wdGlvbnMu
bWF0Y2hDYXNlID0gdHJ1ZTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlv
bnNBcnJheS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG9w
dGlvbiA9IG9wdGlvbnNBcnJheVtpXTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGFs
bCB0aGUgb3B0aW9ucywgc28gd2UgY2FuIHJ1biBmaW5kU3RyaW5nLmh0bWwgdG9vLgorICAgICAg
ICAgICAgaWYgKG9wdGlvbiA9PSAiQ2FzZUluc2Vuc2l0aXZlIikKKyAgICAgICAgICAgICAgICBm
aW5kT3B0aW9ucy5tYXRjaENhc2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlv
biA9PSAiQmFja3dhcmRzIikKKyAgICAgICAgICAgICAgICBmaW5kT3B0aW9ucy5mb3J3YXJkID0g
ZmFsc2U7CisgICAgICAgICAgICBlbHNlIGlmIChvcHRpb24gPT0gIldyYXBBcm91bmQiKQorICAg
ICAgICAgICAgICAgIHdyYXBBcm91bmQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAg
V2ViRnJhbWUqIGZyYW1lID0gbV9zaGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUoKTsKKyAgICBj
b25zdCBib29sIGZpbmRSZXN1bHQgPSBmcmFtZS0+ZmluZCgwLAorICAgICAgICBjcHBWYXJpYW50
VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwKKyAgICAgICAgZmluZE9wdGlvbnMsCisgICAgICAg
IHdyYXBBcm91bmQsCisgICAgICAgIDApOworICAgIHJlc3VsdC0+c2V0KGZpbmRSZXN1bHQpOwor
fQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewog
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNTg1YTE1MjU0MmFhMmM5MzFkMzJj
ZDQ4NmFjNTA1ODE4ZDI3ODI0ZS4uMzc0OWVmZmE0OGU3ZGUzNzBlMDdkOGFjNjBjNzk1YzViMDE4
NjY5MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0zODMsNiArMzgzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBt
YXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgaGFzU3BlbGxpbmdNYXJrZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworICAgIHZvaWQgZmluZFN0cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAKICAgICB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI0NzllMDRkYTQ4YmIwY2Qz
MGUzY2EwZjhmZmNjMGRiN2ExNDk1YTQuLjI3NzMyYTk2MDU4M2VhNGU3NjI4YmYwMThkOGM1MzMw
ODUzMmQ2OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2li
YSAgPG1rb3NpYmFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMg
d2l0aCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGxheW91dCB0ZXN0
IHRvIHZlcmlmeSB0aGF0IGZpbmQgd29ya3MgY29ycmVjdGx5IG9uIHBhZ2VzCisgICAgICAgIHRo
YXQgcHJldmVudCB0ZXh0IHNlbGVjdGlvbi4KKworICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGstd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxp
b24vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC01
LjAvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBl
ZDoKKwogMjAxMS0xMS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCB0aGUgR1RLIHRlc3RzIGZhaWxpbmcgc2luY2Ug
dGhlIGZvbnQgbWV0cmljcyBjaGFuZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9u
LWRpc2FibGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmIzNjVmZjNjZWI0M2M1YmUwOGU3
NmJmNWUxZDNhNzhjZjFlMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQwIEBACitTZWFyY2hpbmcgZm9yICdlJyBpbiAnU29tZSBzYW1wbGUgdGV4
dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnZScsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGlu
ZyBmb3IgJ28nIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRo
IHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5n
KCdvJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAneScgaW4gJ1NvbWUgc2FtcGxlIHRl
eHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ3knLCBbXSkgaXMgZmFsc2UKKworU2VhcmNo
aW5nIGZvciAndCB0JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcg
d2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0
cmluZygndCB0JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbW91bnQnIGluICdpbnN1
cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbW91bnQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hp
bmcgZm9yICdXYWxseScgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlv
biBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdXYWxseScs
IFtdKSBpcyBmYWxzZQorCitTZWFyY2hpbmcgZm9yICdlJyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0
aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ2UnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcg
Zm9yICdvJyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBz
ZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmco
J28nLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICd5JyBpbiAnU29tZSBzYW1wbGUgdGV4
dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ3knLCBbXSkgaXMgZmFsc2UKKworU2VhcmNo
aW5nIGZvciAndCB0JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcg
d2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRT
dHJpbmcoJ3QgdCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ21vdW50JyBpbiAnaW5z
dXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdtb3VudCcsIFtdKSBpcyB0cnVlCisKK1NlYXJj
aGluZyBmb3IgJ1dhbGx5JyBpbiAnaW5zdXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0
aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdXYWxs
eScsIFtdKSBpcyBmYWxzZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJh
dG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZmM3MTgyMGY3NzVjNWQ3ZmEzMGNmMmY2ODQxYmFkOTE3YjZhNGJhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmct
c2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAuc2VsZWN0aW9uRGlzYWJsZWQgeyAt
d2Via2l0LXVzZXItc2VsZWN0OiBub25lOyB9CisgLnNlbGVjdGlvbkVuYWJsZWQgeyAtd2Via2l0
LXVzZXItc2VsZWN0OiBhdXRvOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJjb250YWluZXIiPjwvZGl2PgorPHByZSBpZD0iY29uc29sZSIgc3R5bGU9InZpc2liaWxpdHk6
IGhpZGRlbjsiPjwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gdGVzdEZpbmRT
dHJpbmdVc2luZ01hcmtlcnModGV4dCwgdGFyZ2V0LCBkaXNhYmxlU2VsZWN0aW9uLCBleHBlY3Rl
ZCkKK3sKKyAgICB2YXIgc2VsZWN0aW9uU3RhdHVzID0gZGlzYWJsZVNlbGVjdGlvbiA/ICJzZWxl
Y3Rpb24gZGlzYWJsZWQ6IiA6ICJzZWxlY3Rpb24gZW5hYmxlZDoiOworICAgIGxvZygiU2VhcmNo
aW5nIGZvciAnIiArIHRhcmdldCArICInIGluICciICsgdGV4dCArICInIHdpdGggIiArIHNlbGVj
dGlvblN0YXR1cyk7CisKKyAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRhaW5lciIpOworICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSB0ZXh0OworICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOworCisgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9IGRpc2Fi
bGVTZWxlY3Rpb24gPyAic2VsZWN0aW9uRGlzYWJsZWQiIDogInNlbGVjdGlvbkVuYWJsZWQiOwor
CisgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJyIgKyB0YXJn
ZXQgKyAiJywgW10pIiwgZXhwZWN0ZWQpOworCisgICAgY29udGFpbmVyLmlubmVyVGV4dCA9ICIi
OworICAgIGxvZygiIik7Cit9CisKK2lmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyB0aGUgbGF5b3V0VGVzdENvbnRyb2xs
ZXIgb2JqZWN0Jyk7CitlbHNlIHsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAg
ICAgIHZhciBkaXNhYmxlU2VsZWN0aW9uID0gKGkgPT0gMSk7CisKKyAgICAgICAgdGVzdEZpbmRT
dHJpbmdVc2luZ01hcmtlcnMoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQi
LCAiZSIsIGRpc2FibGVTZWxlY3Rpb24sICJ0cnVlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5n
VXNpbmdNYXJrZXJzKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgIm8i
LCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5n
TWFya2VycygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJ5IiwgZGlz
YWJsZVNlbGVjdGlvbiwgImZhbHNlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJr
ZXJzKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgInQgdCIsIGRpc2Fi
bGVTZWxlY3Rpb24sICJ0cnVlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJz
KCJpbnN1cm1vdW50YWJsZSBtb3VudGFpbiIsICJtb3VudCIsIGRpc2FibGVTZWxlY3Rpb24sICJ0
cnVlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJzKCJpbnN1cm1vdW50YWJs
ZSBtb3VudGFpbiIsICJXYWxseSIsIGRpc2FibGVTZWxlY3Rpb24sICJmYWxzZSIpOworICAgIH0K
K30KKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5zdHlsZS5yZW1vdmVQcm9w
ZXJ0eSgidmlzaWJpbGl0eSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVk
CmluZGV4IDA1MTAzYmQ2YTNmZTE5ZmM2OTU1YTYzNDQ2NWU2MzA2NmVjODE1ZTUuLmU0Mzc0YzMw
MjM4NTYwZDg0ZGZhMWQ0ZGQ4YjhmNDMwZGFiYjNiZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lw
cGVkCkBAIC04NDIsNiArODQyLDEwIEBAIGZhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVj
cmVhc2UtbWluLWludGVydmFsLmh0bWwKICMgRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9l
cyBub3QgaW1wbGVtZW50IHNldFRleHREaXJlY3Rpb24KIGZhc3QvaHRtbC9zZXQtdGV4dC1kaXJl
Y3Rpb24uaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0
aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9u
LWRpc2FibGVkLmh0bWwKKwogIyBFRkwncyBEUlQgbWlzc2VzIGFuICdFRElUSU5HIERFTEVHQVRF
JyBpbXBsZW1lbnRhdGlvbgogZWRpdGluZy9pbnB1dC9hdHRyaWJ1dGVkLXN1YnN0cmluZy1mcm9t
LXJhbmdlLWxpbmVzLmh0bWwKIGVkaXRpbmcvdGV4dC1pdGVyYXRvci90aGFpLWN1cnNvci1tb3Zl
bWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKaW5kZXggZGUyNjEwNWZh
YmMzMjg5ZjM2NzU2ZDdjZGY5Y2U1NWQ3MDJlMTU3ZS4uMDliYzdlYTYyYWM3Y2IwYzdkMmQyYTA4
ZGQwOWYyNTg5NDhlN2ZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdr
Mi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZApAQCAt
MzcxLDYgKzM3MSwxMCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJl
bW90ZS1pbWFnZS1hbGxvd2VkLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViZ2wtcmVtb3Rl
LXJlYWQtcmVtb3RlLWltYWdlLWJsb2NrZWQtbm8tY3Jvc3NvcmlnaW4uaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxsb3dlZC13aXRoLWNy
ZWRlbnRpYWxzLmh0bWwKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFn
ZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVj
dGlvbi1kaXNhYmxlZC5odG1sCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgVEVTVFMgRkFJ
TElORwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxpb24vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Nr
aXBwZWQKaW5kZXggMjdkYzQxNjUxY2QxZjliMWVjY2RjNzFkYzYxOTc3N2E5N2MzYmIyOS4uODlj
N2E3MjdlN2RiNjU5YjIzNjAzZGM3ODViZGMwMzEzNjBhNjQxNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGlvbi9Ta2lwcGVkCkBAIC01MCw2ICs1MCwxMCBAQCBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAogcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0yLmh0bWwKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL3JlbW92aW5nLXVuZGVybGluZS1hZnRlci1hY2NlcHRp
bmctYXV0b2NvcnJlY3Rpb24tdXNpbmctcHVuY3R1YXRpb24uaHRtbCAgCiAKKyMgRnJhbWU6OmZp
bmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIFBhc3Rp
bmcgcmVwbGFjZXMgdGhlIHRocmVlIHBlcmlvZHMgd2l0aCBhbiBlbGxpcHNpcyBvbiBMaW9uCiBl
ZGl0aW5nL3Bhc3RlYm9hcmQvNTQ3ODI1MC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXNub3dsZW9wYXJkL1NraXBwZWQKaW5kZXggN2U5MTMxMGFlNzgwMTk1NGExMDJmMmM3OGY4
YTJlNGRkYmU4MmUwMC4uM2YxZDU2Y2RiZjVjZjdhOTg5OTA2YmVlYmJlYTY2MjA5MDAwZTZjMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQKQEAgLTE4
NSwzICsxODUsNyBAQCBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2UuaHRtbAogCiAj
IEhpRFBJIHRlc3RzIGhhdmUgbG93ZXItbGV2ZWwgcGxhdGZvcm0gZGVwZW5kZW5jaWVzIG9uIE1h
YwogZmFzdC9oaWRwaQorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdl
cyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0
aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNTljZGE4YWEy
ODMxMTE4ZGNmNzdjNzdiYTFkZTcyMTEwNDc1N2I0Zi4uZjM3NjVlN2FlZGY5Njc5NjVjZDgzOWRk
YzlkYjNmNTY1ODU5MjExZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTQ5OCwzICs0
OTgsNyBAQCBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFycmF5cy5odG1sCiAK
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ4CiBmYXN0L2Nh
bnZhcy93ZWJnbC93ZWJnbC10ZXh0dXJlLWJpbmRpbmctcHJlc2VydmVkLmh0bWwKKworIyBGcmFt
ZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlv
bgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCmluZGV4IGQ5ZjNlZGY4MWZhMjNjZmU1ZTQ0YWQ4ZTY3
NDgzNjg4OGI1NjU4ZDguLjU3ZGI5NWJhYzJkZTE5YmRiNjY0NzI5ZTA2ODEyOWM4N2YzNDk0MTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCkBAIC02OTkwLDMgKzY5OTAsNyBAQCBl
ZGl0aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My0xLmh0bWwKICMgW1F0XSBlZGl0aW5nL3NlbGVjdGlv
bi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbCBmYWlscyB3aXRoIFF0
NQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTgKIGVkaXRp
bmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCisK
KyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBz
ZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYx
CitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAppbmRleCBhZjFmN2I5Mzc5YTYxZTMzNGJl
ZjJlYjY0MmNlYmYxNmNkMjQzOGI0Li44NDI5YWZiOWI5ZjIyNWVlOGI5ODExMDNhZDBkYmMzZDQx
ZDFhYjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZApAQCAtNTI1MywzICs1MjUz
LDcgQEAgc3ZnL2ZvcmVpZ25PYmplY3QvbWFzay5odG1sCiBzdmcvZm9yZWlnbk9iamVjdC9tdWx0
aXBsZS1mb3JlaWduLW9iamVjdHMuaHRtbAogc3ZnL3pvb20vcGFnZS96b29tLWJhY2tncm91bmQt
aW1hZ2VzLmh0bWwKIHN2Zy96b29tL3BhZ2Uvem9vbS1zdmctYXMtYmFja2dyb3VuZC13aXRoLXJl
bGF0aXZlLXNpemUuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBw
YWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2Vs
ZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKaW5kZXgg
MTRmNGFiNDc4YWQzOGNhYzg0ODhkMzQ0YTk3ZTBkNDVlYWJjMmRjOC4uZDc5MDM2ZDY0YTYwNDJj
NDg2NTMyZGRiNjUyZTA0ZDYyZGE3MzUzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBw
ZWQKQEAgLTE4NTQsMyArMTg1NCw3IEBAIGZhc3QvdHJhbnNmb3Jtcy9zY3JvbGxJbnRvVmlldy10
cmFuc2Zvcm1lZC5odG1sCiAjIFtRdF1bV0syXSBmYXN0L211bHRpY29sL3BhZ2luYXRpb24tdi12
ZXJ0aWNhbC1sci5odG1sIGNyYXNoZXMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTczNDM2CiBmYXN0L211bHRpY29sL3BhZ2luYXRpb24tdi12ZXJ0aWNhbC1sci5o
dG1sNWxpYgorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0
IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRp
c2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggMDVhZjA4Y2VmM2QxMDJj
ZDhlZTZiZmVlYTc1N2RmMzU3Y2NkNjE4ZS4uMmEzNjEzYTU4NmQ2NDQ2OTFjY2JiMGU5MTRiOTI4
ZDRiY2ZhYjNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTg3Nyw2ICs4NzcsMTAg
QEAgaHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRz
LW1heC1hZ2UtaHR0cHMuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjQzMTMKIGxvYWRlci9sb2FkLWRlZmVyLXJlc3VtZS1jcmFzaC5odG1sCiAKKyMgRnJh
bWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rp
b24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0
aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAj
IyMgRU5EIE9GICgxKSBDbGFzc2lmaWVkIGZhaWx1cmVzIHdpdGggYnVnIHJlcG9ydHMKICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117625</attachid>
            <date>2011-12-02 08:03:35 -0800</date>
            <delta_ts>2011-12-06 10:05:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111202160334.patch</filename>
            <type>text/plain</type>
            <size>28281</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3ZDU2OWRjNjJmNTg2
MGMyMTZiZmYwZWQ4YjdhZDQxMGVmMWE0Yi4uODQwMmMxYWZkNWI3ZmZmMWU2ZTQ2ODc2YWQ0NzY2
YWRkZWM3OTkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGZpbmRT
dHJpbmdVc2luZ01hcmtlcnMgdG8gRWRpdG9yLiBUaGlzIG5ldyBtZXRob2QgdXNlcyBtYXJrZXJz
CisgICAgICAgIHRvIGluZGljYXRlIHRoZSBhY3RpdmUgZmluZCByZXN1bHQuCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6ZmluZFN0cmluZ1VzaW5nTWFya2Vycyk6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuaDoKKwogMjAxMS0xMi0wMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxpdCB2aWV3IHdvcmtzIHdlaXJkbHkgaW4g
bmV0d29yayBwYW5lbCB3aGVuIHJlc2l6aW5nLCBzaG93aW5nL2hpZGluZyBtYWluIGVsZW1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA4Yjg3ZDhkMWY5MjdiMGI5ZDMyYmYzNzc2
N2Q2OTBiNjg3M2NlOTIuLmRjY2QwMWYzNGRkZjM5YTgxYTgzMmU0OTc4ZTBiM2Y0YTE4ZGU2YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMTcg
IE1hcnRpbiBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQg
b24gd2ViIHBhZ2VzIHdpdGggLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHdp
bGwgbWFrZSBpdCBwb3NzaWJsZSB0byBzZWFyY2ggZm9yIHRleHQgdGhhdCBoYXMKKyAgICAgICAg
c2VsZWN0aW9uIGRpc2FibGVkICh2aWEgdGhlIHdlYmtpdC11c2VyLXNlbGVjdCBhdHRyaWJ1dGUp
LgorCisgICAgICAgIFdlYkZyYW1lSW1wbDo6ZmluZCB3aWxsIHVzZSBmaW5kU3RyaW5nVXNpbmdN
YXJrZXJzLCB3aGljaCBpcyBzaW1pbGFyCisgICAgICAgIHRvIGZpbmRTdHJpbmcgZXhjZXB0IHRo
YXQgaXQgbWFuaXB1bGF0ZXMgbWFya2VycyBkaXJlY3RseSByYXRoZXIKKyAgICAgICAgdGhhbiBw
YXNzaW5nIHRoZSBmaW5kIHJlc3VsdCBpbiB0aGUgYWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAg
ICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6
OmZpbmQpOgorCiAyMDExLTEyLTAyICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFrZSBDQ0lucHV0SGFuZGxlciBzY3JvbGxpbmcg
c3RhdGVmdWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBkMDBjZTEyN2E3ODc3Nzhj
NmEwZGRjNDkyZGQ2NWRiMWZkNjdkMmU0Li5kZTJiNWQzOGZiOWYxMGVmYzI4YmVjZWJkZTM5ZDky
Njg2MTU4ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02OSw2ICs2OSw3IEBA
CiAjaW5jbHVkZSAiVGV4dENoZWNraW5nSGVscGVyLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRy
b2wuaCIKICNpbmNsdWRlICJSZW5kZXJlZFBvc2l0aW9uLmgiCkBAIC0yNzcxLDYgKzI3NzIsMjUg
QEAgYm9vbCBFZGl0b3I6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRp
b25zIG9wdGlvbnMpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NSZWZQdHI8UmFuZ2U+IEVk
aXRvcjo6ZmluZFN0cmluZ0FuZFNjcm9sbFRvVmlzaWJsZShjb25zdCBTdHJpbmcmIHRhcmdldCwg
UmFuZ2UqIHByZXZpb3VzTWF0Y2gsIEZpbmRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgUmVmUHRy
PFJhbmdlPiBuZXh0TWF0Y2g7CisgICAgZG8geworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICAgICAgbmV4dE1hdGNoID0gcmFuZ2VPZlN0cmluZyh0YXJnZXQsIHByZXZpb3VzTWF0
Y2gsIG9wdGlvbnMpOworICAgICAgICBpZiAoIW5leHRNYXRjaCB8fCAobmV4dE1hdGNoLT5jb2xs
YXBzZWQoZWMpICYmICFuZXh0TWF0Y2gtPnN0YXJ0Q29udGFpbmVyKCktPmlzSW5TaGFkb3dUcmVl
KCkpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfSB3aGlsZSAoIWluc2lkZVZpc2libGVB
cmVhKG5leHRNYXRjaC5nZXQoKSkpOworCisgICAgLy8gU2Nyb2xsIHRoZSByZXN1bHQgaW50byB2
aWV3LgorICAgIG5leHRNYXRjaC0+Zmlyc3ROb2RlKCktPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xh
eWVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoCisgICAgICAgIG5leHRNYXRjaC0+Ym91bmRpbmdC
b3goKSwKKyAgICAgICAgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLAorICAg
ICAgICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworCisgICAgcmV0dXJu
IG5leHRNYXRjaC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFu
Z2VPZlN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBG
aW5kT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKaW5kZXggMTBkNzA5ODZkYzUyZDVmOGNkMzk2ZTgyNjM0ZDA5YTQ0Yzc2
NWY3Yy4uMDM5MjkwYmNiMGRlMWE5MTM2YjZjOTQxMmM0YTU0ZGFjN2E4N2IwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHVibGljOgogICAgIGJvb2wgZmlu
ZFN0cmluZyhjb25zdCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wg
d3JhcEZsYWcsIGJvb2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdl
PiByYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOworICAg
IFBhc3NSZWZQdHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3QgU3Ry
aW5nJiwgUmFuZ2UqLCBGaW5kT3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBtYXJrKCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAg
ICB2b2lkIHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZWU5NGI5MmJmYzUwMGVjNmI3MWQ2
MTk5OTg0ZmYwM2MyOWNkMGU1ZS4uMGQwOGQ0YTkyNDQ3YjIxYjZlZGM3YjYwZmY5ZDA3ODhlMzFm
MTgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBA
IC0xNTEyLDk0ICsxNTEyLDgwIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlm
aWVyLAogewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1h
aW5GcmFtZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKKyAgICBpZiAoIW9w
dGlvbnMuZmluZE5leHQpIHsKICAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0
TWF0Y2hlcygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0
Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgotCi0gICAgLy8g
U3RhcnRzIHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAgYm9vbCBz
dGFydEluU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgorICAgICAgICBz
ZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UpOworICAgIH0KIAogICAg
IC8vIElmIHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBzb21ldGhpbmcgc2luY2UgdGhlIGxhc3QgRmlu
ZCBvcGVyYXRpb24gd2Ugd2FudAogICAgIC8vIHRvIHN0YXJ0IGZyb20gdGhlcmUuIE90aGVyd2lz
ZSwgd2Ugc3RhcnQgc2VhcmNoaW5nIGZyb20gd2hlcmUgdGhlIGxhc3QgRmluZAogICAgIC8vIG9w
ZXJhdGlvbiBsZWZ0IG9mZiAoZWl0aGVyIGEgRmluZCBvciBhIEZpbmROZXh0IG9wZXJhdGlvbiku
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNl
bGVjdGlvbigpKTsKICAgICBib29sIGFjdGl2ZVNlbGVjdGlvbiA9ICFzZWxlY3Rpb24uaXNOb25l
KCk7Ci0gICAgaWYgKCFhY3RpdmVTZWxlY3Rpb24gJiYgbV9hY3RpdmVNYXRjaCkgewotICAgICAg
ICBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG1fYWN0aXZlTWF0Y2guZ2V0KCkpOwotICAg
ICAgICBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAg
aWYgKGFjdGl2ZVNlbGVjdGlvbikgeworICAgICAgICBtX2FjdGl2ZU1hdGNoID0gc2VsZWN0aW9u
LmZpcnN0UmFuZ2UoKS5nZXQoKTsKKyAgICAgICAgZXhlY3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpm
cm9tVVRGOCgiVW5zZWxlY3QiKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGZyYW1lKCkgJiYgZnJh
bWUoKS0+dmlldygpKTsKLSAgICBib29sIGZvdW5kID0gZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRT
dHJpbmcoCi0gICAgICAgIHNlYXJjaFRleHQsIG9wdGlvbnMuZm9yd2FyZCwgb3B0aW9ucy5tYXRj
aENhc2UsIHdyYXBXaXRoaW5GcmFtZSwKLSAgICAgICAgc3RhcnRJblNlbGVjdGlvbik7Ci0gICAg
aWYgKGZvdW5kKSB7Ci0gICAgICAgIC8vIFN0b3JlIHdoaWNoIGZyYW1lIHdhcyBhY3RpdmUuIFRo
aXMgd2lsbCBjb21lIGluIGhhbmR5IGxhdGVyIHdoZW4gd2UKLSAgICAgICAgLy8gY2hhbmdlIHRo
ZSBhY3RpdmUgbWF0Y2ggb3JkaW5hbCBiZWxvdy4KLSAgICAgICAgV2ViRnJhbWVJbXBsKiBvbGRB
Y3RpdmVGcmFtZSA9IG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZTsKLSAgICAgICAg
Ly8gU2V0IHRoaXMgZnJhbWUgYXMgdGhlIGFjdGl2ZSBmcmFtZSAodGhlIG9uZSB3aXRoIHRoZSBh
Y3RpdmUgaGlnaGxpZ2h0KS4KLSAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZy
YW1lID0gdGhpczsKLQotICAgICAgICAvLyBXZSBmb3VuZCBzb21ldGhpbmcsIHNvIHdlIGNhbiBu
b3cgcXVlcnkgdGhlIHNlbGVjdGlvbiBmb3IgaXRzIHBvc2l0aW9uLgotICAgICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkp
OwotICAgICAgICBJbnRSZWN0IGN1cnJTZWxlY3Rpb25SZWN0OwotCi0gICAgICAgIC8vIElmIHdl
IHRob3VnaHQgd2UgZm91bmQgc29tZXRoaW5nLCBidXQgaXQgY291bGRuJ3QgYmUgc2VsZWN0ZWQg
KHBlcmhhcHMKLSAgICAgICAgLy8gYmVjYXVzZSBpdCB3YXMgbWFya2VkIC13ZWJraXQtdXNlci1z
ZWxlY3Q6IG5vbmUpLCB3ZSBjYW4ndCBzZXQgaXQgdG8KLSAgICAgICAgLy8gYmUgYWN0aXZlIGJ1
dCB3ZSBzdGlsbCBjb250aW51ZSBzZWFyY2hpbmcuIFRoaXMgbWF0Y2hlcyBTYWZhcmkncwotICAg
ICAgICAvLyBiZWhhdmlvciwgaW5jbHVkaW5nIHNvbWUgb2RkaXRpZXMgd2hlbiBzZWxlY3RhYmxl
IGFuZCB1bi1zZWxlY3RhYmxlIHRleHQKLSAgICAgICAgLy8gYXJlIG1peGVkIG9uIGEgcGFnZTog
c2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyNy4KLSAgICAg
ICAgaWYgKG5ld1NlbGVjdGlvbi5pc05vbmUoKSB8fCAobmV3U2VsZWN0aW9uLnN0YXJ0KCkgPT0g
bmV3U2VsZWN0aW9uLmVuZCgpKSkKLSAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2ggPSAwOwotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2ggPSBuZXdTZWxlY3Rpb24udG9O
b3JtYWxpemVkUmFuZ2UoKTsKLSAgICAgICAgICAgIGN1cnJTZWxlY3Rpb25SZWN0ID0gbV9hY3Rp
dmVNYXRjaC0+Ym91bmRpbmdCb3goKTsKLSAgICAgICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2Fj
dGl2ZU1hdGNoLmdldCgpLCB0cnVlKTsgLy8gQWN0aXZlLgotICAgICAgICAgICAgLy8gV2ViS2l0
IGRyYXdzIHRoZSBoaWdobGlnaHRpbmcgZm9yIGFsbCBtYXRjaGVzLgotICAgICAgICAgICAgZXhl
Y3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiVW5zZWxlY3QiKSk7Ci0gICAgICAgIH0K
LQotICAgICAgICAvLyBNYWtlIHN1cmUgbm8gbm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2Ny
YnVnLmNvbS8zODcwMC4KLSAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5v
ZGUoMCk7CisgICAgY29uc3QgRmluZE9wdGlvbnMgZmluZE9wdGlvbnMgPSAob3B0aW9ucy5mb3J3
YXJkID8gMCA6IEJhY2t3YXJkcykgfAorICAgICAgICAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDog
Q2FzZUluc2Vuc2l0aXZlKSB8CisgICAgICAgICh3cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5k
IDogMCkgfAorICAgICAgICAoIW9wdGlvbnMuZmluZE5leHQgPyBTdGFydEluU2VsZWN0aW9uIDog
MCk7CisgICAgbV9hY3RpdmVNYXRjaCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nQW5k
U2Nyb2xsVG9WaXNpYmxlKAorICAgICAgICBzZWFyY2hUZXh0LAorICAgICAgICBtX2FjdGl2ZU1h
dGNoLmdldCgpLAorICAgICAgICBmaW5kT3B0aW9ucyk7CisKKyAgICBpZiAoIW1fYWN0aXZlTWF0
Y2gpIHsKKyAgICAgICAgLy8gRXJhc2UgYWxsIHByZXZpb3VzIHRpY2ttYXJrcyBhbmQgaGlnaGxp
Z2h0aW5nLgorICAgICAgICBpbnZhbGlkYXRlQXJlYShJbnZhbGlkYXRlQWxsKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KIAotICAgICAgICBpZiAoIW9wdGlvbnMuZmluZE5leHQgfHwg
YWN0aXZlU2VsZWN0aW9uKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGVpdGhlciBhIEZpbmQg
b3BlcmF0aW9uIG9yIGEgRmluZC1uZXh0IGZyb20gYSBuZXcgc3RhcnQgcG9pbnQKLSAgICAgICAg
ICAgIC8vIGR1ZSB0byBhIHNlbGVjdGlvbiwgc28gd2Ugc2V0IHRoZSBmbGFnIHRvIGFzayB0aGUg
c2NvcGluZyBlZmZvcnQKLSAgICAgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFjdGl2ZSByZWN0IGZv
ciB1cyBzbyB3ZSBjYW4gdXBkYXRlIHRoZSBvcmRpbmFsIChuIG9mIG0pLgotICAgICAgICAgICAg
bV9sb2NhdGluZ0FjdGl2ZVJlY3QgPSB0cnVlOworICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2
ZU1hdGNoLmdldCgpLCB0cnVlKTsKKyAgICAvLyBTdG9yZSB3aGljaCBmcmFtZSB3YXMgYWN0aXZl
LiBUaGlzIHdpbGwgY29tZSBpbiBoYW5keSBsYXRlciB3aGVuIHdlCisgICAgLy8gY2hhbmdlIHRo
ZSBhY3RpdmUgbWF0Y2ggb3JkaW5hbCBiZWxvdy4KKyAgICBXZWJGcmFtZUltcGwqIG9sZEFjdGl2
ZUZyYW1lID0gbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lOworICAgIC8vIFNldCB0
aGlzIGZyYW1lIGFzIHRoZSBhY3RpdmUgZnJhbWUgKHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhp
Z2hsaWdodCkuCisgICAgbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhpczsK
KworICAgIC8vIE1ha2Ugc3VyZSBubyBub2RlIGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcu
Y29tLzM4NzAwLgorICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnNldEZvY3VzZWROb2RlKDApOwor
CisgICAgaWYgKCFvcHRpb25zLmZpbmROZXh0IHx8IGFjdGl2ZVNlbGVjdGlvbikgeworICAgICAg
ICAvLyBUaGlzIGlzIGVpdGhlciBhIEZpbmQgb3BlcmF0aW9uIG9yIGEgRmluZC1uZXh0IGZyb20g
YSBuZXcgc3RhcnQgcG9pbnQKKyAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBz
ZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAorICAgICAgICAvLyB0byBmaW5k
IHRoZSBhY3RpdmUgcmVjdCBmb3IgdXMgc28gd2UgY2FuIHVwZGF0ZSB0aGUgb3JkaW5hbCAobiBv
ZiBtKS4KKyAgICAgICAgbV9sb2NhdGluZ0FjdGl2ZVJlY3QgPSB0cnVlOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChvbGRBY3RpdmVGcmFtZSAhPSB0aGlzKSB7CisgICAgICAgICAgICAvLyBJ
ZiB0aGUgYWN0aXZlIGZyYW1lIGhhcyBjaGFuZ2VkIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZSBhIG11
bHRpLWZyYW1lCisgICAgICAgICAgICAvLyBwYWdlIGFuZCB3ZSBqdXN0IHN3aXRjaCB0byBzZWFy
Y2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAorICAgICAgICAgICAgLy8gd2FudCB0
byByZXNldCB0aGUgaW5kZXguCisgICAgICAgICAgICBpZiAob3B0aW9ucy5mb3J3YXJkKQorICAg
ICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDA7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAob2xkQWN0aXZlRnJhbWUgIT0gdGhp
cykgewotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBhY3RpdmUgZnJhbWUgaGFzIGNoYW5nZWQg
aXQgbWVhbnMgdGhhdCB3ZSBoYXZlIGEgbXVsdGktZnJhbWUKLSAgICAgICAgICAgICAgICAvLyBw
YWdlIGFuZCB3ZSBqdXN0IHN3aXRjaCB0byBzZWFyY2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4g
d2UganVzdAotICAgICAgICAgICAgICAgIC8vIHdhbnQgdG8gcmVzZXQgdGhlIGluZGV4LgotICAg
ICAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCi0gICAgICAgICAgICAgICAgICAgIG1f
YWN0aXZlTWF0Y2hJbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIHRoZSBhY3Rp
dmUgZnJhbWUsIHNvIGluY3JlbWVudCAob3IgZGVjcmVtZW50KSB0aGUKLSAgICAgICAgICAgICAg
ICAvLyB8bV9hY3RpdmVNYXRjaEluZGV4fCwgd3JhcHBpbmcgaWYgbmVlZGVkIChvbiBzaW5nbGUg
ZnJhbWUgcGFnZXMpLgotICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9yd2FyZCA/ICsrbV9hY3Rp
dmVNYXRjaEluZGV4IDogLS1tX2FjdGl2ZU1hdGNoSW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYg
KG1fYWN0aXZlTWF0Y2hJbmRleCArIDEgPiBtX2xhc3RNYXRjaENvdW50KQotICAgICAgICAgICAg
ICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSAwOwotICAgICAgICAgICAgICAgIGlmIChtX2Fj
dGl2ZU1hdGNoSW5kZXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJ
bmRleCA9IG1fbGFzdE1hdGNoQ291bnQgLSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKHNlbGVjdGlvblJlY3QpIHsKLSAgICAgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9IGZy
YW1lVmlldygpLT5jb250ZW50c1RvV2luZG93KGN1cnJTZWxlY3Rpb25SZWN0KTsKLSAgICAgICAg
ICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2
ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlmaWVyKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IC8vIFdlIGFyZSBzdGlsbCB0aGUgYWN0aXZlIGZyYW1lLCBzbyBpbmNyZW1lbnQgKG9yIGRlY3Jl
bWVudCkgdGhlCisgICAgICAgICAgICAvLyB8bV9hY3RpdmVNYXRjaEluZGV4fCwgd3JhcHBpbmcg
aWYgbmVlZGVkIChvbiBzaW5nbGUgZnJhbWUgcGFnZXMpLgorICAgICAgICAgICAgb3B0aW9ucy5m
b3J3YXJkID8gKyttX2FjdGl2ZU1hdGNoSW5kZXggOiAtLW1fYWN0aXZlTWF0Y2hJbmRleDsKKyAg
ICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggKyAxID4gbV9sYXN0TWF0Y2hDb3VudCkK
KyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSAwOworICAgICAgICAgICAgaWYg
KG1fYWN0aXZlTWF0Y2hJbmRleCA9PSAtMSkKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
SW5kZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2Vs
ZWN0aW9uUmVjdCkgeworICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBmcmFtZVZpZXcoKS0+
Y29udGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgpKTsKKyAgICAgICAg
ICAgIHJlcG9ydEZpbmRJblBhZ2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3QsIG1fYWN0aXZlTWF0
Y2hJbmRleCArIDEsIGlkZW50aWZpZXIpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgLy8gTm90aGluZyB3YXMgZm91bmQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgbV9hY3RpdmVN
YXRjaCA9IDA7Ci0KLSAgICAgICAgLy8gRXJhc2UgYWxsIHByZXZpb3VzIHRpY2ttYXJrcyBhbmQg
aGlnaGxpZ2h0aW5nLgotICAgICAgICBpbnZhbGlkYXRlQXJlYShJbnZhbGlkYXRlQWxsKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gZm91bmQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2Vi
RnJhbWVJbXBsOjpzdG9wRmluZGluZyhib29sIGNsZWFyU2VsZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVmYTBlYmRmMjQ3NTBkM2Mx
NDc0ZjAwMjE4NTA2MTk2ZmQ5ZTQ0MzYuLjI5ZDQzYTU0OWNiOGY2MjczZTFmNDk5ZWU3OTlhNzI2
MjdjNzI0MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0
LXVzZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGVkIGEgcGFydGlhbCBmaW5kU3RyaW5nIGlt
cGxlbWVudGF0aW9uLiBUaGlzIGRvZXNuJ3Qgc3VwcG9ydAorICAgICAgICBhbGwgb2YgdGhlIEZp
bmRPcHRpb25zIHNpbmNlIHRoZXkncmUgbm90IGV4cG9zZWQgdmlhIFdlYkZpbmRPcHRpb25zLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDEx
LTEyLTAyICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDE3NTEgYW5kIHIxMDE3NzUuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggYWI1NjI2MjVkMTUxNzhkYTc1ZTM3ZDA0ODk3MTJkN2RkZWZlZjgzMS4uNDNmOWJmOGRm
NjNkMzczYTllYTU4ZGYxYWY4MjBkYzgzOWNiOGRjYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2lu
Y2x1ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgorI2luY2x1ZGUg
IldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCkBAIC0x
MjIsNiArMTIzLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZm9yY2VSZWRTZWxlY3Rpb25Db2xv
cnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICAg
ICBiaW5kTWV0aG9kKCJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKTsKICAg
ICBiaW5kTWV0aG9kKCJoYXNTcGVsbGluZ01hcmtlciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
aGFzU3BlbGxpbmdNYXJrZXIpOworICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcpOwogICAgIGJpbmRNZXRob2QoImlzQ29tbWFuZEVu
YWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzQ29tbWFuZEVuYWJsZWQpOwogICAgIGJp
bmRNZXRob2QoImlzUGFnZUJveFZpc2libGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzUGFn
ZUJveFZpc2libGUpOwogICAgIGJpbmRNZXRob2QoImxheWVyVHJlZUFzVGV4dCIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0KTsKQEAgLTE5NDAsNiArMTk0MiwzOCBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQwogICAgIHJlc3VsdC0+c2V0KG1fc2hlbGwtPndlYlZpZXco
KS0+bWFpbkZyYW1lKCktPnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoYXJndW1l
bnRzWzBdLnRvSW50MzIoKSwgYXJndW1lbnRzWzFdLnRvSW50MzIoKSkpOwogfQogCit2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PCAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViRmluZE9wdGlvbnMgZmluZE9wdGlvbnM7CisgICAgYm9vbCB3cmFwQXJvdW5kID0gZmFsc2U7
CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMikgeworICAgICAgICBWZWN0b3I8c3RkOjpz
dHJpbmc+IG9wdGlvbnNBcnJheSA9IGFyZ3VtZW50c1sxXS50b1N0cmluZ1ZlY3RvcigpOworICAg
ICAgICBmaW5kT3B0aW9ucy5tYXRjaENhc2UgPSB0cnVlOworCisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb3B0aW9uc0FycmF5LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjb25z
dCBzdGQ6OnN0cmluZyYgb3B0aW9uID0gb3B0aW9uc0FycmF5W2ldOworICAgICAgICAgICAgLy8g
RklYTUU6IFN1cHBvcnQgYWxsIHRoZSBvcHRpb25zLCBzbyB3ZSBjYW4gcnVuIGZpbmRTdHJpbmcu
aHRtbCB0b28uCisgICAgICAgICAgICBpZiAob3B0aW9uID09ICJDYXNlSW5zZW5zaXRpdmUiKQor
ICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLm1hdGNoQ2FzZSA9IGZhbHNlOworICAgICAgICAg
ICAgZWxzZSBpZiAob3B0aW9uID09ICJCYWNrd2FyZHMiKQorICAgICAgICAgICAgICAgIGZpbmRP
cHRpb25zLmZvcndhcmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbiA9PSAi
V3JhcEFyb3VuZCIpCisgICAgICAgICAgICAgICAgd3JhcEFyb3VuZCA9IHRydWU7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBtX3NoZWxsLT53ZWJWaWV3KCktPm1h
aW5GcmFtZSgpOworICAgIGNvbnN0IGJvb2wgZmluZFJlc3VsdCA9IGZyYW1lLT5maW5kKDAsCisg
ICAgICAgIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLAorICAgICAgICBmaW5k
T3B0aW9ucywKKyAgICAgICAgd3JhcEFyb3VuZCwKKyAgICAgICAgMCk7CisgICAgcmVzdWx0LT5z
ZXQoZmluZFJlc3VsdCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmlt
dW1UaW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA1ODVh
MTUyNTQyYWEyYzkzMWQzMmNkNDg2YWM1MDU4MThkMjc4MjRlLi4zNzQ5ZWZmYTQ4ZTdkZTM3MGUw
N2Q4YWM2MGM3OTVjNWIwMTg2NjkzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTM4Myw2ICszODMsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBmaW5kU3RyaW5nKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgc2V0TWluaW11bVRpbWVy
SW50ZXJ2YWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjEwZDQ4ZWY1M2RiODRiYWMzOGUxN2FhYmIyYTU2ZGM4YTRhMDI0YS4uN2ZkYjViMjgwOGFjMGUx
OGFiODdkOTcxOTczODcxMjU5YjQyYzVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEx
LTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBm
aW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9t
aXVtCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcy
MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIGEgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgZmluZCB3b3JrcyBjb3JyZWN0bHkgb24g
cGFnZXMKKyAgICAgICAgdGhhdCBwcmV2ZW50IHRleHQgc2VsZWN0aW9uLgorCisgICAgICAgICog
ZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJp
bmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay13azIvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93
bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LW1hYy9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3drMi9Ta2lwcGVkOgorCiAyMDExLTExLTI4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5saW5lIG5vbi1yZXBsYWNlZCBlbGVtZW50
cyBhcmUgcmVwb3J0ZWQgdG8gaGF2ZSB6ZXJvIHdpZHRoIGFuZCBoZWlnaHQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1k
aXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2
YjM2NWZmM2NlYjQzYzViZTA4ZTc2YmY1ZTFkM2E3OGNmMWUwZTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24t
ZGlzYWJsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDAgQEAKK1NlYXJjaGluZyBmb3IgJ2Un
IGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlv
biBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10p
IGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBj
YW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmZpbmRTdHJpbmcoJ28nLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICd5
JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rp
b24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScsIFtd
KSBpcyBmYWxzZQorCitTZWFyY2hpbmcgZm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRo
YXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcg
Zm9yICdtb3VudCcgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBl
bmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdtb3VudCcsIFtd
KSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ1dhbGx5JyBpbiAnaW5zdXJtb3VudGFibGUgbW91
bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmZpbmRTdHJpbmcoJ1dhbGx5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3IgJ2UnIGlu
ICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBk
aXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnZScsIFtdKSBp
cyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ28nIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2Fu
IGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZmluZFN0cmluZygnbycsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3kn
IGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlv
biBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScsIFtd
KSBpcyBmYWxzZQorCitTZWFyY2hpbmcgZm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRo
YXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygndCB0JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5n
IGZvciAnbW91bnQnIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24g
ZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50Jywg
W10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBt
b3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmZpbmRTdHJpbmcoJ1dhbGx5JywgW10pIGlzIGZhbHNlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRt
bCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlv
bi1kaXNhYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYzcxODIwZjc3NWM1ZDdmYTMwY2YyZjY4NDFi
YWQ5MTdiNmE0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQt
aXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApAQCAtMCwwICsxLDU5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorIC5z
ZWxlY3Rpb25EaXNhYmxlZCB7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IH0KKyAuc2VsZWN0
aW9uRW5hYmxlZCB7IC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87IH0KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xl
IiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+PC9wcmU+Cis8c2NyaXB0PgorZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQor
CitmdW5jdGlvbiB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2Vycyh0ZXh0LCB0YXJnZXQsIGRpc2Fi
bGVTZWxlY3Rpb24sIGV4cGVjdGVkKQoreworICAgIHZhciBzZWxlY3Rpb25TdGF0dXMgPSBkaXNh
YmxlU2VsZWN0aW9uID8gInNlbGVjdGlvbiBkaXNhYmxlZDoiIDogInNlbGVjdGlvbiBlbmFibGVk
OiI7CisgICAgbG9nKCJTZWFyY2hpbmcgZm9yICciICsgdGFyZ2V0ICsgIicgaW4gJyIgKyB0ZXh0
ICsgIicgd2l0aCAiICsgc2VsZWN0aW9uU3RhdHVzKTsKKworICAgIHZhciBjb250YWluZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgY29udGFpbmVyLmlubmVy
VGV4dCA9IHRleHQ7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisKKyAgICBjb250YWlu
ZXIuY2xhc3NOYW1lID0gZGlzYWJsZVNlbGVjdGlvbiA/ICJzZWxlY3Rpb25EaXNhYmxlZCIgOiAi
c2VsZWN0aW9uRW5hYmxlZCI7CisKKyAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
ZmluZFN0cmluZygnIiArIHRhcmdldCArICInLCBbXSkiLCBleHBlY3RlZCk7CisKKyAgICBjb250
YWluZXIuaW5uZXJUZXh0ID0gIiI7CisgICAgbG9nKCIiKTsKK30KKworaWYgKCF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHRo
ZSBsYXlvdXRUZXN0Q29udHJvbGxlciBvYmplY3QnKTsKK2Vsc2UgeworICAgIGZvciAoaSA9IDA7
IGkgPCAyOyBpKyspIHsKKyAgICAgICAgdmFyIGRpc2FibGVTZWxlY3Rpb24gPSAoaSA9PSAxKTsK
KworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiU29tZSBzYW1wbGUgdGV4dCB0
aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJlIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAg
ICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBj
YW4gYmUgc2VhcmNoZWQiLCAibyIsIGRpc2FibGVTZWxlY3Rpb24sICJ0cnVlIik7CisgICAgICAg
IHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJzKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJl
IHNlYXJjaGVkIiwgInkiLCBkaXNhYmxlU2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICAgICAgdGVz
dEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2Vh
cmNoZWQiLCAidCB0IiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZp
bmRTdHJpbmdVc2luZ01hcmtlcnMoImluc3VybW91bnRhYmxlIG1vdW50YWluIiwgIm1vdW50Iiwg
ZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01h
cmtlcnMoImluc3VybW91bnRhYmxlIG1vdW50YWluIiwgIldhbGx5IiwgZGlzYWJsZVNlbGVjdGlv
biwgImZhbHNlIik7CisgICAgfQorfQorCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iik7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggMDUxMDNiZDZhM2ZlMTlmYzY5NTVhNjM0NDY1ZTYz
MDY2ZWM4MTVlNS4uZTQzNzRjMzAyMzg1NjBkODRkZmExZDRkZDhiOGY0MzBkYWJiM2JlNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTg0Miw2ICs4NDIsMTAgQEAgZmFzdC9kb20vdGlt
ZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbAogIyBFRkwncyBMYXlv
dXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBpbXBsZW1lbnQgc2V0VGV4dERpcmVjdGlvbgogZmFz
dC9odG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9l
cyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIEVGTCdzIERSVCBtaXNzZXMg
YW4gJ0VESVRJTkcgREVMRUdBVEUnIGltcGxlbWVudGF0aW9uCiBlZGl0aW5nL2lucHV0L2F0dHJp
YnV0ZWQtc3Vic3RyaW5nLWZyb20tcmFuZ2UtbGluZXMuaHRtbAogZWRpdGluZy90ZXh0LWl0ZXJh
dG9yL3RoYWktY3Vyc29yLW1vdmVtZW50Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tp
cHBlZAppbmRleCBkZTI2MTA1ZmFiYzMyODlmMzY3NTZkN2NkZjljZTU1ZDcwMmUxNTdlLi4wOWJj
N2VhNjJhYzdjYjBjN2QyZDJhMDhkZDA5ZjI1ODk0OGU3ZmY2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrLXdrMi9Ta2lwcGVkCkBAIC0zNzEsNiArMzcxLDEwIEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkv
d2ViZ2wtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWFsbG93ZWQuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYmxvY2tlZC1uby1jcm9zc29y
aWdpbi5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1p
bWFnZS1hbGxvd2VkLXdpdGgtY3JlZGVudGlhbHMuaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5n
IGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJh
dG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIwogIyBURVNUUyBGQUlMSU5HCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxpb24vU2tpcHBlZAppbmRleCAyN2RjNDE2NTFjZDFmOWIxZWNjZGM3MWRj
NjE5Nzc3YTk3YzNiYjI5Li44OWM3YTcyN2U3ZGI2NTliMjM2MDNkYzc4NWJkYzAzMTM2MGE2NDE2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQKQEAgLTUwLDYgKzUwLDEwIEBA
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3Rl
ZC13b3JkLTIuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvcmVtb3ZpbmctdW5k
ZXJsaW5lLWFmdGVyLWFjY2VwdGluZy1hdXRvY29ycmVjdGlvbi11c2luZy1wdW5jdHVhdGlvbi5o
dG1sICAKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBw
cmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sCisKICMgUGFzdGluZyByZXBsYWNlcyB0aGUgdGhyZWUgcGVyaW9kcyB3aXRoIGFu
IGVsbGlwc2lzIG9uIExpb24KIGVkaXRpbmcvcGFzdGVib2FyZC81NDc4MjUwLmh0bWwKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZAppbmRleCA3ZTkxMzEw
YWU3ODAxOTU0YTEwMmYyYzc4ZjhhMmU0ZGRiZTgyZTAwLi4zZjFkNTZjZGJmNWNmN2E5ODk5MDZi
ZWViYmVhNjYyMDkwMDBlNmMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
c25vd2xlb3BhcmQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xl
b3BhcmQvU2tpcHBlZApAQCAtMTg1LDMgKzE4NSw3IEBAIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8t
bG9hZC10d2ljZS5odG1sCiAKICMgSGlEUEkgdGVzdHMgaGF2ZSBsb3dlci1sZXZlbCBwbGF0Zm9y
bSBkZXBlbmRlbmNpZXMgb24gTWFjCiBmYXN0L2hpZHBpCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcg
ZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0
b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAppbmRleCAyYzFjM2NkOTE4MDhjNjg4ZWQ0MmJjMmQ2MWUzYzBkYWY2MTNlNDNkLi44NGM2
ZDMyNjRhODQ3NDBlNjE1ZTViYzU2YWY0ZTY1ODFiNDU1ZTZiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtNTA2LDMgKzUwNiw3IEBAIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXRleHR1
cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzQ5MwogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXlidWZmZXItdHJhbnNm
ZXItb2YtY29udHJvbC5odG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9u
IHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1z
ZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQtNS4wL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAppbmRl
eCBkOWYzZWRmODFmYTIzY2ZlNWU0NGFkOGU2NzQ4MzY4ODhiNTY1OGQ4Li41N2RiOTViYWMyZGUx
OWJkYjY2NDcyOWUwNjgxMjljODdmMzQ5NDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC01LjAvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tp
cHBlZApAQCAtNjk5MCwzICs2OTkwLDcgQEAgZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMtMS5o
dG1sCiAjIFtRdF0gZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRp
dGFibGUtZGl2Lmh0bWwgZmFpbHMgd2l0aCBRdDUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNDE4CiBlZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5z
LWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90
aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRT
dHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LW1hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBw
ZWQKaW5kZXggYWYxZjdiOTM3OWE2MWUzMzRiZWYyZWI2NDJjZWJmMTZjZDI0MzhiNC4uODQyOWFm
YjliOWYyMjVlZThiOTgxMTAzYWQwZGJjM2Q0MWQxYWI0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQt
bWFjL1NraXBwZWQKQEAgLTUyNTMsMyArNTI1Myw3IEBAIHN2Zy9mb3JlaWduT2JqZWN0L21hc2su
aHRtbAogc3ZnL2ZvcmVpZ25PYmplY3QvbXVsdGlwbGUtZm9yZWlnbi1vYmplY3RzLmh0bWwKIHN2
Zy96b29tL3BhZ2Uvem9vbS1iYWNrZ3JvdW5kLWltYWdlcy5odG1sCiBzdmcvem9vbS9wYWdlL3pv
b20tc3ZnLWFzLWJhY2tncm91bmQtd2l0aC1yZWxhdGl2ZS1zaXplLmh0bWwKKworIyBGcmFtZTo6
ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgor
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LXdrMi9Ta2lwcGVkCmluZGV4IDE0ZjRhYjQ3OGFkMzhjYWM4NDg4ZDM0NGE5N2Uw
ZDQ1ZWFiYzJkYzguLmQ3OTAzNmQ2NGE2MDQyYzQ4NjUzMmRkYjY1MmUwNGQ2MmRhNzM1MzAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCkBAIC0xODU0LDMgKzE4NTQsNyBAQCBmYXN0
L3RyYW5zZm9ybXMvc2Nyb2xsSW50b1ZpZXctdHJhbnNmb3JtZWQuaHRtbAogIyBbUXRdW1dLMl0g
ZmFzdC9tdWx0aWNvbC9wYWdpbmF0aW9uLXYtdmVydGljYWwtbHIuaHRtbCBjcmFzaGVzCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNgogZmFzdC9tdWx0aWNv
bC9wYWdpbmF0aW9uLXYtdmVydGljYWwtbHIuaHRtbDVsaWIKKworIyBGcmFtZTo6ZmluZFN0cmlu
ZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkCmluZGV4IDA1YWYwOGNlZjNkMTAyY2Q4ZWU2YmZlZWE3NTdkZjM1N2NjZDYxOGUuLjJh
MzYxM2E1ODZkNjQ0NjkxY2NiYjBlOTE0YjkyOGQ0YmNmYWIzZGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9Ta2lwcGVkCkBAIC04NzcsNiArODc3LDEwIEBAIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1v
bmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwKICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzEzCiBsb2FkZXIvbG9hZC1kZWZl
ci1yZXN1bWUtY3Jhc2guaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBv
biBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmct
c2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyMjIEVORCBPRiAoMSkgQ2xhc3NpZmllZCBmYWls
dXJlcyB3aXRoIGJ1ZyByZXBvcnRzCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118066</attachid>
            <date>2011-12-06 10:05:49 -0800</date>
            <delta_ts>2011-12-09 05:47:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111206180547.patch</filename>
            <type>text/plain</type>
            <size>29635</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE2ZDMyODcxYzJjZTVi
NmMzYTJkNjM3NjQ1YWJjZDJlMDNmMzAxZi4uMWExMTUwZmViYmM2Zjk5ZGU3ZmZhMzlhNGZmNzgw
NmIwNzEwZmIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTA2ICBK
YXJyZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KIAogICAgICAgICBnZXRDb21wdXRl
ZFN0eWxlIHJldHVybnMgd3JvbmcgdmFsdWUgZm9yIG1hcmdpbi0qCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGNjNGIwYWFjNDZkMjliMjE3MjIwMzJjNDE5MzI2ZGVlMmNiZjZkNzQuLjBm
N2UxZjk1NTJkMDUwYjFlMWI3OTA0MzZkODc1NzQ0NTBmOTVlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxt
a29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQgb24gd2ViIHBhZ2VzIHdpdGgg
LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgcG9zc2libGUg
dG8gc2VhcmNoIGZvciB0ZXh0IHRoYXQgaGFzCisgICAgICAgIHNlbGVjdGlvbiBkaXNhYmxlZCAo
dmlhIHRoZSB3ZWJraXQtdXNlci1zZWxlY3QgYXR0cmlidXRlKS4KKworICAgICAgICBXZWJGcmFt
ZUltcGw6OmZpbmQgd2lsbCB1c2UgZmluZFN0cmluZ0FuZFNjcm9sbFRvVmlzaWJsZSwgd2hpY2gg
aXMKKyAgICAgICAgc2ltaWxhciB0byBmaW5kU3RyaW5nIGV4Y2VwdCB0aGF0IGl0IG1hbmlwdWxh
dGVzIG1hcmtlcnMgZGlyZWN0bHkgcmF0aGVyCisgICAgICAgIHRoYW4gcGFzc2luZyB0aGUgZmlu
ZCByZXN1bHQgaW4gdGhlIGFjdGl2ZSBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBzcmMvV2ViRnJh
bWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpmaW5kKToKKwogMjAx
MS0xMi0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMjEwMi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCBlZmY5MDAyZDdkNTllOTUyZjcxZDZjZDMyNmJkOGQ4MTc4ODJmOWFiLi40
MTFmNmVkZTcyNDM5YTZkNTAzODg4NGRkNTUwNGUwYTc1MWRhMDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNraW5nSGVs
cGVyLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJlZFBv
c2l0aW9uLmgiCkBAIC0yNzcyLDYgKzI3NzMsMjAgQEAgYm9vbCBFZGl0b3I6OmZpbmRTdHJpbmco
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK1Bhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6ZmluZFN0cmluZ0FuZFNjcm9sbFRv
VmlzaWJsZShjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHByZXZpb3VzTWF0Y2gsIEZpbmRP
cHRpb25zIG9wdGlvbnMpCit7CisgICAgUmVmUHRyPFJhbmdlPiBuZXh0TWF0Y2ggPSByYW5nZU9m
U3RyaW5nKHRhcmdldCwgcHJldmlvdXNNYXRjaCwgb3B0aW9ucyk7CisgICAgaWYgKCFuZXh0TWF0
Y2gpCisgICAgICAgIHJldHVybiAwOworCisgICAgbmV4dE1hdGNoLT5maXJzdE5vZGUoKS0+cmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZSgKKyAgICAgICAg
bmV4dE1hdGNoLT5ib3VuZGluZ0JveCgpLAorICAgICAgICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWdu
Q2VudGVySWZOZWVkZWQsCisgICAgICAgIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5l
ZWRlZCk7CisKKyAgICByZXR1cm4gbmV4dE1hdGNoLnJlbGVhc2UoKTsKK30KKwogUGFzc1JlZlB0
cjxSYW5nZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5n
ZSogcmVmZXJlbmNlUmFuZ2UsIEZpbmRPcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgaWYgKHRhcmdl
dC5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxMGQ3MDk4NmRjNTJkNWY4
Y2QzOTZlODI2MzRkMDlhNDRjNzY1ZjdjLi4wMzkyOTBiY2IwZGUxYTkxMzZiNmM5NDEyYzRhNTRk
YWM3YTg3YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTMzNSw2ICszMzUsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yd2FyZCwg
Ym9vbCBjYXNlRmxhZywgYm9vbCB3cmFwRmxhZywgYm9vbCBzdGFydEluU2VsZWN0aW9uKTsKIAog
ICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZTdHJpbmcoY29uc3QgU3RyaW5nJiwgUmFuZ2Uq
LCBGaW5kT3B0aW9ucyk7CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gZmluZFN0cmluZ0FuZFNjcm9s
bFRvVmlzaWJsZShjb25zdCBTdHJpbmcmLCBSYW5nZSosIEZpbmRPcHRpb25zKTsKIAogICAgIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG1hcmsoKSBjb25zdDsgLy8gTWFyaywgdG8gYmUgdXNlZCBh
cyBlbWFjcyB1c2VzIGl0LgogICAgIHZvaWQgc2V0TWFyayhjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCBm
MzA0MDJjZmU1OWJhMTIwZmEzNTJiYzY2MTI0OGU4MWViMzIyMGYxLi4yODA1ZjM5NDVlMTNlN2Q2
M2U3YTYxMGI5ZmVkMmE0YTEzNmE0ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE1MTgsOTQgKzE1MTgsNjcgQEAgYm9vbCBXZWJGcmFtZUlt
cGw6OmZpbmQoaW50IGlkZW50aWZpZXIsCiB7CiAgICAgV2ViRnJhbWVJbXBsKiBtYWluRnJhbWVJ
bXBsID0gdmlld0ltcGwoKS0+bWFpbkZyYW1lSW1wbCgpOwogCi0gICAgaWYgKCFvcHRpb25zLmZp
bmROZXh0KQorICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkgewogICAgICAgICBmcmFtZSgpLT5w
YWdlKCktPnVubWFya0FsbFRleHRNYXRjaGVzKCk7Ci0gICAgZWxzZQotICAgICAgICBzZXRNYXJr
ZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UpOyAvLyBBY3RpdmUgbWF0Y2ggaXMg
Y2hhbmdpbmcuCi0KLSAgICAvLyBTdGFydHMgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IHNl
bGVjdGlvbi4KLSAgICBib29sIHN0YXJ0SW5TZWxlY3Rpb24gPSB0cnVlOworICAgICAgICBtX2Fj
dGl2ZU1hdGNoID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9h
Y3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UpOworICAgIH0KIAogICAgIC8vIElmIHRoZSB1c2VyIGhh
cyBzZWxlY3RlZCBzb21ldGhpbmcgc2luY2UgdGhlIGxhc3QgRmluZCBvcGVyYXRpb24gd2Ugd2Fu
dAogICAgIC8vIHRvIHN0YXJ0IGZyb20gdGhlcmUuIE90aGVyd2lzZSwgd2Ugc3RhcnQgc2VhcmNo
aW5nIGZyb20gd2hlcmUgdGhlIGxhc3QgRmluZAogICAgIC8vIG9wZXJhdGlvbiBsZWZ0IG9mZiAo
ZWl0aGVyIGEgRmluZCBvciBhIEZpbmROZXh0IG9wZXJhdGlvbikuCiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKICAgICBi
b29sIGFjdGl2ZVNlbGVjdGlvbiA9ICFzZWxlY3Rpb24uaXNOb25lKCk7Ci0gICAgaWYgKCFhY3Rp
dmVTZWxlY3Rpb24gJiYgbV9hY3RpdmVNYXRjaCkgewotICAgICAgICBzZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKG1fYWN0aXZlTWF0Y2guZ2V0KCkpOwotICAgICAgICBmcmFtZSgpLT5zZWxl
Y3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgaWYgKGFjdGl2ZVNlbGVjdGlv
bikgeworICAgICAgICBtX2FjdGl2ZU1hdGNoID0gc2VsZWN0aW9uLmZpcnN0UmFuZ2UoKS5nZXQo
KTsKKyAgICAgICAgZXhlY3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiVW5zZWxlY3Qi
KSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGZyYW1lKCkgJiYgZnJhbWUoKS0+dmlldygpKTsKLSAg
ICBib29sIGZvdW5kID0gZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRTdHJpbmcoCi0gICAgICAgIHNl
YXJjaFRleHQsIG9wdGlvbnMuZm9yd2FyZCwgb3B0aW9ucy5tYXRjaENhc2UsIHdyYXBXaXRoaW5G
cmFtZSwKLSAgICAgICAgc3RhcnRJblNlbGVjdGlvbik7Ci0gICAgaWYgKGZvdW5kKSB7Ci0gICAg
ICAgIC8vIFN0b3JlIHdoaWNoIGZyYW1lIHdhcyBhY3RpdmUuIFRoaXMgd2lsbCBjb21lIGluIGhh
bmR5IGxhdGVyIHdoZW4gd2UKLSAgICAgICAgLy8gY2hhbmdlIHRoZSBhY3RpdmUgbWF0Y2ggb3Jk
aW5hbCBiZWxvdy4KLSAgICAgICAgV2ViRnJhbWVJbXBsKiBvbGRBY3RpdmVGcmFtZSA9IG1haW5G
cmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZTsKLSAgICAgICAgLy8gU2V0IHRoaXMgZnJhbWUg
YXMgdGhlIGFjdGl2ZSBmcmFtZSAodGhlIG9uZSB3aXRoIHRoZSBhY3RpdmUgaGlnaGxpZ2h0KS4K
LSAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhpczsKLQotICAg
ICAgICAvLyBXZSBmb3VuZCBzb21ldGhpbmcsIHNvIHdlIGNhbiBub3cgcXVlcnkgdGhlIHNlbGVj
dGlvbiBmb3IgaXRzIHBvc2l0aW9uLgotICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbihmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOwotICAgICAgICBJbnRSZWN0
IGN1cnJTZWxlY3Rpb25SZWN0OwotCi0gICAgICAgIC8vIElmIHdlIHRob3VnaHQgd2UgZm91bmQg
c29tZXRoaW5nLCBidXQgaXQgY291bGRuJ3QgYmUgc2VsZWN0ZWQgKHBlcmhhcHMKLSAgICAgICAg
Ly8gYmVjYXVzZSBpdCB3YXMgbWFya2VkIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUpLCB3ZSBj
YW4ndCBzZXQgaXQgdG8KLSAgICAgICAgLy8gYmUgYWN0aXZlIGJ1dCB3ZSBzdGlsbCBjb250aW51
ZSBzZWFyY2hpbmcuIFRoaXMgbWF0Y2hlcyBTYWZhcmkncwotICAgICAgICAvLyBiZWhhdmlvciwg
aW5jbHVkaW5nIHNvbWUgb2RkaXRpZXMgd2hlbiBzZWxlY3RhYmxlIGFuZCB1bi1zZWxlY3RhYmxl
IHRleHQKLSAgICAgICAgLy8gYXJlIG1peGVkIG9uIGEgcGFnZTogc2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyNy4KLSAgICAgICAgaWYgKG5ld1NlbGVjdGlv
bi5pc05vbmUoKSB8fCAobmV3U2VsZWN0aW9uLnN0YXJ0KCkgPT0gbmV3U2VsZWN0aW9uLmVuZCgp
KSkKLSAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2ggPSAwOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIG1fYWN0aXZlTWF0Y2ggPSBuZXdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsK
LSAgICAgICAgICAgIGN1cnJTZWxlY3Rpb25SZWN0ID0gbV9hY3RpdmVNYXRjaC0+Ym91bmRpbmdC
b3goKTsKLSAgICAgICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCB0
cnVlKTsgLy8gQWN0aXZlLgotICAgICAgICAgICAgLy8gV2ViS2l0IGRyYXdzIHRoZSBoaWdobGln
aHRpbmcgZm9yIGFsbCBtYXRjaGVzLgotICAgICAgICAgICAgZXhlY3V0ZUNvbW1hbmQoV2ViU3Ry
aW5nOjpmcm9tVVRGOCgiVW5zZWxlY3QiKSk7Ci0gICAgICAgIH0KKyAgICBjb25zdCBGaW5kT3B0
aW9ucyBmaW5kT3B0aW9ucyA9IChvcHRpb25zLmZvcndhcmQgPyAwIDogQmFja3dhcmRzKQorICAg
ICAgICAgICAgfCAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUluc2Vuc2l0aXZlKQorICAg
ICAgICAgICAgfCAod3JhcFdpdGhpbkZyYW1lID8gV3JhcEFyb3VuZCA6IDApCisgICAgICAgICAg
ICB8ICghb3B0aW9ucy5maW5kTmV4dCA/IFN0YXJ0SW5TZWxlY3Rpb24gOiAwKTsKKyAgICBtX2Fj
dGl2ZU1hdGNoID0gZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2li
bGUoc2VhcmNoVGV4dCwgbV9hY3RpdmVNYXRjaC5nZXQoKSwgZmluZE9wdGlvbnMpOwogCi0gICAg
ICAgIC8vIE1ha2Ugc3VyZSBubyBub2RlIGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcuY29t
LzM4NzAwLgotICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsK
KyAgICBpZiAoIW1fYWN0aXZlTWF0Y2gpIHsKKyAgICAgICAgaW52YWxpZGF0ZUFyZWEoSW52YWxp
ZGF0ZUFsbCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzZXRNYXJrZXJB
Y3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7CisgICAgV2ViRnJhbWVJbXBsKiBvbGRB
Y3RpdmVGcmFtZSA9IG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZTsKKyAgICBtYWlu
RnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWUgPSB0aGlzOwogCi0gICAgICAgIGlmICghb3B0
aW9ucy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIC8vIFRoaXMg
aXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBzdGFy
dCBwb2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBzZXQgdGhl
IGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAgICAgICAgICAgLy8gdG8gZmluZCB0
aGUgYWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRhdGUgdGhlIG9yZGluYWwgKG4gb2Yg
bSkuCi0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgLy8gTWFr
ZSBzdXJlIG5vIG5vZGUgaXMgZm9jdXNlZC4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzg3MDAuCisg
ICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisKKyAgICBpZiAoIW9w
dGlvbnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFRoaXMgaXMg
ZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBzdGFydCBw
b2ludAorICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24sIHNvIHdlIHNldCB0aGUgZmxhZyB0
byBhc2sgdGhlIHNjb3BpbmcgZWZmb3J0CisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFjdGl2ZSBy
ZWN0IGZvciB1cyBhbmQgcmVwb3J0IGl0IGJhY2sgdG8gdGhlIFVJLgorICAgICAgICBtX2xvY2F0
aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG9sZEFjdGl2
ZUZyYW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCisgICAg
ICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5BY3RpdmVNYXRjaEZyYW1lID0gMDsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkFjdGl2
ZU1hdGNoRnJhbWUgPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChvbGRBY3RpdmVGcmFtZSAhPSB0aGlzKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gSWYgdGhlIGFjdGl2ZSBmcmFtZSBoYXMgY2hhbmdlZCBpdCBtZWFucyB0aGF0IHdlIGhhdmUg
YSBtdWx0aS1mcmFtZQotICAgICAgICAgICAgICAgIC8vIHBhZ2UgYW5kIHdlIGp1c3Qgc3dpdGNo
IHRvIHNlYXJjaGluZyBpbiBhIG5ldyBmcmFtZS4gVGhlbiB3ZSBqdXN0Ci0gICAgICAgICAgICAg
ICAgLy8gd2FudCB0byByZXNldCB0aGUgaW5kZXguCi0gICAgICAgICAgICAgICAgaWYgKG9wdGlv
bnMuZm9yd2FyZCkKLSAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gMDsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJ
bmRleCA9IG1fbGFzdE1hdGNoQ291bnQgLSAxOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgdGhlIGFjdGl2ZSBmcmFtZSwgc28gaW5jcmVtZW50
IChvciBkZWNyZW1lbnQpIHRoZQotICAgICAgICAgICAgICAgIC8vIHxtX2FjdGl2ZU1hdGNoSW5k
ZXh8LCB3cmFwcGluZyBpZiBuZWVkZWQgKG9uIHNpbmdsZSBmcmFtZSBwYWdlcykuCi0gICAgICAg
ICAgICAgICAgb3B0aW9ucy5mb3J3YXJkID8gKyttX2FjdGl2ZU1hdGNoSW5kZXggOiAtLW1fYWN0
aXZlTWF0Y2hJbmRleDsKLSAgICAgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4ICsg
MSA+IG1fbGFzdE1hdGNoQ291bnQpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJ
bmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJbmRleCA9PSAtMSkK
LSAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0Y2hDb3Vu
dCAtIDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgewot
ICAgICAgICAgICAgICAgICpzZWxlY3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9X
aW5kb3coY3VyclNlbGVjdGlvblJlY3QpOwotICAgICAgICAgICAgICAgIHJlcG9ydEZpbmRJblBh
Z2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3QsIG1fYWN0aXZlTWF0Y2hJbmRleCArIDEsIGlkZW50
aWZpZXIpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgb3B0aW9ucy5mb3J3YXJkID8gKytt
X2FjdGl2ZU1hdGNoSW5kZXhJbkFjdGl2ZU1hdGNoRnJhbWUgOiAtLW1fYWN0aXZlTWF0Y2hJbmRl
eEluQWN0aXZlTWF0Y2hGcmFtZTsKKyAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXhJ
bkFjdGl2ZU1hdGNoRnJhbWUgKyAxID4gbV9sYXN0TWF0Y2hDb3VudCkKKyAgICAgICAgICAgICAg
ICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkFjdGl2ZU1hdGNoRnJhbWUgPSAwOworICAgICAgICAgICAg
aWYgKG1fYWN0aXZlTWF0Y2hJbmRleEluQWN0aXZlTWF0Y2hGcmFtZSA9PSAtMSkKKyAgICAgICAg
ICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkFjdGl2ZU1hdGNoRnJhbWUgPSBtX2xhc3RNYXRj
aENvdW50IC0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgeworICAg
ICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBmcmFtZVZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyht
X2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgpKTsKKyAgICAgICAgICAgIHJlcG9ydEZpbmRJblBh
Z2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3QsIG1fYWN0aXZlTWF0Y2hJbmRleEluQWN0aXZlTWF0
Y2hGcmFtZSArIDEsIGlkZW50aWZpZXIpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgLy8gTm90aGluZyB3YXMgZm91bmQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgbV9hY3RpdmVN
YXRjaCA9IDA7Ci0KLSAgICAgICAgLy8gRXJhc2UgYWxsIHByZXZpb3VzIHRpY2ttYXJrcyBhbmQg
aGlnaGxpZ2h0aW5nLgotICAgICAgICBpbnZhbGlkYXRlQXJlYShJbnZhbGlkYXRlQWxsKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gZm91bmQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2Vi
RnJhbWVJbXBsOjpzdG9wRmluZGluZyhib29sIGNsZWFyU2VsZWN0aW9uKQpAQCAtMTcyNiwxNCAr
MTY5OSwxNCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2NvcGVTdHJpbmdNYXRjaGVzKGludCBpZGVu
dGlmaWVyLAogICAgICAgICAgICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFt
ZSA9IHRoaXM7CiAgICAgICAgICAgICAgICAgZm91bmRBY3RpdmVNYXRjaCA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgLy8gV2UgYWxzbyBrbm93IHdoaWNoIHRpY2ttYXJrIGlzIGFjdGl2ZSBub3cu
Ci0gICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbWF0Y2hDb3VudCAtIDE7Cisg
ICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5BY3RpdmVNYXRjaEZyYW1lID0gbWF0
Y2hDb3VudCAtIDE7CiAgICAgICAgICAgICAgICAgLy8gVG8gc3RvcCBsb29raW5nIGZvciB0aGUg
YWN0aXZlIHRpY2ttYXJrLCB3ZSBzZXQgdGhpcyBmbGFnLgogICAgICAgICAgICAgICAgIG1fbG9j
YXRpbmdBY3RpdmVSZWN0ID0gZmFsc2U7CiAKICAgICAgICAgICAgICAgICAvLyBOb3RpZnkgYnJv
d3NlciBvZiBuZXcgbG9jYXRpb24gZm9yIHRoZSBzZWxlY3RlZCByZWN0YW5nbGUuCiAgICAgICAg
ICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICAg
ZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocmVzdWx0Qm91bmRzKSwKLSAgICAgICAgICAg
ICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ICsgMSwKKyAgICAgICAgICAgICAgICAgICAgbV9h
Y3RpdmVNYXRjaEluZGV4SW5BY3RpdmVNYXRjaEZyYW1lICsgMSwKICAgICAgICAgICAgICAgICAg
ICAgaWRlbnRpZmllcik7CiAgICAgICAgICAgICB9CiAKQEAgLTE4MDIsNyArMTc3NSw3IEBAIHZv
aWQgV2ViRnJhbWVJbXBsOjpjYW5jZWxQZW5kaW5nU2NvcGluZ0VmZm9ydCgpCiAgICAgZGVsZXRl
QWxsVmFsdWVzKG1fZGVmZXJyZWRTY29waW5nV29yayk7CiAgICAgbV9kZWZlcnJlZFNjb3BpbmdX
b3JrLmNsZWFyKCk7CiAKLSAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSAtMTsKKyAgICBtX2FjdGl2
ZU1hdGNoSW5kZXhJbkFjdGl2ZU1hdGNoRnJhbWUgPSAtMTsKIH0KIAogdm9pZCBXZWJGcmFtZUlt
cGw6OmluY3JlYXNlTWF0Y2hDb3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVyKQpAQCAtMTk3
MSw3ICsxOTQ0LDcgQEAgV2ViRnJhbWVJbXBsOjpXZWJGcmFtZUltcGwoV2ViRnJhbWVDbGllbnQq
IGNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQodGhpcykKICAgICAsIG1fY2xpZW50
KGNsaWVudCkKICAgICAsIG1fYWN0aXZlTWF0Y2hGcmFtZSgwKQotICAgICwgbV9hY3RpdmVNYXRj
aEluZGV4KC0xKQorICAgICwgbV9hY3RpdmVNYXRjaEluZGV4SW5BY3RpdmVNYXRjaEZyYW1lKC0x
KQogICAgICwgbV9sb2NhdGluZ0FjdGl2ZVJlY3QoZmFsc2UpCiAgICAgLCBtX3Jlc3VtZVNjb3Bp
bmdGcm9tUmFuZ2UoMCkKICAgICAsIG1fbGFzdE1hdGNoQ291bnQoLTEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGFhYjcxOGJmOWI1OWZkZTRlY2NlZmJi
ZDE5MGM5ZjNjYzY1NGZkYjEuLmFjNjJkMWZkMjlkZDY3NTA1MzQ3N2VkNjlhZGU2Zjg4OWE3NTNl
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0zNDUs
OCArMzQ1LDggQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgcmFuZ2Ugb2YgdGhlIGFjdGl2ZSBtYXRj
aCBmb3IgdGhlIGN1cnJlbnQgZnJhbWUuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX2Fj
dGl2ZU1hdGNoOwogCi0gICAgLy8gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgbWF0Y2guCi0gICAg
aW50IG1fYWN0aXZlTWF0Y2hJbmRleDsKKyAgICAvLyBUaGUgaW5kZXggb2YgdGhlIGFjdGl2ZSBt
YXRjaCBmb3IgdGhlIGN1cnJlbnQgZnJhbWUuCisgICAgaW50IG1fYWN0aXZlTWF0Y2hJbmRleElu
QWN0aXZlTWF0Y2hGcmFtZTsKIAogICAgIC8vIFRoaXMgZmxhZyBpcyB1c2VkIGJ5IHRoZSBzY29w
aW5nIGVmZm9ydCB0byBkZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBmaWd1cmUKICAgICAvLyBvdXQg
d2hpY2ggcmVjdGFuZ2xlIGlzIHRoZSBhY3RpdmUgbWF0Y2guIE9uY2Ugd2UgZmluZCB0aGUgYWN0
aXZlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
OTJjMjI5YWMyMGMyYzBjNDBiNjU4ZWY5Yjc3Mjg1MDgyMjJkZWQ0Ny4uMjM0Mzk2NzRkNjljMjkx
MWQyMTFhYzIwNDZhOTdiMGU2NWVjMjAxZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTExLTE3ICBNYXJ0aW4g
S29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdlYiBw
YWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGVkIGEgcGFydGlh
bCBmaW5kU3RyaW5nIGltcGxlbWVudGF0aW9uLiBUaGlzIGRvZXNuJ3Qgc3VwcG9ydAorICAgICAg
ICBhbGwgb2YgdGhlIEZpbmRPcHRpb25zIHNpbmNlIHRoZXkncmUgbm90IGV4cG9zZWQgdmlhIFdl
YkZpbmRPcHRpb25zLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91
dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3Ry
aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorCiAyMDExLTEyLTA2ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIEFkZGVkIG15c2VsZiBhcyBhIGNvbW1pdHRlci4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCA4ZTMxZTFlMDI5MjdjNjczZjk2YTJiNjRjYTIwZWZhYTg1NzViYjgzLi4wNDA5MjRiNmFm
ZTcwNDUyODRlMWZhMThmN2QwM2I1Nzc2OWY0MGJiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgiCiAjaW5j
bHVkZSAiV2ViRG9jdW1lbnQuaCIKICNpbmNsdWRlICJXZWJFbGVtZW50LmgiCisjaW5jbHVkZSAi
V2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkdl
b2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldlYklEQkZhY3RvcnkuaCIKQEAgLTEy
Miw2ICsxMjMsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIo
VGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9y
cyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOwogICAg
IGJpbmRNZXRob2QoImdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOwogICAg
IGJpbmRNZXRob2QoImhhc1NwZWxsaW5nTWFya2VyIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpo
YXNTcGVsbGluZ01hcmtlcik7CisgICAgYmluZE1ldGhvZCgiZmluZFN0cmluZyIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyk7CiAgICAgYmluZE1ldGhvZCgiaXNDb21tYW5kRW5h
YmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNDb21tYW5kRW5hYmxlZCk7CiAgICAgYmlu
ZE1ldGhvZCgiaGFzQ3VzdG9tUGFnZVNpemVTdHlsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
aGFzQ3VzdG9tUGFnZVNpemVTdHlsZSk7CiAgICAgYmluZE1ldGhvZCgiaXNQYWdlQm94VmlzaWJs
ZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNQYWdlQm94VmlzaWJsZSk7CkBAIC0xOTUzLDYg
KzE5NTUsMzggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIEMKICAgICByZXN1bHQtPnNldChtX3No
ZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5zZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKGFyZ3VtZW50c1swXS50b0ludDMyKCksIGFyZ3VtZW50c1sxXS50b0ludDMyKCkpKTsK
IH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyhjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFdlYkZpbmRPcHRpb25zIGZpbmRPcHRpb25zOworICAgIGJvb2wgd3JhcEFy
b3VuZCA9IGZhbHNlOworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIpIHsKKyAgICAgICAg
VmVjdG9yPHN0ZDo6c3RyaW5nPiBvcHRpb25zQXJyYXkgPSBhcmd1bWVudHNbMV0udG9TdHJpbmdW
ZWN0b3IoKTsKKyAgICAgICAgZmluZE9wdGlvbnMubWF0Y2hDYXNlID0gdHJ1ZTsKKworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbnNBcnJheS5zaXplKCk7ICsraSkgeworICAg
ICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG9wdGlvbiA9IG9wdGlvbnNBcnJheVtpXTsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGFsbCB0aGUgb3B0aW9ucywgc28gd2UgY2FuIHJ1
biBmaW5kU3RyaW5nLmh0bWwgdG9vLgorICAgICAgICAgICAgaWYgKG9wdGlvbiA9PSAiQ2FzZUlu
c2Vuc2l0aXZlIikKKyAgICAgICAgICAgICAgICBmaW5kT3B0aW9ucy5tYXRjaENhc2UgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbiA9PSAiQmFja3dhcmRzIikKKyAgICAgICAg
ICAgICAgICBmaW5kT3B0aW9ucy5mb3J3YXJkID0gZmFsc2U7CisgICAgICAgICAgICBlbHNlIGlm
IChvcHRpb24gPT0gIldyYXBBcm91bmQiKQorICAgICAgICAgICAgICAgIHdyYXBBcm91bmQgPSB0
cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgV2ViRnJhbWUqIGZyYW1lID0gbV9zaGVsbC0+
d2ViVmlldygpLT5tYWluRnJhbWUoKTsKKyAgICBjb25zdCBib29sIGZpbmRSZXN1bHQgPSBmcmFt
ZS0+ZmluZCgwLAorICAgICAgICBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwK
KyAgICAgICAgZmluZE9wdGlvbnMsCisgICAgICAgIHdyYXBBcm91bmQsCisgICAgICAgIDApOwor
ICAgIHJlc3VsdC0+c2V0KGZpbmRSZXN1bHQpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKaW5kZXggMTEyZTI5Nzg2ZjE3YTRjZGM2YzJlMDI2Njc0MDQwMmEzODg5NWRlMy4uNGQ2Y2Q4
NWE3YTIyYTkzZjZjNmI5OWUwOGRmYzE4YzgwY2E0MmNiOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zODcsNiAr
Mzg3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgaGFzU3BlbGxpbmdNYXJr
ZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZmluZFN0
cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICB2b2lkIHNl
dE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGY4NDgxMjg0NDIxMDUzNWZiYzY4NDkyN2M3NTVhMTYwZjFkY2VhZjcuLmJh
ZGY5YzExOWFhZjYxOWE4NDRjM2I4NTNjYWQwZjY3N2U4YTkwYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVzZXItc2VsZWN0OiBu
b25lIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRpbmcgYSBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBmaW5kIHdvcmtzIGNv
cnJlY3RseSBvbiBwYWdlcworICAgICAgICB0aGF0IHByZXZlbnQgdGV4dCBzZWxlY3Rpb24uCisK
KyAgICAgICAgKiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlz
YWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3RleHQtaXRlcmF0
b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1saW9uL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vcXQtbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQtd2syL1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6CisKIDIwMTEtMTItMDYgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1
bSB0ZXN0cyByZWJhc2VsaW5lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0
LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMzY1ZmYzY2ViNDNjNWJlMDhlNzZiZjVl
MWQzYTc4Y2YxZTBlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4
dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0MCBAQAorU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhh
dCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ2UnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9y
ICdvJyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxl
Y3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbycs
IFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3knIGluICdTb21lIHNhbXBsZSB0ZXh0IHRo
YXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBm
b3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGgg
c2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmco
J3QgdCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ21vdW50JyBpbiAnaW5zdXJtb3Vu
dGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZv
ciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZW5h
YmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBbXSkg
aXMgZmFsc2UKKworU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBj
YW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAn
bycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0
aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdvJywg
W10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAneScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhh
dCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBm
b3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGgg
c2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5n
KCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdtb3VudCcgaW4gJ2luc3VybW91
bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZmluZFN0cmluZygnbW91bnQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcg
Zm9yICdXYWxseScgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBk
aXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBb
XSkgaXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9m
aW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWZjNzE4MjBmNzc1YzVkN2ZhMzBjZjJmNjg0MWJhZDkxN2I2YTRiYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVj
dGlvbi1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgLnNlbGVjdGlvbkRpc2FibGVkIHsgLXdlYmtp
dC11c2VyLXNlbGVjdDogbm9uZTsgfQorIC5zZWxlY3Rpb25FbmFibGVkIHsgLXdlYmtpdC11c2Vy
LXNlbGVjdDogYXV0bzsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29u
dGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRk
ZW47Ij48L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGaW5kU3RyaW5n
VXNpbmdNYXJrZXJzKHRleHQsIHRhcmdldCwgZGlzYWJsZVNlbGVjdGlvbiwgZXhwZWN0ZWQpCit7
CisgICAgdmFyIHNlbGVjdGlvblN0YXR1cyA9IGRpc2FibGVTZWxlY3Rpb24gPyAic2VsZWN0aW9u
IGRpc2FibGVkOiIgOiAic2VsZWN0aW9uIGVuYWJsZWQ6IjsKKyAgICBsb2coIlNlYXJjaGluZyBm
b3IgJyIgKyB0YXJnZXQgKyAiJyBpbiAnIiArIHRleHQgKyAiJyB3aXRoICIgKyBzZWxlY3Rpb25T
dGF0dXMpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250YWluZXIiKTsKKyAgICBjb250YWluZXIuaW5uZXJUZXh0ID0gdGV4dDsKKyAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKKworICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBkaXNhYmxlU2Vs
ZWN0aW9uID8gInNlbGVjdGlvbkRpc2FibGVkIiA6ICJzZWxlY3Rpb25FbmFibGVkIjsKKworICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCciICsgdGFyZ2V0ICsg
IicsIFtdKSIsIGV4cGVjdGVkKTsKKworICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSAiIjsKKyAg
ICBsb2coIiIpOworfQorCitpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICB0
ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIGxheW91dFRlc3RDb250cm9sbGVyIG9i
amVjdCcpOworZWxzZSB7CisgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICB2
YXIgZGlzYWJsZVNlbGVjdGlvbiA9IChpID09IDEpOworCisgICAgICAgIHRlc3RGaW5kU3RyaW5n
VXNpbmdNYXJrZXJzKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgImUi
LCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5n
TWFya2VycygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJvIiwgZGlz
YWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtl
cnMoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQiLCAieSIsIGRpc2FibGVT
ZWxlY3Rpb24sICJmYWxzZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2Vycygi
U29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJ0IHQiLCBkaXNhYmxlU2Vs
ZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiaW5z
dXJtb3VudGFibGUgbW91bnRhaW4iLCAibW91bnQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIp
OworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiaW5zdXJtb3VudGFibGUgbW91
bnRhaW4iLCAiV2FsbHkiLCBkaXNhYmxlU2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICB9Cit9CisK
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUucmVtb3ZlUHJvcGVydHko
InZpc2liaWxpdHkiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRl
eCA1MjM5NWZjYjk1YTYwMjIzMzEzZTUzM2I4MDRiZWQ5YmZjNGU3ZTA5Li4yOWJiZmRjMjE2OTdi
YTAwNjNlZTM2MTJiOWM1NzFjZGJlYjExNTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApA
QCAtODQzLDYgKzg0MywxMCBAQCBmYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNl
LW1pbi1pbnRlcnZhbC5odG1sCiAjIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90
IGltcGxlbWVudCBzZXRUZXh0RGlyZWN0aW9uCiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9u
Lmh0bWwKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBw
cmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sCisKICMgRUZMJ3MgRFJUIG1pc3NlcyBhbiAnRURJVElORyBERUxFR0FURScgaW1w
bGVtZW50YXRpb24KIGVkaXRpbmcvaW5wdXQvYXR0cmlidXRlZC1zdWJzdHJpbmctZnJvbS1yYW5n
ZS1saW5lcy5odG1sCiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCmluZGV4IGRlMjYxMDVmYWJjMzI4
OWYzNjc1NmQ3Y2RmOWNlNTVkNzAyZTE1N2UuLjA5YmM3ZWE2MmFjN2NiMGM3ZDJkMmEwOGRkMDlm
MjU4OTQ4ZTdmZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKQEAgLTM3MSw2
ICszNzEsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUt
aW1hZ2UtYWxsb3dlZC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFk
LXJlbW90ZS1pbWFnZS1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvd2ViZ2wtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWFsbG93ZWQtd2l0aC1jcmVkZW50
aWFscy5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRo
YXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24t
ZGlzYWJsZWQuaHRtbAorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcK
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1saW9uL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVk
CmluZGV4IDI3ZGM0MTY1MWNkMWY5YjFlY2NkYzcxZGM2MTk3NzdhOTdjM2JiMjkuLjg5YzdhNzI3
ZTdkYjY1OWIyMzYwM2RjNzg1YmRjMDMxMzYwYTY0MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxpb24vU2tpcHBlZApAQCAtNTAsNiArNTAsMTAgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3Bl
bGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMi5odG1sCiBwbGF0Zm9ybS9t
YWMvZWRpdGluZy9zcGVsbGluZy9yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItYWNjZXB0aW5nLWF1
dG9jb3JyZWN0aW9uLXVzaW5nLXB1bmN0dWF0aW9uLmh0bWwgIAogCisjIEZyYW1lOjpmaW5kU3Ry
aW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0
ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyBQYXN0aW5nIHJl
cGxhY2VzIHRoZSB0aHJlZSBwZXJpb2RzIHdpdGggYW4gZWxsaXBzaXMgb24gTGlvbgogZWRpdGlu
Zy9wYXN0ZWJvYXJkLzU0NzgyNTAuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1z
bm93bGVvcGFyZC9Ta2lwcGVkCmluZGV4IDdlOTEzMTBhZTc4MDE5NTRhMTAyZjJjNzhmOGEyZTRk
ZGJlODJlMDAuLjNmMWQ1NmNkYmY1Y2Y3YTk4OTkwNmJlZWJiZWE2NjIwOTAwMGU2YzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCkBAIC0xODUsMyAr
MTg1LDcgQEAgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLXR3aWNlLmh0bWwKIAogIyBIaURQ
SSB0ZXN0cyBoYXZlIGxvd2VyLWxldmVsIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvbiBNYWMKIGZh
c3QvaGlkcGkKKworIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhh
dCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1k
aXNhYmxlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDRkNzg0NDM2NDlmYTNk
OGZhMzU0MGRlMzc1NTJjNWYyNzg3OTk4NjEuLjMzMDA5YzhiZDdmYzRhZmJhNmE4MzQ3ZjczNDQ4
NGI1YTRlYTJhYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC01MTUsMyArNTE1LDcg
QEAgZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5odG1s
CiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDkzCiBmYXN0
L2NhbnZhcy93ZWJnbC9hcnJheWJ1ZmZlci10cmFuc2Zlci1vZi1jb250cm9sLmh0bWwKKworIyBG
cmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVj
dGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2Vk
aXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCmluZGV4IDk1OTE4M2NmOWNiODlhMTBjZGQwNjIx
ZGY4ZDY2YmIzZGM3OGZhMWIuLjliYzc0Njk0NmRiZmUwMmU5OWM1ZGYzOTZmNWZlNDVkMWMxMDA1
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCkBAIC02OTgzLDMgKzY5ODMsNyBA
QCBlZGl0aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My0xLmh0bWwKICMgW1F0XSBlZGl0aW5nL3NlbGVj
dGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbCBmYWlscyB3aXRo
IFF0NQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTgKIGVk
aXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1s
CisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVu
dCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAppbmRleCA2YzE3YWJlY2JjOTQwZTNm
NDRiZTBhYWRkMjIxMDI4ODJkY2M2ZTkyLi4wM2EyOWRlZTE3NGQwY2IyYTNhOWNlMTdjMGM2ZThl
YTM2ZWZlNTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZApAQCAtNTI2OCwzICs1
MjY4LDcgQEAgY3NzMi4xLzIwMTEwMzIzL2VtcHR5LWlubGluZS0wMDIuaHRtCiBjc3MyLjEvMjAx
MTAzMjMvZW1wdHktaW5saW5lLTAwMy5odG0KIGNzczIuMS8yMDExMDMyMy9lbXB0eS1pbmxpbmUt
MDAxLmh0bQogdHJhbnNmb3Jtcy9zdmctdnMtY3NzLnhodG1sCisKKyMgRnJhbWU6OmZpbmRTdHJp
bmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRl
cmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC13azIvU2tpcHBlZAppbmRleCAwNDUzZWNlMGI3NDhhMmRkYzY1ZGEwZWFkODRiZWQwMzIxZTcy
OTRlLi4yNTI3YmM1MDljNjEzYzg1MTgzZDM2ZjljNGI0YjliNjM4OTE3ODM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC13azIvU2tpcHBlZApAQCAtMTg1OCwzICsxODU4LDcgQEAgZmFzdC9tdWx0aWNv
bC9wYWdpbmF0aW9uLXYtdmVydGljYWwtbHIuaHRtbDVsaWIKICMgW1F0XVtXSzJdIGZhc3QvZm9y
bXMvYWNjZXNzLWtleS1mb3ItYWxsLWVsZW1lbnRzLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE3CiBmYXN0L2Zvcm1zL2FjY2Vzcy1rZXkt
Zm9yLWFsbC1lbGVtZW50cy5odG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5n
IG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmlu
Zy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCA1
ZjI5NTZiMDIzMTNjYTE5ZjA4Y2U4OGMzOWE0NTFmNTE3NWViZjExLi44ZWFhMGY1ZjEyYjMwODgw
YzEyYjcyNTRlYTNmMGU3NTE2Mjg0ZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAt
ODg2LDYgKzg4NiwxMCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRp
cmVjdC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZl
ci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0
Lmh0bWwKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBw
cmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sCisKICMjIyBFTkQgT0YgKDEpIENsYXNzaWZpZWQgZmFpbHVyZXMgd2l0aCBidWcg
cmVwb3J0cwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118562</attachid>
            <date>2011-12-09 05:47:48 -0800</date>
            <delta_ts>2011-12-14 00:57:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111209134746.patch</filename>
            <type>text/plain</type>
            <size>30757</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM5NzJjMWJlOGM0YjNk
ZjkxOTIzYjYxYTFjZmVkODViZjlmYWNmMS4uYmU3ZGYyODYzMTMyYTk3ZDhjYzliM2IxNDY1OTBl
ZWYzMDQxOWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTA5ICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgaW5zcGVjdG9yIHV0aWxpdGllcyBzeW50YXggZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCBkOTA1YzZjYjIxYWI4OGEzMzkyYjA1YmJjZjNiN2JlMTUyYzQ2NDgzLi45NzNjM2Zl
MTgwNWMzN2Q4NmU1Zjk2MGQ3NDFiZjFlM2M2YWQwMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2li
YUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJr
aXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNl
YXJjaCBmb3IgdGV4dCB0aGF0IGhhcworICAgICAgICBzZWxlY3Rpb24gZGlzYWJsZWQgKHZpYSB0
aGUgd2Via2l0LXVzZXItc2VsZWN0IGF0dHJpYnV0ZSkuCisKKyAgICAgICAgV2ViRnJhbWVJbXBs
OjpmaW5kIHdpbGwgdXNlIGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUsIHdoaWNoIGlzCisg
ICAgICAgIHNpbWlsYXIgdG8gZmluZFN0cmluZyBleGNlcHQgdGhhdCBpdCBtYW5pcHVsYXRlcyBt
YXJrZXJzIGRpcmVjdGx5IHJhdGhlcgorICAgICAgICB0aGFuIHBhc3NpbmcgdGhlIGZpbmQgcmVz
dWx0IGluIHRoZSBhY3RpdmUgc2VsZWN0aW9uLgorCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZmluZCk6CisKIDIwMTEtMTIt
MDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBFbmFibGUgdmlld3BvcnQgbWV0YXRhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IDdiMTAzZjE2YzhmOGY3ZjhhOTFkNDc0NjZiYmZmZDQ2ZGIzYjI5ZjIuLjFkNTM2M2YxMjk3
YTQ1Y2ZiNjU1YzhhNjM1NzFhZDU3NmFlOTIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIKICNp
bmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24uaCIK
QEAgLTI3NzAsNiArMjc3MSwxOCBAQCBib29sIEVkaXRvcjo6ZmluZFN0cmluZyhjb25zdCBTdHJp
bmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
UGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKGNv
bnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcHJldmlvdXNNYXRjaCwgRmluZE9wdGlvbnMgb3B0
aW9ucykKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IG5leHRNYXRjaCA9IHJhbmdlT2ZTdHJpbmcodGFy
Z2V0LCBwcmV2aW91c01hdGNoLCBvcHRpb25zKTsKKyAgICBpZiAoIW5leHRNYXRjaCkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBuZXh0TWF0Y2gtPmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdMYXllcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG5leHRNYXRjaC0+Ym91bmRpbmdC
b3goKSwKKyAgICAgICAgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworCisgICAgcmV0dXJuIG5leHRNYXRj
aC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmlu
Zyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBGaW5kT3B0aW9u
cyBvcHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKaW5kZXggYmYyN2M1MTA3ZDQ3YTU4NjMzMzMwOGMzMTdjMTc4MDYyMjkxODYyMy4uODY0
ZTY4NDZlYzIwNWVmNmY5NGE1MDg5NDEwMzUxNGU3YzhhNjhhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC0zMzksNiArMzM5LDcgQEAgcHVibGljOgogICAgIGJvb2wgZmluZFN0cmluZyhj
b25zdCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wgd3JhcEZsYWcs
IGJvb2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZU9m
U3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOworICAgIFBhc3NSZWZQ
dHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3QgU3RyaW5nJiwgUmFu
Z2UqLCBGaW5kT3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJrKCkg
Y29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lkIHNl
dE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggM2EyYmNhN2I3NTAwM2QxMTJmNzA3OGQ0OGI5NzBl
OTE5NTRhMGRlNi4uMDQyMjBjMWQwMThlMmNkY2RiODk5NzFjYzJjZmY5NzFlZTMyNTAzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNTE4LDk0
ICsxNTE4LDY2IEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogewog
ICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFtZUlt
cGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKKyAgICBpZiAoIW9wdGlvbnMuZmlu
ZE5leHQpIHsKICAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygp
OwotICAgIGVsc2UKLSAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCks
IGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgotCi0gICAgLy8gU3RhcnRzIHRo
ZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAgYm9vbCBzdGFydEluU2Vs
ZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7CisgICAgfSBlbHNlCisg
ICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCBmYWxzZSk7CiAKICAg
ICAvLyBJZiB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0IEZp
bmQgb3BlcmF0aW9uIHdlIHdhbnQKICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhlcndp
c2UsIHdlIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAvLyBv
cGVyYXRpb24gbGVmdCBvZmYgKGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRpb24p
LgogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5z
ZWxlY3Rpb24oKSk7CiAgICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9u
ZSgpOwotICAgIGlmICghYWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAgICAg
ICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAg
ICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAg
IGlmIChhY3RpdmVTZWxlY3Rpb24pIHsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IHNlbGVjdGlv
bi5maXJzdFJhbmdlKCkuZ2V0KCk7CisgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6
ZnJvbVVURjgoIlVuc2VsZWN0IikpOwogICAgIH0KIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZy
YW1lKCktPnZpZXcoKSk7Ci0gICAgYm9vbCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5k
U3RyaW5nKAotICAgICAgICBzZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0
Y2hDYXNlLCB3cmFwV2l0aGluRnJhbWUsCi0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOwotICAg
IGlmIChmb3VuZCkgewotICAgICAgICAvLyBTdG9yZSB3aGljaCBmcmFtZSB3YXMgYWN0aXZlLiBU
aGlzIHdpbGwgY29tZSBpbiBoYW5keSBsYXRlciB3aGVuIHdlCi0gICAgICAgIC8vIGNoYW5nZSB0
aGUgYWN0aXZlIG1hdGNoIG9yZGluYWwgYmVsb3cuCi0gICAgICAgIFdlYkZyYW1lSW1wbCogb2xk
QWN0aXZlRnJhbWUgPSBtYWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWU7Ci0gICAgICAg
IC8vIFNldCB0aGlzIGZyYW1lIGFzIHRoZSBhY3RpdmUgZnJhbWUgKHRoZSBvbmUgd2l0aCB0aGUg
YWN0aXZlIGhpZ2hsaWdodCkuCi0gICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hG
cmFtZSA9IHRoaXM7Ci0KLSAgICAgICAgLy8gV2UgZm91bmQgc29tZXRoaW5nLCBzbyB3ZSBjYW4g
bm93IHF1ZXJ5IHRoZSBzZWxlY3Rpb24gZm9yIGl0cyBwb3NpdGlvbi4KLSAgICAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigp
KTsKLSAgICAgICAgSW50UmVjdCBjdXJyU2VsZWN0aW9uUmVjdDsKLQotICAgICAgICAvLyBJZiB3
ZSB0aG91Z2h0IHdlIGZvdW5kIHNvbWV0aGluZywgYnV0IGl0IGNvdWxkbid0IGJlIHNlbGVjdGVk
IChwZXJoYXBzCi0gICAgICAgIC8vIGJlY2F1c2UgaXQgd2FzIG1hcmtlZCAtd2Via2l0LXVzZXIt
c2VsZWN0OiBub25lKSwgd2UgY2FuJ3Qgc2V0IGl0IHRvCi0gICAgICAgIC8vIGJlIGFjdGl2ZSBi
dXQgd2Ugc3RpbGwgY29udGludWUgc2VhcmNoaW5nLiBUaGlzIG1hdGNoZXMgU2FmYXJpJ3MKLSAg
ICAgICAgLy8gYmVoYXZpb3IsIGluY2x1ZGluZyBzb21lIG9kZGl0aWVzIHdoZW4gc2VsZWN0YWJs
ZSBhbmQgdW4tc2VsZWN0YWJsZSB0ZXh0Ci0gICAgICAgIC8vIGFyZSBtaXhlZCBvbiBhIHBhZ2U6
IHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjcuCi0gICAg
ICAgIGlmIChuZXdTZWxlY3Rpb24uaXNOb25lKCkgfHwgKG5ld1NlbGVjdGlvbi5zdGFydCgpID09
IG5ld1NlbGVjdGlvbi5lbmQoKSkpCi0gICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gbmV3U2VsZWN0aW9uLnRv
Tm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgICAgICBjdXJyU2VsZWN0aW9uUmVjdCA9IG1fYWN0
aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCk7Ci0gICAgICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9h
Y3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7IC8vIEFjdGl2ZS4KLSAgICAgICAgICAgIC8vIFdlYktp
dCBkcmF3cyB0aGUgaGlnaGxpZ2h0aW5nIGZvciBhbGwgbWF0Y2hlcy4KLSAgICAgICAgICAgIGV4
ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOwotICAgICAgICB9
CisgICAgY29uc3QgRmluZE9wdGlvbnMgZmluZE9wdGlvbnMgPSAob3B0aW9ucy5mb3J3YXJkID8g
MCA6IEJhY2t3YXJkcykKKyAgICAgICAgfCAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUlu
c2Vuc2l0aXZlKQorICAgICAgICB8ICh3cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5kIDogMCkK
KyAgICAgICAgfCAoIW9wdGlvbnMuZmluZE5leHQgPyBTdGFydEluU2VsZWN0aW9uIDogMCk7Cisg
ICAgbV9hY3RpdmVNYXRjaCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKHNlYXJjaFRleHQsIG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZpbmRPcHRpb25zKTsK
IAotICAgICAgICAvLyBNYWtlIHN1cmUgbm8gbm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2Ny
YnVnLmNvbS8zODcwMC4KLSAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5v
ZGUoMCk7CisgICAgaWYgKCFtX2FjdGl2ZU1hdGNoKSB7CisgICAgICAgIGludmFsaWRhdGVBcmVh
KEludmFsaWRhdGVBbGwpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0
TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIHRydWUpOworICAgIFdlYkZyYW1lSW1w
bCogb2xkQWN0aXZlRnJhbWUgPSBtYWluRnJhbWVJbXBsLT5tX2N1cnJlbnRBY3RpdmVNYXRjaEZy
YW1lOworICAgIG1haW5GcmFtZUltcGwtPm1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUgPSB0aGlz
OwogCi0gICAgICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsK
LSAgICAgICAgICAgIC8vIFRoaXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5k
LW5leHQgZnJvbSBhIG5ldyBzdGFydCBwb2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2Vs
ZWN0aW9uLCBzbyB3ZSBzZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAg
ICAgICAgICAgLy8gdG8gZmluZCB0aGUgYWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRh
dGUgdGhlIG9yZGluYWwgKG4gb2YgbSkuCi0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVj
dCA9IHRydWU7CisgICAgLy8gTWFrZSBzdXJlIG5vIG5vZGUgaXMgZm9jdXNlZC4gU2VlIGh0dHA6
Ly9jcmJ1Zy5jb20vMzg3MDAuCisgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5v
ZGUoMCk7CisKKyAgICBpZiAoIW9wdGlvbnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9uKSB7
CisgICAgICAgIC8vIFRoaXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5l
eHQgZnJvbSBhIG5ldyBzdGFydCBwb2ludAorICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24s
IHNvIHdlIHNldCB0aGUgZmxhZyB0byBhc2sgdGhlIHNjb3BpbmcgZWZmb3J0CisgICAgICAgIC8v
IHRvIGZpbmQgdGhlIGFjdGl2ZSByZWN0IGZvciB1cyBhbmQgcmVwb3J0IGl0IGJhY2sgdG8gdGhl
IFVJLgorICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKG9sZEFjdGl2ZUZyYW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgIGlmIChv
cHRpb25zLmZvcndhcmQpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJy
ZW50RnJhbWUgPSAwOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fYWN0aXZl
TWF0Y2hJbmRleEluQ3VycmVudEZyYW1lID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAob2xkQWN0aXZlRnJhbWUgIT0gdGhpcykgewotICAg
ICAgICAgICAgICAgIC8vIElmIHRoZSBhY3RpdmUgZnJhbWUgaGFzIGNoYW5nZWQgaXQgbWVhbnMg
dGhhdCB3ZSBoYXZlIGEgbXVsdGktZnJhbWUKLSAgICAgICAgICAgICAgICAvLyBwYWdlIGFuZCB3
ZSBqdXN0IHN3aXRjaCB0byBzZWFyY2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAot
ICAgICAgICAgICAgICAgIC8vIHdhbnQgdG8gcmVzZXQgdGhlIGluZGV4LgotICAgICAgICAgICAg
ICAgIGlmIChvcHRpb25zLmZvcndhcmQpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0
Y2hJbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBt
X2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIHRoZSBhY3RpdmUgZnJhbWUs
IHNvIGluY3JlbWVudCAob3IgZGVjcmVtZW50KSB0aGUKLSAgICAgICAgICAgICAgICAvLyB8bV9h
Y3RpdmVNYXRjaEluZGV4fCwgd3JhcHBpbmcgaWYgbmVlZGVkIChvbiBzaW5nbGUgZnJhbWUgcGFn
ZXMpLgotICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaElu
ZGV4IDogLS1tX2FjdGl2ZU1hdGNoSW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZl
TWF0Y2hJbmRleCArIDEgPiBtX2xhc3RNYXRjaENvdW50KQotICAgICAgICAgICAgICAgICAgICBt
X2FjdGl2ZU1hdGNoSW5kZXggPSAwOwotICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNo
SW5kZXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1f
bGFzdE1hdGNoQ291bnQgLSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNlbGVj
dGlvblJlY3QpIHsKLSAgICAgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9IGZyYW1lVmlldygp
LT5jb250ZW50c1RvV2luZG93KGN1cnJTZWxlY3Rpb25SZWN0KTsKLSAgICAgICAgICAgICAgICBy
ZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5k
ZXggKyAxLCBpZGVudGlmaWVyKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9wdGlvbnMu
Zm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgOiAtLW1fYWN0aXZl
TWF0Y2hJbmRleEluQ3VycmVudEZyYW1lOworICAgICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJ
bmRleEluQ3VycmVudEZyYW1lICsgMSA+IG1fbGFzdE1hdGNoQ291bnQpCisgICAgICAgICAgICAg
ICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSAwOworICAgICAgICAgICAgaWYg
KG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lID09IC0xKQorICAgICAgICAgICAgICAg
IG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlbGVjdGlvblJlY3QpIHsKKyAgICAgICAgICAgICpz
ZWxlY3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3cobV9hY3RpdmVNYXRj
aC0+Ym91bmRpbmdCb3goKSk7CisgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9u
KCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSArIDEsIGlk
ZW50aWZpZXIpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gTm90aGluZyB3
YXMgZm91bmQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7Ci0KLSAg
ICAgICAgLy8gRXJhc2UgYWxsIHByZXZpb3VzIHRpY2ttYXJrcyBhbmQgaGlnaGxpZ2h0aW5nLgot
ICAgICAgICBpbnZhbGlkYXRlQXJlYShJbnZhbGlkYXRlQWxsKTsKICAgICB9CiAKLSAgICByZXR1
cm4gZm91bmQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpzdG9w
RmluZGluZyhib29sIGNsZWFyU2VsZWN0aW9uKQpAQCAtMTcyMywxNyArMTY5NSwxNyBAQCB2b2lk
IFdlYkZyYW1lSW1wbDo6c2NvcGVTdHJpbmdNYXRjaGVzKGludCBpZGVudGlmaWVyLAogICAgICAg
ICAgICAgYm9vbCBmb3VuZEFjdGl2ZU1hdGNoID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9s
b2NhdGluZ0FjdGl2ZVJlY3QgJiYgKGFjdGl2ZVNlbGVjdGlvblJlY3QgPT0gcmVzdWx0Qm91bmRz
KSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgZm91bmQgdGhlIGFjdGl2ZSB0aWNrbWFy
ayBmcmFtZS4KLSAgICAgICAgICAgICAgICBtYWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJh
bWUgPSB0aGlzOworICAgICAgICAgICAgICAgIG1haW5GcmFtZUltcGwtPm1fY3VycmVudEFjdGl2
ZU1hdGNoRnJhbWUgPSB0aGlzOwogICAgICAgICAgICAgICAgIGZvdW5kQWN0aXZlTWF0Y2ggPSB0
cnVlOwogICAgICAgICAgICAgICAgIC8vIFdlIGFsc28ga25vdyB3aGljaCB0aWNrbWFyayBpcyBh
Y3RpdmUgbm93LgotICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1hdGNoQ291
bnQgLSAxOworICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1l
ID0gbWF0Y2hDb3VudCAtIDE7CiAgICAgICAgICAgICAgICAgLy8gVG8gc3RvcCBsb29raW5nIGZv
ciB0aGUgYWN0aXZlIHRpY2ttYXJrLCB3ZSBzZXQgdGhpcyBmbGFnLgogICAgICAgICAgICAgICAg
IG1fbG9jYXRpbmdBY3RpdmVSZWN0ID0gZmFsc2U7CiAKICAgICAgICAgICAgICAgICAvLyBOb3Rp
ZnkgYnJvd3NlciBvZiBuZXcgbG9jYXRpb24gZm9yIHRoZSBzZWxlY3RlZCByZWN0YW5nbGUuCiAg
ICAgICAgICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlvbigKICAgICAgICAgICAgICAg
ICAgICAgZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocmVzdWx0Qm91bmRzKSwKLSAgICAg
ICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ICsgMSwKKyAgICAgICAgICAgICAgICAg
ICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgKyAxLAogICAgICAgICAgICAgICAg
ICAgICBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIH0KIApAQCAtMTgwMiw3ICsxNzc0LDcgQEAg
dm9pZCBXZWJGcmFtZUltcGw6OmNhbmNlbFBlbmRpbmdTY29waW5nRWZmb3J0KCkKICAgICBkZWxl
dGVBbGxWYWx1ZXMobV9kZWZlcnJlZFNjb3BpbmdXb3JrKTsKICAgICBtX2RlZmVycmVkU2NvcGlu
Z1dvcmsuY2xlYXIoKTsKIAotICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IC0xOworICAgIG1fYWN0
aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lID0gLTE7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBs
OjppbmNyZWFzZU1hdGNoQ291bnQoaW50IGNvdW50LCBpbnQgaWRlbnRpZmllcikKQEAgLTE5NzAs
OCArMTk0Miw4IEBAIFBhc3NSZWZQdHI8V2ViRnJhbWVJbXBsPiBXZWJGcmFtZUltcGw6OmNyZWF0
ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KQogV2ViRnJhbWVJbXBsOjpXZWJGcmFtZUltcGwoV2Vi
RnJhbWVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQodGhpcykKICAg
ICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fYWN0aXZlTWF0Y2hGcmFtZSgwKQotICAgICwg
bV9hY3RpdmVNYXRjaEluZGV4KC0xKQorICAgICwgbV9jdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSgw
KQorICAgICwgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUoLTEpCiAgICAgLCBtX2xv
Y2F0aW5nQWN0aXZlUmVjdChmYWxzZSkKICAgICAsIG1fcmVzdW1lU2NvcGluZ0Zyb21SYW5nZSgw
KQogICAgICwgbV9sYXN0TWF0Y2hDb3VudCgtMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmgKaW5kZXggYWFiNzE4YmY5YjU5ZmRlNGVjY2VmYmJkMTkwYzlmM2NjNjU0
ZmRiMS4uOGNmNGQzMTUxZjE0YzgwZWZhYzM4Y2EzN2YzNGUzZTljZjU4NzVkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTI0Niw3ICsyNDYsNyBAQCBw
dWJsaWM6CiAgICAgLy8gUmV0dXJucyB3aGljaCBmcmFtZSBoYXMgYW4gYWN0aXZlIG1hdGNoLiBU
aGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlCiAgICAgLy8gY2FsbGVkIG9uIHRoZSBtYWluIGZy
YW1lLCBhcyBpdCBpcyB0aGUgb25seSBmcmFtZSBrZWVwaW5nIHRyYWNrLiBSZXR1cm5lZAogICAg
IC8vIHZhbHVlIGNhbiBiZSAwIGlmIG5vIGZyYW1lIGhhcyBhbiBhY3RpdmUgbWF0Y2guCi0gICAg
Y29uc3QgV2ViRnJhbWVJbXBsKiBhY3RpdmVNYXRjaEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3RpdmVNYXRjaEZyYW1lOyB9CisgICAgY29uc3QgV2ViRnJhbWVJbXBsKiBhY3RpdmVNYXRjaEZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50QWN0aXZlTWF0Y2hGcmFtZTsgfQogCiAgICAg
Ly8gV2hlbiBhIEZpbmQgb3BlcmF0aW9uIGVuZHMsIHdlIHdhbnQgdG8gc2V0IHRoZSBzZWxlY3Rp
b24gdG8gd2hhdCB3YXMgYWN0aXZlCiAgICAgLy8gYW5kIHNldCBmb2N1cyB0byB0aGUgZmlyc3Qg
Zm9jdXNhYmxlIG5vZGUgd2UgZmluZCAoc3RhcnRpbmcgd2l0aCB0aGUgZmlyc3QKQEAgLTM0MCwx
MyArMzQwLDEzIEBAIHByaXZhdGU6CiAKICAgICAvLyBBIHdheSBmb3IgdGhlIG1haW4gZnJhbWUg
dG8ga2VlcCB0cmFjayBvZiB3aGljaCBmcmFtZSBoYXMgYW4gYWN0aXZlCiAgICAgLy8gbWF0Y2gu
IFNob3VsZCBiZSAwIGZvciBhbGwgb3RoZXIgZnJhbWVzLgotICAgIFdlYkZyYW1lSW1wbCogbV9h
Y3RpdmVNYXRjaEZyYW1lOworICAgIFdlYkZyYW1lSW1wbCogbV9jdXJyZW50QWN0aXZlTWF0Y2hG
cmFtZTsKIAogICAgIC8vIFRoZSByYW5nZSBvZiB0aGUgYWN0aXZlIG1hdGNoIGZvciB0aGUgY3Vy
cmVudCBmcmFtZS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1fYWN0aXZlTWF0Y2g7CiAK
LSAgICAvLyBUaGUgaW5kZXggb2YgdGhlIGFjdGl2ZSBtYXRjaC4KLSAgICBpbnQgbV9hY3RpdmVN
YXRjaEluZGV4OworICAgIC8vIFRoZSBpbmRleCBvZiB0aGUgYWN0aXZlIG1hdGNoIGZvciB0aGUg
Y3VycmVudCBmcmFtZS4KKyAgICBpbnQgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWU7
CiAKICAgICAvLyBUaGlzIGZsYWcgaXMgdXNlZCBieSB0aGUgc2NvcGluZyBlZmZvcnQgdG8gZGV0
ZXJtaW5lIGlmIHdlIG5lZWQgdG8gZmlndXJlCiAgICAgLy8gb3V0IHdoaWNoIHJlY3RhbmdsZSBp
cyB0aGUgYWN0aXZlIG1hdGNoLiBPbmNlIHdlIGZpbmQgdGhlIGFjdGl2ZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcyZTU3MDdjNGRhOGJhMDk1
ZTdjMzIzYjY4NjgyZjdmNTEwOGFlNjUuLmE2ZThmYzRlYTY4NzNkNTgyODBiMzg5NDUwMmFmMTU3
ZTQ4ZTRiODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0
LXVzZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlZCBhIHBhcnRpYWwgZmluZFN0cmluZyBpbXBs
ZW1lbnRhdGlvbi4gVGhpcyBkb2Vzbid0IHN1cHBvcnQKKyAgICAgICAgYWxsIG9mIHRoZSBGaW5k
T3B0aW9ucyBzaW5jZSB0aGV5J3JlIG5vdCBleHBvc2VkIHZpYSBXZWJGaW5kT3B0aW9ucy4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0x
Mi0wOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMTAyMTA1KTogcnVuLWJpbmRpbmdzLXRlc3RzIHNob3VsZCBvdXRwdXQgZnVsbCBk
aWZmIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA4ZTMxZTFlMDI5MjdjNjczZjk2YTJiNjRjYTIw
ZWZhYTg1NzViYjgzLi4wNDA5MjRiNmFmZTcwNDUyODRlMWZhMThmN2QwM2I1Nzc2OWY0MGJiIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKICNpbmNsdWRlICJX
ZWJFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUg
IldlYklEQkZhY3RvcnkuaCIKQEAgLTEyMiw2ICsxMjMsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9k
KCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VS
ZWRTZWxlY3Rpb25Db2xvcnMpOwogICAgIGJpbmRNZXRob2QoImdyYW50RGVza3RvcE5vdGlmaWNh
dGlvblBlcm1pc3Npb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24pOwogICAgIGJpbmRNZXRob2QoImhhc1NwZWxsaW5nTWFya2VyIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtlcik7CisgICAgYmluZE1ldGhv
ZCgiZmluZFN0cmluZyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyk7CiAgICAg
YmluZE1ldGhvZCgiaXNDb21tYW5kRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXND
b21tYW5kRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgiaGFzQ3VzdG9tUGFnZVNpemVTdHlsZSIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzQ3VzdG9tUGFnZVNpemVTdHlsZSk7CiAgICAgYmlu
ZE1ldGhvZCgiaXNQYWdlQm94VmlzaWJsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aXNQYWdl
Qm94VmlzaWJsZSk7CkBAIC0xOTUzLDYgKzE5NTUsMzggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IEMKICAgICByZXN1bHQtPnNldChtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5zZWxl
Y3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGFyZ3VtZW50c1swXS50b0ludDMyKCksIGFy
Z3VtZW50c1sxXS50b0ludDMyKCkpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZmluZFN0cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBd
LmlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkZpbmRPcHRpb25zIGZpbmRP
cHRpb25zOworICAgIGJvb2wgd3JhcEFyb3VuZCA9IGZhbHNlOworICAgIGlmIChhcmd1bWVudHMu
c2l6ZSgpID49IDIpIHsKKyAgICAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBvcHRpb25zQXJyYXkg
PSBhcmd1bWVudHNbMV0udG9TdHJpbmdWZWN0b3IoKTsKKyAgICAgICAgZmluZE9wdGlvbnMubWF0
Y2hDYXNlID0gdHJ1ZTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbnNB
cnJheS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG9wdGlv
biA9IG9wdGlvbnNBcnJheVtpXTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGFsbCB0
aGUgb3B0aW9ucywgc28gd2UgY2FuIHJ1biBmaW5kU3RyaW5nLmh0bWwgdG9vLgorICAgICAgICAg
ICAgaWYgKG9wdGlvbiA9PSAiQ2FzZUluc2Vuc2l0aXZlIikKKyAgICAgICAgICAgICAgICBmaW5k
T3B0aW9ucy5tYXRjaENhc2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbiA9
PSAiQmFja3dhcmRzIikKKyAgICAgICAgICAgICAgICBmaW5kT3B0aW9ucy5mb3J3YXJkID0gZmFs
c2U7CisgICAgICAgICAgICBlbHNlIGlmIChvcHRpb24gPT0gIldyYXBBcm91bmQiKQorICAgICAg
ICAgICAgICAgIHdyYXBBcm91bmQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgV2Vi
RnJhbWUqIGZyYW1lID0gbV9zaGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUoKTsKKyAgICBjb25z
dCBib29sIGZpbmRSZXN1bHQgPSBmcmFtZS0+ZmluZCgwLAorICAgICAgICBjcHBWYXJpYW50VG9X
ZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwKKyAgICAgICAgZmluZE9wdGlvbnMsCisgICAgICAgIHdy
YXBBcm91bmQsCisgICAgICAgIDApOworICAgIHJlc3VsdC0+c2V0KGZpbmRSZXN1bHQpOworfQor
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMTEyZTI5Nzg2ZjE3YTRjZGM2YzJlMDI2
Njc0MDQwMmEzODg5NWRlMy4uNGQ2Y2Q4NWE3YTIyYTkzZjZjNmI5OWUwOGRmYzE4YzgwY2E0MmNi
OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCkBAIC0zODcsNiArMzg3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYXJr
ZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
ICAgIHZvaWQgaGFzU3BlbGxpbmdNYXJrZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworICAgIHZvaWQgZmluZFN0cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CiAKICAgICB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlY2Y1NDU0NmEzOWNiYTQ1OTQ3
NTM3ZTcyYmU4MjUxN2E0YzM2ZDIuLjA5NDk2NmViNjkyYjdlMWFkYzkzMTJlMmIxYjM3ZjkzMzc4
OTUzMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAg
PG1rb3NpYmFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0
aCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBsYXlvdXQgdGVzdCB0byB2
ZXJpZnkgdGhhdCBmaW5kIHdvcmtzIGNvcnJlY3RseSBvbiBwYWdlcworICAgICAgICB0aGF0IHBy
ZXZlbnQgdGV4dCBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1saW9uL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQtNS4wL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vcXQtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6CisK
IDIwMTEtMTItMDkgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIGNocm9taXVtIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2Vs
ZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDZiMzY1ZmYzY2ViNDNjNWJlMDhlNzZiZjVlMWQzYTc4Y2YxZTBlNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNl
bGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorU2VhcmNoaW5n
IGZvciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGgg
c2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmco
J2UnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdvJyBpbiAnU29tZSBzYW1wbGUgdGV4
dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbycsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGlu
ZyBmb3IgJ3knIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRo
IHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5n
KCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxl
IHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ3QgdCcsIFtdKSBpcyB0cnVlCisKK1Nl
YXJjaGluZyBmb3IgJ21vdW50JyBpbiAnaW5zdXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2Vs
ZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21v
dW50JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50
YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworU2VhcmNoaW5nIGZv
ciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2Vs
ZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdl
JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQg
dGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdvJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5n
IGZvciAneScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGgg
c2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5n
KCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxl
IHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitT
ZWFyY2hpbmcgZm9yICdtb3VudCcgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNl
bGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygn
bW91bnQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdXYWxseScgaW4gJ2luc3VybW91
bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmct
c2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZjNzE4MjBmNzc1YzVkN2ZhMzBj
ZjJmNjg0MWJhZDkxN2I2YTRiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCkBAIC0w
LDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisgLnNlbGVjdGlvbkRpc2FibGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfQor
IC5zZWxlY3Rpb25FbmFibGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9
ImNvbnNvbGUiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij48L3ByZT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4i
KSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJzKHRleHQsIHRhcmdl
dCwgZGlzYWJsZVNlbGVjdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgdmFyIHNlbGVjdGlvblN0YXR1
cyA9IGRpc2FibGVTZWxlY3Rpb24gPyAic2VsZWN0aW9uIGRpc2FibGVkOiIgOiAic2VsZWN0aW9u
IGVuYWJsZWQ6IjsKKyAgICBsb2coIlNlYXJjaGluZyBmb3IgJyIgKyB0YXJnZXQgKyAiJyBpbiAn
IiArIHRleHQgKyAiJyB3aXRoICIgKyBzZWxlY3Rpb25TdGF0dXMpOworCisgICAgdmFyIGNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICBjb250YWlu
ZXIuaW5uZXJUZXh0ID0gdGV4dDsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAg
IGNvbnRhaW5lci5jbGFzc05hbWUgPSBkaXNhYmxlU2VsZWN0aW9uID8gInNlbGVjdGlvbkRpc2Fi
bGVkIiA6ICJzZWxlY3Rpb25FbmFibGVkIjsKKworICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29u
dHJvbGxlci5maW5kU3RyaW5nKCciICsgdGFyZ2V0ICsgIicsIFtdKSIsIGV4cGVjdGVkKTsKKwor
ICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSAiIjsKKyAgICBsb2coIiIpOworfQorCitpZiAoIXdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVx
dWlyZXMgdGhlIGxheW91dFRlc3RDb250cm9sbGVyIG9iamVjdCcpOworZWxzZSB7CisgICAgZm9y
IChpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICB2YXIgZGlzYWJsZVNlbGVjdGlvbiA9IChp
ID09IDEpOworCisgICAgICAgIHRlc3RGaW5kU3RyaW5nVXNpbmdNYXJrZXJzKCJTb21lIHNhbXBs
ZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgImUiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1
ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiU29tZSBzYW1wbGUgdGV4
dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJvIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsK
KyAgICAgICAgdGVzdEZpbmRTdHJpbmdVc2luZ01hcmtlcnMoIlNvbWUgc2FtcGxlIHRleHQgdGhh
dCBjYW4gYmUgc2VhcmNoZWQiLCAieSIsIGRpc2FibGVTZWxlY3Rpb24sICJmYWxzZSIpOworICAg
ICAgICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNh
biBiZSBzZWFyY2hlZCIsICJ0IHQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAg
ICB0ZXN0RmluZFN0cmluZ1VzaW5nTWFya2VycygiaW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAi
bW91bnQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmlu
Z1VzaW5nTWFya2VycygiaW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAiV2FsbHkiLCBkaXNhYmxl
U2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICB9Cit9CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA0ZmI2YjI2OGQwZmY5MGZkZjdmMDM2
ZmQ4NjQ0OGNjNzBiZWU0YjhhLi5kNmVkYTIzM2E2MzJlMWMzZjAyNTc4NDUzZjcxNDI2ZWUzZGYy
NDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtODQzLDYgKzg0MywxMCBAQCBmYXN0
L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCiAjIEVG
TCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBzZXRUZXh0RGlyZWN0
aW9uCiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9uLmh0bWwKIAorIyBGcmFtZTo6ZmluZFN0
cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMgRUZMJ3MgRFJU
IG1pc3NlcyBhbiAnRURJVElORyBERUxFR0FURScgaW1wbGVtZW50YXRpb24KIGVkaXRpbmcvaW5w
dXQvYXR0cmlidXRlZC1zdWJzdHJpbmctZnJvbS1yYW5nZS1saW5lcy5odG1sCiBlZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
LXdrMi9Ta2lwcGVkCmluZGV4IGRlMjYxMDVmYWJjMzI4OWYzNjc1NmQ3Y2RmOWNlNTVkNzAyZTE1
N2UuLjA5YmM3ZWE2MmFjN2NiMGM3ZDJkMmEwOGRkMDlmMjU4OTQ4ZTdmZjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGstd2syL1NraXBwZWQKQEAgLTM3MSw2ICszNzEsMTAgQEAgaHR0cC90ZXN0cy9z
ZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxsb3dlZC5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1ibG9ja2VkLW5v
LWNyb3Nzb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViZ2wtcmVtb3RlLXJlYWQt
cmVtb3RlLWltYWdlLWFsbG93ZWQtd2l0aC1jcmVkZW50aWFscy5odG1sCiAKKyMgRnJhbWU6OmZp
bmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCmluZGV4IDI3ZGM0MTY1MWNkMWY5YjFl
Y2NkYzcxZGM2MTk3NzdhOTdjM2JiMjkuLjg5YzdhNzI3ZTdkYjY1OWIyMzYwM2RjNzg1YmRjMDMx
MzYwYTY0MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tpcHBlZApAQCAtNTAsNiAr
NTAsMTAgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0
ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRv
Y29ycmVjdGVkLXdvcmQtMi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9yZW1v
dmluZy11bmRlcmxpbmUtYWZ0ZXItYWNjZXB0aW5nLWF1dG9jb3JyZWN0aW9uLXVzaW5nLXB1bmN0
dWF0aW9uLmh0bWwgIAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdl
cyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0
aW9uLWRpc2FibGVkLmh0bWwKKwogIyBQYXN0aW5nIHJlcGxhY2VzIHRoZSB0aHJlZSBwZXJpb2Rz
IHdpdGggYW4gZWxsaXBzaXMgb24gTGlvbgogZWRpdGluZy9wYXN0ZWJvYXJkLzU0NzgyNTAuaHRt
bAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCmluZGV4
IDdlOTEzMTBhZTc4MDE5NTRhMTAyZjJjNzhmOGEyZTRkZGJlODJlMDAuLjNmMWQ1NmNkYmY1Y2Y3
YTk4OTkwNmJlZWJiZWE2NjIwOTAwMGU2YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1zbm93bGVvcGFyZC9Ta2lwcGVkCkBAIC0xODUsMyArMTg1LDcgQEAgaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1sb2FkLXR3aWNlLmh0bWwKIAogIyBIaURQSSB0ZXN0cyBoYXZlIGxvd2VyLWxldmVs
IHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvbiBNYWMKIGZhc3QvaGlkcGkKKworIyBGcmFtZTo6Zmlu
ZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4
dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCmluZGV4IDg1YmI1NjJhN2M1MGQ3NjhkY2ZiZWJiNWQ2ZWRkMjY2OTk3OGVj
ODkuLmRlMGM5Njc5OWZiMTBiODNkMzI3MWJiZmQ4ZjZmYjE2NDY0ZmFhMmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC01MjMsMyArNTIzLDcgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC12aWRlby1pbi1tYWluLWZyYW1lLmh0
bWwKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzQKIGZh
c3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwKKworIyBGcmFtZTo6
ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgor
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LTUuMC9Ta2lwcGVkCmluZGV4IDlmZDgxZDdiMjE2ZjkyMGNlZGEzNmNmZGU0MWFk
NmFjNWRjMDBjZmYuLmMyNWM1ODY5MWM3NGY2NGM1YjBkMGQyMzE5MTIxZTA0ZjkyMzNhNjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkCkBAIC02OTgzLDMgKzY5ODMsNyBAQCBlZGl0
aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My0xLmh0bWwKICMgW1F0XSBlZGl0aW5nL3NlbGVjdGlvbi9j
bGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbCBmYWlscyB3aXRoIFF0NQog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTgKIGVkaXRpbmcv
c2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCisKKyMg
RnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxl
Y3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitl
ZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAppbmRleCA2YzE3YWJlY2JjOTQwZTNmNDRiZTBh
YWRkMjIxMDI4ODJkY2M2ZTkyLi4wM2EyOWRlZTE3NGQwY2IyYTNhOWNlMTdjMGM2ZThlYTM2ZWZl
NTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZApAQCAtNTI2OCwzICs1MjY4LDcg
QEAgY3NzMi4xLzIwMTEwMzIzL2VtcHR5LWlubGluZS0wMDIuaHRtCiBjc3MyLjEvMjAxMTAzMjMv
ZW1wdHktaW5saW5lLTAwMy5odG0KIGNzczIuMS8yMDExMDMyMy9lbXB0eS1pbmxpbmUtMDAxLmh0
bQogdHJhbnNmb3Jtcy9zdmctdnMtY3NzLnhodG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9l
cyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIv
U2tpcHBlZAppbmRleCAyYzNlOTcyMDQ1ODdlNzllOTQ2OGI4NmU3MGJiMzJmMzY1YjhiMjgyLi5i
MjkwNmI3ZGMzMTI1MzAyNWJmMTgzNTZhMTAzZWFhMDllNjA0NGI1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC13azIvU2tpcHBlZApAQCAtMTg2OSwzICsxODY5LDcgQEAgZmFzdC9oaXN0b3J5L2hpc3Rv
cnktYmFjay1pbml0aWFsLXZzLWZpbmFsLXVybC5odG1sCiBodHRwL3Rlc3RzL2hpc3RvcnkvYmFj
ay10by1wb3N0LnBocAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEu
aHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5o
dG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJl
dmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJs
ZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCBiNjc2YzBmYTc4NmZlMTQzMjQ5
Mzc5YjAzYTkyZmRhMDA4OTg5YzU1Li4xYzFmNzI3Y2VjODVkZDlmNWYxNTBhODQ3ZmQzOGNmZmEx
ODQwZDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtODk0LDYgKzg5NCwxMCBAQCBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC5odG1sCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKIAorIyBGcmFtZTo6
ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgor
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMjIyBF
TkQgT0YgKDEpIENsYXNzaWZpZWQgZmFpbHVyZXMgd2l0aCBidWcgcmVwb3J0cwogIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119006</attachid>
            <date>2011-12-13 04:34:12 -0800</date>
            <delta_ts>2011-12-14 04:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111213123411.patch</filename>
            <type>text/plain</type>
            <size>30767</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNjc1OTMwZWMwZDc3
OWY3ZmY5MjliYmU2NGY3NjViM2QxY2ZjMS4uZTVlYTI1NTVjOTJkYjMwOTZiYWRhNjE0YzhjMzE0
MmExNGE2NDcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTEyICBB
bmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBDb2xsZWN0aW9uQ2Fj
aGU6IFJlbW92ZSB1bnVzZWQgY29weSBjb25zdHJ1Y3RvciBhbmQgbWFrZSBpdCBub25jb3B5YWJs
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGU0YTA3MDYzMTczMzhhNzUzZWM0NmJl
ZTI4OGE5YjAxY2VmZGM5OS4uMjE2OTQ4OTEwMjcxNjg3YmNmNTRjN2VhNzI4OWFiNjFkYzM4MDZk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0x
NyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaXggZmlu
ZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHdp
bGwgbWFrZSBpdCBwb3NzaWJsZSB0byBzZWFyY2ggZm9yIHRleHQgdGhhdCBoYXMKKyAgICAgICAg
c2VsZWN0aW9uIGRpc2FibGVkICh2aWEgdGhlIHdlYmtpdC11c2VyLXNlbGVjdCBhdHRyaWJ1dGUp
LgorCisgICAgICAgIFdlYkZyYW1lSW1wbDo6ZmluZCB3aWxsIHVzZSBmaW5kU3RyaW5nQW5kU2Ny
b2xsVG9WaXNpYmxlLCB3aGljaCBpcworICAgICAgICBzaW1pbGFyIHRvIGZpbmRTdHJpbmcgZXhj
ZXB0IHRoYXQgaXQgdXNlcyBSYW5nZSBkaXJlY3RseSByYXRoZXIKKyAgICAgICAgdGhhbiBwYXNz
aW5nIHRoZSBmaW5kIHJlc3VsdCBpbiB0aGUgYWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICAq
IHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZp
bmQpOgorCiAyMDExLTEyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFdlYktpdCBjb2RlIHNob3VsZG4ndCBiZSBjYWxsaW5nIGFwcGx5Q29tbWFuZCBkaXJl
Y3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGZiODc4ODIwMjY1ZmY3OWRiMjhl
YWFhYTY2MWUyZDY4YTNmMGU0OGQuLmE3MjdmZGVlMDM3NzliODFlMTNlMDY0Zjg0YjA1NjY3ZDYw
MmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNp
bmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5o
IgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24uaCIKQEAgLTI3NzcsNiArMjc3OCwxOCBAQCBi
b29sIEVkaXRvcjo6ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMg
b3B0aW9ucykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9y
OjpmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5n
ZSogcHJldmlvdXNNYXRjaCwgRmluZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IG5leHRNYXRjaCA9IHJhbmdlT2ZTdHJpbmcodGFyZ2V0LCBwcmV2aW91c01hdGNoLCBvcHRp
b25zKTsKKyAgICBpZiAoIW5leHRNYXRjaCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBuZXh0
TWF0Y2gtPmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxS
ZWN0VG9WaXNpYmxlKG5leHRNYXRjaC0+Ym91bmRpbmdCb3goKSwKKyAgICAgICAgU2Nyb2xsQWxp
Z25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVy
SWZOZWVkZWQpOworCisgICAgcmV0dXJuIG5leHRNYXRjaC5yZWxlYXNlKCk7Cit9CisKIFBhc3NS
ZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwg
UmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBGaW5kT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmICh0
YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYjgxZTYxMDRkNjk2
ZTI5ZWNmMGFiNDc5ZGQyNDljMjQ5NmM1ZWNjZi4uMjlhYzdkYTUyNmIwM2NhNmUxZTQxNDNiMDEx
OGU3YmEwMDA4OThlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zNDAsNiArMzQwLDcg
QEAgcHVibGljOgogICAgIGJvb2wgZmluZFN0cmluZyhjb25zdCBTdHJpbmcmLCBib29sIGZvcndh
cmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wgd3JhcEZsYWcsIGJvb2wgc3RhcnRJblNlbGVjdGlvbik7
CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJh
bmdlKiwgRmluZE9wdGlvbnMpOworICAgIFBhc3NSZWZQdHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRT
Y3JvbGxUb1Zpc2libGUoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBGaW5kT3B0aW9ucyk7CiAKICAg
ICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJrKCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVz
ZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lkIHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5k
ZXggY2M1MTRlYmMyMjMxNzVkMThhODVmNDlkY2QwOGZiOWFkZjMxOGM2Ny4uMzZlMjYzNjRlYTRk
NmM3MzNjMDBkNjdhNDdjMmQ0MzY2NWYxYzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNTIwLDk0ICsxNTIwLDcwIEBAIGJvb2wgV2ViRnJh
bWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAogewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZy
YW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFtZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9u
cy5maW5kTmV4dCkKKyAgICBpZiAoIW9wdGlvbnMuZmluZE5leHQpIHsKICAgICAgICAgZnJhbWUo
KS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0
TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNo
IGlzIGNoYW5naW5nLgotCi0gICAgLy8gU3RhcnRzIHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVu
dCBzZWxlY3Rpb24uCi0gICAgYm9vbCBzdGFydEluU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAg
bV9hY3RpdmVNYXRjaCA9IDA7CisgICAgfSBlbHNlCisgICAgICAgIHNldE1hcmtlckFjdGl2ZSht
X2FjdGl2ZU1hdGNoLmdldCgpLCBmYWxzZSk7CiAKICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Vs
ZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0IEZpbmQgb3BlcmF0aW9uIHdlIHdhbnQKICAg
ICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhlcndpc2UsIHdlIHN0YXJ0IHNlYXJjaGluZyBm
cm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAvLyBvcGVyYXRpb24gbGVmdCBvZmYgKGVpdGhl
ciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRpb24pLgogICAgIFZpc2libGVTZWxlY3Rpb24g
c2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7CiAgICAgYm9vbCBh
Y3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9uZSgpOwotICAgIGlmICghYWN0aXZlU2Vs
ZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAgICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNl
bGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9u
KCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgIGlmIChhY3RpdmVTZWxlY3Rpb24pIHsK
KyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IHNlbGVjdGlvbi5maXJzdFJhbmdlKCkuZ2V0KCk7Cisg
ICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOwog
ICAgIH0KIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7Ci0gICAgYm9v
bCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nKAotICAgICAgICBzZWFyY2hU
ZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0Y2hDYXNlLCB3cmFwV2l0aGluRnJhbWUs
Ci0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOwotICAgIGlmIChmb3VuZCkgewotICAgICAgICAv
LyBTdG9yZSB3aGljaCBmcmFtZSB3YXMgYWN0aXZlLiBUaGlzIHdpbGwgY29tZSBpbiBoYW5keSBs
YXRlciB3aGVuIHdlCi0gICAgICAgIC8vIGNoYW5nZSB0aGUgYWN0aXZlIG1hdGNoIG9yZGluYWwg
YmVsb3cuCi0gICAgICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBtYWluRnJhbWVJ
bXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWU7Ci0gICAgICAgIC8vIFNldCB0aGlzIGZyYW1lIGFzIHRo
ZSBhY3RpdmUgZnJhbWUgKHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhpZ2hsaWdodCkuCi0gICAg
ICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7Ci0KLSAgICAgICAg
Ly8gV2UgZm91bmQgc29tZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBzZWxlY3Rpb24g
Zm9yIGl0cyBwb3NpdGlvbi4KLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24o
ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKLSAgICAgICAgSW50UmVjdCBjdXJy
U2VsZWN0aW9uUmVjdDsKLQotICAgICAgICAvLyBJZiB3ZSB0aG91Z2h0IHdlIGZvdW5kIHNvbWV0
aGluZywgYnV0IGl0IGNvdWxkbid0IGJlIHNlbGVjdGVkIChwZXJoYXBzCi0gICAgICAgIC8vIGJl
Y2F1c2UgaXQgd2FzIG1hcmtlZCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lKSwgd2UgY2FuJ3Qg
c2V0IGl0IHRvCi0gICAgICAgIC8vIGJlIGFjdGl2ZSBidXQgd2Ugc3RpbGwgY29udGludWUgc2Vh
cmNoaW5nLiBUaGlzIG1hdGNoZXMgU2FmYXJpJ3MKLSAgICAgICAgLy8gYmVoYXZpb3IsIGluY2x1
ZGluZyBzb21lIG9kZGl0aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0YWJsZSB0ZXh0
Ci0gICAgICAgIC8vIGFyZSBtaXhlZCBvbiBhIHBhZ2U6IHNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjcuCi0gICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNO
b25lKCkgfHwgKG5ld1NlbGVjdGlvbi5zdGFydCgpID09IG5ld1NlbGVjdGlvbi5lbmQoKSkpCi0g
ICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBtX2FjdGl2ZU1hdGNoID0gbmV3U2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAg
ICAgICAgICBjdXJyU2VsZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCk7
Ci0gICAgICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7
IC8vIEFjdGl2ZS4KLSAgICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGlnaGxpZ2h0aW5n
IGZvciBhbGwgbWF0Y2hlcy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6
ZnJvbVVURjgoIlVuc2VsZWN0IikpOwotICAgICAgICB9CisgICAgY29uc3QgRmluZE9wdGlvbnMg
ZmluZE9wdGlvbnMgPSAob3B0aW9ucy5mb3J3YXJkID8gMCA6IEJhY2t3YXJkcykKKyAgICAgICAg
fCAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUluc2Vuc2l0aXZlKQorICAgICAgICB8ICh3
cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAoIW9wdGlvbnMuZmlu
ZE5leHQgPyBTdGFydEluU2VsZWN0aW9uIDogMCk7CisgICAgbV9hY3RpdmVNYXRjaCA9IGZyYW1l
KCktPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKHNlYXJjaFRleHQsIG1f
YWN0aXZlTWF0Y2guZ2V0KCksIGZpbmRPcHRpb25zKTsKIAotICAgICAgICAvLyBNYWtlIHN1cmUg
bm8gbm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2NyYnVnLmNvbS8zODcwMC4KLSAgICAgICAg
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgaWYgKCFtX2FjdGl2
ZU1hdGNoKSB7CisgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0
Y2guZ2V0KCksIHRydWUpOworICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBtYWlu
RnJhbWVJbXBsLT5tX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOworICAgIG1haW5GcmFtZUltcGwt
Pm1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUgPSB0aGlzOwogCi0gICAgICAgIGlmICghb3B0aW9u
cy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIC8vIFRoaXMgaXMg
ZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBzdGFydCBw
b2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBzZXQgdGhlIGZs
YWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAgICAgICAgICAgLy8gdG8gZmluZCB0aGUg
YWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRhdGUgdGhlIG9yZGluYWwgKG4gb2YgbSku
Ci0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgLy8gTWFrZSBz
dXJlIG5vIG5vZGUgaXMgZm9jdXNlZC4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzg3MDAuCisgICAg
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisKKyAgICBpZiAoIW9wdGlv
bnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFRoaXMgaXMgZWl0
aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBzdGFydCBwb2lu
dAorICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24sIHNvIHdlIHNldCB0aGUgZmxhZyB0byBh
c2sgdGhlIHNjb3BpbmcgZWZmb3J0CisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFjdGl2ZSByZWN0
IGZvciB1cyBhbmQgcmVwb3J0IGl0IGJhY2sgdG8gdGhlIFVJLgorICAgICAgICBtX2xvY2F0aW5n
QWN0aXZlUmVjdCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG9sZEFjdGl2ZUZy
YW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCisgICAgICAg
ICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSAwOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1l
ID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAob2xkQWN0aXZlRnJhbWUgIT0gdGhpcykgewotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBh
Y3RpdmUgZnJhbWUgaGFzIGNoYW5nZWQgaXQgbWVhbnMgdGhhdCB3ZSBoYXZlIGEgbXVsdGktZnJh
bWUKLSAgICAgICAgICAgICAgICAvLyBwYWdlIGFuZCB3ZSBqdXN0IHN3aXRjaCB0byBzZWFyY2hp
bmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAotICAgICAgICAgICAgICAgIC8vIHdhbnQg
dG8gcmVzZXQgdGhlIGluZGV4LgotICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQp
Ci0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDA7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xh
c3RNYXRjaENvdW50IC0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
Ly8gV2UgYXJlIHN0aWxsIHRoZSBhY3RpdmUgZnJhbWUsIHNvIGluY3JlbWVudCAob3IgZGVjcmVt
ZW50KSB0aGUKLSAgICAgICAgICAgICAgICAvLyB8bV9hY3RpdmVNYXRjaEluZGV4fCwgd3JhcHBp
bmcgaWYgbmVlZGVkIChvbiBzaW5nbGUgZnJhbWUgcGFnZXMpLgotICAgICAgICAgICAgICAgIG9w
dGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaEluZGV4IDogLS1tX2FjdGl2ZU1hdGNoSW5k
ZXg7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJbmRleCArIDEgPiBtX2xhc3RN
YXRjaENvdW50KQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSAwOwot
ICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggPT0gLTEpCi0gICAgICAgICAg
ICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1fbGFzdE1hdGNoQ291bnQgLSAxOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNlbGVjdGlvblJlY3QpIHsKLSAgICAgICAgICAg
ICAgICAqc2VsZWN0aW9uUmVjdCA9IGZyYW1lVmlldygpLT5jb250ZW50c1RvV2luZG93KGN1cnJT
ZWxlY3Rpb25SZWN0KTsKLSAgICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9u
KCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlmaWVyKTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCisgICAgICAgICAg
ICAgICAgKyttX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAtLW1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lOwor
CisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgKyAxID4g
bV9sYXN0TWF0Y2hDb3VudCkKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1
cnJlbnRGcmFtZSA9IDA7CisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4SW5DdXJy
ZW50RnJhbWUgPT0gLTEpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJy
ZW50RnJhbWUgPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
c2VsZWN0aW9uUmVjdCkgeworICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBmcmFtZVZpZXco
KS0+Y29udGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgpKTsKKyAgICAg
ICAgICAgIHJlcG9ydEZpbmRJblBhZ2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3QsIG1fYWN0aXZl
TWF0Y2hJbmRleEluQ3VycmVudEZyYW1lICsgMSwgaWRlbnRpZmllcik7CiAgICAgICAgIH0KLSAg
ICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5nIHdhcyBmb3VuZCBpbiB0aGlzIGZyYW1lLgot
ICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLQotICAgICAgICAvLyBFcmFzZSBhbGwgcHJldmlv
dXMgdGlja21hcmtzIGFuZCBoaWdobGlnaHRpbmcuCi0gICAgICAgIGludmFsaWRhdGVBcmVhKElu
dmFsaWRhdGVBbGwpOwogICAgIH0KIAotICAgIHJldHVybiBmb3VuZDsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OnN0b3BGaW5kaW5nKGJvb2wgY2xlYXJTZWxlY3Rp
b24pCkBAIC0xNzI1LDE3ICsxNzAxLDE3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpzY29wZVN0cmlu
Z01hdGNoZXMoaW50IGlkZW50aWZpZXIsCiAgICAgICAgICAgICBib29sIGZvdW5kQWN0aXZlTWF0
Y2ggPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChtX2xvY2F0aW5nQWN0aXZlUmVjdCAmJiAoYWN0
aXZlU2VsZWN0aW9uUmVjdCA9PSByZXN1bHRCb3VuZHMpKSB7CiAgICAgICAgICAgICAgICAgLy8g
V2UgaGF2ZSBmb3VuZCB0aGUgYWN0aXZlIHRpY2ttYXJrIGZyYW1lLgotICAgICAgICAgICAgICAg
IG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CisgICAgICAgICAgICAg
ICAgbWFpbkZyYW1lSW1wbC0+bV9jdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CiAgICAg
ICAgICAgICAgICAgZm91bmRBY3RpdmVNYXRjaCA9IHRydWU7CiAgICAgICAgICAgICAgICAgLy8g
V2UgYWxzbyBrbm93IHdoaWNoIHRpY2ttYXJrIGlzIGFjdGl2ZSBub3cuCi0gICAgICAgICAgICAg
ICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbWF0Y2hDb3VudCAtIDE7CisgICAgICAgICAgICAgICAg
bV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSBtYXRjaENvdW50IC0gMTsKICAgICAg
ICAgICAgICAgICAvLyBUbyBzdG9wIGxvb2tpbmcgZm9yIHRoZSBhY3RpdmUgdGlja21hcmssIHdl
IHNldCB0aGlzIGZsYWcuCiAgICAgICAgICAgICAgICAgbV9sb2NhdGluZ0FjdGl2ZVJlY3QgPSBm
YWxzZTsKIAogICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBicm93c2VyIG9mIG5ldyBsb2NhdGlv
biBmb3IgdGhlIHNlbGVjdGVkIHJlY3RhbmdsZS4KICAgICAgICAgICAgICAgICByZXBvcnRGaW5k
SW5QYWdlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgICBmcmFtZVZpZXcoKS0+Y29udGVu
dHNUb1dpbmRvdyhyZXN1bHRCb3VuZHMpLAotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1h
dGNoSW5kZXggKyAxLAorICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1
cnJlbnRGcmFtZSArIDEsCiAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIpOwogICAgICAg
ICAgICAgfQogCkBAIC0xODA0LDcgKzE3ODAsNyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y2FuY2Vs
UGVuZGluZ1Njb3BpbmdFZmZvcnQoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2RlZmVycmVkU2Nv
cGluZ1dvcmspOwogICAgIG1fZGVmZXJyZWRTY29waW5nV29yay5jbGVhcigpOwogCi0gICAgbV9h
Y3RpdmVNYXRjaEluZGV4ID0gLTE7CisgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJh
bWUgPSAtMTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmluY3JlYXNlTWF0Y2hDb3VudChpbnQg
Y291bnQsIGludCBpZGVudGlmaWVyKQpAQCAtMTk5Nyw4ICsxOTczLDggQEAgUGFzc1JlZlB0cjxX
ZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6Y3JlYXRlKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQp
CiBXZWJGcmFtZUltcGw6OldlYkZyYW1lSW1wbChXZWJGcmFtZUNsaWVudCogY2xpZW50KQogICAg
IDogbV9mcmFtZUxvYWRlckNsaWVudCh0aGlzKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAg
ICwgbV9hY3RpdmVNYXRjaEZyYW1lKDApCi0gICAgLCBtX2FjdGl2ZU1hdGNoSW5kZXgoLTEpCisg
ICAgLCBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lKDApCisgICAgLCBtX2FjdGl2ZU1hdGNoSW5k
ZXhJbkN1cnJlbnRGcmFtZSgtMSkKICAgICAsIG1fbG9jYXRpbmdBY3RpdmVSZWN0KGZhbHNlKQog
ICAgICwgbV9yZXN1bWVTY29waW5nRnJvbVJhbmdlKDApCiAgICAgLCBtX2xhc3RNYXRjaENvdW50
KC0xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCBkNDhj
Y2JkZDQ5MjQ0ZWE4Yzg4MjQ4NTU3ODY1MWEyNWRjMmFiODIyLi4yM2U2MGQ5ODA0MzMxYzg2Zjdh
NWIwYjFmYzhhZDRjZGRlN2Y4ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuaApAQCAtMjUyLDcgKzI1Miw3IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHdo
aWNoIGZyYW1lIGhhcyBhbiBhY3RpdmUgbWF0Y2guIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkg
YmUKICAgICAvLyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUsIGFzIGl0IGlzIHRoZSBvbmx5IGZy
YW1lIGtlZXBpbmcgdHJhY2suIFJldHVybmVkCiAgICAgLy8gdmFsdWUgY2FuIGJlIDAgaWYgbm8g
ZnJhbWUgaGFzIGFuIGFjdGl2ZSBtYXRjaC4KLSAgICBjb25zdCBXZWJGcmFtZUltcGwqIGFjdGl2
ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoRnJhbWU7IH0KKyAgICBj
b25zdCBXZWJGcmFtZUltcGwqIGFjdGl2ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRBY3RpdmVNYXRjaEZyYW1lOyB9CiAKICAgICAvLyBXaGVuIGEgRmluZCBvcGVyYXRpb24g
ZW5kcywgd2Ugd2FudCB0byBzZXQgdGhlIHNlbGVjdGlvbiB0byB3aGF0IHdhcyBhY3RpdmUKICAg
ICAvLyBhbmQgc2V0IGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZSB3ZSBmaW5kIChz
dGFydGluZyB3aXRoIHRoZSBmaXJzdApAQCAtMzQ2LDEzICszNDYsMTMgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIEEgd2F5IGZvciB0aGUgbWFpbiBmcmFtZSB0byBrZWVwIHRyYWNrIG9mIHdoaWNoIGZy
YW1lIGhhcyBhbiBhY3RpdmUKICAgICAvLyBtYXRjaC4gU2hvdWxkIGJlIDAgZm9yIGFsbCBvdGhl
ciBmcmFtZXMuCi0gICAgV2ViRnJhbWVJbXBsKiBtX2FjdGl2ZU1hdGNoRnJhbWU7CisgICAgV2Vi
RnJhbWVJbXBsKiBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOwogCiAgICAgLy8gVGhlIHJhbmdl
IG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgogICAgIFJlZlB0cjxX
ZWJDb3JlOjpSYW5nZT4gbV9hY3RpdmVNYXRjaDsKIAotICAgIC8vIFRoZSBpbmRleCBvZiB0aGUg
YWN0aXZlIG1hdGNoLgotICAgIGludCBtX2FjdGl2ZU1hdGNoSW5kZXg7CisgICAgLy8gVGhlIGlu
ZGV4IG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgorICAgIGludCBt
X2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKIAogICAgIC8vIFRoaXMgZmxhZyBpcyB1
c2VkIGJ5IHRoZSBzY29waW5nIGVmZm9ydCB0byBkZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBmaWd1
cmUKICAgICAvLyBvdXQgd2hpY2ggcmVjdGFuZ2xlIGlzIHRoZSBhY3RpdmUgbWF0Y2guIE9uY2Ug
d2UgZmluZCB0aGUgYWN0aXZlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNmZlZDI5NzY4YTZkOWE2ODQ2NDVjZjA0YWJlZjkzYzYzMzA1YmFlNy4u
MzExZjUzOWI0ZmIxMDIxMGIxYWZlN2YwMzYzOGMwN2YxM2FjMTBmNCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEx
LTExLTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZp
eCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENo
cm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBy
b3ZpZGVkIGEgcGFydGlhbCBmaW5kU3RyaW5nIGltcGxlbWVudGF0aW9uLiBUaGlzIGRvZXNuJ3Qg
c3VwcG9ydAorICAgICAgICBhbGwgb2YgdGhlIEZpbmRPcHRpb25zIHNpbmNlIHRoZXkncmUgbm90
IGV4cG9zZWQgdmlhIFdlYkZpbmRPcHRpb25zLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDExLTEyLTEzICBLZW5pY2hpIElzaGliYXNoaSAg
PGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCwgcmVtb3ZlZCBvbmUgb2Yg
bXkgZW1haWwgYWRkcmVzc2VzIHRvIHVzZSB0aGUgYXBwcnByaWF0ZSBvbmUuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggOGUzMWUxZTAyOTI3YzY3M2Y5NmEyYjY0Y2EyMGVmYWE4NTc1YmI4My4uNGU0NzRkZDk4
ODRhNjhkOGUzNDMxZDE1NDg5ZDMzOThjZmY3N2U4MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2lu
Y2x1ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgorI2luY2x1ZGUg
IldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCkBAIC0x
MjIsNiArMTIzLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZm9yY2VSZWRTZWxlY3Rpb25Db2xv
cnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICAg
ICBiaW5kTWV0aG9kKCJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKTsKICAg
ICBiaW5kTWV0aG9kKCJoYXNTcGVsbGluZ01hcmtlciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
aGFzU3BlbGxpbmdNYXJrZXIpOworICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcpOwogICAgIGJpbmRNZXRob2QoImlzQ29tbWFuZEVu
YWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzQ29tbWFuZEVuYWJsZWQpOwogICAgIGJp
bmRNZXRob2QoImhhc0N1c3RvbVBhZ2VTaXplU3R5bGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
Omhhc0N1c3RvbVBhZ2VTaXplU3R5bGUpOwogICAgIGJpbmRNZXRob2QoImlzUGFnZUJveFZpc2li
bGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmlzUGFnZUJveFZpc2libGUpOwpAQCAtMTk1Myw2
ICsxOTU1LDM0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2Vy
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgcmVzdWx0LT5zZXQobV9z
aGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUoKS0+c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01h
cmtlckZvcihhcmd1bWVudHNbMF0udG9JbnQzMigpLCBhcmd1bWVudHNbMV0udG9JbnQzMigpKSk7
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJn
dW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBXZWJGaW5kT3B0aW9ucyBmaW5kT3B0aW9uczsKKyAgICBib29sIHdyYXBB
cm91bmQgPSBmYWxzZTsKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyKSB7CisgICAgICAg
IFZlY3RvcjxzdGQ6OnN0cmluZz4gb3B0aW9uc0FycmF5ID0gYXJndW1lbnRzWzFdLnRvU3RyaW5n
VmVjdG9yKCk7CisgICAgICAgIGZpbmRPcHRpb25zLm1hdGNoQ2FzZSA9IHRydWU7CisKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25zQXJyYXkuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvcHRpb24gPSBvcHRpb25zQXJyYXlbaV07Cisg
ICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBhbGwgdGhlIG9wdGlvbnMsIHNvIHdlIGNhbiBy
dW4gZmluZFN0cmluZy5odG1sIHRvby4KKyAgICAgICAgICAgIGlmIChvcHRpb24gPT0gIkNhc2VJ
bnNlbnNpdGl2ZSIpCisgICAgICAgICAgICAgICAgZmluZE9wdGlvbnMubWF0Y2hDYXNlID0gZmFs
c2U7CisgICAgICAgICAgICBlbHNlIGlmIChvcHRpb24gPT0gIkJhY2t3YXJkcyIpCisgICAgICAg
ICAgICAgICAgZmluZE9wdGlvbnMuZm9yd2FyZCA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBp
ZiAob3B0aW9uID09ICJXcmFwQXJvdW5kIikKKyAgICAgICAgICAgICAgICB3cmFwQXJvdW5kID0g
dHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFdlYkZyYW1lKiBmcmFtZSA9IG1fc2hlbGwt
PndlYlZpZXcoKS0+bWFpbkZyYW1lKCk7CisgICAgY29uc3QgYm9vbCBmaW5kUmVzdWx0ID0gZnJh
bWUtPmZpbmQoMCwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIGZpbmRPcHRp
b25zLCB3cmFwQXJvdW5kLCAwKTsKKyAgICByZXN1bHQtPnNldChmaW5kUmVzdWx0KTsKK30KKwog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBy
ZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDExMmUyOTc4NmYxN2E0Y2RjNmMyZTAyNjY3
NDA0MDJhMzg4OTVkZTMuLjRkNmNkODVhN2EyMmE5M2Y2YzZiOTllMDhkZmMxOGM4MGNhNDJjYjgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaApAQCAtMzg3LDYgKzM4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbWFya2Vy
VGV4dEZvckxpc3RJdGVtKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIGhhc1NwZWxsaW5nTWFya2VyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKKyAgICB2b2lkIGZpbmRTdHJpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogCiAgICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWEwZTY5YjcyNGYxMGU2YmI1NjNh
ODFiYTUzMDQ5YzVkZjI3YmUxLi5jOWNlMzAxNWZjNWE0OGI2MDE2OTFlZWNjYmIyYWI5NGIyNjc5
NWUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxt
a29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQgb24gd2ViIHBhZ2VzIHdpdGgg
LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgbGF5b3V0IHRlc3QgdG8gdmVy
aWZ5IHRoYXQgZmluZCB3b3JrcyBjb3JyZWN0bHkgb24gcGFnZXMKKyAgICAgICAgdGhhdCBwcmV2
ZW50IHRleHQgc2VsZWN0aW9uLgorCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2Zp
bmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGlvbi9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTUuMC9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL3F0LXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCiAy
MDExLTEyLTEzICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkIENocm9taXVtIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4gQ2hhbmdl
ZCBleHBlY3RhdGlvbiBvZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0
ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMzY1ZmYzY2ViNDNjNWJlMDhlNzZiZjVlMWQz
YTc4Y2YxZTBlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0MCBAQAorU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBj
YW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmZpbmRTdHJpbmcoJ2UnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdv
JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxlY3Rp
b24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbycsIFtd
KSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3knIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQg
Y2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3Ig
J3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2Vs
ZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ3Qg
dCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ21vdW50JyBpbiAnaW5zdXJtb3VudGFi
bGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAn
V2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZW5hYmxl
ZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBbXSkgaXMg
ZmFsc2UKKworU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbycg
aW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9u
IGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdvJywgW10p
IGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAneScgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBj
YW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3Ig
J3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2Vs
ZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd0
IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdtb3VudCcgaW4gJ2luc3VybW91bnRh
YmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZmluZFN0cmluZygnbW91bnQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9y
ICdXYWxseScgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNh
YmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnV2FsbHknLCBbXSkg
aXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5k
U3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0
LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDVkM2E5MTQ0M2Q0ZGRkYmU3MjNkM2Q0OTgxMzg3MzdkOGQwZTEyNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlv
bi1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgLnNlbGVjdGlvbkRpc2FibGVkIHsgLXdlYmtpdC11
c2VyLXNlbGVjdDogbm9uZTsgfQorIC5zZWxlY3Rpb25FbmFibGVkIHsgLXdlYmtpdC11c2VyLXNl
bGVjdDogYXV0bzsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47
Ij48L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGaW5kU3RyaW5nKHRl
eHQsIHRhcmdldCwgZGlzYWJsZVNlbGVjdGlvbiwgZXhwZWN0ZWQpCit7CisgICAgdmFyIHNlbGVj
dGlvblN0YXR1cyA9IGRpc2FibGVTZWxlY3Rpb24gPyAic2VsZWN0aW9uIGRpc2FibGVkOiIgOiAi
c2VsZWN0aW9uIGVuYWJsZWQ6IjsKKyAgICBsb2coIlNlYXJjaGluZyBmb3IgJyIgKyB0YXJnZXQg
KyAiJyBpbiAnIiArIHRleHQgKyAiJyB3aXRoICIgKyBzZWxlY3Rpb25TdGF0dXMpOworCisgICAg
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAg
ICBjb250YWluZXIuaW5uZXJUZXh0ID0gdGV4dDsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRv
cDsKKworICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBkaXNhYmxlU2VsZWN0aW9uID8gInNlbGVj
dGlvbkRpc2FibGVkIiA6ICJzZWxlY3Rpb25FbmFibGVkIjsKKworICAgIHNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCciICsgdGFyZ2V0ICsgIicsIFtdKSIsIGV4cGVj
dGVkKTsKKworICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSAiIjsKKyAgICBsb2coIiIpOworfQor
CitpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICB0ZXN0RmFpbGVkKCdUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIGxheW91dFRlc3RDb250cm9sbGVyIG9iamVjdCcpOworZWxzZSB7
CisgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICB2YXIgZGlzYWJsZVNlbGVj
dGlvbiA9IChpID09IDEpOworCisgICAgICAgIHRlc3RGaW5kU3RyaW5nKCJTb21lIHNhbXBsZSB0
ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgImUiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIp
OworICAgICAgICB0ZXN0RmluZFN0cmluZygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBz
ZWFyY2hlZCIsICJvIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZp
bmRTdHJpbmcoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQiLCAieSIsIGRp
c2FibGVTZWxlY3Rpb24sICJmYWxzZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiU29tZSBz
YW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJ0IHQiLCBkaXNhYmxlU2VsZWN0aW9u
LCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiaW5zdXJtb3VudGFibGUgbW91bnRh
aW4iLCAibW91bnQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0Rmlu
ZFN0cmluZygiaW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAiV2FsbHkiLCBkaXNhYmxlU2VsZWN0
aW9uLCAiZmFsc2UiKTsKKyAgICB9Cit9CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA0ZmI2YjI2OGQwZmY5MGZkZjdmMDM2ZmQ4NjQ0
OGNjNzBiZWU0YjhhLi5kNmVkYTIzM2E2MzJlMWMzZjAyNTc4NDUzZjcxNDI2ZWUzZGYyNDk4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtODQzLDYgKzg0MywxMCBAQCBmYXN0L2RvbS90
aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCiAjIEVGTCdzIExh
eW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBzZXRUZXh0RGlyZWN0aW9uCiBm
YXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9uLmh0bWwKIAorIyBGcmFtZTo6ZmluZFN0cmluZyBk
b2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRv
ci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMgRUZMJ3MgRFJUIG1pc3Nl
cyBhbiAnRURJVElORyBERUxFR0FURScgaW1wbGVtZW50YXRpb24KIGVkaXRpbmcvaW5wdXQvYXR0
cmlidXRlZC1zdWJzdHJpbmctZnJvbS1yYW5nZS1saW5lcy5odG1sCiBlZGl0aW5nL3RleHQtaXRl
cmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9T
a2lwcGVkCmluZGV4IGRlMjYxMDVmYWJjMzI4OWYzNjc1NmQ3Y2RmOWNlNTVkNzAyZTE1N2UuLjA5
YmM3ZWE2MmFjN2NiMGM3ZDJkMmEwOGRkMDlmMjU4OTQ4ZTdmZjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGstd2syL1NraXBwZWQKQEAgLTM3MSw2ICszNzEsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0
eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxsb3dlZC5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1ibG9ja2VkLW5vLWNyb3Nz
b3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViZ2wtcmVtb3RlLXJlYWQtcmVtb3Rl
LWltYWdlLWFsbG93ZWQtd2l0aC1jcmVkZW50aWFscy5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJp
bmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRl
cmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCmluZGV4IDI3ZGM0MTY1MWNkMWY5YjFlY2NkYzcx
ZGM2MTk3NzdhOTdjM2JiMjkuLjg5YzdhNzI3ZTdkYjY1OWIyMzYwM2RjNzg1YmRjMDMxMzYwYTY0
MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tpcHBlZApAQCAtNTAsNiArNTAsMTAg
QEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29y
ZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVj
dGVkLXdvcmQtMi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9yZW1vdmluZy11
bmRlcmxpbmUtYWZ0ZXItYWNjZXB0aW5nLWF1dG9jb3JyZWN0aW9uLXVzaW5nLXB1bmN0dWF0aW9u
Lmh0bWwgIAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0
IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRp
c2FibGVkLmh0bWwKKwogIyBQYXN0aW5nIHJlcGxhY2VzIHRoZSB0aHJlZSBwZXJpb2RzIHdpdGgg
YW4gZWxsaXBzaXMgb24gTGlvbgogZWRpdGluZy9wYXN0ZWJvYXJkLzU0NzgyNTAuaHRtbAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCmluZGV4IGJlMjJh
MDY1MjJlNGVjZTllNDJjM2M0NWY5NGZlNzczYjc1NmRiNmQuLjllZTc3ZTAxZWJkY2Y5NDZjMWY0
NWRiZDZiMmJlMDBjNThhMDM3Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93
bGVvcGFyZC9Ta2lwcGVkCkBAIC0xOTIsMyArMTkyLDcgQEAgZmFzdC9yZWdpb25zL3JlZ2lvbi1z
dHlsZS1pbmxpbmUtYmFja2dyb3VuZC1jb2xvci5odG1sCiAKICMgSGlEUEkgdGVzdHMgaGF2ZSBs
b3dlci1sZXZlbCBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMgb24gTWFjCiBmYXN0L2hpZHBpCisKKyMg
RnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxl
Y3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitl
ZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiYzIzNmYzYmRkMTY1ZjkxZTYxYjMwMDVhNGFm
MjIwNjgzYjBkM2Q0Li40OTI4ZGRjZjIwODFmYzQyOTQ1MmI5NGQwYzAyNDM0NzYwNjdiNzBiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtNTE0LDMgKzUxNCw3IEBAIGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtdmlkZW8taW4tbWFp
bi1mcmFtZS5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczOTc0CiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5odG1sCisK
KyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBz
ZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYx
CitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAppbmRleCA5ZmQ4MWQ3YjIxNmY5MjBjZWRh
MzZjZmRlNDFhZDZhYzVkYzAwY2ZmLi5jMjVjNTg2OTFjNzRmNjRjNWIwZDBkMjMxOTEyMWUwNGY5
MjMzYTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZApAQCAtNjk4MywzICs2OTgz
LDcgQEAgZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMtMS5odG1sCiAjIFtRdF0gZWRpdGluZy9z
ZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFibGUtZGl2Lmh0bWwgZmFpbHMg
d2l0aCBRdDUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDE4
CiBlZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYu
aHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHBy
ZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2Fi
bGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQKaW5kZXggNmMxN2FiZWNiYzk0
MGUzZjQ0YmUwYWFkZDIyMTAyODgyZGNjNmU5Mi4uMDNhMjlkZWUxNzRkMGNiMmEzYTljZTE3YzBj
NmU4ZWEzNmVmZTUxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQKQEAgLTUyNjgs
MyArNTI2OCw3IEBAIGNzczIuMS8yMDExMDMyMy9lbXB0eS1pbmxpbmUtMDAyLmh0bQogY3NzMi4x
LzIwMTEwMzIzL2VtcHR5LWlubGluZS0wMDMuaHRtCiBjc3MyLjEvMjAxMTAzMjMvZW1wdHktaW5s
aW5lLTAwMS5odG0KIHRyYW5zZm9ybXMvc3ZnLXZzLWNzcy54aHRtbAorCisjIEZyYW1lOjpmaW5k
U3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0
LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQtd2syL1NraXBwZWQKaW5kZXggMmMzZTk3MjA0NTg3ZTc5ZTk0NjhiODZlNzBiYjMyZjM2
NWI4YjI4Mi4uYjI5MDZiN2RjMzEyNTMwMjViZjE4MzU2YTEwM2VhYTA5ZTYwNDRiNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKQEAgLTE4NjksMyArMTg2OSw3IEBAIGZhc3QvaGlz
dG9yeS9oaXN0b3J5LWJhY2staW5pdGlhbC12cy1maW5hbC11cmwuaHRtbAogaHR0cC90ZXN0cy9o
aXN0b3J5L2JhY2stdG8tcG9zdC5waHAKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZyYW1l
cy1nb2JhY2sxLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVz
LWdvYmFjazEuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdl
cyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0
aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggYjY3NmMwZmE3
ODZmZTE0MzI0OTM3OWIwM2E5MmZkYTAwODk4OWM1NS4uMWMxZjcyN2NlYzg1ZGQ5ZjVmMTUwYTg0
N2ZkMzhjZmZhMTg0MGQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTg5NCw2ICs4
OTQsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRt
bAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCiAK
KyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBz
ZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYx
CitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRt
bAorCiAjIyMgRU5EIE9GICgxKSBDbGFzc2lmaWVkIGZhaWx1cmVzIHdpdGggYnVnIHJlcG9ydHMK
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119202</attachid>
            <date>2011-12-14 04:34:24 -0800</date>
            <delta_ts>2011-12-15 09:15:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111214123422.patch</filename>
            <type>text/plain</type>
            <size>30788</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVjNTEyNTZiYjI2Yjll
ZDY0YmY5MWQwYzZjMDRiMmYxMzI3NzUyOC4uNzc2NGZiMGQwMTEzZDE4MTg4NjZhYWE2YWJmYzlk
Njk0NTRiZjFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTEzICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFRyZWVPdXRsaW5lJ3MgaXMgYnJva2VuIHdoZW4gbGkgZWxlbWVudHMgaGF2ZSBwYWRk
aW5nLWxlZnQgZGlmZmVyZW50IGZyb20gMTRweC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggZWNmYjhiMmJkNTc5ZDUzMjgxNGNjOTMyNGEyODc4NzM4OGY5ODNmNi4uMGZjZWU4YjhlNWJh
Y2Y5N2M3NGUwNzMxNWM4ZWEzNTE0ZDI1MGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVz
ZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHdpbGwgbWFrZSBpdCBwb3NzaWJsZSB0byBzZWFyY2gg
Zm9yIHRleHQgdGhhdCBoYXMKKyAgICAgICAgc2VsZWN0aW9uIGRpc2FibGVkICh2aWEgdGhlIHdl
YmtpdC11c2VyLXNlbGVjdCBhdHRyaWJ1dGUpLgorCisgICAgICAgIFdlYkZyYW1lSW1wbDo6Zmlu
ZCB3aWxsIHVzZSBmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlLCB3aGljaCBpcworICAgICAg
ICBzaW1pbGFyIHRvIGZpbmRTdHJpbmcgZXhjZXB0IHRoYXQgaXQgdXNlcyBSYW5nZSBkaXJlY3Rs
eSByYXRoZXIKKyAgICAgICAgdGhhbiBwYXNzaW5nIHRoZSBmaW5kIHJlc3VsdCBpbiB0aGUgYWN0
aXZlIHNlbGVjdGlvbi4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZpbmQpOgorCiAyMDExLTEyLTEzICBEaXJrIFByYW5r
ZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNocm9taXVtIHBvcnQgLSByZW1v
dmUgbmFjbCBoYWNrIGluIERFUFMvZ3lwX3dlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CmluZGV4IGZiODc4ODIwMjY1ZmY3OWRiMjhlYWFhYTY2MWUyZDY4YTNmMGU0OGQuLmE3MjdmZGVl
MDM3NzliODFlMTNlMDY0Zjg0YjA1NjY3ZDYwMmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIK
ICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2su
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24u
aCIKQEAgLTI3NzcsNiArMjc3OCwxOCBAQCBib29sIEVkaXRvcjo6ZmluZFN0cmluZyhjb25zdCBT
dHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxl
KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcHJldmlvdXNNYXRjaCwgRmluZE9wdGlvbnMg
b3B0aW9ucykKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IG5leHRNYXRjaCA9IHJhbmdlT2ZTdHJpbmco
dGFyZ2V0LCBwcmV2aW91c01hdGNoLCBvcHRpb25zKTsKKyAgICBpZiAoIW5leHRNYXRjaCkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBuZXh0TWF0Y2gtPmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigp
LT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG5leHRNYXRjaC0+Ym91bmRp
bmdCb3goKSwKKyAgICAgICAgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBT
Y3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworCisgICAgcmV0dXJuIG5leHRN
YXRjaC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0
cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBGaW5kT3B0
aW9ucyBvcHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKaW5kZXggYjgxZTYxMDRkNjk2ZTI5ZWNmMGFiNDc5ZGQyNDljMjQ5NmM1ZWNjZi4u
MjlhYzdkYTUyNmIwM2NhNmUxZTQxNDNiMDExOGU3YmEwMDA4OThlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC0zNDAsNiArMzQwLDcgQEAgcHVibGljOgogICAgIGJvb2wgZmluZFN0cmlu
Zyhjb25zdCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wgd3JhcEZs
YWcsIGJvb2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5n
ZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOworICAgIFBhc3NS
ZWZQdHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3QgU3RyaW5nJiwg
UmFuZ2UqLCBGaW5kT3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJr
KCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lk
IHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggY2M1MTRlYmMyMjMxNzVkMThhODVmNDlkY2Qw
OGZiOWFkZjMxOGM2Ny4uZTVhZTljNTE4OWIxODU4YmFkYzk4MDYxY2E0NzY5Njg4ZjRiZjIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNTIw
LDk0ICsxNTIwLDcwIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAog
ewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFt
ZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKKyAgICBpZiAoIW9wdGlvbnMu
ZmluZE5leHQpIHsKICAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hl
cygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0
KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgotCi0gICAgLy8gU3RhcnRz
IHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAgYm9vbCBzdGFydElu
U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7CisgICAgfSBlbHNl
CisgICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCBmYWxzZSk7CiAK
ICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0
IEZpbmQgb3BlcmF0aW9uIHdlIHdhbnQKICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhl
cndpc2UsIHdlIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAv
LyBvcGVyYXRpb24gbGVmdCBvZmYgKGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRp
b24pLgogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZWxlY3Rpb24oKSk7CiAgICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlz
Tm9uZSgpOwotICAgIGlmICghYWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAg
ICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsK
LSAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwor
ICAgIGlmIChhY3RpdmVTZWxlY3Rpb24pIHsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IHNlbGVj
dGlvbi5maXJzdFJhbmdlKCkuZ2V0KCk7CisgICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5j
bGVhcigpOwogICAgIH0KIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7
Ci0gICAgYm9vbCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nKAotICAgICAg
ICBzZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0Y2hDYXNlLCB3cmFwV2l0
aGluRnJhbWUsCi0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOwotICAgIGlmIChmb3VuZCkgewot
ICAgICAgICAvLyBTdG9yZSB3aGljaCBmcmFtZSB3YXMgYWN0aXZlLiBUaGlzIHdpbGwgY29tZSBp
biBoYW5keSBsYXRlciB3aGVuIHdlCi0gICAgICAgIC8vIGNoYW5nZSB0aGUgYWN0aXZlIG1hdGNo
IG9yZGluYWwgYmVsb3cuCi0gICAgICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBt
YWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWU7Ci0gICAgICAgIC8vIFNldCB0aGlzIGZy
YW1lIGFzIHRoZSBhY3RpdmUgZnJhbWUgKHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhpZ2hsaWdo
dCkuCi0gICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7Ci0K
LSAgICAgICAgLy8gV2UgZm91bmQgc29tZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBz
ZWxlY3Rpb24gZm9yIGl0cyBwb3NpdGlvbi4KLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKLSAgICAgICAgSW50
UmVjdCBjdXJyU2VsZWN0aW9uUmVjdDsKLQotICAgICAgICAvLyBJZiB3ZSB0aG91Z2h0IHdlIGZv
dW5kIHNvbWV0aGluZywgYnV0IGl0IGNvdWxkbid0IGJlIHNlbGVjdGVkIChwZXJoYXBzCi0gICAg
ICAgIC8vIGJlY2F1c2UgaXQgd2FzIG1hcmtlZCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lKSwg
d2UgY2FuJ3Qgc2V0IGl0IHRvCi0gICAgICAgIC8vIGJlIGFjdGl2ZSBidXQgd2Ugc3RpbGwgY29u
dGludWUgc2VhcmNoaW5nLiBUaGlzIG1hdGNoZXMgU2FmYXJpJ3MKLSAgICAgICAgLy8gYmVoYXZp
b3IsIGluY2x1ZGluZyBzb21lIG9kZGl0aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0
YWJsZSB0ZXh0Ci0gICAgICAgIC8vIGFyZSBtaXhlZCBvbiBhIHBhZ2U6IHNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjcuCi0gICAgICAgIGlmIChuZXdTZWxl
Y3Rpb24uaXNOb25lKCkgfHwgKG5ld1NlbGVjdGlvbi5zdGFydCgpID09IG5ld1NlbGVjdGlvbi5l
bmQoKSkpCi0gICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gbmV3U2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdl
KCk7Ci0gICAgICAgICAgICBjdXJyU2VsZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5k
aW5nQm94KCk7Ci0gICAgICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQo
KSwgdHJ1ZSk7IC8vIEFjdGl2ZS4KLSAgICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGln
aGxpZ2h0aW5nIGZvciBhbGwgbWF0Y2hlcy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdl
YlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOwotICAgICAgICB9CisgICAgY29uc3QgRmlu
ZE9wdGlvbnMgZmluZE9wdGlvbnMgPSAob3B0aW9ucy5mb3J3YXJkID8gMCA6IEJhY2t3YXJkcykK
KyAgICAgICAgfCAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUluc2Vuc2l0aXZlKQorICAg
ICAgICB8ICh3cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAoIW9w
dGlvbnMuZmluZE5leHQgPyBTdGFydEluU2VsZWN0aW9uIDogMCk7CisgICAgbV9hY3RpdmVNYXRj
aCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKHNlYXJj
aFRleHQsIG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZpbmRPcHRpb25zKTsKIAotICAgICAgICAvLyBN
YWtlIHN1cmUgbm8gbm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2NyYnVnLmNvbS8zODcwMC4K
LSAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgaWYg
KCFtX2FjdGl2ZU1hdGNoKSB7CisgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0TWFya2VyQWN0aXZlKG1f
YWN0aXZlTWF0Y2guZ2V0KCksIHRydWUpOworICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJh
bWUgPSBtYWluRnJhbWVJbXBsLT5tX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOworICAgIG1haW5G
cmFtZUltcGwtPm1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUgPSB0aGlzOwogCi0gICAgICAgIGlm
ICghb3B0aW9ucy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIC8v
IFRoaXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5l
dyBzdGFydCBwb2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBz
ZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAgICAgICAgICAgLy8gdG8g
ZmluZCB0aGUgYWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRhdGUgdGhlIG9yZGluYWwg
KG4gb2YgbSkuCi0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAg
Ly8gTWFrZSBzdXJlIG5vIG5vZGUgaXMgZm9jdXNlZC4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzg3
MDAuCisgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisKKyAgICBp
ZiAoIW9wdGlvbnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFRo
aXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBz
dGFydCBwb2ludAorICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24sIHNvIHdlIHNldCB0aGUg
ZmxhZyB0byBhc2sgdGhlIHNjb3BpbmcgZWZmb3J0CisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFj
dGl2ZSByZWN0IGZvciB1cyBhbmQgcmVwb3J0IGl0IGJhY2sgdG8gdGhlIFVJLgorICAgICAgICBt
X2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG9s
ZEFjdGl2ZUZyYW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQp
CisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSAwOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3Vy
cmVudEZyYW1lID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAob2xkQWN0aXZlRnJhbWUgIT0gdGhpcykgewotICAgICAgICAgICAgICAgIC8v
IElmIHRoZSBhY3RpdmUgZnJhbWUgaGFzIGNoYW5nZWQgaXQgbWVhbnMgdGhhdCB3ZSBoYXZlIGEg
bXVsdGktZnJhbWUKLSAgICAgICAgICAgICAgICAvLyBwYWdlIGFuZCB3ZSBqdXN0IHN3aXRjaCB0
byBzZWFyY2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAotICAgICAgICAgICAgICAg
IC8vIHdhbnQgdG8gcmVzZXQgdGhlIGluZGV4LgotICAgICAgICAgICAgICAgIGlmIChvcHRpb25z
LmZvcndhcmQpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDA7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5k
ZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIHRoZSBhY3RpdmUgZnJhbWUsIHNvIGluY3JlbWVudCAo
b3IgZGVjcmVtZW50KSB0aGUKLSAgICAgICAgICAgICAgICAvLyB8bV9hY3RpdmVNYXRjaEluZGV4
fCwgd3JhcHBpbmcgaWYgbmVlZGVkIChvbiBzaW5nbGUgZnJhbWUgcGFnZXMpLgotICAgICAgICAg
ICAgICAgIG9wdGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaEluZGV4IDogLS1tX2FjdGl2
ZU1hdGNoSW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJbmRleCArIDEg
PiBtX2xhc3RNYXRjaENvdW50KQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5k
ZXggPSAwOwotICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggPT0gLTEpCi0g
ICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1fbGFzdE1hdGNoQ291bnQg
LSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNlbGVjdGlvblJlY3QpIHsKLSAg
ICAgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9IGZyYW1lVmlldygpLT5jb250ZW50c1RvV2lu
ZG93KGN1cnJTZWxlY3Rpb25SZWN0KTsKLSAgICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdl
U2VsZWN0aW9uKCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlm
aWVyKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCisg
ICAgICAgICAgICAgICAgKyttX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAtLW1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVu
dEZyYW1lOworCisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJh
bWUgKyAxID4gbV9sYXN0TWF0Y2hDb3VudCkKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
SW5kZXhJbkN1cnJlbnRGcmFtZSA9IDA7CisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaElu
ZGV4SW5DdXJyZW50RnJhbWUgPT0gLTEpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaElu
ZGV4SW5DdXJyZW50RnJhbWUgPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgeworICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBm
cmFtZVZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgp
KTsKKyAgICAgICAgICAgIHJlcG9ydEZpbmRJblBhZ2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3Qs
IG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lICsgMSwgaWRlbnRpZmllcik7CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5nIHdhcyBmb3VuZCBpbiB0aGlz
IGZyYW1lLgotICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLQotICAgICAgICAvLyBFcmFzZSBh
bGwgcHJldmlvdXMgdGlja21hcmtzIGFuZCBoaWdobGlnaHRpbmcuCi0gICAgICAgIGludmFsaWRh
dGVBcmVhKEludmFsaWRhdGVBbGwpOwogICAgIH0KIAotICAgIHJldHVybiBmb3VuZDsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OnN0b3BGaW5kaW5nKGJvb2wgY2xl
YXJTZWxlY3Rpb24pCkBAIC0xNzI1LDE3ICsxNzAxLDE3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpz
Y29wZVN0cmluZ01hdGNoZXMoaW50IGlkZW50aWZpZXIsCiAgICAgICAgICAgICBib29sIGZvdW5k
QWN0aXZlTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChtX2xvY2F0aW5nQWN0aXZlUmVj
dCAmJiAoYWN0aXZlU2VsZWN0aW9uUmVjdCA9PSByZXN1bHRCb3VuZHMpKSB7CiAgICAgICAgICAg
ICAgICAgLy8gV2UgaGF2ZSBmb3VuZCB0aGUgYWN0aXZlIHRpY2ttYXJrIGZyYW1lLgotICAgICAg
ICAgICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CisgICAg
ICAgICAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9jdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHRo
aXM7CiAgICAgICAgICAgICAgICAgZm91bmRBY3RpdmVNYXRjaCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgLy8gV2UgYWxzbyBrbm93IHdoaWNoIHRpY2ttYXJrIGlzIGFjdGl2ZSBub3cuCi0gICAg
ICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbWF0Y2hDb3VudCAtIDE7CisgICAgICAg
ICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSBtYXRjaENvdW50IC0g
MTsKICAgICAgICAgICAgICAgICAvLyBUbyBzdG9wIGxvb2tpbmcgZm9yIHRoZSBhY3RpdmUgdGlj
a21hcmssIHdlIHNldCB0aGlzIGZsYWcuCiAgICAgICAgICAgICAgICAgbV9sb2NhdGluZ0FjdGl2
ZVJlY3QgPSBmYWxzZTsKIAogICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBicm93c2VyIG9mIG5l
dyBsb2NhdGlvbiBmb3IgdGhlIHNlbGVjdGVkIHJlY3RhbmdsZS4KICAgICAgICAgICAgICAgICBy
ZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgICBmcmFtZVZpZXco
KS0+Y29udGVudHNUb1dpbmRvdyhyZXN1bHRCb3VuZHMpLAotICAgICAgICAgICAgICAgICAgICBt
X2FjdGl2ZU1hdGNoSW5kZXggKyAxLAorICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
SW5kZXhJbkN1cnJlbnRGcmFtZSArIDEsCiAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIp
OwogICAgICAgICAgICAgfQogCkBAIC0xODA0LDcgKzE3ODAsNyBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6Y2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2Rl
ZmVycmVkU2NvcGluZ1dvcmspOwogICAgIG1fZGVmZXJyZWRTY29waW5nV29yay5jbGVhcigpOwog
Ci0gICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gLTE7CisgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5D
dXJyZW50RnJhbWUgPSAtMTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmluY3JlYXNlTWF0Y2hD
b3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVyKQpAQCAtMTk5Nyw4ICsxOTczLDggQEAgUGFz
c1JlZlB0cjxXZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6Y3JlYXRlKFdlYkZyYW1lQ2xpZW50
KiBjbGllbnQpCiBXZWJGcmFtZUltcGw6OldlYkZyYW1lSW1wbChXZWJGcmFtZUNsaWVudCogY2xp
ZW50KQogICAgIDogbV9mcmFtZUxvYWRlckNsaWVudCh0aGlzKQogICAgICwgbV9jbGllbnQoY2xp
ZW50KQotICAgICwgbV9hY3RpdmVNYXRjaEZyYW1lKDApCi0gICAgLCBtX2FjdGl2ZU1hdGNoSW5k
ZXgoLTEpCisgICAgLCBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lKDApCisgICAgLCBtX2FjdGl2
ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSgtMSkKICAgICAsIG1fbG9jYXRpbmdBY3RpdmVSZWN0
KGZhbHNlKQogICAgICwgbV9yZXN1bWVTY29waW5nRnJvbVJhbmdlKDApCiAgICAgLCBtX2xhc3RN
YXRjaENvdW50KC0xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApp
bmRleCBkNDhjY2JkZDQ5MjQ0ZWE4Yzg4MjQ4NTU3ODY1MWEyNWRjMmFiODIyLi4yM2U2MGQ5ODA0
MzMxYzg2ZjdhNWIwYjFmYzhhZDRjZGRlN2Y4ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMjUyLDcgKzI1Miw3IEBAIHB1YmxpYzoKICAgICAvLyBS
ZXR1cm5zIHdoaWNoIGZyYW1lIGhhcyBhbiBhY3RpdmUgbWF0Y2guIFRoaXMgZnVuY3Rpb24gc2hv
dWxkIG9ubHkgYmUKICAgICAvLyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUsIGFzIGl0IGlzIHRo
ZSBvbmx5IGZyYW1lIGtlZXBpbmcgdHJhY2suIFJldHVybmVkCiAgICAgLy8gdmFsdWUgY2FuIGJl
IDAgaWYgbm8gZnJhbWUgaGFzIGFuIGFjdGl2ZSBtYXRjaC4KLSAgICBjb25zdCBXZWJGcmFtZUlt
cGwqIGFjdGl2ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoRnJhbWU7
IH0KKyAgICBjb25zdCBXZWJGcmFtZUltcGwqIGFjdGl2ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOyB9CiAKICAgICAvLyBXaGVuIGEgRmluZCBv
cGVyYXRpb24gZW5kcywgd2Ugd2FudCB0byBzZXQgdGhlIHNlbGVjdGlvbiB0byB3aGF0IHdhcyBh
Y3RpdmUKICAgICAvLyBhbmQgc2V0IGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZSB3
ZSBmaW5kIChzdGFydGluZyB3aXRoIHRoZSBmaXJzdApAQCAtMzQ2LDEzICszNDYsMTMgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEEgd2F5IGZvciB0aGUgbWFpbiBmcmFtZSB0byBrZWVwIHRyYWNrIG9m
IHdoaWNoIGZyYW1lIGhhcyBhbiBhY3RpdmUKICAgICAvLyBtYXRjaC4gU2hvdWxkIGJlIDAgZm9y
IGFsbCBvdGhlciBmcmFtZXMuCi0gICAgV2ViRnJhbWVJbXBsKiBtX2FjdGl2ZU1hdGNoRnJhbWU7
CisgICAgV2ViRnJhbWVJbXBsKiBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOwogCiAgICAgLy8g
VGhlIHJhbmdlIG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgogICAg
IFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9hY3RpdmVNYXRjaDsKIAotICAgIC8vIFRoZSBpbmRl
eCBvZiB0aGUgYWN0aXZlIG1hdGNoLgotICAgIGludCBtX2FjdGl2ZU1hdGNoSW5kZXg7CisgICAg
Ly8gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgor
ICAgIGludCBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKIAogICAgIC8vIFRoaXMg
ZmxhZyBpcyB1c2VkIGJ5IHRoZSBzY29waW5nIGVmZm9ydCB0byBkZXRlcm1pbmUgaWYgd2UgbmVl
ZCB0byBmaWd1cmUKICAgICAvLyBvdXQgd2hpY2ggcmVjdGFuZ2xlIGlzIHRoZSBhY3RpdmUgbWF0
Y2guIE9uY2Ugd2UgZmluZCB0aGUgYWN0aXZlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzQ5MmNmYmFiNzEyMGZhM2RjM2VhMGJiYWMxNTA4ZGU0
ZDFlMmFkOS4uYzM3MTRhMDY5ZjcxYmRkYmY1YmViOGMwYzI1NjQ4ZTY3OGMwZmM5NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisg
ICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmUgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFByb3ZpZGVkIGEgcGFydGlhbCBmaW5kU3RyaW5nIGltcGxlbWVudGF0aW9uLiBUaGlz
IGRvZXNuJ3Qgc3VwcG9ydAorICAgICAgICBhbGwgb2YgdGhlIEZpbmRPcHRpb25zIHNpbmNlIHRo
ZXkncmUgbm90IGV4cG9zZWQgdmlhIFdlYkZpbmRPcHRpb25zLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDExLTEyLTE0ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVmYWN0b3JpbmddIEluIHBy
ZXBhcmUtQ2hhbmdlTG9nLCBtYWtlICRpc0dpdCBhbmQgJGlzU1ZOIGJlIHVzZWQgb25seQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDhlMzFlMWUwMjkyN2M2NzNmOTZhMmI2NGNhMjBlZmFhODU3NWJiODMuLjRl
NDc0ZGQ5ODg0YTY4ZDhlMzQzMWQxNTQ4OWQzMzk4Y2ZmNzdlODAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aCIKICNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5o
IgpAQCAtMTIyLDYgKzEyMyw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0
aW9uQ29sb3JzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpmb3JjZVJlZFNlbGVjdGlvbkNvbG9y
cyk7CiAgICAgYmluZE1ldGhvZCgiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lv
bik7CiAgICAgYmluZE1ldGhvZCgiaGFzU3BlbGxpbmdNYXJrZXIiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKTsKKyAgICBiaW5kTWV0aG9kKCJmaW5kU3RyaW5nIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKTsKICAgICBiaW5kTWV0aG9kKCJpc0Nv
bW1hbmRFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjppc0NvbW1hbmRFbmFibGVkKTsK
ICAgICBiaW5kTWV0aG9kKCJoYXNDdXN0b21QYWdlU2l6ZVN0eWxlIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpoYXNDdXN0b21QYWdlU2l6ZVN0eWxlKTsKICAgICBiaW5kTWV0aG9kKCJpc1BhZ2VC
b3hWaXNpYmxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hWaXNpYmxlKTsKQEAg
LTE5NTMsNiArMTk1NSwzNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpoYXNTcGVsbGlu
Z01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQwogICAgIHJlc3VsdC0+
c2V0KG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPnNlbGVjdGlvblN0YXJ0SGFzU3Bl
bGxpbmdNYXJrZXJGb3IoYXJndW1lbnRzWzBdLnRvSW50MzIoKSwgYXJndW1lbnRzWzFdLnRvSW50
MzIoKSkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV2ViRmluZE9wdGlvbnMgZmluZE9wdGlvbnM7CisgICAgYm9v
bCB3cmFwQXJvdW5kID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMikgewor
ICAgICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG9wdGlvbnNBcnJheSA9IGFyZ3VtZW50c1sxXS50
b1N0cmluZ1ZlY3RvcigpOworICAgICAgICBmaW5kT3B0aW9ucy5tYXRjaENhc2UgPSB0cnVlOwor
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uc0FycmF5LnNpemUoKTsgKytp
KSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3B0aW9uID0gb3B0aW9uc0FycmF5
W2ldOworICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgYWxsIHRoZSBvcHRpb25zLCBzbyB3
ZSBjYW4gcnVuIGZpbmRTdHJpbmcuaHRtbCB0b28uCisgICAgICAgICAgICBpZiAob3B0aW9uID09
ICJDYXNlSW5zZW5zaXRpdmUiKQorICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLm1hdGNoQ2Fz
ZSA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uID09ICJCYWNrd2FyZHMiKQor
ICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLmZvcndhcmQgPSBmYWxzZTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKG9wdGlvbiA9PSAiV3JhcEFyb3VuZCIpCisgICAgICAgICAgICAgICAgd3JhcEFy
b3VuZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBt
X3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpOworICAgIGNvbnN0IGJvb2wgZmluZFJlc3Vs
dCA9IGZyYW1lLT5maW5kKDAsIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBm
aW5kT3B0aW9ucywgd3JhcEFyb3VuZCwgMCk7CisgICAgcmVzdWx0LT5zZXQoZmluZFJlc3VsdCk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmltdW1UaW1lckludGVydmFs
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7
CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAxMTJlMjk3ODZmMTdhNGNkYzZj
MmUwMjY2NzQwNDAyYTM4ODk1ZGUzLi40ZDZjZDg1YTdhMjJhOTNmNmM2Yjk5ZTA4ZGZjMThjODBj
YTQyY2I4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTM4Nyw2ICszODcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisgICAgdm9pZCBmaW5kU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTU3Y2U3MWY2OGUzZGZj
YzM3NjlhZDJhMWQ0MGU5MDQxNTdmOGZkNS4uZTk3MjY0NmY4ODQ1Njk3NzA0MDM5Y2FjOGQ2MjQ4
YzczYjRmOTBiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29z
aWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdl
cyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGxheW91dCB0ZXN0
IHRvIHZlcmlmeSB0aGF0IGZpbmQgd29ya3MgY29ycmVjdGx5IG9uIHBhZ2VzCisgICAgICAgIHRo
YXQgcHJldmVudCB0ZXh0IHNlbGVjdGlvbi4KKworICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGstd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxp
b24vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC01
LjAvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBl
ZDoKKwogMjAxMS0xMi0xNCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFtHdGtdIHJlYmFzZWxpbmUgdGVzdCByZXN1bHRzIGZvciBlZGl0aW5nL3NlbGVj
dGlvbi90cmFuc2Zvcm1lZC1zZWxlY3Rpb24tcmVjdHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3Ry
aW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMzY1ZmYz
Y2ViNDNjNWJlMDhlNzZiZjVlMWQzYTc4Y2YxZTBlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorU2VhcmNoaW5nIGZvciAnZScgaW4gJ1Nv
bWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJs
ZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ2UnLCBbXSkgaXMgdHJ1
ZQorCitTZWFyY2hpbmcgZm9yICdvJyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBz
ZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZmluZFN0cmluZygnbycsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3knIGluICdT
b21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFi
bGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZh
bHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmZpbmRTdHJpbmcoJ3QgdCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ21v
dW50JyBpbiAnaW5zdXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50JywgW10pIGlzIHRy
dWUKKworU2VhcmNoaW5nIGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicg
d2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0
cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUg
c2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVk
OgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10pIGlzIHRydWUK
KworU2VhcmNoaW5nIGZvciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2Vh
cmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5maW5kU3RyaW5nKCdvJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAneScgaW4gJ1Nv
bWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2Fi
bGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZh
bHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5maW5kU3RyaW5nKCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdt
b3VudCcgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxl
ZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbW91bnQnLCBbXSkgaXMg
dHJ1ZQorCitTZWFyY2hpbmcgZm9yICdXYWxseScgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWlu
JyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmlu
ZFN0cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2Fi
bGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkM2E5MTQ0M2Q0ZGRkYmU3MjNkM2Q0OTgxMzg3MzdkOGQw
ZTEyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRv
ci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgLnNlbGVjdGlv
bkRpc2FibGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfQorIC5zZWxlY3Rpb25FbmFi
bGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxl
PSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij48L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVz
c2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RGaW5kU3RyaW5nKHRleHQsIHRhcmdldCwgZGlzYWJsZVNlbGVjdGlvbiwgZXhwZWN0
ZWQpCit7CisgICAgdmFyIHNlbGVjdGlvblN0YXR1cyA9IGRpc2FibGVTZWxlY3Rpb24gPyAic2Vs
ZWN0aW9uIGRpc2FibGVkOiIgOiAic2VsZWN0aW9uIGVuYWJsZWQ6IjsKKyAgICBsb2coIlNlYXJj
aGluZyBmb3IgJyIgKyB0YXJnZXQgKyAiJyBpbiAnIiArIHRleHQgKyAiJyB3aXRoICIgKyBzZWxl
Y3Rpb25TdGF0dXMpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb250YWluZXIiKTsKKyAgICBjb250YWluZXIuaW5uZXJUZXh0ID0gdGV4dDsKKyAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBkaXNh
YmxlU2VsZWN0aW9uID8gInNlbGVjdGlvbkRpc2FibGVkIiA6ICJzZWxlY3Rpb25FbmFibGVkIjsK
KworICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCciICsgdGFy
Z2V0ICsgIicsIFtdKSIsIGV4cGVjdGVkKTsKKworICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSAi
IjsKKyAgICBsb2coIiIpOworfQorCitpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIGxheW91dFRlc3RDb250cm9s
bGVyIG9iamVjdCcpOworZWxzZSB7CisgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworICAg
ICAgICB2YXIgZGlzYWJsZVNlbGVjdGlvbiA9IChpID09IDEpOworCisgICAgICAgIHRlc3RGaW5k
U3RyaW5nKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgImUiLCBkaXNh
YmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiU29tZSBzYW1w
bGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJvIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRy
dWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmcoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQiLCAieSIsIGRpc2FibGVTZWxlY3Rpb24sICJmYWxzZSIpOworICAgICAgICB0
ZXN0RmluZFN0cmluZygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJ0
IHQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygi
aW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAibW91bnQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1
ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiaW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAi
V2FsbHkiLCBkaXNhYmxlU2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICB9Cit9CisKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxp
dHkiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA0ZmI2YjI2
OGQwZmY5MGZkZjdmMDM2ZmQ4NjQ0OGNjNzBiZWU0YjhhLi5kNmVkYTIzM2E2MzJlMWMzZjAyNTc4
NDUzZjcxNDI2ZWUzZGYyNDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtODQzLDYg
Kzg0MywxMCBAQCBmYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRl
cnZhbC5odG1sCiAjIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVu
dCBzZXRUZXh0RGlyZWN0aW9uCiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9uLmh0bWwKIAor
IyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNl
bGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEK
K2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1s
CisKICMgRUZMJ3MgRFJUIG1pc3NlcyBhbiAnRURJVElORyBERUxFR0FURScgaW1wbGVtZW50YXRp
b24KIGVkaXRpbmcvaW5wdXQvYXR0cmlidXRlZC1zdWJzdHJpbmctZnJvbS1yYW5nZS1saW5lcy5o
dG1sCiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCmluZGV4IGRlMjYxMDVmYWJjMzI4OWYzNjc1NmQ3
Y2RmOWNlNTVkNzAyZTE1N2UuLjA5YmM3ZWE2MmFjN2NiMGM3ZDJkMmEwOGRkMDlmMjU4OTQ4ZTdm
ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKQEAgLTM3MSw2ICszNzEsMTAg
QEAgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxs
b3dlZC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1p
bWFnZS1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2Vi
Z2wtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWFsbG93ZWQtd2l0aC1jcmVkZW50aWFscy5odG1s
CiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVu
dCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbAorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcKICMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9u
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCmluZGV4IDI3
ZGM0MTY1MWNkMWY5YjFlY2NkYzcxZGM2MTk3NzdhOTdjM2JiMjkuLjg5YzdhNzI3ZTdkYjY1OWIy
MzYwM2RjNzg1YmRjMDMxMzYwYTY0MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1saW9uL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tp
cHBlZApAQCAtNTAsNiArNTAsMTAgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVs
ZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItYWNjZXB0aW5nLWF1dG9jb3JyZWN0
aW9uLXVzaW5nLXB1bmN0dWF0aW9uLmh0bWwgIAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMg
bm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2Zp
bmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyBQYXN0aW5nIHJlcGxhY2VzIHRo
ZSB0aHJlZSBwZXJpb2RzIHdpdGggYW4gZWxsaXBzaXMgb24gTGlvbgogZWRpdGluZy9wYXN0ZWJv
YXJkLzU0NzgyNTAuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
c25vd2xlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFy
ZC9Ta2lwcGVkCmluZGV4IGJlMjJhMDY1MjJlNGVjZTllNDJjM2M0NWY5NGZlNzczYjc1NmRiNmQu
LjllZTc3ZTAxZWJkY2Y5NDZjMWY0NWRiZDZiMmJlMDBjNThhMDM3Y2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCkBAIC0xOTIsMyArMTkyLDcgQEAg
ZmFzdC9yZWdpb25zL3JlZ2lvbi1zdHlsZS1pbmxpbmUtYmFja2dyb3VuZC1jb2xvci5odG1sCiAK
ICMgSGlEUEkgdGVzdHMgaGF2ZSBsb3dlci1sZXZlbCBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMgb24g
TWFjCiBmYXN0L2hpZHBpCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBh
Z2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxl
Y3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiYzIzNmYz
YmRkMTY1ZjkxZTYxYjMwMDVhNGFmMjIwNjgzYjBkM2Q0Li40OTI4ZGRjZjIwODFmYzQyOTQ1MmI5
NGQwYzAyNDM0NzYwNjdiNzBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtNTE0LDMg
KzUxNCw3IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBz
LXRvLWh0dHAtdmlkZW8taW4tbWFpbi1mcmFtZS5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc0CiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQt
d2ViZ2wtdGV4dHVyZS5odG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9u
IHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1z
ZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQtNS4wL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAppbmRl
eCA5ZmQ4MWQ3YjIxNmY5MjBjZWRhMzZjZmRlNDFhZDZhYzVkYzAwY2ZmLi5jMjVjNTg2OTFjNzRm
NjRjNWIwZDBkMjMxOTEyMWUwNGY5MjMzYTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC01LjAvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tp
cHBlZApAQCAtNjk4MywzICs2OTgzLDcgQEAgZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMtMS5o
dG1sCiAjIFtRdF0gZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRp
dGFibGUtZGl2Lmh0bWwgZmFpbHMgd2l0aCBRdDUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNDE4CiBlZGl0aW5nL3NlbGVjdGlvbi9jbGljay1pbi1tYXJnaW5z
LWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90
aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRT
dHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LW1hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBw
ZWQKaW5kZXggNmMxN2FiZWNiYzk0MGUzZjQ0YmUwYWFkZDIyMTAyODgyZGNjNmU5Mi4uMDNhMjlk
ZWUxNzRkMGNiMmEzYTljZTE3YzBjNmU4ZWEzNmVmZTUxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQt
bWFjL1NraXBwZWQKQEAgLTUyNjgsMyArNTI2OCw3IEBAIGNzczIuMS8yMDExMDMyMy9lbXB0eS1p
bmxpbmUtMDAyLmh0bQogY3NzMi4xLzIwMTEwMzIzL2VtcHR5LWlubGluZS0wMDMuaHRtCiBjc3My
LjEvMjAxMTAzMjMvZW1wdHktaW5saW5lLTAwMS5odG0KIHRyYW5zZm9ybXMvc3ZnLXZzLWNzcy54
aHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHBy
ZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2Fi
bGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKaW5kZXggMmMzZTk3MjA0NTg3
ZTc5ZTk0NjhiODZlNzBiYjMyZjM2NWI4YjI4Mi4uYjI5MDZiN2RjMzEyNTMwMjViZjE4MzU2YTEw
M2VhYTA5ZTYwNDRiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKQEAgLTE4Njks
MyArMTg2OSw3IEBAIGZhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2staW5pdGlhbC12cy1maW5hbC11
cmwuaHRtbAogaHR0cC90ZXN0cy9oaXN0b3J5L2JhY2stdG8tcG9zdC5waHAKIGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5n
IGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJh
dG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKaW5kZXggYjY3NmMwZmE3ODZmZTE0MzI0OTM3OWIwM2E5MmZkYTAwODk4OWM1NS4uMWMx
ZjcyN2NlYzg1ZGQ5ZjVmMTUwYTg0N2ZkMzhjZmZhMTg0MGQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKQEAgLTg5NCw2ICs4OTQsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktcmVkaXJlY3QuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktaHR0cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtZGVmYXVsdC5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9u
IHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1z
ZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIyMgRU5EIE9GICgxKSBDbGFzc2lmaWVkIGZhaWx1
cmVzIHdpdGggYnVnIHJlcG9ydHMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119436</attachid>
            <date>2011-12-15 09:15:21 -0800</date>
            <delta_ts>2011-12-15 09:23:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111215171520.patch</filename>
            <type>text/plain</type>
            <size>31691</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVjNTEyNTZiYjI2Yjll
ZDY0YmY5MWQwYzZjMDRiMmYxMzI3NzUyOC4uNzc2NGZiMGQwMTEzZDE4MTg4NjZhYWE2YWJmYzlk
Njk0NTRiZjFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTEzICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFRyZWVPdXRsaW5lJ3MgaXMgYnJva2VuIHdoZW4gbGkgZWxlbWVudHMgaGF2ZSBwYWRk
aW5nLWxlZnQgZGlmZmVyZW50IGZyb20gMTRweC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggZWNmYjhiMmJkNTc5ZDUzMjgxNGNjOTMyNGEyODc4NzM4OGY5ODNmNi4uMGZjZWU4YjhlNWJh
Y2Y5N2M3NGUwNzMxNWM4ZWEzNTE0ZDI1MGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0xNyAgTWFydGluIEtvc2liYSAgPG1rb3NpYmFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBGaXggZmluZCBvbiB3ZWIgcGFnZXMgd2l0aCAtd2Via2l0LXVz
ZXItc2VsZWN0OiBub25lIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHdpbGwgbWFrZSBpdCBwb3NzaWJsZSB0byBzZWFyY2gg
Zm9yIHRleHQgdGhhdCBoYXMKKyAgICAgICAgc2VsZWN0aW9uIGRpc2FibGVkICh2aWEgdGhlIHdl
YmtpdC11c2VyLXNlbGVjdCBhdHRyaWJ1dGUpLgorCisgICAgICAgIFdlYkZyYW1lSW1wbDo6Zmlu
ZCB3aWxsIHVzZSBmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlLCB3aGljaCBpcworICAgICAg
ICBzaW1pbGFyIHRvIGZpbmRTdHJpbmcgZXhjZXB0IHRoYXQgaXQgdXNlcyBSYW5nZSBkaXJlY3Rs
eSByYXRoZXIKKyAgICAgICAgdGhhbiBwYXNzaW5nIHRoZSBmaW5kIHJlc3VsdCBpbiB0aGUgYWN0
aXZlIHNlbGVjdGlvbi4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZpbmQpOgorCiAyMDExLTEyLTEzICBEaXJrIFByYW5r
ZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNocm9taXVtIHBvcnQgLSByZW1v
dmUgbmFjbCBoYWNrIGluIERFUFMvZ3lwX3dlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CmluZGV4IGZiODc4ODIwMjY1ZmY3OWRiMjhlYWFhYTY2MWUyZDY4YTNmMGU0OGQuLmE3MjdmZGVl
MDM3NzliODFlMTNlMDY0Zjg0YjA1NjY3ZDYwMmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIK
ICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2su
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24u
aCIKQEAgLTI3NzcsNiArMjc3OCwxOCBAQCBib29sIEVkaXRvcjo6ZmluZFN0cmluZyhjb25zdCBT
dHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxl
KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcHJldmlvdXNNYXRjaCwgRmluZE9wdGlvbnMg
b3B0aW9ucykKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IG5leHRNYXRjaCA9IHJhbmdlT2ZTdHJpbmco
dGFyZ2V0LCBwcmV2aW91c01hdGNoLCBvcHRpb25zKTsKKyAgICBpZiAoIW5leHRNYXRjaCkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBuZXh0TWF0Y2gtPmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigp
LT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG5leHRNYXRjaC0+Ym91bmRp
bmdCb3goKSwKKyAgICAgICAgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBT
Y3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQpOworCisgICAgcmV0dXJuIG5leHRN
YXRjaC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0
cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhbmdlLCBGaW5kT3B0
aW9ucyBvcHRpb25zKQogewogICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKaW5kZXggYjgxZTYxMDRkNjk2ZTI5ZWNmMGFiNDc5ZGQyNDljMjQ5NmM1ZWNjZi4u
MjlhYzdkYTUyNmIwM2NhNmUxZTQxNDNiMDExOGU3YmEwMDA4OThlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC0zNDAsNiArMzQwLDcgQEAgcHVibGljOgogICAgIGJvb2wgZmluZFN0cmlu
Zyhjb25zdCBTdHJpbmcmLCBib29sIGZvcndhcmQsIGJvb2wgY2FzZUZsYWcsIGJvb2wgd3JhcEZs
YWcsIGJvb2wgc3RhcnRJblNlbGVjdGlvbik7CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5n
ZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRmluZE9wdGlvbnMpOworICAgIFBhc3NS
ZWZQdHI8UmFuZ2U+IGZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3QgU3RyaW5nJiwg
UmFuZ2UqLCBGaW5kT3B0aW9ucyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBtYXJr
KCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1hY3MgdXNlcyBpdC4KICAgICB2b2lk
IHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggY2M1MTRlYmMyMjMxNzVkMThhODVmNDlkY2Qw
OGZiOWFkZjMxOGM2Ny4uZTVhZTljNTE4OWIxODU4YmFkYzk4MDYxY2E0NzY5Njg4ZjRiZjIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xNTIw
LDk0ICsxNTIwLDcwIEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVyLAog
ewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5GcmFt
ZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKKyAgICBpZiAoIW9wdGlvbnMu
ZmluZE5leHQpIHsKICAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hl
cygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0
KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlzIGNoYW5naW5nLgotCi0gICAgLy8gU3RhcnRz
IHRoZSBzZWFyY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAgYm9vbCBzdGFydElu
U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7CisgICAgfSBlbHNl
CisgICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCBmYWxzZSk7CiAK
ICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0
IEZpbmQgb3BlcmF0aW9uIHdlIHdhbnQKICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhl
cndpc2UsIHdlIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKICAgICAv
LyBvcGVyYXRpb24gbGVmdCBvZmYgKGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRp
b24pLgogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZWxlY3Rpb24oKSk7CiAgICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlz
Tm9uZSgpOwotICAgIGlmICghYWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAg
ICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsK
LSAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwor
ICAgIGlmIChhY3RpdmVTZWxlY3Rpb24pIHsKKyAgICAgICAgbV9hY3RpdmVNYXRjaCA9IHNlbGVj
dGlvbi5maXJzdFJhbmdlKCkuZ2V0KCk7CisgICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5j
bGVhcigpOwogICAgIH0KIAogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7
Ci0gICAgYm9vbCBmb3VuZCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nKAotICAgICAg
ICBzZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQsIG9wdGlvbnMubWF0Y2hDYXNlLCB3cmFwV2l0
aGluRnJhbWUsCi0gICAgICAgIHN0YXJ0SW5TZWxlY3Rpb24pOwotICAgIGlmIChmb3VuZCkgewot
ICAgICAgICAvLyBTdG9yZSB3aGljaCBmcmFtZSB3YXMgYWN0aXZlLiBUaGlzIHdpbGwgY29tZSBp
biBoYW5keSBsYXRlciB3aGVuIHdlCi0gICAgICAgIC8vIGNoYW5nZSB0aGUgYWN0aXZlIG1hdGNo
IG9yZGluYWwgYmVsb3cuCi0gICAgICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBt
YWluRnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWU7Ci0gICAgICAgIC8vIFNldCB0aGlzIGZy
YW1lIGFzIHRoZSBhY3RpdmUgZnJhbWUgKHRoZSBvbmUgd2l0aCB0aGUgYWN0aXZlIGhpZ2hsaWdo
dCkuCi0gICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7Ci0K
LSAgICAgICAgLy8gV2UgZm91bmQgc29tZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1ZXJ5IHRoZSBz
ZWxlY3Rpb24gZm9yIGl0cyBwb3NpdGlvbi4KLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKLSAgICAgICAgSW50
UmVjdCBjdXJyU2VsZWN0aW9uUmVjdDsKLQotICAgICAgICAvLyBJZiB3ZSB0aG91Z2h0IHdlIGZv
dW5kIHNvbWV0aGluZywgYnV0IGl0IGNvdWxkbid0IGJlIHNlbGVjdGVkIChwZXJoYXBzCi0gICAg
ICAgIC8vIGJlY2F1c2UgaXQgd2FzIG1hcmtlZCAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lKSwg
d2UgY2FuJ3Qgc2V0IGl0IHRvCi0gICAgICAgIC8vIGJlIGFjdGl2ZSBidXQgd2Ugc3RpbGwgY29u
dGludWUgc2VhcmNoaW5nLiBUaGlzIG1hdGNoZXMgU2FmYXJpJ3MKLSAgICAgICAgLy8gYmVoYXZp
b3IsIGluY2x1ZGluZyBzb21lIG9kZGl0aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0
YWJsZSB0ZXh0Ci0gICAgICAgIC8vIGFyZSBtaXhlZCBvbiBhIHBhZ2U6IHNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjcuCi0gICAgICAgIGlmIChuZXdTZWxl
Y3Rpb24uaXNOb25lKCkgfHwgKG5ld1NlbGVjdGlvbi5zdGFydCgpID09IG5ld1NlbGVjdGlvbi5l
bmQoKSkpCi0gICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBtX2FjdGl2ZU1hdGNoID0gbmV3U2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdl
KCk7Ci0gICAgICAgICAgICBjdXJyU2VsZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5k
aW5nQm94KCk7Ci0gICAgICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQo
KSwgdHJ1ZSk7IC8vIEFjdGl2ZS4KLSAgICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGln
aGxpZ2h0aW5nIGZvciBhbGwgbWF0Y2hlcy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdl
YlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOwotICAgICAgICB9CisgICAgY29uc3QgRmlu
ZE9wdGlvbnMgZmluZE9wdGlvbnMgPSAob3B0aW9ucy5mb3J3YXJkID8gMCA6IEJhY2t3YXJkcykK
KyAgICAgICAgfCAob3B0aW9ucy5tYXRjaENhc2UgPyAwIDogQ2FzZUluc2Vuc2l0aXZlKQorICAg
ICAgICB8ICh3cmFwV2l0aGluRnJhbWUgPyBXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAoIW9w
dGlvbnMuZmluZE5leHQgPyBTdGFydEluU2VsZWN0aW9uIDogMCk7CisgICAgbV9hY3RpdmVNYXRj
aCA9IGZyYW1lKCktPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKHNlYXJj
aFRleHQsIG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZpbmRPcHRpb25zKTsKIAotICAgICAgICAvLyBN
YWtlIHN1cmUgbm8gbm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2NyYnVnLmNvbS8zODcwMC4K
LSAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgaWYg
KCFtX2FjdGl2ZU1hdGNoKSB7CisgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0TWFya2VyQWN0aXZlKG1f
YWN0aXZlTWF0Y2guZ2V0KCksIHRydWUpOworICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJh
bWUgPSBtYWluRnJhbWVJbXBsLT5tX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOworICAgIG1haW5G
cmFtZUltcGwtPm1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUgPSB0aGlzOwogCi0gICAgICAgIGlm
ICghb3B0aW9ucy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIC8v
IFRoaXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5l
dyBzdGFydCBwb2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBz
ZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAgICAgICAgICAgLy8gdG8g
ZmluZCB0aGUgYWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRhdGUgdGhlIG9yZGluYWwg
KG4gb2YgbSkuCi0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAg
Ly8gTWFrZSBzdXJlIG5vIG5vZGUgaXMgZm9jdXNlZC4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzg3
MDAuCisgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZE5vZGUoMCk7CisKKyAgICBp
ZiAoIW9wdGlvbnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFRo
aXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5ldyBz
dGFydCBwb2ludAorICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24sIHNvIHdlIHNldCB0aGUg
ZmxhZyB0byBhc2sgdGhlIHNjb3BpbmcgZWZmb3J0CisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFj
dGl2ZSByZWN0IGZvciB1cyBhbmQgcmVwb3J0IGl0IGJhY2sgdG8gdGhlIFVJLgorICAgICAgICBt
X2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG9s
ZEFjdGl2ZUZyYW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQp
CisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSAwOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3Vy
cmVudEZyYW1lID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAob2xkQWN0aXZlRnJhbWUgIT0gdGhpcykgewotICAgICAgICAgICAgICAgIC8v
IElmIHRoZSBhY3RpdmUgZnJhbWUgaGFzIGNoYW5nZWQgaXQgbWVhbnMgdGhhdCB3ZSBoYXZlIGEg
bXVsdGktZnJhbWUKLSAgICAgICAgICAgICAgICAvLyBwYWdlIGFuZCB3ZSBqdXN0IHN3aXRjaCB0
byBzZWFyY2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAotICAgICAgICAgICAgICAg
IC8vIHdhbnQgdG8gcmVzZXQgdGhlIGluZGV4LgotICAgICAgICAgICAgICAgIGlmIChvcHRpb25z
LmZvcndhcmQpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDA7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5k
ZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIHRoZSBhY3RpdmUgZnJhbWUsIHNvIGluY3JlbWVudCAo
b3IgZGVjcmVtZW50KSB0aGUKLSAgICAgICAgICAgICAgICAvLyB8bV9hY3RpdmVNYXRjaEluZGV4
fCwgd3JhcHBpbmcgaWYgbmVlZGVkIChvbiBzaW5nbGUgZnJhbWUgcGFnZXMpLgotICAgICAgICAg
ICAgICAgIG9wdGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaEluZGV4IDogLS1tX2FjdGl2
ZU1hdGNoSW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJbmRleCArIDEg
PiBtX2xhc3RNYXRjaENvdW50KQotICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5k
ZXggPSAwOwotICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggPT0gLTEpCi0g
ICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1fbGFzdE1hdGNoQ291bnQg
LSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNlbGVjdGlvblJlY3QpIHsKLSAg
ICAgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9IGZyYW1lVmlldygpLT5jb250ZW50c1RvV2lu
ZG93KGN1cnJTZWxlY3Rpb25SZWN0KTsKLSAgICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdl
U2VsZWN0aW9uKCpzZWxlY3Rpb25SZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlm
aWVyKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvcHRpb25zLmZvcndhcmQpCisg
ICAgICAgICAgICAgICAgKyttX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAtLW1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVu
dEZyYW1lOworCisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJh
bWUgKyAxID4gbV9sYXN0TWF0Y2hDb3VudCkKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
SW5kZXhJbkN1cnJlbnRGcmFtZSA9IDA7CisgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaElu
ZGV4SW5DdXJyZW50RnJhbWUgPT0gLTEpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaElu
ZGV4SW5DdXJyZW50RnJhbWUgPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgeworICAgICAgICAgICAgKnNlbGVjdGlvblJlY3QgPSBm
cmFtZVZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhtX2FjdGl2ZU1hdGNoLT5ib3VuZGluZ0JveCgp
KTsKKyAgICAgICAgICAgIHJlcG9ydEZpbmRJblBhZ2VTZWxlY3Rpb24oKnNlbGVjdGlvblJlY3Qs
IG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lICsgMSwgaWRlbnRpZmllcik7CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5nIHdhcyBmb3VuZCBpbiB0aGlz
IGZyYW1lLgotICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKLQotICAgICAgICAvLyBFcmFzZSBh
bGwgcHJldmlvdXMgdGlja21hcmtzIGFuZCBoaWdobGlnaHRpbmcuCi0gICAgICAgIGludmFsaWRh
dGVBcmVhKEludmFsaWRhdGVBbGwpOwogICAgIH0KIAotICAgIHJldHVybiBmb3VuZDsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OnN0b3BGaW5kaW5nKGJvb2wgY2xl
YXJTZWxlY3Rpb24pCkBAIC0xNzI1LDE3ICsxNzAxLDE3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpz
Y29wZVN0cmluZ01hdGNoZXMoaW50IGlkZW50aWZpZXIsCiAgICAgICAgICAgICBib29sIGZvdW5k
QWN0aXZlTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChtX2xvY2F0aW5nQWN0aXZlUmVj
dCAmJiAoYWN0aXZlU2VsZWN0aW9uUmVjdCA9PSByZXN1bHRCb3VuZHMpKSB7CiAgICAgICAgICAg
ICAgICAgLy8gV2UgaGF2ZSBmb3VuZCB0aGUgYWN0aXZlIHRpY2ttYXJrIGZyYW1lLgotICAgICAg
ICAgICAgICAgIG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CisgICAg
ICAgICAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9jdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHRo
aXM7CiAgICAgICAgICAgICAgICAgZm91bmRBY3RpdmVNYXRjaCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgLy8gV2UgYWxzbyBrbm93IHdoaWNoIHRpY2ttYXJrIGlzIGFjdGl2ZSBub3cuCi0gICAg
ICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbWF0Y2hDb3VudCAtIDE7CisgICAgICAg
ICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSBtYXRjaENvdW50IC0g
MTsKICAgICAgICAgICAgICAgICAvLyBUbyBzdG9wIGxvb2tpbmcgZm9yIHRoZSBhY3RpdmUgdGlj
a21hcmssIHdlIHNldCB0aGlzIGZsYWcuCiAgICAgICAgICAgICAgICAgbV9sb2NhdGluZ0FjdGl2
ZVJlY3QgPSBmYWxzZTsKIAogICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBicm93c2VyIG9mIG5l
dyBsb2NhdGlvbiBmb3IgdGhlIHNlbGVjdGVkIHJlY3RhbmdsZS4KICAgICAgICAgICAgICAgICBy
ZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgICBmcmFtZVZpZXco
KS0+Y29udGVudHNUb1dpbmRvdyhyZXN1bHRCb3VuZHMpLAotICAgICAgICAgICAgICAgICAgICBt
X2FjdGl2ZU1hdGNoSW5kZXggKyAxLAorICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNo
SW5kZXhJbkN1cnJlbnRGcmFtZSArIDEsCiAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIp
OwogICAgICAgICAgICAgfQogCkBAIC0xODA0LDcgKzE3ODAsNyBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6Y2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2Rl
ZmVycmVkU2NvcGluZ1dvcmspOwogICAgIG1fZGVmZXJyZWRTY29waW5nV29yay5jbGVhcigpOwog
Ci0gICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gLTE7CisgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5D
dXJyZW50RnJhbWUgPSAtMTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmluY3JlYXNlTWF0Y2hD
b3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVyKQpAQCAtMTk5Nyw4ICsxOTczLDggQEAgUGFz
c1JlZlB0cjxXZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6Y3JlYXRlKFdlYkZyYW1lQ2xpZW50
KiBjbGllbnQpCiBXZWJGcmFtZUltcGw6OldlYkZyYW1lSW1wbChXZWJGcmFtZUNsaWVudCogY2xp
ZW50KQogICAgIDogbV9mcmFtZUxvYWRlckNsaWVudCh0aGlzKQogICAgICwgbV9jbGllbnQoY2xp
ZW50KQotICAgICwgbV9hY3RpdmVNYXRjaEZyYW1lKDApCi0gICAgLCBtX2FjdGl2ZU1hdGNoSW5k
ZXgoLTEpCisgICAgLCBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lKDApCisgICAgLCBtX2FjdGl2
ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSgtMSkKICAgICAsIG1fbG9jYXRpbmdBY3RpdmVSZWN0
KGZhbHNlKQogICAgICwgbV9yZXN1bWVTY29waW5nRnJvbVJhbmdlKDApCiAgICAgLCBtX2xhc3RN
YXRjaENvdW50KC0xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApp
bmRleCBkNDhjY2JkZDQ5MjQ0ZWE4Yzg4MjQ4NTU3ODY1MWEyNWRjMmFiODIyLi4yM2U2MGQ5ODA0
MzMxYzg2ZjdhNWIwYjFmYzhhZDRjZGRlN2Y4ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMjUyLDcgKzI1Miw3IEBAIHB1YmxpYzoKICAgICAvLyBS
ZXR1cm5zIHdoaWNoIGZyYW1lIGhhcyBhbiBhY3RpdmUgbWF0Y2guIFRoaXMgZnVuY3Rpb24gc2hv
dWxkIG9ubHkgYmUKICAgICAvLyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUsIGFzIGl0IGlzIHRo
ZSBvbmx5IGZyYW1lIGtlZXBpbmcgdHJhY2suIFJldHVybmVkCiAgICAgLy8gdmFsdWUgY2FuIGJl
IDAgaWYgbm8gZnJhbWUgaGFzIGFuIGFjdGl2ZSBtYXRjaC4KLSAgICBjb25zdCBXZWJGcmFtZUlt
cGwqIGFjdGl2ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoRnJhbWU7
IH0KKyAgICBjb25zdCBXZWJGcmFtZUltcGwqIGFjdGl2ZU1hdGNoRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOyB9CiAKICAgICAvLyBXaGVuIGEgRmluZCBv
cGVyYXRpb24gZW5kcywgd2Ugd2FudCB0byBzZXQgdGhlIHNlbGVjdGlvbiB0byB3aGF0IHdhcyBh
Y3RpdmUKICAgICAvLyBhbmQgc2V0IGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZSB3
ZSBmaW5kIChzdGFydGluZyB3aXRoIHRoZSBmaXJzdApAQCAtMzQ2LDEzICszNDYsMTMgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEEgd2F5IGZvciB0aGUgbWFpbiBmcmFtZSB0byBrZWVwIHRyYWNrIG9m
IHdoaWNoIGZyYW1lIGhhcyBhbiBhY3RpdmUKICAgICAvLyBtYXRjaC4gU2hvdWxkIGJlIDAgZm9y
IGFsbCBvdGhlciBmcmFtZXMuCi0gICAgV2ViRnJhbWVJbXBsKiBtX2FjdGl2ZU1hdGNoRnJhbWU7
CisgICAgV2ViRnJhbWVJbXBsKiBtX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lOwogCiAgICAgLy8g
VGhlIHJhbmdlIG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgogICAg
IFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9hY3RpdmVNYXRjaDsKIAotICAgIC8vIFRoZSBpbmRl
eCBvZiB0aGUgYWN0aXZlIG1hdGNoLgotICAgIGludCBtX2FjdGl2ZU1hdGNoSW5kZXg7CisgICAg
Ly8gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUgbWF0Y2ggZm9yIHRoZSBjdXJyZW50IGZyYW1lLgor
ICAgIGludCBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZTsKIAogICAgIC8vIFRoaXMg
ZmxhZyBpcyB1c2VkIGJ5IHRoZSBzY29waW5nIGVmZm9ydCB0byBkZXRlcm1pbmUgaWYgd2UgbmVl
ZCB0byBmaWd1cmUKICAgICAvLyBvdXQgd2hpY2ggcmVjdGFuZ2xlIGlzIHRoZSBhY3RpdmUgbWF0
Y2guIE9uY2Ugd2UgZmluZCB0aGUgYWN0aXZlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzQ5MmNmYmFiNzEyMGZhM2RjM2VhMGJiYWMxNTA4ZGU0
ZDFlMmFkOS4uYzM3MTRhMDY5ZjcxYmRkYmY1YmViOGMwYzI1NjQ4ZTY3OGMwZmM5NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisg
ICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmUgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFByb3ZpZGVkIGEgcGFydGlhbCBmaW5kU3RyaW5nIGltcGxlbWVudGF0aW9uLiBUaGlz
IGRvZXNuJ3Qgc3VwcG9ydAorICAgICAgICBhbGwgb2YgdGhlIEZpbmRPcHRpb25zIHNpbmNlIHRo
ZXkncmUgbm90IGV4cG9zZWQgdmlhIFdlYkZpbmRPcHRpb25zLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDExLTEyLTE0ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVmYWN0b3JpbmddIEluIHBy
ZXBhcmUtQ2hhbmdlTG9nLCBtYWtlICRpc0dpdCBhbmQgJGlzU1ZOIGJlIHVzZWQgb25seQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDhlMzFlMWUwMjkyN2M2NzNmOTZhMmI2NGNhMjBlZmFhODU3NWJiODMuLjRl
NDc0ZGQ5ODg0YTY4ZDhlMzQzMWQxNTQ4OWQzMzk4Y2ZmNzdlODAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aCIKICNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5o
IgpAQCAtMTIyLDYgKzEyMyw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0
aW9uQ29sb3JzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpmb3JjZVJlZFNlbGVjdGlvbkNvbG9y
cyk7CiAgICAgYmluZE1ldGhvZCgiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lv
bik7CiAgICAgYmluZE1ldGhvZCgiaGFzU3BlbGxpbmdNYXJrZXIiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKTsKKyAgICBiaW5kTWV0aG9kKCJmaW5kU3RyaW5nIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKTsKICAgICBiaW5kTWV0aG9kKCJpc0Nv
bW1hbmRFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjppc0NvbW1hbmRFbmFibGVkKTsK
ICAgICBiaW5kTWV0aG9kKCJoYXNDdXN0b21QYWdlU2l6ZVN0eWxlIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpoYXNDdXN0b21QYWdlU2l6ZVN0eWxlKTsKICAgICBiaW5kTWV0aG9kKCJpc1BhZ2VC
b3hWaXNpYmxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjppc1BhZ2VCb3hWaXNpYmxlKTsKQEAg
LTE5NTMsNiArMTk1NSwzNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpoYXNTcGVsbGlu
Z01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQwogICAgIHJlc3VsdC0+
c2V0KG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPnNlbGVjdGlvblN0YXJ0SGFzU3Bl
bGxpbmdNYXJrZXJGb3IoYXJndW1lbnRzWzBdLnRvSW50MzIoKSwgYXJndW1lbnRzWzFdLnRvSW50
MzIoKSkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV2ViRmluZE9wdGlvbnMgZmluZE9wdGlvbnM7CisgICAgYm9v
bCB3cmFwQXJvdW5kID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMikgewor
ICAgICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG9wdGlvbnNBcnJheSA9IGFyZ3VtZW50c1sxXS50
b1N0cmluZ1ZlY3RvcigpOworICAgICAgICBmaW5kT3B0aW9ucy5tYXRjaENhc2UgPSB0cnVlOwor
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uc0FycmF5LnNpemUoKTsgKytp
KSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3B0aW9uID0gb3B0aW9uc0FycmF5
W2ldOworICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgYWxsIHRoZSBvcHRpb25zLCBzbyB3
ZSBjYW4gcnVuIGZpbmRTdHJpbmcuaHRtbCB0b28uCisgICAgICAgICAgICBpZiAob3B0aW9uID09
ICJDYXNlSW5zZW5zaXRpdmUiKQorICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLm1hdGNoQ2Fz
ZSA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uID09ICJCYWNrd2FyZHMiKQor
ICAgICAgICAgICAgICAgIGZpbmRPcHRpb25zLmZvcndhcmQgPSBmYWxzZTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKG9wdGlvbiA9PSAiV3JhcEFyb3VuZCIpCisgICAgICAgICAgICAgICAgd3JhcEFy
b3VuZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBt
X3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpOworICAgIGNvbnN0IGJvb2wgZmluZFJlc3Vs
dCA9IGZyYW1lLT5maW5kKDAsIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBm
aW5kT3B0aW9ucywgd3JhcEFyb3VuZCwgMCk7CisgICAgcmVzdWx0LT5zZXQoZmluZFJlc3VsdCk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1pbmltdW1UaW1lckludGVydmFs
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7
CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAxMTJlMjk3ODZmMTdhNGNkYzZj
MmUwMjY2NzQwNDAyYTM4ODk1ZGUzLi40ZDZjZDg1YTdhMjJhOTNmNmM2Yjk5ZTA4ZGZjMThjODBj
YTQyY2I4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTM4Nyw2ICszODcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IG1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisgICAgdm9pZCBmaW5kU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTU3Y2U3MWY2OGUzZGZj
YzM3NjlhZDJhMWQ0MGU5MDQxNTdmOGZkNS4uZTk3MjY0NmY4ODQ1Njk3NzA0MDM5Y2FjOGQ2MjQ4
YzczYjRmOTBiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTExLTE3ICBNYXJ0aW4gS29z
aWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdl
cyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGxheW91dCB0ZXN0
IHRvIHZlcmlmeSB0aGF0IGZpbmQgd29ya3MgY29ycmVjdGx5IG9uIHBhZ2VzCisgICAgICAgIHRo
YXQgcHJldmVudCB0ZXh0IHNlbGVjdGlvbi4KKworICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVy
YXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNh
YmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGstd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxp
b24vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC01
LjAvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBl
ZDoKKwogMjAxMS0xMi0xNCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFtHdGtdIHJlYmFzZWxpbmUgdGVzdCByZXN1bHRzIGZvciBlZGl0aW5nL3NlbGVj
dGlvbi90cmFuc2Zvcm1lZC1zZWxlY3Rpb24tcmVjdHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3Ry
aW5nLXNlbGVjdGlvbi1kaXNhYmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMzY1ZmYz
Y2ViNDNjNWJlMDhlNzZiZjVlMWQzYTc4Y2YxZTBlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorU2VhcmNoaW5nIGZvciAnZScgaW4gJ1Nv
bWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJs
ZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ2UnLCBbXSkgaXMgdHJ1
ZQorCitTZWFyY2hpbmcgZm9yICdvJyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBz
ZWFyY2hlZCcgd2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZmluZFN0cmluZygnbycsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ3knIGluICdT
b21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFi
bGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZh
bHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmZpbmRTdHJpbmcoJ3QgdCcsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ21v
dW50JyBpbiAnaW5zdXJtb3VudGFibGUgbW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6
CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50JywgW10pIGlzIHRy
dWUKKworU2VhcmNoaW5nIGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicg
d2l0aCBzZWxlY3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0
cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworU2VhcmNoaW5nIGZvciAnZScgaW4gJ1NvbWUg
c2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVk
OgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywgW10pIGlzIHRydWUK
KworU2VhcmNoaW5nIGZvciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2Vh
cmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5maW5kU3RyaW5nKCdvJywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAneScgaW4gJ1Nv
bWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2Fi
bGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd5JywgW10pIGlzIGZh
bHNlCisKK1NlYXJjaGluZyBmb3IgJ3QgdCcgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGRpc2FibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5maW5kU3RyaW5nKCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9yICdt
b3VudCcgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxl
ZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnbW91bnQnLCBbXSkgaXMg
dHJ1ZQorCitTZWFyY2hpbmcgZm9yICdXYWxseScgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWlu
JyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmlu
ZFN0cmluZygnV2FsbHknLCBbXSkgaXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2Fi
bGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkM2E5MTQ0M2Q0ZGRkYmU3MjNkM2Q0OTgxMzg3MzdkOGQw
ZTEyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRv
ci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgLnNlbGVjdGlv
bkRpc2FibGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfQorIC5zZWxlY3Rpb25FbmFi
bGVkIHsgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxl
PSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij48L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVz
c2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RGaW5kU3RyaW5nKHRleHQsIHRhcmdldCwgZGlzYWJsZVNlbGVjdGlvbiwgZXhwZWN0
ZWQpCit7CisgICAgdmFyIHNlbGVjdGlvblN0YXR1cyA9IGRpc2FibGVTZWxlY3Rpb24gPyAic2Vs
ZWN0aW9uIGRpc2FibGVkOiIgOiAic2VsZWN0aW9uIGVuYWJsZWQ6IjsKKyAgICBsb2coIlNlYXJj
aGluZyBmb3IgJyIgKyB0YXJnZXQgKyAiJyBpbiAnIiArIHRleHQgKyAiJyB3aXRoICIgKyBzZWxl
Y3Rpb25TdGF0dXMpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb250YWluZXIiKTsKKyAgICBjb250YWluZXIuaW5uZXJUZXh0ID0gdGV4dDsKKyAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBkaXNh
YmxlU2VsZWN0aW9uID8gInNlbGVjdGlvbkRpc2FibGVkIiA6ICJzZWxlY3Rpb25FbmFibGVkIjsK
KworICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCciICsgdGFy
Z2V0ICsgIicsIFtdKSIsIGV4cGVjdGVkKTsKKworICAgIGNvbnRhaW5lci5pbm5lclRleHQgPSAi
IjsKKyAgICBsb2coIiIpOworfQorCitpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIGxheW91dFRlc3RDb250cm9s
bGVyIG9iamVjdCcpOworZWxzZSB7CisgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworICAg
ICAgICB2YXIgZGlzYWJsZVNlbGVjdGlvbiA9IChpID09IDEpOworCisgICAgICAgIHRlc3RGaW5k
U3RyaW5nKCJTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgImUiLCBkaXNh
YmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiU29tZSBzYW1w
bGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJvIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRy
dWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmcoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4g
YmUgc2VhcmNoZWQiLCAieSIsIGRpc2FibGVTZWxlY3Rpb24sICJmYWxzZSIpOworICAgICAgICB0
ZXN0RmluZFN0cmluZygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIsICJ0
IHQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygi
aW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAibW91bnQiLCBkaXNhYmxlU2VsZWN0aW9uLCAidHJ1
ZSIpOworICAgICAgICB0ZXN0RmluZFN0cmluZygiaW5zdXJtb3VudGFibGUgbW91bnRhaW4iLCAi
V2FsbHkiLCBkaXNhYmxlU2VsZWN0aW9uLCAiZmFsc2UiKTsKKyAgICB9Cit9CisKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxp
dHkiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA0ZmI2YjI2
OGQwZmY5MGZkZjdmMDM2ZmQ4NjQ0OGNjNzBiZWU0YjhhLi5kNmVkYTIzM2E2MzJlMWMzZjAyNTc4
NDUzZjcxNDI2ZWUzZGYyNDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtODQzLDYg
Kzg0MywxMCBAQCBmYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRl
cnZhbC5odG1sCiAjIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVu
dCBzZXRUZXh0RGlyZWN0aW9uCiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9uLmh0bWwKIAor
IyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNl
bGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEK
K2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1s
CisKICMgRUZMJ3MgRFJUIG1pc3NlcyBhbiAnRURJVElORyBERUxFR0FURScgaW1wbGVtZW50YXRp
b24KIGVkaXRpbmcvaW5wdXQvYXR0cmlidXRlZC1zdWJzdHJpbmctZnJvbS1yYW5nZS1saW5lcy5o
dG1sCiBlZGl0aW5nL3RleHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCmluZGV4IGRlMjYxMDVmYWJjMzI4OWYzNjc1NmQ3
Y2RmOWNlNTVkNzAyZTE1N2UuLjA5YmM3ZWE2MmFjN2NiMGM3ZDJkMmEwOGRkMDlmMjU4OTQ4ZTdm
ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKQEAgLTM3MSw2ICszNzEsMTAg
QEAgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxs
b3dlZC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1p
bWFnZS1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2Vi
Z2wtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWFsbG93ZWQtd2l0aC1jcmVkZW50aWFscy5odG1s
CiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVu
dCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbAorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcKICMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9u
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCmluZGV4IDI3
ZGM0MTY1MWNkMWY5YjFlY2NkYzcxZGM2MTk3NzdhOTdjM2JiMjkuLjg5YzdhNzI3ZTdkYjY1OWIy
MzYwM2RjNzg1YmRjMDMxMzYwYTY0MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1saW9uL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tp
cHBlZApAQCAtNTAsNiArNTAsMTAgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVs
ZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItYWNjZXB0aW5nLWF1dG9jb3JyZWN0
aW9uLXVzaW5nLXB1bmN0dWF0aW9uLmh0bWwgIAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMg
bm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2Zp
bmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKKwogIyBQYXN0aW5nIHJlcGxhY2VzIHRo
ZSB0aHJlZSBwZXJpb2RzIHdpdGggYW4gZWxsaXBzaXMgb24gTGlvbgogZWRpdGluZy9wYXN0ZWJv
YXJkLzU0NzgyNTAuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
c25vd2xlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFy
ZC9Ta2lwcGVkCmluZGV4IGJlMjJhMDY1MjJlNGVjZTllNDJjM2M0NWY5NGZlNzczYjc1NmRiNmQu
LjllZTc3ZTAxZWJkY2Y5NDZjMWY0NWRiZDZiMmJlMDBjNThhMDM3Y2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCkBAIC0xOTIsMyArMTkyLDcgQEAg
ZmFzdC9yZWdpb25zL3JlZ2lvbi1zdHlsZS1pbmxpbmUtYmFja2dyb3VuZC1jb2xvci5odG1sCiAK
ICMgSGlEUEkgdGVzdHMgaGF2ZSBsb3dlci1sZXZlbCBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMgb24g
TWFjCiBmYXN0L2hpZHBpCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBh
Z2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxl
Y3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiYzIzNmYz
YmRkMTY1ZjkxZTYxYjMwMDVhNGFmMjIwNjgzYjBkM2Q0Li5hYTRhNTFkMzlkNTFkY2JhYzkyMWIw
NTUzOGU1NmFmZWJlZjFmMzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtNTE0LDMg
KzUxNCwxOCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRw
cy10by1odHRwLXZpZGVvLWluLW1haW4tZnJhbWUuaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NAogZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLTJk
LXdlYmdsLXRleHR1cmUuaHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NDM4NAorIyBTa2lwcGVkIGFzIHRoaXMgaXMgbm90IGEgZXhwZWN0ZWQgYmVoYXZp
b3VyIG9uIG1hYy4KK2Zhc3QvZm9ybXMvc2VsZWN0L21lbnVsaXN0LW9uY2hhbmdlLWZpcmVkLXdp
dGgta2V5LXVwLWRvd24uaHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MzMwNAorIyBUaWVtb3V0LiBOZWVkcyBDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBv
cHVwKCkgaW1wZWxlbWVudGF0aW9uPworZmFzdC9mb3Jtcy9zZWxlY3QvbWVudWxpc3QtcG9wdXAt
Y3Jhc2guaHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDUzOAorZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1zaG91bGQtbm90LXN0b3Atb24ta2V5cHJlc3Mu
aHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHBy
ZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2Fi
bGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQKaW5kZXggOWZkODFkN2IyMTZm
OTIwY2VkYTM2Y2ZkZTQxYWQ2YWM1ZGMwMGNmZi4uYzI1YzU4NjkxYzc0ZjY0YzViMGQwZDIzMTkx
MjFlMDRmOTIzM2E2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQKQEAgLTY5ODMs
MyArNjk4Myw3IEBAIGVkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLTEuaHRtbAogIyBbUXRdIGVk
aXRpbmcvc2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1s
IGZhaWxzIHdpdGggUXQ1CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MzQxOAogZWRpdGluZy9zZWxlY3Rpb24vY2xpY2staW4tbWFyZ2lucy1pbnNpZGUtZWRpdGFi
bGUtZGl2Lmh0bWwKKworIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMg
dGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlv
bi1kaXNhYmxlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkCmluZGV4IDZjMTdh
YmVjYmM5NDBlM2Y0NGJlMGFhZGQyMjEwMjg4MmRjYzZlOTIuLjAzYTI5ZGVlMTc0ZDBjYjJhM2E5
Y2UxN2MwYzZlOGVhMzZlZmU1MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LW1hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9Ta2lwcGVkCkBA
IC01MjY4LDMgKzUyNjgsNyBAQCBjc3MyLjEvMjAxMTAzMjMvZW1wdHktaW5saW5lLTAwMi5odG0K
IGNzczIuMS8yMDExMDMyMy9lbXB0eS1pbmxpbmUtMDAzLmh0bQogY3NzMi4xLzIwMTEwMzIzL2Vt
cHR5LWlubGluZS0wMDEuaHRtCiB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0bWwKKworIyBGcmFt
ZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlv
bgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRp
bmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCmluZGV4IDJjM2U5NzIwNDU4N2U3OWU5NDY4Yjg2ZTcw
YmIzMmYzNjViOGIyODIuLjM2MWZmM2Y1MTFkZDVkMzEyYTAwZDJiMzc5ZGZkM2FjMjFhOTY3YWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCkBAIC0xODY5LDMgKzE4NjksMTkgQEAg
ZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay1pbml0aWFsLXZzLWZpbmFsLXVybC5odG1sCiBodHRw
L3Rlc3RzL2hpc3RvcnkvYmFjay10by1wb3N0LnBocAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bv
c3QtZnJhbWVzLWdvYmFjazEuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVj
dC1mcmFtZXMtZ29iYWNrMS5odG1sCisKKyMgW1F0XVtXSzJdIGNzczMvdW5pY29kZS1iaWRpLWlz
b2xhdGUtYWhhcm9uLWZhaWxpbmcuaHRtbCBmYWlscworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDUKK2NzczMvdW5pY29kZS1iaWRpLWlzb2xhdGUtYWhhcm9u
LWZhaWxpbmcuaHRtbAorCisjIFtRdF1bV0syXSBmYXN0L2RvbS9ydGwtc2Nyb2xsLXRvLWxlZnRt
b3N0LWFuZC1yZXNpemUuaHRtbCBmYWlscworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ1MDQKK2Zhc3QvZG9tL3J0bC1zY3JvbGwtdG8tbGVmdG1vc3QtYW5kLXJl
c2l6ZS5odG1sCisKKyMgZmxha2V5IHN2ZyB0ZXN0cworc3ZnL2N1c3RvbS9nZXRzY3JlZW5jdG0t
aW4tc2Nyb2xsYWJsZS1zdmctYXJlYS54aHRtbAorc3ZnL2N1c3RvbS9nZXRzY3JlZW5jdG0taW4t
c2Nyb2xsYWJsZS1kaXYtYXJlYS54aHRtbAorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90
aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRT
dHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5k
ZXggYjY3NmMwZmE3ODZmZTE0MzI0OTM3OWIwM2E5MmZkYTAwODk4OWM1NS4uMWMxZjcyN2NlYzg1
ZGQ5ZjVmMTUwYTg0N2ZkMzhjZmZhMTg0MGQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
QEAgLTg5NCw2ICs4OTQsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
cmVkaXJlY3QuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMt
bmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVm
YXVsdC5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRo
YXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24t
ZGlzYWJsZWQuaHRtbAorCiAjIyMgRU5EIE9GICgxKSBDbGFzc2lmaWVkIGZhaWx1cmVzIHdpdGgg
YnVnIHJlcG9ydHMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119437</attachid>
            <date>2011-12-15 09:23:46 -0800</date>
            <delta_ts>2011-12-15 10:18:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72281-20111215172344.patch</filename>
            <type>text/plain</type>
            <size>30740</size>
            <attacher name="Martin Kosiba">mkosiba</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUxYjUyOTI1NzRkOWFm
YTU2MzcwNDg1MTU4YjM1NTIwOTViNTU0OS4uNzExNGVlMzY0ZWQ3Y2RiMTdmY2E0MjljNjY0NzA3
ODViZjBiZDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE3ICBNYXJ0
aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBmaW5kIG9uIHdl
YiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgZm9yIENocm9taXVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBmaW5kU3Ry
aW5nQW5kU2Nyb2xsVG9WaXNpYmxlIHRvIEVkaXRvci4gVGhpcyBuZXcgbWV0aG9kIHJldHVybnMK
KyAgICAgICAgdGhlIG5ldyBtYXRjaCBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIG1vZGlmeSB0aGUg
YWN0aXZlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nQW5kU2Nyb2xs
VG9WaXNpYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDExLTEyLTE1ICBD
aHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlZCBlcnJvciBp
biBUYXJnZXQucHJpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmYWY1YTZkMDgzNWE4
MjM0YTQ3ZjljMTJiNGFlNTM4MzEyMDE2Nzg2Li5jNDNhYWUwYjgzNjMzNDU5YzdiMDQ0NDcxYjFj
NTNiYWQyYzEyMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDExLTExLTE3ICBNYXJ0aW4gS29zaWJhICA8bWtvc2liYUBnb29nbGUuY29tPgorCisgICAg
ICAgIEZpeCBmaW5kIG9uIHdlYiBwYWdlcyB3aXRoIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUg
Zm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgd2lsbCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNlYXJjaCBmb3IgdGV4dCB0aGF0IGhh
cworICAgICAgICBzZWxlY3Rpb24gZGlzYWJsZWQgKHZpYSB0aGUgd2Via2l0LXVzZXItc2VsZWN0
IGF0dHJpYnV0ZSkuCisKKyAgICAgICAgV2ViRnJhbWVJbXBsOjpmaW5kIHdpbGwgdXNlIGZpbmRT
dHJpbmdBbmRTY3JvbGxUb1Zpc2libGUsIHdoaWNoIGlzCisgICAgICAgIHNpbWlsYXIgdG8gZmlu
ZFN0cmluZyBleGNlcHQgdGhhdCBpdCB1c2VzIFJhbmdlIGRpcmVjdGx5IHJhdGhlcgorICAgICAg
ICB0aGFuIHBhc3NpbmcgdGhlIGZpbmQgcmVzdWx0IGluIHRoZSBhY3RpdmUgc2VsZWN0aW9uLgor
CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6ZmluZCk6CisKIDIwMTEtMTItMTUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hyb21pdW1dIGFkZCBzdXBw
b3J0IHRvIGluc3BlY3RvciB0ZXN0IHN1aXRlIHRvIGZldGNoIHRlc3QgZXhlY3V0aW9uIHJlc3Vs
dHMgZnJvbSBjb25zb2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggOTg1NmQ5OWEy
Mzk4ZWJkZWRjNGEzYzliZWUyMmVmZjcwOTBkNzNkYS4uNjYzZDYzODEzODg3ZTEwZmY4ZjRmYTdm
NDU5YzJlY2ZmZGM5MWRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNjksNiAr
NjksNyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1ZGUgIlJlbW92
ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclRl
eHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5oIgpAQCAtMjc3Nyw2ICsy
Nzc4LDE4IEBAIGJvb2wgRWRpdG9yOjpmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBG
aW5kT3B0aW9ucyBvcHRpb25zKQogICAgIHJldHVybiB0cnVlOwogfQogCitQYXNzUmVmUHRyPFJh
bmdlPiBFZGl0b3I6OmZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoY29uc3QgU3RyaW5nJiB0
YXJnZXQsIFJhbmdlKiBwcmV2aW91c01hdGNoLCBGaW5kT3B0aW9ucyBvcHRpb25zKQoreworICAg
IFJlZlB0cjxSYW5nZT4gbmV4dE1hdGNoID0gcmFuZ2VPZlN0cmluZyh0YXJnZXQsIHByZXZpb3Vz
TWF0Y2gsIG9wdGlvbnMpOworICAgIGlmICghbmV4dE1hdGNoKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIG5leHRNYXRjaC0+Zmlyc3ROb2RlKCktPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVy
KCktPnNjcm9sbFJlY3RUb1Zpc2libGUobmV4dE1hdGNoLT5ib3VuZGluZ0JveCgpLAorICAgICAg
ICBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6
YWxpZ25DZW50ZXJJZk5lZWRlZCk7CisKKyAgICByZXR1cm4gbmV4dE1hdGNoLnJlbGVhc2UoKTsK
K30KKwogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0LCBSYW5nZSogcmVmZXJlbmNlUmFuZ2UsIEZpbmRPcHRpb25zIG9wdGlvbnMpCiB7
CiAgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAw
MjA5ZWQzOTNlMDUxODgxOGRhMzJiNzEzM2Y4ODRjZmJiZTZmZWNlLi40ZDEwOTQwMzNhZTU1NzBh
MDVlYzFjNWY0MmY3MTczZmRhOGUxYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTM0
MCw2ICszNDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYs
IGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlRmxhZywgYm9vbCB3cmFwRmxhZywgYm9vbCBzdGFydElu
U2VsZWN0aW9uKTsKIAogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgUmFuZ2UqLCBGaW5kT3B0aW9ucyk7CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gZmlu
ZFN0cmluZ0FuZFNjcm9sbFRvVmlzaWJsZShjb25zdCBTdHJpbmcmLCBSYW5nZSosIEZpbmRPcHRp
b25zKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG1hcmsoKSBjb25zdDsgLy8gTWFy
aywgdG8gYmUgdXNlZCBhcyBlbWFjcyB1c2VzIGl0LgogICAgIHZvaWQgc2V0TWFyayhjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAppbmRleCBjYzUxNGViYzIyMzE3NWQxOGE4NWY0OWRjZDA4ZmI5YWRmMzE4YzY3Li5l
NWFlOWM1MTg5YjE4NThiYWRjOTgwNjFjYTQ3Njk2ODhmNGJmMjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE1MjAsOTQgKzE1MjAsNzAgQEAg
Ym9vbCBXZWJGcmFtZUltcGw6OmZpbmQoaW50IGlkZW50aWZpZXIsCiB7CiAgICAgV2ViRnJhbWVJ
bXBsKiBtYWluRnJhbWVJbXBsID0gdmlld0ltcGwoKS0+bWFpbkZyYW1lSW1wbCgpOwogCi0gICAg
aWYgKCFvcHRpb25zLmZpbmROZXh0KQorICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkgewogICAg
ICAgICBmcmFtZSgpLT5wYWdlKCktPnVubWFya0FsbFRleHRNYXRjaGVzKCk7Ci0gICAgZWxzZQot
ICAgICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UpOyAvLyBB
Y3RpdmUgbWF0Y2ggaXMgY2hhbmdpbmcuCi0KLSAgICAvLyBTdGFydHMgdGhlIHNlYXJjaCBmcm9t
IHRoZSBjdXJyZW50IHNlbGVjdGlvbi4KLSAgICBib29sIHN0YXJ0SW5TZWxlY3Rpb24gPSB0cnVl
OworICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0TWFy
a2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsKIAogICAgIC8vIElmIHRoZSB1
c2VyIGhhcyBzZWxlY3RlZCBzb21ldGhpbmcgc2luY2UgdGhlIGxhc3QgRmluZCBvcGVyYXRpb24g
d2Ugd2FudAogICAgIC8vIHRvIHN0YXJ0IGZyb20gdGhlcmUuIE90aGVyd2lzZSwgd2Ugc3RhcnQg
c2VhcmNoaW5nIGZyb20gd2hlcmUgdGhlIGxhc3QgRmluZAogICAgIC8vIG9wZXJhdGlvbiBsZWZ0
IG9mZiAoZWl0aGVyIGEgRmluZCBvciBhIEZpbmROZXh0IG9wZXJhdGlvbikuCiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBzZWxlY3Rpb24oZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsK
ICAgICBib29sIGFjdGl2ZVNlbGVjdGlvbiA9ICFzZWxlY3Rpb24uaXNOb25lKCk7Ci0gICAgaWYg
KCFhY3RpdmVTZWxlY3Rpb24gJiYgbV9hY3RpdmVNYXRjaCkgewotICAgICAgICBzZWxlY3Rpb24g
PSBWaXNpYmxlU2VsZWN0aW9uKG1fYWN0aXZlTWF0Y2guZ2V0KCkpOwotICAgICAgICBmcmFtZSgp
LT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgaWYgKGFjdGl2ZVNl
bGVjdGlvbikgeworICAgICAgICBtX2FjdGl2ZU1hdGNoID0gc2VsZWN0aW9uLmZpcnN0UmFuZ2Uo
KS5nZXQoKTsKKyAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPmNsZWFyKCk7CiAgICAgfQog
CiAgICAgQVNTRVJUKGZyYW1lKCkgJiYgZnJhbWUoKS0+dmlldygpKTsKLSAgICBib29sIGZvdW5k
ID0gZnJhbWUoKS0+ZWRpdG9yKCktPmZpbmRTdHJpbmcoCi0gICAgICAgIHNlYXJjaFRleHQsIG9w
dGlvbnMuZm9yd2FyZCwgb3B0aW9ucy5tYXRjaENhc2UsIHdyYXBXaXRoaW5GcmFtZSwKLSAgICAg
ICAgc3RhcnRJblNlbGVjdGlvbik7Ci0gICAgaWYgKGZvdW5kKSB7Ci0gICAgICAgIC8vIFN0b3Jl
IHdoaWNoIGZyYW1lIHdhcyBhY3RpdmUuIFRoaXMgd2lsbCBjb21lIGluIGhhbmR5IGxhdGVyIHdo
ZW4gd2UKLSAgICAgICAgLy8gY2hhbmdlIHRoZSBhY3RpdmUgbWF0Y2ggb3JkaW5hbCBiZWxvdy4K
LSAgICAgICAgV2ViRnJhbWVJbXBsKiBvbGRBY3RpdmVGcmFtZSA9IG1haW5GcmFtZUltcGwtPm1f
YWN0aXZlTWF0Y2hGcmFtZTsKLSAgICAgICAgLy8gU2V0IHRoaXMgZnJhbWUgYXMgdGhlIGFjdGl2
ZSBmcmFtZSAodGhlIG9uZSB3aXRoIHRoZSBhY3RpdmUgaGlnaGxpZ2h0KS4KLSAgICAgICAgbWFp
bkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhpczsKLQotICAgICAgICAvLyBXZSBm
b3VuZCBzb21ldGhpbmcsIHNvIHdlIGNhbiBub3cgcXVlcnkgdGhlIHNlbGVjdGlvbiBmb3IgaXRz
IHBvc2l0aW9uLgotICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihmcmFtZSgp
LT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOwotICAgICAgICBJbnRSZWN0IGN1cnJTZWxlY3Rp
b25SZWN0OwotCi0gICAgICAgIC8vIElmIHdlIHRob3VnaHQgd2UgZm91bmQgc29tZXRoaW5nLCBi
dXQgaXQgY291bGRuJ3QgYmUgc2VsZWN0ZWQgKHBlcmhhcHMKLSAgICAgICAgLy8gYmVjYXVzZSBp
dCB3YXMgbWFya2VkIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUpLCB3ZSBjYW4ndCBzZXQgaXQg
dG8KLSAgICAgICAgLy8gYmUgYWN0aXZlIGJ1dCB3ZSBzdGlsbCBjb250aW51ZSBzZWFyY2hpbmcu
IFRoaXMgbWF0Y2hlcyBTYWZhcmkncwotICAgICAgICAvLyBiZWhhdmlvciwgaW5jbHVkaW5nIHNv
bWUgb2RkaXRpZXMgd2hlbiBzZWxlY3RhYmxlIGFuZCB1bi1zZWxlY3RhYmxlIHRleHQKLSAgICAg
ICAgLy8gYXJlIG1peGVkIG9uIGEgcGFnZTogc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyNy4KLSAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc05vbmUoKSB8
fCAobmV3U2VsZWN0aW9uLnN0YXJ0KCkgPT0gbmV3U2VsZWN0aW9uLmVuZCgpKSkKLSAgICAgICAg
ICAgIG1fYWN0aXZlTWF0Y2ggPSAwOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1fYWN0
aXZlTWF0Y2ggPSBuZXdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICAgICAgICAg
IGN1cnJTZWxlY3Rpb25SZWN0ID0gbV9hY3RpdmVNYXRjaC0+Ym91bmRpbmdCb3goKTsKLSAgICAg
ICAgICAgIHNldE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCB0cnVlKTsgLy8gQWN0
aXZlLgotICAgICAgICAgICAgLy8gV2ViS2l0IGRyYXdzIHRoZSBoaWdobGlnaHRpbmcgZm9yIGFs
bCBtYXRjaGVzLgotICAgICAgICAgICAgZXhlY3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpmcm9tVVRG
OCgiVW5zZWxlY3QiKSk7Ci0gICAgICAgIH0KKyAgICBjb25zdCBGaW5kT3B0aW9ucyBmaW5kT3B0
aW9ucyA9IChvcHRpb25zLmZvcndhcmQgPyAwIDogQmFja3dhcmRzKQorICAgICAgICB8IChvcHRp
b25zLm1hdGNoQ2FzZSA/IDAgOiBDYXNlSW5zZW5zaXRpdmUpCisgICAgICAgIHwgKHdyYXBXaXRo
aW5GcmFtZSA/IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICghb3B0aW9ucy5maW5kTmV4dCA/
IFN0YXJ0SW5TZWxlY3Rpb24gOiAwKTsKKyAgICBtX2FjdGl2ZU1hdGNoID0gZnJhbWUoKS0+ZWRp
dG9yKCktPmZpbmRTdHJpbmdBbmRTY3JvbGxUb1Zpc2libGUoc2VhcmNoVGV4dCwgbV9hY3RpdmVN
YXRjaC5nZXQoKSwgZmluZE9wdGlvbnMpOwogCi0gICAgICAgIC8vIE1ha2Ugc3VyZSBubyBub2Rl
IGlzIGZvY3VzZWQuIFNlZSBodHRwOi8vY3JidWcuY29tLzM4NzAwLgotICAgICAgICBmcmFtZSgp
LT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsKKyAgICBpZiAoIW1fYWN0aXZlTWF0Y2gp
IHsKKyAgICAgICAgaW52YWxpZGF0ZUFyZWEoSW52YWxpZGF0ZUFsbCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQo
KSwgdHJ1ZSk7CisgICAgV2ViRnJhbWVJbXBsKiBvbGRBY3RpdmVGcmFtZSA9IG1haW5GcmFtZUlt
cGwtPm1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWU7CisgICAgbWFpbkZyYW1lSW1wbC0+bV9jdXJy
ZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHRoaXM7CiAKLSAgICAgICAgaWYgKCFvcHRpb25zLmZpbmRO
ZXh0IHx8IGFjdGl2ZVNlbGVjdGlvbikgewotICAgICAgICAgICAgLy8gVGhpcyBpcyBlaXRoZXIg
YSBGaW5kIG9wZXJhdGlvbiBvciBhIEZpbmQtbmV4dCBmcm9tIGEgbmV3IHN0YXJ0IHBvaW50Ci0g
ICAgICAgICAgICAvLyBkdWUgdG8gYSBzZWxlY3Rpb24sIHNvIHdlIHNldCB0aGUgZmxhZyB0byBh
c2sgdGhlIHNjb3BpbmcgZWZmb3J0Ci0gICAgICAgICAgICAvLyB0byBmaW5kIHRoZSBhY3RpdmUg
cmVjdCBmb3IgdXMgc28gd2UgY2FuIHVwZGF0ZSB0aGUgb3JkaW5hbCAobiBvZiBtKS4KLSAgICAg
ICAgICAgIG1fbG9jYXRpbmdBY3RpdmVSZWN0ID0gdHJ1ZTsKKyAgICAvLyBNYWtlIHN1cmUgbm8g
bm9kZSBpcyBmb2N1c2VkLiBTZWUgaHR0cDovL2NyYnVnLmNvbS8zODcwMC4KKyAgICBmcmFtZSgp
LT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkTm9kZSgwKTsKKworICAgIGlmICghb3B0aW9ucy5maW5k
TmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKKyAgICAgICAgLy8gVGhpcyBpcyBlaXRoZXIgYSBG
aW5kIG9wZXJhdGlvbiBvciBhIEZpbmQtbmV4dCBmcm9tIGEgbmV3IHN0YXJ0IHBvaW50CisgICAg
ICAgIC8vIGR1ZSB0byBhIHNlbGVjdGlvbiwgc28gd2Ugc2V0IHRoZSBmbGFnIHRvIGFzayB0aGUg
c2NvcGluZyBlZmZvcnQKKyAgICAgICAgLy8gdG8gZmluZCB0aGUgYWN0aXZlIHJlY3QgZm9yIHVz
IGFuZCByZXBvcnQgaXQgYmFjayB0byB0aGUgVUkuCisgICAgICAgIG1fbG9jYXRpbmdBY3RpdmVS
ZWN0ID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAob2xkQWN0aXZlRnJhbWUgIT0g
dGhpcykgeworICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9yd2FyZCkKKyAgICAgICAgICAgICAg
ICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSA9IDA7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWUgPSBtX2xh
c3RNYXRjaENvdW50IC0gMTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChvbGRB
Y3RpdmVGcmFtZSAhPSB0aGlzKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGFjdGl2ZSBm
cmFtZSBoYXMgY2hhbmdlZCBpdCBtZWFucyB0aGF0IHdlIGhhdmUgYSBtdWx0aS1mcmFtZQotICAg
ICAgICAgICAgICAgIC8vIHBhZ2UgYW5kIHdlIGp1c3Qgc3dpdGNoIHRvIHNlYXJjaGluZyBpbiBh
IG5ldyBmcmFtZS4gVGhlbiB3ZSBqdXN0Ci0gICAgICAgICAgICAgICAgLy8gd2FudCB0byByZXNl
dCB0aGUgaW5kZXguCi0gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9yd2FyZCkKLSAgICAg
ICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gMDsKLSAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1fbGFzdE1hdGNo
Q291bnQgLSAxOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBh
cmUgc3RpbGwgdGhlIGFjdGl2ZSBmcmFtZSwgc28gaW5jcmVtZW50IChvciBkZWNyZW1lbnQpIHRo
ZQotICAgICAgICAgICAgICAgIC8vIHxtX2FjdGl2ZU1hdGNoSW5kZXh8LCB3cmFwcGluZyBpZiBu
ZWVkZWQgKG9uIHNpbmdsZSBmcmFtZSBwYWdlcykuCi0gICAgICAgICAgICAgICAgb3B0aW9ucy5m
b3J3YXJkID8gKyttX2FjdGl2ZU1hdGNoSW5kZXggOiAtLW1fYWN0aXZlTWF0Y2hJbmRleDsKLSAg
ICAgICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4ICsgMSA+IG1fbGFzdE1hdGNoQ291
bnQpCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDA7Ci0gICAgICAg
ICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2hJbmRleCA9PSAtMSkKLSAgICAgICAgICAgICAgICAg
ICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0Y2hDb3VudCAtIDE7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoc2VsZWN0aW9uUmVjdCkgewotICAgICAgICAgICAgICAgICpz
ZWxlY3Rpb25SZWN0ID0gZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9XaW5kb3coY3VyclNlbGVjdGlv
blJlY3QpOwotICAgICAgICAgICAgICAgIHJlcG9ydEZpbmRJblBhZ2VTZWxlY3Rpb24oKnNlbGVj
dGlvblJlY3QsIG1fYWN0aXZlTWF0Y2hJbmRleCArIDEsIGlkZW50aWZpZXIpOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKG9wdGlvbnMuZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAr
K21fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZyYW1lOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIC0tbV9hY3RpdmVNYXRjaEluZGV4SW5DdXJyZW50RnJhbWU7CisKKyAgICAg
ICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSArIDEgPiBtX2xhc3RN
YXRjaENvdW50KQorICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZy
YW1lID0gMDsKKyAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFt
ZSA9PSAtMSkKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFt
ZSA9IG1fbGFzdE1hdGNoQ291bnQgLSAxOworICAgICAgICB9CisgICAgICAgIGlmIChzZWxlY3Rp
b25SZWN0KSB7CisgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9IGZyYW1lVmlldygpLT5jb250
ZW50c1RvV2luZG93KG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCkpOworICAgICAgICAgICAg
cmVwb3J0RmluZEluUGFnZVNlbGVjdGlvbigqc2VsZWN0aW9uUmVjdCwgbV9hY3RpdmVNYXRjaElu
ZGV4SW5DdXJyZW50RnJhbWUgKyAxLCBpZGVudGlmaWVyKTsKICAgICAgICAgfQotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIC8vIE5vdGhpbmcgd2FzIGZvdW5kIGluIHRoaXMgZnJhbWUuCi0gICAgICAg
IG1fYWN0aXZlTWF0Y2ggPSAwOwotCi0gICAgICAgIC8vIEVyYXNlIGFsbCBwcmV2aW91cyB0aWNr
bWFya3MgYW5kIGhpZ2hsaWdodGluZy4KLSAgICAgICAgaW52YWxpZGF0ZUFyZWEoSW52YWxpZGF0
ZUFsbCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGZvdW5kOworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIFdlYkZyYW1lSW1wbDo6c3RvcEZpbmRpbmcoYm9vbCBjbGVhclNlbGVjdGlvbikKQEAg
LTE3MjUsMTcgKzE3MDEsMTcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNjb3BlU3RyaW5nTWF0Y2hl
cyhpbnQgaWRlbnRpZmllciwKICAgICAgICAgICAgIGJvb2wgZm91bmRBY3RpdmVNYXRjaCA9IGZh
bHNlOwogICAgICAgICAgICAgaWYgKG1fbG9jYXRpbmdBY3RpdmVSZWN0ICYmIChhY3RpdmVTZWxl
Y3Rpb25SZWN0ID09IHJlc3VsdEJvdW5kcykpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBoYXZl
IGZvdW5kIHRoZSBhY3RpdmUgdGlja21hcmsgZnJhbWUuCi0gICAgICAgICAgICAgICAgbWFpbkZy
YW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhpczsKKyAgICAgICAgICAgICAgICBtYWlu
RnJhbWVJbXBsLT5tX2N1cnJlbnRBY3RpdmVNYXRjaEZyYW1lID0gdGhpczsKICAgICAgICAgICAg
ICAgICBmb3VuZEFjdGl2ZU1hdGNoID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAvLyBXZSBhbHNv
IGtub3cgd2hpY2ggdGlja21hcmsgaXMgYWN0aXZlIG5vdy4KLSAgICAgICAgICAgICAgICBtX2Fj
dGl2ZU1hdGNoSW5kZXggPSBtYXRjaENvdW50IC0gMTsKKyAgICAgICAgICAgICAgICBtX2FjdGl2
ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSA9IG1hdGNoQ291bnQgLSAxOwogICAgICAgICAgICAg
ICAgIC8vIFRvIHN0b3AgbG9va2luZyBmb3IgdGhlIGFjdGl2ZSB0aWNrbWFyaywgd2Ugc2V0IHRo
aXMgZmxhZy4KICAgICAgICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IGZhbHNlOwog
CiAgICAgICAgICAgICAgICAgLy8gTm90aWZ5IGJyb3dzZXIgb2YgbmV3IGxvY2F0aW9uIGZvciB0
aGUgc2VsZWN0ZWQgcmVjdGFuZ2xlLgogICAgICAgICAgICAgICAgIHJlcG9ydEZpbmRJblBhZ2VT
ZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldygpLT5jb250ZW50c1RvV2lu
ZG93KHJlc3VsdEJvdW5kcyksCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRl
eCArIDEsCisgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3VycmVudEZy
YW1lICsgMSwKICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcik7CiAgICAgICAgICAgICB9
CiAKQEAgLTE4MDQsNyArMTc4MCw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpjYW5jZWxQZW5kaW5n
U2NvcGluZ0VmZm9ydCgpCiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fZGVmZXJyZWRTY29waW5nV29y
ayk7CiAgICAgbV9kZWZlcnJlZFNjb3BpbmdXb3JrLmNsZWFyKCk7CiAKLSAgICBtX2FjdGl2ZU1h
dGNoSW5kZXggPSAtMTsKKyAgICBtX2FjdGl2ZU1hdGNoSW5kZXhJbkN1cnJlbnRGcmFtZSA9IC0x
OwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6aW5jcmVhc2VNYXRjaENvdW50KGludCBjb3VudCwg
aW50IGlkZW50aWZpZXIpCkBAIC0xOTk3LDggKzE5NzMsOCBAQCBQYXNzUmVmUHRyPFdlYkZyYW1l
SW1wbD4gV2ViRnJhbWVJbXBsOjpjcmVhdGUoV2ViRnJhbWVDbGllbnQqIGNsaWVudCkKIFdlYkZy
YW1lSW1wbDo6V2ViRnJhbWVJbXBsKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2Zy
YW1lTG9hZGVyQ2xpZW50KHRoaXMpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2Fj
dGl2ZU1hdGNoRnJhbWUoMCkKLSAgICAsIG1fYWN0aXZlTWF0Y2hJbmRleCgtMSkKKyAgICAsIG1f
Y3VycmVudEFjdGl2ZU1hdGNoRnJhbWUoMCkKKyAgICAsIG1fYWN0aXZlTWF0Y2hJbmRleEluQ3Vy
cmVudEZyYW1lKC0xKQogICAgICwgbV9sb2NhdGluZ0FjdGl2ZVJlY3QoZmFsc2UpCiAgICAgLCBt
X3Jlc3VtZVNjb3BpbmdGcm9tUmFuZ2UoMCkKICAgICAsIG1fbGFzdE1hdGNoQ291bnQoLTEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGQ0OGNjYmRkNDky
NDRlYThjODgyNDg1NTc4NjUxYTI1ZGMyYWI4MjIuLjIzZTYwZDk4MDQzMzFjODZmN2E1YjBiMWZj
OGFkNGNkZGU3ZjhlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oCkBAIC0yNTIsNyArMjUyLDcgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgd2hpY2ggZnJh
bWUgaGFzIGFuIGFjdGl2ZSBtYXRjaC4gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZQogICAg
IC8vIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSwgYXMgaXQgaXMgdGhlIG9ubHkgZnJhbWUga2Vl
cGluZyB0cmFjay4gUmV0dXJuZWQKICAgICAvLyB2YWx1ZSBjYW4gYmUgMCBpZiBubyBmcmFtZSBo
YXMgYW4gYWN0aXZlIG1hdGNoLgotICAgIGNvbnN0IFdlYkZyYW1lSW1wbCogYWN0aXZlTWF0Y2hG
cmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlTWF0Y2hGcmFtZTsgfQorICAgIGNvbnN0IFdl
YkZyYW1lSW1wbCogYWN0aXZlTWF0Y2hGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEFj
dGl2ZU1hdGNoRnJhbWU7IH0KIAogICAgIC8vIFdoZW4gYSBGaW5kIG9wZXJhdGlvbiBlbmRzLCB3
ZSB3YW50IHRvIHNldCB0aGUgc2VsZWN0aW9uIHRvIHdoYXQgd2FzIGFjdGl2ZQogICAgIC8vIGFu
ZCBzZXQgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBub2RlIHdlIGZpbmQgKHN0YXJ0aW5n
IHdpdGggdGhlIGZpcnN0CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBwcml2YXRlOgogCiAgICAgLy8g
QSB3YXkgZm9yIHRoZSBtYWluIGZyYW1lIHRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggZnJhbWUgaGFz
IGFuIGFjdGl2ZQogICAgIC8vIG1hdGNoLiBTaG91bGQgYmUgMCBmb3IgYWxsIG90aGVyIGZyYW1l
cy4KLSAgICBXZWJGcmFtZUltcGwqIG1fYWN0aXZlTWF0Y2hGcmFtZTsKKyAgICBXZWJGcmFtZUlt
cGwqIG1fY3VycmVudEFjdGl2ZU1hdGNoRnJhbWU7CiAKICAgICAvLyBUaGUgcmFuZ2Ugb2YgdGhl
IGFjdGl2ZSBtYXRjaCBmb3IgdGhlIGN1cnJlbnQgZnJhbWUuCiAgICAgUmVmUHRyPFdlYkNvcmU6
OlJhbmdlPiBtX2FjdGl2ZU1hdGNoOwogCi0gICAgLy8gVGhlIGluZGV4IG9mIHRoZSBhY3RpdmUg
bWF0Y2guCi0gICAgaW50IG1fYWN0aXZlTWF0Y2hJbmRleDsKKyAgICAvLyBUaGUgaW5kZXggb2Yg
dGhlIGFjdGl2ZSBtYXRjaCBmb3IgdGhlIGN1cnJlbnQgZnJhbWUuCisgICAgaW50IG1fYWN0aXZl
TWF0Y2hJbmRleEluQ3VycmVudEZyYW1lOwogCiAgICAgLy8gVGhpcyBmbGFnIGlzIHVzZWQgYnkg
dGhlIHNjb3BpbmcgZWZmb3J0IHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRvIGZpZ3VyZQogICAg
IC8vIG91dCB3aGljaCByZWN0YW5nbGUgaXMgdGhlIGFjdGl2ZSBtYXRjaC4gT25jZSB3ZSBmaW5k
IHRoZSBhY3RpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjllNjk2NjY0MDBhZTQwZWE2MmY3M2U2ZjZkY2UwNjA3ZWM3YmFmLi42YzI1ODFk
YTU5MTY4YWViNThlYjRjNmU2MTVkYWE0YTg3MzA2NDNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEtMTcg
IE1hcnRpbiBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IGZpbmQg
b24gd2ViIHBhZ2VzIHdpdGggLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBmb3IgQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZWQg
YSBwYXJ0aWFsIGZpbmRTdHJpbmcgaW1wbGVtZW50YXRpb24uIFRoaXMgZG9lc24ndCBzdXBwb3J0
CisgICAgICAgIGFsbCBvZiB0aGUgRmluZE9wdGlvbnMgc2luY2UgdGhleSdyZSBub3QgZXhwb3Nl
ZCB2aWEgV2ViRmluZE9wdGlvbnMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmZpbmRTdHJpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmg6CisKIDIwMTEtMTItMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gSW1wcm92ZSB0aGUgbG9vayBv
ZiB0aGUgdmlld3BvcnQgaW5mbyBvdmVybGF5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOGUzMWUxZTAyOTI3
YzY3M2Y5NmEyYjY0Y2EyMGVmYWE4NTc1YmI4My4uNGU0NzRkZDk4ODRhNjhkOGUzNDMxZDE1NDg5
ZDMzOThjZmY3N2U4MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudE1v
Y2suaCIKICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCkBAIC0xMjIsNiArMTIzLDcgQEAgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwp
CiAgICAgYmluZE1ldGhvZCgiZm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICAgICBiaW5kTWV0aG9kKCJncmFu
dERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpn
cmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0aG9kKCJoYXNT
cGVsbGluZ01hcmtlciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIp
OworICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZp
bmRTdHJpbmcpOwogICAgIGJpbmRNZXRob2QoImlzQ29tbWFuZEVuYWJsZWQiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmlzQ29tbWFuZEVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoImhhc0N1c3Rv
bVBhZ2VTaXplU3R5bGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc0N1c3RvbVBhZ2VTaXpl
U3R5bGUpOwogICAgIGJpbmRNZXRob2QoImlzUGFnZUJveFZpc2libGUiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmlzUGFnZUJveFZpc2libGUpOwpAQCAtMTk1Myw2ICsxOTU1LDM0IEBAIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgcmVzdWx0LT5zZXQobV9zaGVsbC0+d2ViVmlldygpLT5t
YWluRnJhbWUoKS0+c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihhcmd1bWVudHNb
MF0udG9JbnQzMigpLCBhcmd1bWVudHNbMV0udG9JbnQzMigpKSk7CiB9CiAKK3ZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEg
fHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJG
aW5kT3B0aW9ucyBmaW5kT3B0aW9uczsKKyAgICBib29sIHdyYXBBcm91bmQgPSBmYWxzZTsKKyAg
ICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyKSB7CisgICAgICAgIFZlY3RvcjxzdGQ6OnN0cmlu
Zz4gb3B0aW9uc0FycmF5ID0gYXJndW1lbnRzWzFdLnRvU3RyaW5nVmVjdG9yKCk7CisgICAgICAg
IGZpbmRPcHRpb25zLm1hdGNoQ2FzZSA9IHRydWU7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBvcHRpb25zQXJyYXkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nJiBvcHRpb24gPSBvcHRpb25zQXJyYXlbaV07CisgICAgICAgICAgICAvLyBGSVhN
RTogU3VwcG9ydCBhbGwgdGhlIG9wdGlvbnMsIHNvIHdlIGNhbiBydW4gZmluZFN0cmluZy5odG1s
IHRvby4KKyAgICAgICAgICAgIGlmIChvcHRpb24gPT0gIkNhc2VJbnNlbnNpdGl2ZSIpCisgICAg
ICAgICAgICAgICAgZmluZE9wdGlvbnMubWF0Y2hDYXNlID0gZmFsc2U7CisgICAgICAgICAgICBl
bHNlIGlmIChvcHRpb24gPT0gIkJhY2t3YXJkcyIpCisgICAgICAgICAgICAgICAgZmluZE9wdGlv
bnMuZm9yd2FyZCA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uID09ICJXcmFw
QXJvdW5kIikKKyAgICAgICAgICAgICAgICB3cmFwQXJvdW5kID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIFdlYkZyYW1lKiBmcmFtZSA9IG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZy
YW1lKCk7CisgICAgY29uc3QgYm9vbCBmaW5kUmVzdWx0ID0gZnJhbWUtPmZpbmQoMCwgY3BwVmFy
aWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIGZpbmRPcHRpb25zLCB3cmFwQXJvdW5kLCAw
KTsKKyAgICByZXN1bHQtPnNldChmaW5kUmVzdWx0KTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCmluZGV4IDExMmUyOTc4NmYxN2E0Y2RjNmMyZTAyNjY3NDA0MDJhMzg4OTVkZTMuLjRk
NmNkODVhN2EyMmE5M2Y2YzZiOTllMDhkZmMxOGM4MGNhNDJjYjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzg3
LDYgKzM4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbWFya2VyVGV4dEZvckxpc3RJdGVtKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGhhc1NwZWxsaW5n
TWFya2VyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGZp
bmRTdHJpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgdm9p
ZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNjI1NWE1YmI4NGJkMzFkZDY3YTkxYTYwYjA1ZjBkNDA1YTFlNDIz
Li5hOGJlZTU1NjNkNzcxNWEzMjMxMDM3MjE2OTczZTJlM2YwM2EzYzgxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTEtMTEtMTcgIE1hcnRpbiBLb3NpYmEgIDxta29zaWJhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgRml4IGZpbmQgb24gd2ViIHBhZ2VzIHdpdGggLXdlYmtpdC11c2VyLXNlbGVj
dDogbm9uZSBmb3IgQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaW5nIGEgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgZmluZCB3b3Jr
cyBjb3JyZWN0bHkgb24gcGFnZXMKKyAgICAgICAgdGhhdCBwcmV2ZW50IHRleHQgc2VsZWN0aW9u
LgorCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9u
LWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy90ZXh0LWl0
ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay13azIvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTUuMC9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0LW1hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdrMi9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCiAyMDExLTEyLTE1ICBBbGV4YW5k
ZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogI2hleCBjb2xvcnMgYXJlIG5vdCBoaWdobGlnaHRlZCBpbiBDU1MgZmlsZXMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlv
bi1kaXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0
b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ2YjM2NWZmM2NlYjQzYzViZTA4ZTc2YmY1ZTFkM2E3OGNmMWUwZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rp
b24tZGlzYWJsZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDAgQEAKK1NlYXJjaGluZyBmb3Ig
J2UnIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVj
dGlvbiBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdlJywg
W10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnbycgaW4gJ1NvbWUgc2FtcGxlIHRleHQgdGhh
dCBjYW4gYmUgc2VhcmNoZWQnIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ28nLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hpbmcgZm9y
ICd5JyBpbiAnU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCcgd2l0aCBzZWxl
Y3Rpb24gZW5hYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScs
IFtdKSBpcyBmYWxzZQorCitTZWFyY2hpbmcgZm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0
IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBlbmFibGVkOgorUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCd0IHQnLCBbXSkgaXMgdHJ1ZQorCitTZWFyY2hp
bmcgZm9yICdtb3VudCcgaW4gJ2luc3VybW91bnRhYmxlIG1vdW50YWluJyB3aXRoIHNlbGVjdGlv
biBlbmFibGVkOgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCdtb3VudCcs
IFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ1dhbGx5JyBpbiAnaW5zdXJtb3VudGFibGUg
bW91bnRhaW4nIHdpdGggc2VsZWN0aW9uIGVuYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmZpbmRTdHJpbmcoJ1dhbGx5JywgW10pIGlzIGZhbHNlCisKK1NlYXJjaGluZyBmb3IgJ2Un
IGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlv
biBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygnZScsIFtd
KSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3IgJ28nIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQg
Y2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZmluZFN0cmluZygnbycsIFtdKSBpcyB0cnVlCisKK1NlYXJjaGluZyBmb3Ig
J3knIGluICdTb21lIHNhbXBsZSB0ZXh0IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVj
dGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygneScs
IFtdKSBpcyBmYWxzZQorCitTZWFyY2hpbmcgZm9yICd0IHQnIGluICdTb21lIHNhbXBsZSB0ZXh0
IHRoYXQgY2FuIGJlIHNlYXJjaGVkJyB3aXRoIHNlbGVjdGlvbiBkaXNhYmxlZDoKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygndCB0JywgW10pIGlzIHRydWUKKworU2VhcmNo
aW5nIGZvciAnbW91bnQnIGluICdpbnN1cm1vdW50YWJsZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rp
b24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoJ21vdW50
JywgW10pIGlzIHRydWUKKworU2VhcmNoaW5nIGZvciAnV2FsbHknIGluICdpbnN1cm1vdW50YWJs
ZSBtb3VudGFpbicgd2l0aCBzZWxlY3Rpb24gZGlzYWJsZWQ6CitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmZpbmRTdHJpbmcoJ1dhbGx5JywgW10pIGlzIGZhbHNlCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLXNlbGVj
dGlvbi1kaXNhYmxlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZDNhOTE0NDNkNGRkZGJlNzIzZDNkNDk4
MTM4NzM3ZDhkMGUxMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApAQCAtMCwwICsx
LDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
IC5zZWxlY3Rpb25EaXNhYmxlZCB7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IH0KKyAuc2Vs
ZWN0aW9uRW5hYmxlZCB7IC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87IH0KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25z
b2xlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+PC9wcmU+Cis8c2NyaXB0PgorZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOwor
fQorCitmdW5jdGlvbiB0ZXN0RmluZFN0cmluZyh0ZXh0LCB0YXJnZXQsIGRpc2FibGVTZWxlY3Rp
b24sIGV4cGVjdGVkKQoreworICAgIHZhciBzZWxlY3Rpb25TdGF0dXMgPSBkaXNhYmxlU2VsZWN0
aW9uID8gInNlbGVjdGlvbiBkaXNhYmxlZDoiIDogInNlbGVjdGlvbiBlbmFibGVkOiI7CisgICAg
bG9nKCJTZWFyY2hpbmcgZm9yICciICsgdGFyZ2V0ICsgIicgaW4gJyIgKyB0ZXh0ICsgIicgd2l0
aCAiICsgc2VsZWN0aW9uU3RhdHVzKTsKKworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgY29udGFpbmVyLmlubmVyVGV4dCA9IHRl
eHQ7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisKKyAgICBjb250YWluZXIuY2xhc3NO
YW1lID0gZGlzYWJsZVNlbGVjdGlvbiA/ICJzZWxlY3Rpb25EaXNhYmxlZCIgOiAic2VsZWN0aW9u
RW5hYmxlZCI7CisKKyAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmlu
ZygnIiArIHRhcmdldCArICInLCBbXSkiLCBleHBlY3RlZCk7CisKKyAgICBjb250YWluZXIuaW5u
ZXJUZXh0ID0gIiI7CisgICAgbG9nKCIiKTsKK30KKworaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBsYXlvdXRU
ZXN0Q29udHJvbGxlciBvYmplY3QnKTsKK2Vsc2UgeworICAgIGZvciAoaSA9IDA7IGkgPCAyOyBp
KyspIHsKKyAgICAgICAgdmFyIGRpc2FibGVTZWxlY3Rpb24gPSAoaSA9PSAxKTsKKworICAgICAg
ICB0ZXN0RmluZFN0cmluZygiU29tZSBzYW1wbGUgdGV4dCB0aGF0IGNhbiBiZSBzZWFyY2hlZCIs
ICJlIiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmco
IlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2VhcmNoZWQiLCAibyIsIGRpc2FibGVTZWxl
Y3Rpb24sICJ0cnVlIik7CisgICAgICAgIHRlc3RGaW5kU3RyaW5nKCJTb21lIHNhbXBsZSB0ZXh0
IHRoYXQgY2FuIGJlIHNlYXJjaGVkIiwgInkiLCBkaXNhYmxlU2VsZWN0aW9uLCAiZmFsc2UiKTsK
KyAgICAgICAgdGVzdEZpbmRTdHJpbmcoIlNvbWUgc2FtcGxlIHRleHQgdGhhdCBjYW4gYmUgc2Vh
cmNoZWQiLCAidCB0IiwgZGlzYWJsZVNlbGVjdGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZp
bmRTdHJpbmcoImluc3VybW91bnRhYmxlIG1vdW50YWluIiwgIm1vdW50IiwgZGlzYWJsZVNlbGVj
dGlvbiwgInRydWUiKTsKKyAgICAgICAgdGVzdEZpbmRTdHJpbmcoImluc3VybW91bnRhYmxlIG1v
dW50YWluIiwgIldhbGx5IiwgZGlzYWJsZVNlbGVjdGlvbiwgImZhbHNlIik7CisgICAgfQorfQor
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnN0eWxlLnJlbW92ZVByb3BlcnR5
KCJ2aXNpYmlsaXR5Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5k
ZXggODE3ZWU5OTkzYjc2YmQ3ZjYzMzc3ZDExOTUzZmYwMGRhMDg0ZGY1NS4uNGIzMGNiOTc4NzE2
Zjc5NDY5YTg2YzE0ZDQyYWUwNzY1ZDFhMWRmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQK
QEAgLTg0Myw2ICs4NDMsMTAgQEAgZmFzdC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFz
ZS1taW4taW50ZXJ2YWwuaHRtbAogIyBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5v
dCBpbXBsZW1lbnQgc2V0VGV4dERpcmVjdGlvbgogZmFzdC9odG1sL3NldC10ZXh0LWRpcmVjdGlv
bi5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQg
cHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlz
YWJsZWQuaHRtbAorCiAjIEVGTCdzIERSVCBtaXNzZXMgYW4gJ0VESVRJTkcgREVMRUdBVEUnIGlt
cGxlbWVudGF0aW9uCiBlZGl0aW5nL2lucHV0L2F0dHJpYnV0ZWQtc3Vic3RyaW5nLWZyb20tcmFu
Z2UtbGluZXMuaHRtbAogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAppbmRleCBkZTI2MTA1ZmFiYzMy
ODlmMzY3NTZkN2NkZjljZTU1ZDcwMmUxNTdlLi4wOWJjN2VhNjJhYzdjYjBjN2QyZDJhMDhkZDA5
ZjI1ODk0OGU3ZmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCkBAIC0zNzEs
NiArMzcxLDEwIEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViZ2wtcmVtb3RlLXJlYWQtcmVtb3Rl
LWltYWdlLWFsbG93ZWQuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVh
ZC1yZW1vdGUtaW1hZ2UtYmxvY2tlZC1uby1jcm9zc29yaWdpbi5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dlYmdsLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1hbGxvd2VkLXdpdGgtY3JlZGVu
dGlhbHMuaHRtbAogCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0
aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9u
LWRpc2FibGVkLmh0bWwKKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBURVNUUyBGQUlMSU5H
CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGlvbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vU2tpcHBl
ZAppbmRleCAyN2RjNDE2NTFjZDFmOWIxZWNjZGM3MWRjNjE5Nzc3YTk3YzNiYjI5Li44OWM3YTcy
N2U3ZGI2NTliMjM2MDNkYzc4NWJkYzAzMTM2MGE2NDE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGlvbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1saW9uL1NraXBwZWQKQEAgLTUwLDYgKzUwLDEwIEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Nw
ZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTIuaHRtbAogcGxhdGZvcm0v
bWFjL2VkaXRpbmcvc3BlbGxpbmcvcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLWFjY2VwdGluZy1h
dXRvY29ycmVjdGlvbi11c2luZy1wdW5jdHVhdGlvbi5odG1sICAKIAorIyBGcmFtZTo6ZmluZFN0
cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgorIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKK2VkaXRpbmcvdGV4dC1p
dGVyYXRvci9maW5kU3RyaW5nLXNlbGVjdGlvbi1kaXNhYmxlZC5odG1sCisKICMgUGFzdGluZyBy
ZXBsYWNlcyB0aGUgdGhyZWUgcGVyaW9kcyB3aXRoIGFuIGVsbGlwc2lzIG9uIExpb24KIGVkaXRp
bmcvcGFzdGVib2FyZC81NDc4MjUwLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
c25vd2xlb3BhcmQvU2tpcHBlZAppbmRleCBiZTIyYTA2NTIyZTRlY2U5ZTQyYzNjNDVmOTRmZTc3
M2I3NTZkYjZkLi45ZWU3N2UwMWViZGNmOTQ2YzFmNDVkYmQ2YjJiZTAwYzU4YTAzN2NlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZApAQCAtMTkyLDMg
KzE5Miw3IEBAIGZhc3QvcmVnaW9ucy9yZWdpb24tc3R5bGUtaW5saW5lLWJhY2tncm91bmQtY29s
b3IuaHRtbAogCiAjIEhpRFBJIHRlc3RzIGhhdmUgbG93ZXItbGV2ZWwgcGxhdGZvcm0gZGVwZW5k
ZW5jaWVzIG9uIE1hYwogZmFzdC9oaWRwaQorCisjIEZyYW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90
aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2ZpbmRT
dHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5k
ZXggNjQ5N2Y0NzVkMDY0NzNjNTVhM2U3NmViMGRjYzRiMGJlM2UzMjliOC4uMTY1MjE4ZmM5YTgz
YWU4M2ViMWMxMDM4OTlhYmEzYjAzNzhlMzAyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
QEAgLTUyMiwzICs1MjIsNyBAQCBmYXN0L2Zvcm1zL3NlbGVjdC9tZW51bGlzdC1wb3B1cC1jcmFz
aC5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTM4
CiBmYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLXNob3VsZC1ub3Qtc3RvcC1vbi1rZXlwcmVzcy5odG1s
CisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVu
dCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZAppbmRleCA3YzljZjJkYzRlZjEzZGU3
NjM2Y2VkOTM2MjY3MDQxNmNmMGI1MmU0Li4wM2Q1ZDQ3ODJjYTA2MzRmMjBmYTgyYjIwNTYzYjhk
YzY4MDk1ZWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAvU2tpcHBlZApAQCAtMzY4MSwzICsz
NjgxLDcgQEAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvbmVzdGVkLXRhYmxlcy13aXRoLWJl
Zm9yZS1hZnRlci1jb250ZW50LWNyYXNoLmh0bWwKICMgW1F0XSBlZGl0aW5nL3NlbGVjdGlvbi9j
bGljay1pbi1tYXJnaW5zLWluc2lkZS1lZGl0YWJsZS1kaXYuaHRtbCBmYWlscyB3aXRoIFF0NQog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MTgKIGVkaXRpbmcv
c2VsZWN0aW9uL2NsaWNrLWluLW1hcmdpbnMtaW5zaWRlLWVkaXRhYmxlLWRpdi5odG1sCisKKyMg
RnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxl
Y3Rpb24KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitl
ZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAppbmRleCA2YzE3YWJlY2JjOTQwZTNmNDRiZTBh
YWRkMjIxMDI4ODJkY2M2ZTkyLi4wM2EyOWRlZTE3NGQwY2IyYTNhOWNlMTdjMGM2ZThlYTM2ZWZl
NTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvU2tpcHBlZApAQCAtNTI2OCwzICs1MjY4LDcg
QEAgY3NzMi4xLzIwMTEwMzIzL2VtcHR5LWlubGluZS0wMDIuaHRtCiBjc3MyLjEvMjAxMTAzMjMv
ZW1wdHktaW5saW5lLTAwMy5odG0KIGNzczIuMS8yMDExMDMyMy9lbXB0eS1pbmxpbmUtMDAxLmh0
bQogdHJhbnNmb3Jtcy9zdmctdnMtY3NzLnhodG1sCisKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9l
cyBub3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3Iv
ZmluZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIv
U2tpcHBlZAppbmRleCA4YjFiMTc2MTE5ZmFiMjRhN2JlYzk2NWMzNzA1MGRiNjIxZTEwYmZmLi5l
MGVjMTBmMzBjNWU5ZGNkNTJiODc3ZDZhM2ZkZWMyNTIzMTVjZTM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC13azIvU2tpcHBlZApAQCAtMTg4MCwzICsxODgwLDcgQEAgZmFzdC9kb20vcnRsLXNjcm9s
bC10by1sZWZ0bW9zdC1hbmQtcmVzaXplLmh0bWwKICMgZmxha2V5IHN2ZyB0ZXN0cwogc3ZnL2N1
c3RvbS9nZXRzY3JlZW5jdG0taW4tc2Nyb2xsYWJsZS1zdmctYXJlYS54aHRtbAogc3ZnL2N1c3Rv
bS9nZXRzY3JlZW5jdG0taW4tc2Nyb2xsYWJsZS1kaXYtYXJlYS54aHRtbAorCisjIEZyYW1lOjpm
aW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCisj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQorZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctc2VsZWN0aW9uLWRpc2FibGVkLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1NraXBwZWQKaW5kZXggYjY3NmMwZmE3ODZmZTE0MzI0OTM3OWIwM2E5MmZkYTAwODk4
OWM1NS4uMWMxZjcyN2NlYzg1ZGQ5ZjVmMTUwYTg0N2ZkMzhjZmZhMTg0MGQ3ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQKQEAgLTg5NCw2ICs4OTQsMTAgQEAgaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCiAKKyMgRnJhbWU6OmZpbmRTdHJpbmcgZG9lcyBu
b3RoaW5nIG9uIHBhZ2VzIHRoYXQgcHJldmVudCBzZWxlY3Rpb24KKyMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzYxCitlZGl0aW5nL3RleHQtaXRlcmF0b3IvZmlu
ZFN0cmluZy1zZWxlY3Rpb24tZGlzYWJsZWQuaHRtbAorCiAjIyMgRU5EIE9GICgxKSBDbGFzc2lm
aWVkIGZhaWx1cmVzIHdpdGggYnVnIHJlcG9ydHMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>