<?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>72933</bug_id>
          
          <creation_ts>2011-11-22 01:17:48 -0800</creation_ts>
          <short_desc>&quot;Raw&quot; pseudo selectors don&apos;t match if immediately after a child or descendant combinator</short_desc>
          <delta_ts>2011-12-05 07:33:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73542</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Roland Steiner">rolandsteiner</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507461</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 01:17:48 -0800</bug_when>
    <thetext>&quot;Raw&quot; pseudo selectors, i.e., those that aren&apos;t preceded by anything within their compound selector (that is, having an implicit universal selector), will fail if they follow a child or descendant combinator. For examples:

div ::-webkit-meter-bar
div &gt; ::-webkit-meter-bar

[see http://crbug.com/97744 for context]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507463</commentid>
    <comment_count>1</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 01:19:19 -0800</bug_when>
    <thetext>Within a &quot;larger&quot; compound selector, they will have &quot;ShadowDescendant&quot; set as their relation, which handles the crossing of the shadow boundary.

However, in the &quot;raw&quot; case, the relation is &quot;Child&quot; or &quot;Descendant&quot;, and there is no code to handle crossing over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507467</commentid>
    <comment_count>2</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 01:34:45 -0800</bug_when>
    <thetext>On further thought, this will also fail with direct and indirect sibling selectors:

span + ::-webkit-meter-bar
span ~ ::-webkit-meter-bar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507480</commentid>
    <comment_count>3</comment_count>
      <attachid>116192</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 02:17:27 -0800</bug_when>
    <thetext>Created attachment 116192
work-in-progress

work-in-progress patch. This just outlines the raw logic, but the implementation is very fugly! I need to figure out how to pass the necessary information between checkOneSelector (that it matched a pseudo-ID selector) and checkSelector (what to do in this case depending on combinators).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507492</commentid>
    <comment_count>4</comment_count>
      <attachid>116195</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 03:43:15 -0800</bug_when>
    <thetext>Created attachment 116195
work-in-progress #2

A bit more sensible work-in-progress patch. This has quite a bit of code duplication, though. However, the code IS subtly different, and at least it compartmentalizes the issue nicely (IMHO). Currently fails 2 tests because of styles crossing into the shadow that shouldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507493</commentid>
    <comment_count>5</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 03:44:26 -0800</bug_when>
    <thetext>Addendum: If I don&apos;t remove matchesInTreeScope(), 2 different tests fail, because that incorrectly blocks them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507507</commentid>
    <comment_count>6</comment_count>
      <attachid>116199</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-22 04:16:07 -0800</bug_when>
    <thetext>Created attachment 116199
work-in-progress #2b

Things work better if one doesn&apos;t spuriously remove source lines... Tests with :hover after the pseudo-ID selector still don&apos;t work, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508643</commentid>
    <comment_count>7</comment_count>
      <attachid>116481</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-23 23:34:34 -0800</bug_when>
    <thetext>Created attachment 116481
Patch

New patch, handling pseudo-classes the same way as checkSelector(). (This looks like it can be optimized further.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508973</commentid>
    <comment_count>8</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-24 22:49:25 -0800</bug_when>
    <thetext>(Adding Darin, as this is related to http://trac.webkit.org/changeset/89742)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511856</commentid>
    <comment_count>9</comment_count>
      <attachid>116481</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-30 10:23:29 -0800</bug_when>
    <thetext>Comment on attachment 116481
Patch

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

I’m going to say review+ but there are many style issues here so it’s a borderline case.

I think this is quite a bit of copied and pasted code. Is there a way we can avoid that?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1799
&gt; +    CSSSelector* sel = ruleData.selector();

Please use words like “selector” rather than abbreviations like “sel”.

&gt; Source/WebCore/css/SelectorChecker.cpp:539
&gt; +SelectorChecker::SelectorMatch SelectorChecker::checkPseudoIDSelector(
&gt; +    CSSSelector* sel,
&gt; +    Element* e,
&gt; +    PseudoId&amp; dynamicPseudo,
&gt; +    VisitedMatchType visitedMatchType,
&gt; +    RenderStyle* elementStyle,
&gt; +    RenderStyle* elementParentStyle) const

Is this large new function a copy of the checkSelector function? If so, can we figure out a way to refactor so we don’t need to copy the entire function?

Please don’t use this “one argument per line” formatting in WebKit code since it’s not our normal style.

Please use words like “selector” and “element” rather than abbreviations like “sel” and “e” unless you are preserving existing code.

The name “dynamic pseudo” is missing a noun. Perhaps “dynamic pseudo ID” would be a better name?

&gt; Source/WebCore/css/SelectorChecker.cpp:584
&gt; +            e = host;
&gt; +            for (;;) {
&gt; +                ContainerNode* n = e-&gt;parentNode();
&gt; +                if (!n || !n-&gt;isElementNode())
&gt; +                    return SelectorFailsCompletely;
&gt; +                e = static_cast&lt;Element*&gt;(n);
&gt; +                SelectorMatch match = checkSelector(sel, e, dynamicPseudo, false, visitedMatchType);
&gt; +                if (match != SelectorFailsLocally)
&gt; +                    return match;
&gt; +            }

This could be written more cleanly with the parentElement function.

    while ((e = e-&gt;parentElement())

Or written as a for loop (see an example below).

&gt; Source/WebCore/css/SelectorChecker.cpp:588
&gt; +        case CSSSelector::Child:
&gt; +            {

Our normal style puts the brace on the same line as the : instead of the next line.

&gt; Source/WebCore/css/SelectorChecker.cpp:592
&gt; +                ContainerNode* n = host-&gt;parentNode();
&gt; +                if (!n || !n-&gt;isElementNode())
&gt; +                    return SelectorFailsCompletely;
&gt; +                e = toElement(n);

Again, parentElement() is the best way to write this.

&gt; Source/WebCore/css/SelectorChecker.cpp:610
&gt; +                Node* n = host-&gt;previousSibling();
&gt; +                while (n &amp;&amp; !n-&gt;isElementNode())
&gt; +                    n = n-&gt;previousSibling();
&gt; +                if (!n)
&gt; +                    return SelectorFailsCompletely;
&gt; +                e = static_cast&lt;Element*&gt;(n);

This could just be:

    e = host-&gt;previousElementSibling();
    if (!e)
        return SelectorFailsCompletely;

&gt; Source/WebCore/css/SelectorChecker.cpp:621
&gt; +            if (!m_isCollectingRulesOnly &amp;&amp; host-&gt;parentNode() &amp;&amp; host-&gt;parentNode()-&gt;isElementNode()) {
&gt; +                RenderStyle* parentStyle = host-&gt;parentNode()-&gt;renderStyle();
&gt; +                if (parentStyle)
&gt; +                    parentStyle-&gt;setChildrenAffectedByForwardPositionalRules();
&gt; +            }

This code, repeated twice, should probably go into a helper function.

&gt; Source/WebCore/css/SelectorChecker.cpp:634
&gt; +            e = host;
&gt; +            while (true) {
&gt; +                Node* n = e-&gt;previousSibling();
&gt; +                while (n &amp;&amp; !n-&gt;isElementNode())
&gt; +                    n = n-&gt;previousSibling();
&gt; +                if (!n)
&gt; +                    return SelectorFailsCompletely;
&gt; +                e = static_cast&lt;Element*&gt;(n);
&gt; +                SelectorMatch match = checkSelector(sel, e, dynamicPseudo, false, visitedMatchType);
&gt; +                if (match != SelectorFailsLocally)
&gt; +                    return match;
&gt; +            };
&gt; +            return SelectorFailsCompletely;

There is a stray semicolon here, but also this can be written as a conventional loop:

    element = host;
    while ((element = element-&gt;previousElementSibling())) {
        SelectorMatch match = checkSelector(selector, element, dynamicPseudo, false, visitedMatchType);
        if (match != SelectorFailsLocally)
            return match;
    }

Or it could be written as a for loop:

    for (element = host-&gt;previousElementSibling(); element; element = element-&gt;previousElementSibling()

&gt; Source/WebCore/css/SelectorChecker.cpp:643
&gt; +            // A selector is invalid if something follows a pseudo-element
&gt; +            // We make an exception for scrollbar pseudo elements and allow a set of pseudo classes (but nothing else)
&gt; +            // to follow the pseudo elements.
&gt; +            if ((elementStyle || m_isCollectingRulesOnly)
&gt; +                &amp;&amp; dynamicPseudo != NOPSEUDO
&gt; +                &amp;&amp; dynamicPseudo != SELECTION
&gt; +                &amp;&amp; !((RenderScrollbar::scrollbarForStyleResolve() || dynamicPseudo == SCROLLBAR_CORNER || dynamicPseudo == RESIZER) &amp;&amp; sel-&gt;m_match == CSSSelector::PseudoClass))

This rule is hard to read in a single expression like this. I suggest we put it in a named helper function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511951</commentid>
    <comment_count>10</comment_count>
      <attachid>116481</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-11-30 11:34:11 -0800</bug_when>
    <thetext>Comment on attachment 116481
Patch

I&apos;m not sure I understand why fixing a case involving some webkit internal use selectors is important at all. It almost certainly shouldn&apos;t be fixed by adding an entirely new selector checker code path. Rather you&apos;ll want to setup the selector structures so that you can use the existing code path. I don&apos;t quite understand what is special about the universal selectors here. 

I&apos;ll set this to r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512425</commentid>
    <comment_count>11</comment_count>
      <attachid>117325</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-30 21:20:18 -0800</bug_when>
    <thetext>Created attachment 117325
patch, alternative solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512431</commentid>
    <comment_count>12</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-11-30 21:26:31 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 116481 [details])
&gt; I&apos;m not sure I understand why fixing a case involving some webkit internal use selectors is important at all. It almost certainly shouldn&apos;t be fixed by adding an entirely new selector checker code path. Rather you&apos;ll want to setup the selector structures so that you can use the existing code path. I don&apos;t quite understand what is special about the universal selectors here. 

The problem is the switch from the shadow tree to the host node. Currently this is handled by the CSSSelector::ShadowDescendant combinator. However, that doesn&apos;t get set if the pseudo-element isn&apos;t directly preceded by anything.

My previous attempt at solving this was to handle all such pseudo-elements explicitly. While very similar to the &quot;regular&quot; matching code, there are quite a few subtle differences that I felt a separate function is the best way to go.

However, given your comment, I uploaded a patch for an alternate solution that doesn&apos;t prevent the creation of an explicit universal selector before shadow pseudo-elements. The change is certainly smaller, but I&apos;m not 100% sure it&apos;s a better solution - it effectively relies on &apos;foo ::bar&apos; being rewritten to &apos;foo *::bar&apos; for shadow pseudo-elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512609</commentid>
    <comment_count>13</comment_count>
      <attachid>117325</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 01:16:02 -0800</bug_when>
    <thetext>Comment on attachment 117325
patch, alternative solution

Attachment 117325 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10687566

New failing tests:
fast/css/css-selector-text.html
fast/css/css-set-selector-text.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512646</commentid>
    <comment_count>14</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-12-01 02:22:38 -0800</bug_when>
    <thetext>Removed r? due to failing selector serialization tests - the &apos;*&apos; part of the selector created with the patch does not match the expectations (the test assumes universal selectors are suppressed).

Fixing that would require hacking the serialization code to remove the &apos;*&apos; on serialization or updating the tests. Both options strike me as somewhat fugly. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512834</commentid>
    <comment_count>15</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-12-01 09:21:19 -0800</bug_when>
    <thetext>The patch is clearly much preferable to the first one. As I understand, either solution is fine since the serializations are equivalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513486</commentid>
    <comment_count>16</comment_count>
      <attachid>117565</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-12-01 22:20:02 -0800</bug_when>
    <thetext>Created attachment 117565
patch, v2

patch using the 2nd solution, suppressing &apos;*&apos; in front of shadow-ID pseudo-elements on serialization, extended test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513692</commentid>
    <comment_count>17</comment_count>
      <attachid>117565</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-12-02 05:29:41 -0800</bug_when>
    <thetext>Comment on attachment 117565
patch, v2

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

&gt; Source/WebCore/css/CSSParser.cpp:7677
&gt; +    // Note that CSSSelector::ShadowDescendant needs to be used.
&gt; +    // Therefore we create a new Selector here in any case, even if matching any (host) element in any namespace.

I have difficulties understanding this comment (especially if I don&apos;t see the old removed text).

&gt; Source/WebCore/css/CSSSelector.cpp:637
&gt; +            if (tagHistoryText.endsWith(&quot;*&quot;))
&gt; +                tagHistoryText.truncate(tagHistoryText.length() - 1);

It would be nicer not to add the * in the first place (or just leave it) but ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514838</commentid>
    <comment_count>18</comment_count>
      <attachid>117826</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-12-04 19:23:17 -0800</bug_when>
    <thetext>Created attachment 117826
patch v2, don&apos;t suppress &apos;*&apos;

Not generating the &apos;*&apos; in the first place is not trivial, but just leaving them may indeed be the better option, as it better represents the internal state and should so be easier for debugging purposes. Uploaded a new patch accordingly. (r? again, since it did substantially change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515071</commentid>
    <comment_count>19</comment_count>
      <attachid>117826</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-05 07:33:05 -0800</bug_when>
    <thetext>Comment on attachment 117826
patch v2, don&apos;t suppress &apos;*&apos;

Clearing flags on attachment: 117826

Committed r101998: &lt;http://trac.webkit.org/changeset/101998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515072</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-05 07:33:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116192</attachid>
            <date>2011-11-22 02:17:27 -0800</date>
            <delta_ts>2011-11-23 23:34:23 -0800</delta_ts>
            <desc>work-in-progress</desc>
            <filename>bug-72933-20111122191725.patch</filename>
            <type>text/plain</type>
            <size>17597</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYyOGViNjlhMTAwMjk4
NzhiNDE2MDQ5ZTdiMzU0ZTJlY2RiODY3MC4uNDg1MTU0YWUzNTY0NTVjMGMwZDFhZDhmZWQ1Y2Qx
YTkxNTM5MDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTIyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgSGFuZGxlIGNyb3NzaW5nIG92ZXIg
c2hhZG93IGJvdW5kYXJ5IGZvciAicmF3IiBwc2V1ZG8tSUQgc2VsZWN0b3JzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hl
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0
b3IpOgorCiAyMDExLTExLTIxICBEYXZpZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSRUdSRVNTSU9OKHI5ODU0Mik6IENocm9taXVtOiBDU1MgdGV4dCBpcyByZW5k
ZXJlZCBvbiBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDJj
NWM3MzIwMGQxOTdhZmQ5NmQwOWJlNjllOWVhYTdmYTk5YzFmOWUuLjg3N2I0NmRjODkzMTU1MmM1
YTE4NGFkMGI3YjgyZmFkNmE4ZTdlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCkBAIC00NDcsOCArNDQ3LDggQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNo
IFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLAogICAgIENT
U1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiA9IHNlbC0+cmVsYXRpb24oKTsKIAogICAgIC8v
IFByZXBhcmUgbmV4dCBzZWwKLSAgICBzZWwgPSBzZWwtPnRhZ0hpc3RvcnkoKTsKLSAgICBpZiAo
IXNlbCkKKyAgICBDU1NTZWxlY3RvciogbmV4dFNlbGVjdG9yID0gc2VsLT50YWdIaXN0b3J5KCk7
CisgICAgaWYgKCFuZXh0U2VsZWN0b3IpCiAgICAgICAgIHJldHVybiBTZWxlY3Rvck1hdGNoZXM7
CiAKICAgICBpZiAocmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKSB7CkBAIC00
NjUsMTAgKzQ2NSwyMyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JD
aGVja2VyOjpjaGVja1NlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsCiAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6RGVzY2VuZGFudDoKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIENv
bnRhaW5lck5vZGUqIG4gPSBlLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgICAgICBpZiAoIW4gfHwg
IW4tPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgIGlmICghbikKICAgICAgICAgICAgICAg
ICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgICAgICAgICBpZiAoIW4tPmlz
RWxlbWVudE5vZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIFNlbGVjdG9yIG1heSBoYXZlIGEg
J3Jhdycgc2hhZG93IHBzZXVkby1lbGVtZW50IAorICAgICAgICAgICAgICAgIGlmICghc2VsIHx8
ICFzZWwtPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworICAgICAgICAgICAgICAgIGlmICghbi0+aXNT
aGFkb3dSb290KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29t
cGxldGVseTsKKyAgICAgICAgICAgICAgICBuID0gbi0+cGFyZW50T3JIb3N0Tm9kZSgpOworICAg
ICAgICAgICAgICAgIEFTU0VSVCghbiB8fCBuLT5pc0VsZW1lbnROb2RlKCkpOworICAgICAgICAg
ICAgICAgIGlmICghbikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHND
b21wbGV0ZWx5OworICAgICAgICAgICAgICAgIC8vIENhbid0IGNyb3NzIFRXTyBib3VuZGFyaWVz
IGZvciBhIHNpbmdsZSBzZWxlY3RvcgorICAgICAgICAgICAgICAgIHNlbCA9IDA7IAorICAgICAg
ICAgICAgfQogICAgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKLSAgICAg
ICAgICAgIFNlbGVjdG9yTWF0Y2ggbWF0Y2ggPSBjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1p
Y1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5cGUpOworICAgICAgICAgICAgU2VsZWN0b3JN
YXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3IobmV4dFNlbGVjdG9yLCBlLCBkeW5hbWljUHNldWRv
LCBmYWxzZSwgdmlzaXRlZE1hdGNoVHlwZSk7CiAgICAgICAgICAgICBpZiAobWF0Y2ggIT0gU2Vs
ZWN0b3JGYWlsc0xvY2FsbHkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOwogICAgICAg
ICB9CkBAIC00NzYsMTAgKzQ4OSwyMyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2gg
U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsCiAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6Q2hpbGQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbnRhaW5lck5v
ZGUqIG4gPSBlLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgICAgICBpZiAoIW4gfHwgIW4tPmlzRWxl
bWVudE5vZGUoKSkKKyAgICAgICAgICAgIGlmICghbikKICAgICAgICAgICAgICAgICByZXR1cm4g
U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgICAgICAgICBpZiAoIW4tPmlzRWxlbWVudE5v
ZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIFNlbGVjdG9yIG1heSBoYXZlIGEgJ3Jhdycgc2hh
ZG93IHBzZXVkby1lbGVtZW50IAorICAgICAgICAgICAgICAgIGlmICghc2VsIHx8ICFzZWwtPmlz
VW5rbm93blBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVj
dG9yRmFpbHNDb21wbGV0ZWx5OworICAgICAgICAgICAgICAgIGlmICghbi0+aXNTaGFkb3dSb290
KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsK
KyAgICAgICAgICAgICAgICBuID0gbi0+cGFyZW50T3JIb3N0Tm9kZSgpOworICAgICAgICAgICAg
ICAgIEFTU0VSVCghbiB8fCBuLT5pc0VsZW1lbnROb2RlKCkpOworICAgICAgICAgICAgICAgIGlm
ICghbikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5
OworICAgICAgICAgICAgICAgIC8vIENhbid0IGNyb3NzIFRXTyBib3VuZGFyaWVzIGZvciBhIHNp
bmdsZSBzZWxlY3RvcgorICAgICAgICAgICAgICAgIHNlbCA9IDA7IAorICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKLSAgICAgICAgICAgIHJl
dHVybiBjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRN
YXRjaFR5cGUpOworICAgICAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dFNlbGVjdG9y
LCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwgdmlzaXRlZE1hdGNoVHlwZSk7CiAgICAgICAgIH0K
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDoKICAgICAgICAgewpAQCAtNDg4
LDEzICs1MTQsMjIgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLAogICAgICAgICAgICAgICAgIGlm
IChwYXJlbnRTdHlsZSkKICAgICAgICAgICAgICAgICAgICAgcGFyZW50U3R5bGUtPnNldENoaWxk
cmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChzZWwtPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAgICAg
ICAgIE5vZGUqIHNoYWRvd0hvc3ROb2RlID0gZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAg
ICAgICAgICAgICAgaWYgKHNoYWRvd0hvc3ROb2RlID09IGUgfHwgIXNoYWRvd0hvc3ROb2RlLT5p
c0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxz
Q29tcGxldGVseTsKKyAgICAgICAgICAgICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHNo
YWRvd0hvc3ROb2RlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIE5vZGUqIG4gPSBlLT5w
cmV2aW91c1NpYmxpbmcoKTsKICAgICAgICAgICAgIHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgICAgICAgICAgbiA9IG4tPnByZXZpb3VzU2libGluZygpOwogICAgICAg
ICAgICAgaWYgKCFuKQotICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzTG9jYWxs
eTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkg
PyBTZWxlY3RvckZhaWxzQ29tcGxldGVseSA6IFNlbGVjdG9yRmFpbHNMb2NhbGx5OwogICAgICAg
ICAgICAgZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKLSAgICAgICAgICAgIHJldHVybiBj
aGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5
cGUpOworICAgICAgICAgICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3IobmV4
dFNlbGVjdG9yLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwgdmlzaXRlZE1hdGNoVHlwZSk7Cisg
ICAgICAgICAgICBpZiAobWF0Y2ggPT0gU2VsZWN0b3JGYWlsc0xvY2FsbHkgJiYgc2VsLT5pc1Vu
a25vd25Qc2V1ZG9FbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFp
bHNDb21wbGV0ZWx5OworICAgICAgICAgICAgcmV0dXJuIG1hdGNoOwogICAgICAgICB9CiAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2VudDoKICAgICAgICAgaWYgKCFtX2lzQ29s
bGVjdGluZ1J1bGVzT25seSAmJiBlLT5wYXJlbnROb2RlKCkgJiYgZS0+cGFyZW50Tm9kZSgpLT5p
c0VsZW1lbnROb2RlKCkpIHsKQEAgLTUwMiwxNCArNTM3LDIwIEBAIFNlbGVjdG9yQ2hlY2tlcjo6
U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoQ1NTU2VsZWN0b3Iq
IHNlbCwKICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKICAgICAgICAgICAgICAgICBwYXJl
bnRTdHlsZS0+c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOwog
ICAgICAgICB9CisgICAgICAgIGlmIChzZWwtPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgewor
ICAgICAgICAgICAgTm9kZSogc2hhZG93SG9zdE5vZGUgPSBlLT5zaGFkb3dBbmNlc3Rvck5vZGUo
KTsKKyAgICAgICAgICAgIGlmIChzaGFkb3dIb3N0Tm9kZSA9PSBlIHx8ICFzaGFkb3dIb3N0Tm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxz
Q29tcGxldGVseTsKKyAgICAgICAgICAgIGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oc2hhZG93
SG9zdE5vZGUpOworICAgICAgICB9CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAg
ICBOb2RlKiBuID0gZS0+cHJldmlvdXNTaWJsaW5nKCk7CiAgICAgICAgICAgICB3aGlsZSAobiAm
JiAhbi0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICAgICAgICAgIG4gPSBuLT5wcmV2aW91c1Np
YmxpbmcoKTsKICAgICAgICAgICAgIGlmICghbikKLSAgICAgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JGYWlsc0xvY2FsbHk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbC0+aXNVbmtub3du
UHNldWRvRWxlbWVudCgpID8gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkgOiBTZWxlY3RvckZhaWxz
TG9jYWxseTsKICAgICAgICAgICAgIGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7Ci0gICAg
ICAgICAgICBTZWxlY3Rvck1hdGNoIG1hdGNoID0gY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFt
aWNQc2V1ZG8sIGZhbHNlLCB2aXNpdGVkTWF0Y2hUeXBlKTsKKyAgICAgICAgICAgIFNlbGVjdG9y
TWF0Y2ggbWF0Y2ggPSBjaGVja1NlbGVjdG9yKG5leHRTZWxlY3RvciwgZSwgZHluYW1pY1BzZXVk
bywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5cGUpOwogICAgICAgICAgICAgaWYgKG1hdGNoICE9IFNl
bGVjdG9yRmFpbHNMb2NhbGx5KQogICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAg
ICAgfTsKQEAgLTUxOSwxNiArNTYwLDE2IEBAIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRj
aCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwKICAgICAg
ICAgLy8gV2UgbWFrZSBhbiBleGNlcHRpb24gZm9yIHNjcm9sbGJhciBwc2V1ZG8gZWxlbWVudHMg
YW5kIGFsbG93IGEgc2V0IG9mIHBzZXVkbyBjbGFzc2VzIChidXQgbm90aGluZyBlbHNlKQogICAg
ICAgICAvLyB0byBmb2xsb3cgdGhlIHBzZXVkbyBlbGVtZW50cy4KICAgICAgICAgaWYgKChlbGVt
ZW50U3R5bGUgfHwgbV9pc0NvbGxlY3RpbmdSdWxlc09ubHkpICYmIGR5bmFtaWNQc2V1ZG8gIT0g
Tk9QU0VVRE8gJiYgZHluYW1pY1BzZXVkbyAhPSBTRUxFQ1RJT04KLSAgICAgICAgICAgICAmJiAh
KChSZW5kZXJTY3JvbGxiYXI6OnNjcm9sbGJhckZvclN0eWxlUmVzb2x2ZSgpIHx8IGR5bmFtaWNQ
c2V1ZG8gPT0gU0NST0xMQkFSX0NPUk5FUiB8fCBkeW5hbWljUHNldWRvID09IFJFU0laRVIpICYm
IHNlbC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpKQorICAgICAgICAgICAg
ICYmICEoKFJlbmRlclNjcm9sbGJhcjo6c2Nyb2xsYmFyRm9yU3R5bGVSZXNvbHZlKCkgfHwgZHlu
YW1pY1BzZXVkbyA9PSBTQ1JPTExCQVJfQ09STkVSIHx8IGR5bmFtaWNQc2V1ZG8gPT0gUkVTSVpF
UikgJiYgbmV4dFNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcykp
CiAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7Ci0gICAgICAgIHJl
dHVybiBjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1BzZXVkbywgdHJ1ZSwgdmlzaXRlZE1h
dGNoVHlwZSwgZWxlbWVudFN0eWxlLCBlbGVtZW50UGFyZW50U3R5bGUpOworICAgICAgICByZXR1
cm4gY2hlY2tTZWxlY3RvcihuZXh0U2VsZWN0b3IsIGUsIGR5bmFtaWNQc2V1ZG8sIHRydWUsIHZp
c2l0ZWRNYXRjaFR5cGUsIGVsZW1lbnRTdHlsZSwgZWxlbWVudFBhcmVudFN0eWxlKTsKICAgICBj
YXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgogICAgICAgICB7CiAgICAgICAgICAg
ICBOb2RlKiBzaGFkb3dIb3N0Tm9kZSA9IGUtPnNoYWRvd0FuY2VzdG9yTm9kZSgpOwogICAgICAg
ICAgICAgaWYgKHNoYWRvd0hvc3ROb2RlID09IGUgfHwgIXNoYWRvd0hvc3ROb2RlLT5pc0VsZW1l
bnROb2RlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5
OwogICAgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihzaGFkb3dIb3N0Tm9kZSk7
Ci0gICAgICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8s
IGZhbHNlLCB2aXNpdGVkTWF0Y2hUeXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjaGVja1NlbGVj
dG9yKG5leHRTZWxlY3RvciwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5
cGUpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWU4MWUxYzFkYzhjNmNjZGUxMjI5MDk0
NWI5YWRjMjM2ZDM1N2NlZS4uNmRlMGI0NGQyMTRhZmQ3Yjc2ZGFhMmVhOTNlNTJhNGI0ZTc5ZjU3
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTIyICBSb2xhbmQgU3RlaW5lciAgPHJv
bGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXciIHBzZXVkbyBzZWxlY3Rv
cnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGlsZCBvciBkZXNjZW5kYW50
IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyOTMzCisKKyAgICAgICAgRXh0ZW5kIHRlc3QgY2FzZXMgdG8gaW5jbHVkZSAicmF3IiBw
c2V1ZG8tSUQgc2VsZWN0b3JzIGFuZCBzaWJsaW5nIGNvbWJpbmF0b3JzLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvdW5rbm93bi1w
c2V1ZG8tZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mv
dW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sOgorCiAyMDExLTExLTIxICBZdXRh
IEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtHVEtdIEVuYWJsZSBX
ZWJTb2NrZXQgaHliaSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5r
bm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCBhODk2OTBmMzlhNDZmMzAwNjdkOWQ3MzNhMGVhNTQ1ZTRkYzMxOWZhLi42MGI2ZmEzNjZiOThl
MTUyNjZjMTM2Njk0MjQ4MzVkZDQ1MjAzMGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVj
dGVkLnR4dApAQCAtMiw5ICsyLDEyIEBAIFRlc3RzIHZhcmlvdXMgc2VsZWN0b3IgY29tYmluYXRp
b25zLCBjb250YWluaW5nIHVua25vd24gcHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzCiAKIEJhc2lj
IHNlbGVjdG9yIHRlc3RzOgogOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogOjotd2Via2l0
LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxk
IG5vdCBtYXRjaDogUEFTUwogKnw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlz
IG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKKyp8Kjo6LXdlYmtpdC1z
bGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBt
YXRjaDogUEFTUwogaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5v
dCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKK2h0bWx8Kjo6LXdlYmtpdC1z
bGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBt
YXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CiAuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKICNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBz
aG91bGQgbm90IG1hdGNoOiBQQVNTCkBAIC0yOCw2ICszMSw3IEBAIGlucHV0LmJhclt0eXBlPXJh
bmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAKIFNob3VsZG4n
dCBpZ25vcmUgc2VsZWN0b3IgYWZ0ZXIgdGhlIHVua25vd24gcHNldWRvIGVsZW1lbnQ6CiA6Oi13
ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyo6Oi13
ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0
Ojotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAj
Zm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNT
CiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0
Y2g6IFBBU1MKQEAgLTM2LDYgKzQwLDcgQEAgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xp
ZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG5vdCBt
YXRjaCBkaXNhYmxlZCBpbnB1dCwgYmVjYXVzZSB0aGUgZGlzYWJsZWQgc3RhdGUgaXMgb24gdGhl
IGlucHV0LCBub3QgdGhlIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBz
aG91bGQgbm90IG1hdGNoOiBQQVNTCisqOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBz
aG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJs
ZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlz
YWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10
aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCkBAIC00NCw2ICs0OSw3IEBAIGlu
cHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90
IG1hdGNoOiBQQVNTCiAKIFNob3VsZCBtYXRjaCA6aG92ZXIgd2hlbiB0aGUgbW91c2UgaXMgb3Zl
ciB0aGUgc2xpZGVyIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQg
bWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDog
UEFTUwogaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFT
UwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiBp
bnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUwpA
QCAtNTEsMTMgKzU3LDQ3IEBAIGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIg
c2hvdWxkIG1hdGNoOiBQQVNTCiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1
bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiAKIFNob3VsZCBtYXRjaCB3aGVuIGNvbWJpbmVk
IHdpdGggZGVzY2VuZGFudCBzZWxlY3RvcnM6CisjYmF6IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCisjYmF6ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBt
YXRjaDogUEFTUwogI2JheiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNo
OiBQQVNTCiAjYmF6ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UwogI2JheiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UwogI2JheiBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UwogI2JheiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCisucXV4IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CisucXV4ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBp
bnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4ICNmb286
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dCNmb286
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dC5iYXI6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dFt0eXBl
PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisKK1Nob3Vs
ZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6Cisjc2liICsgOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyAqOjotd2Via2l0
LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgI2Zvbzo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXQjZm9vOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dC5iYXI6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiA6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICo6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0Ojotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiAjZm9vOjotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXRbdHlwZT1yYW5nZV06Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyA6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAqOjotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQ6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAjZm9vOjotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQjZm9vOjotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQuYmFyOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXRbdHlwZT1yYW5nZV06
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiA6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAqOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQ6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAjZm9vOjotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQjZm9vOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQuYmFyOjotd2Via2l0
LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXRbdHlwZT1yYW5n
ZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5o
dG1sCmluZGV4IDZhZmVlYmUyOWY0NWEwOWU4NGRkYzg3MTljYTBlZDk4NmVjMTJkYmQuLjdmZDFl
ZGUwZTYwY2EyNDAzMjcyYjJmMjRhMjg5OGFmNzU5MjhhYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwK
QEAgLTE4LDYgKzE4LDcgQEAgdmFyIE5BTUVTUEFDRV9ERUNMQVJBVElPTiA9ICdAbmFtZXNwYWNl
ICJodHRwOi8vZXhhbXBsZS5jb20vZm9vL25hbWVzcGFjZSI7XG5AbmEKIHZhciBTRUxFQ1RPUl9U
RVNUX1BST1BFUlRJRVMgPSAnIHsgaGVpZ2h0OiAxcHg7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9u
ZTsgfSc7CiB2YXIgU0VMRUNUT1JTID0gWwogJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAorJyo6
Oi13ZWJraXQtc2xpZGVyLXRodW1iJywKICdpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAog
JyNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywKICdpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVy
LXRodW1iJywKQEAgLTI3LDkgKzI4LDExIEBAIHZhciBTRUxFQ1RPUlMgPSBbCiB2YXIgRElTQUJM
RURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4g
c2VsZWN0b3IgKyAnOmRpc2FibGVkJzsgfSk7CiB2YXIgSE9WRVJfU0VMRUNUT1JTID0gU0VMRUNU
T1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gc2VsZWN0b3IgKyAnOmhvdmVyJzsg
fSk7CiB2YXIgREVTQ0VOREFOVF9JRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9u
KHNlbGVjdG9yKSB7IHJldHVybiAnI2JheiAnICsgc2VsZWN0b3I7IH0pOwotREVTQ0VOREFOVF9J
RF9TRUxFQ1RPUlMuc2hpZnQoKTsKIHZhciBERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUyA9IFNF
TEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcucXV4ICcgKyBzZWxlY3Rv
cjsgfSk7Ci1ERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUy5zaGlmdCgpOwordmFyIERJUkVDVF9T
SUJMSU5HX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsg
cmV0dXJuICcjc2liICsgJyArIHNlbGVjdG9yOyB9KTsKK3ZhciBJTkRJUkVDVF9TSUJMSU5HX0lE
X1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcj
c2liIH4gJyArIHNlbGVjdG9yOyB9KTsKK3ZhciBESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RP
UlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnLmxpbmcgKyAn
ICsgc2VsZWN0b3I7IH0pOwordmFyIElORElSRUNUX1NJQkxJTkdfQ0xBU1NfU0VMRUNUT1JTID0g
U0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5saW5nIH4gJyArIHNl
bGVjdG9yOyB9KTsKIAogLy8gY29udmVuaWVuY2UgY29uc3RhbnRzCiB2YXIgTUFUQ0ggPSB0cnVl
OwpAQCAtNjYsMTIgKzY5LDE2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGhlYWQgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAgIGlucHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CisgICAgdGVzdENvbnRhaW5l
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXonKTsKICAgICBsb2dEaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7CiAgICAgbG9nKCdCYXNpYyBzZWxlY3RvciB0ZXN0czon
KTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7
CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnKjo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsK
ICAgICBydW5TZWxlY3RvclRlc3QoTk9fTUFUQ0gsICc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywg
V0lUSF9OQU1FU1BBQ0VTKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqfDo6LXdlYmtp
dC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOworICAgIHJ1blNlbGVjdG9yVGVzdChN
QVRDSCwgJyp8Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwogICAg
IHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJ2h0bWx8Ojotd2Via2l0LXNsaWRlci10aHVtYicsIFdJ
VEhfTkFNRVNQQUNFUyk7CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnaHRtbHwqOjotd2Vi
a2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0
KE1BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBydW5TZWxlY3RvclRl
c3QoTUFUQ0gsICcuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9y
VGVzdChOT19NQVRDSCwgJyNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BB
Q0VTKTsKQEAgLTEwNyw3ICsxMTQsMTMgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgbG9nKCc8
YnI+U2hvdWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBkZXNjZW5kYW50IHNlbGVjdG9yczon
KTsKICAgICBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKICAg
ICBERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKLSAgICBp
bnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGlucHV0KTsKKyAgICBsb2coJzxicj5TaG91bGQg
bWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIHNpYmxpbmcgc2VsZWN0b3JzOicpOworICAgIERJUkVD
VF9TSUJMSU5HX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBJTkRJUkVD
VF9TSUJMSU5HX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBESVJFQ1Rf
U0lCTElOR19DTEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7CisgICAgSU5ESVJF
Q1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7CisKKyAgICB0
ZXN0Q29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CiB9CiAK
IGZ1bmN0aW9uIGV4cGVjdE5vTWF0Y2goc2VsZWN0b3IpIHsKQEAgLTEyMyw2ICsxMzYsNyBAQCBm
dW5jdGlvbiBleHBlY3RNYXRjaChzZWxlY3RvcikgewogPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgogICAgIDxwPlRlc3RzIHZhcmlvdXMgc2VsZWN0b3IgY29tYmluYXRpb25zLCBjb250YWluaW5n
IHVua25vd24gcHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzLjwvcD4KICAgICA8ZGl2IGlkPSJiYXoi
IGNsYXNzPSJxdXgiPgorICAgICAgICA8c3BhbiBpZD0ic2liIiBjbGFzcz0ibGluZyI+U2libGlu
Zzwvc3Bhbj4KICAgICAgICAgPGlucHV0IGlkPSJmb28iIGNsYXNzPSJiYXIiIHR5cGU9InJhbmdl
Ij4KICAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116195</attachid>
            <date>2011-11-22 03:43:15 -0800</date>
            <delta_ts>2011-11-22 04:16:00 -0800</delta_ts>
            <desc>work-in-progress #2</desc>
            <filename>bug-72933-20111122204313.patch</filename>
            <type>text/plain</type>
            <size>20170</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYyOGViNjlhMTAwMjk4
NzhiNDE2MDQ5ZTdiMzU0ZTJlY2RiODY3MC4uMTU5ZGMxZmZiNTNiNjNmNjk5OWEyOGU0OTIxY2Uy
YzRjODYwMDJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTIyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgSGFuZGxlIGNyb3NzaW5nIG92ZXIg
c2hhZG93IGJvdW5kYXJ5IGZvciAicmF3IiBwc2V1ZG8tSUQgc2VsZWN0b3JzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bWF0Y2hSdWxl
c0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tTZWxl
Y3Rvcik6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JDaGVja2VyOjpjaGVja1BzZXVkb0lEU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JDaGVja2VyLmg6CisKIDIwMTEtMTEtMjEgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjk4NTQyKTogQ2hyb21pdW06IENTUyB0
ZXh0IGlzIHJlbmRlcmVkIG9uIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCAxNjI5NGZiNzNhMDc2OWYwZWVhZGZlNjIzMTJlZGY0MzRlM2FmMGRiLi40MjM2
NDVlNzZjYjlmODU4MTY5ZGMxMWJhOWYwZGE0ODNlNTZiMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC03MDUsMTEgKzcwNSw2IEBAIGlubGluZSBib29sIE1h
dGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpCiAKIGJvb2wgTWF0Y2hpbmdV
QVJ1bGVzU2NvcGU6Om1fbWF0Y2hpbmdVQVJ1bGVzID0gZmFsc2U7CiAKLWlubGluZSBzdGF0aWMg
Ym9vbCBtYXRjaGVzSW5UcmVlU2NvcGUoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGJvb2wgcnVsZVJl
YWNoZXNJbnRvU2hhZG93RE9NKQotewotICAgIHJldHVybiBNYXRjaGluZ1VBUnVsZXNTY29wZTo6
aXNNYXRjaGluZ1VBUnVsZXMoKSB8fCB0cmVlU2NvcGUtPmFwcGx5QXV0aG9yU2hlZXRzKCkgfHwg
cnVsZVJlYWNoZXNJbnRvU2hhZG93RE9NOwotfQotCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1h
dGNoUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpbnQmIGZpcnN0
UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpCiB7
CiAgICAgaWYgKCFydWxlcykKQEAgLTcyNCw4ICs3MTksNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6Om1hdGNoUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpbnQm
IGZpcgogICAgICAgICBpZiAoY2FuVXNlRmFzdFJlamVjdCAmJiBtX2NoZWNrZXIuZmFzdFJlamVj
dFNlbGVjdG9yPFJ1bGVEYXRhOjptYXhpbXVtSWRlbnRpZmllckNvdW50PihydWxlRGF0YS5kZXNj
ZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkpKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIGlmIChjaGVja1NlbGVjdG9yKHJ1bGVEYXRhKSkgewotICAgICAgICAgICAgaWYg
KCFtYXRjaGVzSW5UcmVlU2NvcGUobV9lbGVtZW50LT50cmVlU2NvcGUoKSwgbV9jaGVja2VyLmhh
c1Vua25vd25Qc2V1ZG9FbGVtZW50cygpKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIC8vIElmIHRoZSBydWxlIGhhcyBubyBwcm9wZXJ0aWVzIHRvIGFwcGx5LCB0aGVu
IGlnbm9yZSBpdCBpbiB0aGUgbm9uLWRlYnVnIG1vZGUuCiAgICAgICAgICAgICBDU1NTdHlsZVJ1
bGUqIHJ1bGUgPSBydWxlRGF0YS5ydWxlKCk7CiAgICAgICAgICAgICBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbiogZGVjbCA9IHJ1bGUtPmRlY2xhcmF0aW9uKCk7CkBAIC0xNzk2LDcgKzE3ODks
MTIgQEAgaW5saW5lIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBS
dWxlRGF0YSYgcnVsZURhdGEpCiAgICAgfQogCiAgICAgLy8gU2xvdyBwYXRoLgotICAgIFNlbGVj
dG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBtYXRjaCA9IG1fY2hlY2tlci5jaGVja1NlbGVjdG9y
KHJ1bGVEYXRhLnNlbGVjdG9yKCksIG1fZWxlbWVudCwgbV9keW5hbWljUHNldWRvLCBmYWxzZSwg
U2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hFbmFibGVkLCBzdHlsZSgpLCBtX3BhcmVudE5v
ZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwKTsKKyAgICBDU1NTZWxlY3Rvciog
c2VsID0gcnVsZURhdGEuc2VsZWN0b3IoKTsKKyAgICBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9y
TWF0Y2ggbWF0Y2g7CisgICAgaWYgKHNlbC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
RWxlbWVudCAmJiBzZWwtPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgbWF0Y2gg
PSBtX2NoZWNrZXIuY2hlY2tQc2V1ZG9JRFNlbGVjdG9yKHNlbCwgbV9lbGVtZW50LCBtX2R5bmFt
aWNQc2V1ZG8sIFNlbGVjdG9yQ2hlY2tlcjo6VmlzaXRlZE1hdGNoRW5hYmxlZCk7CisgICAgZWxz
ZQorICAgICAgICBtYXRjaCA9IG1fY2hlY2tlci5jaGVja1NlbGVjdG9yKHNlbCwgbV9lbGVtZW50
LCBtX2R5bmFtaWNQc2V1ZG8sIGZhbHNlLCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaEVu
YWJsZWQsIHN0eWxlKCksIG1fcGFyZW50Tm9kZSA/IG1fcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUo
KSA6IDApOwogICAgIGlmIChtYXRjaCAhPSBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2hl
cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX2NoZWNrZXIucHNldWRvU3R5bGUo
KSAhPSBOT1BTRVVETyAmJiBtX2NoZWNrZXIucHNldWRvU3R5bGUoKSAhPSBtX2R5bmFtaWNQc2V1
ZG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDJjNWM3MzIwMGQx
OTdhZmQ5NmQwOWJlNjllOWVhYTdmYTk5YzFmOWUuLmQyY2M3ZjNhNWQ3MzdkNTFiZGM4NzNjNzUy
NjkxYTNhYzVjMGY1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBA
IC01MjMsMTUgKzUyMywxMTkgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVj
dG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLAogICAgICAgICAgICAg
cmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OwogICAgICAgICByZXR1cm4gY2hlY2tTZWxl
Y3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIHRydWUsIHZpc2l0ZWRNYXRjaFR5cGUsIGVsZW1l
bnRTdHlsZSwgZWxlbWVudFBhcmVudFN0eWxlKTsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFk
b3dEZXNjZW5kYW50OgorICAgICAgICAvLyBQc2V1ZG8tSUQgc2VsZWN0b3JzIHNob3VsZCBoYXZl
IGJlZW4gaGFuZGxlZCBieSBjaGVja1BzZXVkb0lEU2VsZWN0b3IoKS4KKyAgICAgICAgcmV0dXJu
IFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworICAgIH0KKworICAgIHJldHVybiBTZWxlY3RvckZh
aWxzQ29tcGxldGVseTsKK30KKworU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVj
dG9yQ2hlY2tlcjo6Y2hlY2tQc2V1ZG9JRFNlbGVjdG9yKAorICAgIENTU1NlbGVjdG9yKiBzZWws
CisgICAgRWxlbWVudCogZSwKKyAgICBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbywKKyAgICBWaXNp
dGVkTWF0Y2hUeXBlIHZpc2l0ZWRNYXRjaFR5cGUpIGNvbnN0Cit7CisgICAgLy8gUHNldWRvLUlE
IGhhcyB0byBtYXRjaAorICAgIGlmIChlLT5zaGFkb3dQc2V1ZG9JZCgpICE9IHNlbC0+dmFsdWUo
KSkKKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworCisgICAgLy8gVGhl
IG5vZGUgbXVzdCBiZSBpbiBhIHNoYWRvdyB0cmVlLiBDaGVjayB0aGlzIGFuZCBzd2l0Y2ggdG8g
dGhlIGhvc3Qgbm9kZSBmb3IgdGhlIHJlc3QuCisgICAgTm9kZSogc2hhZG93SG9zdE5vZGUgPSBl
LT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoc2hhZG93SG9zdE5vZGUgPT0gZSB8fCAh
c2hhZG93SG9zdE5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIFNlbGVjdG9y
RmFpbHNDb21wbGV0ZWx5OworICAgIGUgPSB0b0VsZW1lbnQoc2hhZG93SG9zdE5vZGUpOworCisg
ICAgLy8gVGhlIHJlc3Qgb2YgdGhlIHNlbGVjdG9ycyBoYXMgdG8gbWF0Y2gKKyAgICBDU1NTZWxl
Y3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWwtPnJlbGF0aW9uKCk7CisKKyAgICAvLyBQcmVw
YXJlIG5leHQgc2VsCisgICAgc2VsID0gc2VsLT50YWdIaXN0b3J5KCk7CisgICAgaWYgKCFzZWwp
CisgICAgICAgIHJldHVybiBTZWxlY3Rvck1hdGNoZXM7CisKKyAgICBpZiAocmVsYXRpb24gIT0g
Q1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKSB7CisgICAgICAgIC8vIEJhaWwtb3V0IGlmIHRoaXMg
c2VsZWN0b3IgaXMgaXJyZWxldmFudCBmb3IgdGhlIHBzZXVkb1N0eWxlCisgICAgICAgIGlmICht
X3BzZXVkb1N0eWxlICE9IE5PUFNFVURPICYmIG1fcHNldWRvU3R5bGUgIT0gZHluYW1pY1BzZXVk
bykKKyAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKKworICAgICAg
ICAvLyBEaXNhYmxlIDp2aXNpdGVkIG1hdGNoaW5nIHdoZW4gd2Ugc2VlIHRoZSBmaXJzdCBsaW5r
IG9yIHRyeSB0byBtYXRjaCBhbnl0aGluZyBlbHNlIHRoYW4gYW4gYW5jZXN0b3IuCisgICAgICAg
IGlmIChlLT5pc0xpbmsoKSB8fCAocmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OkRlc2NlbmRhbnQg
JiYgcmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OkNoaWxkICYmIHJlbGF0aW9uICE9IENTU1NlbGVj
dG9yOjpTaGFkb3dEZXNjZW5kYW50KSkKKyAgICAgICAgICAgIHZpc2l0ZWRNYXRjaFR5cGUgPSBW
aXNpdGVkTWF0Y2hEaXNhYmxlZDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHJlbGF0aW9uKSB7Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudDoKKyAgICAgICAgZm9yICg7OykgeworICAg
ICAgICAgICAgQ29udGFpbmVyTm9kZSogbiA9IGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAgICAg
IGlmICghbiB8fCAhbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBT
ZWxlY3RvckZhaWxzQ29tcGxldGVseTsKKyAgICAgICAgICAgIGUgPSBzdGF0aWNfY2FzdDxFbGVt
ZW50Kj4obik7CisgICAgICAgICAgICBTZWxlY3Rvck1hdGNoIG1hdGNoID0gY2hlY2tTZWxlY3Rv
cihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIGZhbHNlLCB2aXNpdGVkTWF0Y2hUeXBlKTsKKyAgICAg
ICAgICAgIGlmIChtYXRjaCAhPSBTZWxlY3RvckZhaWxzTG9jYWxseSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbWF0Y2g7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHND
b21wbGV0ZWx5OworCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q2hpbGQ6CiAgICAgICAgIHsKLSAg
ICAgICAgICAgIE5vZGUqIHNoYWRvd0hvc3ROb2RlID0gZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7
Ci0gICAgICAgICAgICBpZiAoc2hhZG93SG9zdE5vZGUgPT0gZSB8fCAhc2hhZG93SG9zdE5vZGUt
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIG4gPSBlLT5wYXJl
bnROb2RlKCk7CisgICAgICAgICAgICBpZiAoIW4gfHwgIW4tPmlzRWxlbWVudE5vZGUoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7Ci0gICAgICAgICAg
ICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHNoYWRvd0hvc3ROb2RlKTsKLSAgICAgICAgICAg
IHJldHVybiBjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0
ZWRNYXRjaFR5cGUpOworICAgICAgICAgICAgZSA9IHRvRWxlbWVudChuKTsKKyAgICAgICAgICAg
IGlmIChjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRN
YXRjaFR5cGUpID09IFNlbGVjdG9yTWF0Y2hlcykKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JNYXRjaGVzOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29t
cGxldGVseTsKKworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50OgorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIW1faXNDb2xsZWN0aW5nUnVsZXNPbmx5ICYmIGUtPnBhcmVu
dE5vZGUoKSAmJiBlLT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAg
ICAgICAgIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IGUtPnBhcmVudE5vZGUoKS0+cmVuZGVy
U3R5bGUoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyZW50U3R5bGUpCisgICAgICAgICAgICAg
ICAgICAgIHBhcmVudFN0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1
bGVzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBOb2RlKiBuID0gZS0+cHJldmlvdXNT
aWJsaW5nKCk7CisgICAgICAgICAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVtZW50Tm9kZSgpKQor
ICAgICAgICAgICAgICAgIG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAgICAgIGlm
ICghbikKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7Cisg
ICAgICAgICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworICAgICAgICAgICAgaWYg
KGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwgdmlzaXRlZE1hdGNo
VHlwZSkgPT0gU2VsZWN0b3JNYXRjaGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3Rv
ck1hdGNoZXM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0
ZWx5OworCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2VudDoKKyAgICAgICAg
aWYgKCFtX2lzQ29sbGVjdGluZ1J1bGVzT25seSAmJiBlLT5wYXJlbnROb2RlKCkgJiYgZS0+cGFy
ZW50Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIFJlbmRlclN0eWxlKiBw
YXJlbnRTdHlsZSA9IGUtPnBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgICAg
IGlmIChwYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICBwYXJlbnRTdHlsZS0+c2V0Q2hpbGRy
ZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOworICAgICAgICB9CisgICAgICAg
IHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBOb2RlKiBuID0gZS0+cHJldmlvdXNTaWJsaW5n
KCk7CisgICAgICAgICAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAg
ICAgICAgICAgIG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAgICAgIGlmICghbikK
KyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgICAg
ICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworICAgICAgICAgICAgU2VsZWN0b3JN
YXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwg
dmlzaXRlZE1hdGNoVHlwZSk7CisgICAgICAgICAgICBpZiAobWF0Y2ggIT0gU2VsZWN0b3JGYWls
c0xvY2FsbHkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICB9OworICAg
ICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpTdWJTZWxlY3RvcjoKKyAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgYW55dGhpbmcgZm9s
bG93aW5nIGEgcHNldWRvLUlEIHNlbGVjdG9yLgorICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWls
c0NvbXBsZXRlbHk7CisKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50Ogor
ICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIGZhbHNlLCB2
aXNpdGVkTWF0Y2hUeXBlKSA9PSBTZWxlY3Rvck1hdGNoZXMpCisgICAgICAgICAgICByZXR1cm4g
U2VsZWN0b3JNYXRjaGVzOworICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7
CiAgICAgfQogCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFNlbGVjdG9y
RmFpbHNDb21wbGV0ZWx5OwogfQogCkBAIC0xMTk1LDEwICsxMjk5LDEwIEBAIGJvb2wgU2VsZWN0
b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGUs
IFBzZXVkb0lkJiBkCiAgICAgICAgIGlmICghZWxlbWVudFN0eWxlICYmICFtX2lzQ29sbGVjdGlu
Z1J1bGVzT25seSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoc2Vs
LT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKLSAgICAgICAgICAgIG1faGFzVW5rbm93blBz
ZXVkb0VsZW1lbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBlLT5zaGFkb3dQc2V1ZG9J
ZCgpID09IHNlbC0+dmFsdWUoKTsKLSAgICAgICAgfQorICAgICAgICAvLyBXZSBkb24ndCBhbGxv
dyBwc2V1ZG8tSUQgc2VsZWN0b3JzIGluIHRoZSBtaWRkbGUgb2YgYSBjb21wbGV4IHNlbGVjdG9y
LgorICAgICAgICAvLyBQc2V1ZG8tSUQgc2VsZWN0b3JzIGF0IHRoZSBlbmQgYXJlIGhhbmRsZWQg
aW4gY2hlY2tQc2V1ZG9JRFNlbGVjdG9yKCkuCisgICAgICAgIGlmIChzZWwtPmlzVW5rbm93blBz
ZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBQc2V1
ZG9JZCBwc2V1ZG9JZCA9IENTU1NlbGVjdG9yOjpwc2V1ZG9JZChzZWwtPnBzZXVkb1R5cGUoKSk7
CiAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuaAppbmRleCA3NjBiYTUyMDdiZTU3NGM1ZGZlOGE5YTA0Yjk3MDBlNGQw
Y2RmMjhkLi5jZDNkZDQ5Y2IxOTJhOWJhYTMzYmNlN2VmZjkzZDA2YzAyYjZmYTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICBlbnVtIFZpc2l0ZWRNYXRjaFR5cGUgeyBWaXNpdGVkTWF0Y2hEaXNhYmxlZCwgVmlzaXRlZE1h
dGNoRW5hYmxlZCB9OwogICAgIGJvb2wgY2hlY2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVsZW1l
bnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yID0gZmFsc2UpIGNvbnN0OwogICAgIFNl
bGVjdG9yTWF0Y2ggY2hlY2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVsZW1lbnQqLCBQc2V1ZG9J
ZCYgZHluYW1pY1BzZXVkbywgYm9vbCBpc1N1YlNlbGVjdG9yLCBWaXNpdGVkTWF0Y2hUeXBlLCBS
ZW5kZXJTdHlsZSogPSAwLCBSZW5kZXJTdHlsZSogZWxlbWVudFBhcmVudFN0eWxlID0gMCkgY29u
c3Q7CisgICAgU2VsZWN0b3JNYXRjaCBjaGVja1BzZXVkb0lEU2VsZWN0b3IoQ1NTU2VsZWN0b3Iq
LCBFbGVtZW50KiwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8sIFZpc2l0ZWRNYXRjaFR5cGUpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yKGNvbnN0IENTU1Nl
bGVjdG9yKik7CiAgICAgYm9vbCBmYXN0Q2hlY2tTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvcios
IGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFlODFlMWMxZGM4YzZjY2RlMTIyOTA5
NDViOWFkYzIzNmQzNTdjZWUuLjE3ZmU0MTM5YTEwZjNhZWFiNmE3ZWNkZTE5YTk5YzNmODc0YTNm
YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0yMiAgUm9sYW5kIFN0ZWluZXIgIDxy
b2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KKworICAgICAgICAiUmF3IiBwc2V1ZG8gc2VsZWN0
b3JzIGRvbid0IG1hdGNoIGlmIGltbWVkaWF0ZWx5IGFmdGVyIGEgY2hpbGQgb3IgZGVzY2VuZGFu
dCBjb21iaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjkzMworCisgICAgICAgIEV4dGVuZCB0ZXN0IGNhc2VzIHRvIGluY2x1ZGUgInJhdyIg
cHNldWRvLUlEIHNlbGVjdG9ycyBhbmQgc2libGluZyBjb21iaW5hdG9ycy4KKyAgICAgICAgQWxz
byBhZGQgYSBmZXcgY2FzZXMgd2l0aCBleHBsaWNpdCB1bml2ZXJzYWwgc2VsZWN0b3IuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy91
bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWw6CisKIDIwMTEtMTEt
MjEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0dUS10g
RW5hYmxlIFdlYlNvY2tldCBoeWJpIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQu
dHh0CmluZGV4IGE4OTY5MGYzOWE0NmYzMDA2N2Q5ZDczM2EwZWE1NDVlNGRjMzE5ZmEuLjYwYjZm
YTM2NmI5OGUxNTI2NmMxMzY2OTQyNDgzNWRkNDUyMDMwYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hp
bmctZXhwZWN0ZWQudHh0CkBAIC0yLDkgKzIsMTIgQEAgVGVzdHMgdmFyaW91cyBzZWxlY3RvciBj
b21iaW5hdGlvbnMsIGNvbnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMK
IAogQmFzaWMgc2VsZWN0b3IgdGVzdHM6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBt
YXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiA6
Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFj
ZSBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAqfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJl
IEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworKnwqOjot
d2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ug
c2hvdWxkIG1hdGNoOiBQQVNTCiBodG1sfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhU
TUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworaHRtbHwqOjot
d2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ug
c2hvdWxkIG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0
Y2g6IFBBU1MKIC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwog
I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFt
ZXNwYWNlIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTI4LDYgKzMxLDcgQEAgaW5wdXQuYmFy
W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIAog
U2hvdWxkbid0IGlnbm9yZSBzZWxlY3RvciBhZnRlciB0aGUgdW5rbm93biBwc2V1ZG8gZWxlbWVu
dDoKIDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFT
UworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFT
UwogaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6
IFBBU1MKICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0
Y2g6IFBBU1MKIGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxk
IG5vdCBtYXRjaDogUEFTUwpAQCAtMzYsNiArNDAsNyBAQCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdl
YmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogCiBTaG91
bGQgbm90IG1hdGNoIGRpc2FibGVkIGlucHV0LCBiZWNhdXNlIHRoZSBkaXNhYmxlZCBzdGF0ZSBp
cyBvbiB0aGUgaW5wdXQsIG5vdCB0aGUgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRp
c2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRp
c2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVt
YjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10
aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dCNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTQ0LDYgKzQ5
LDcgQEAgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNo
b3VsZCBub3QgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIDpob3ZlciB3aGVuIHRoZSBtb3Vz
ZSBpcyBvdmVyIHRoZSBzbGlkZXIgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVy
IHNob3VsZCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxk
IG1hdGNoOiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1h
dGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6
IFBBU1MKIGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNo
OiBQQVNTCkBAIC01MSwxMyArNTcsNDcgQEAgaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVt
Yjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNs
aWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIHdoZW4g
Y29tYmluZWQgd2l0aCBkZXNjZW5kYW50IHNlbGVjdG9yczoKKyNiYXogOjotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNiYXogKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91
bGQgbWF0Y2g6IFBBU1MKICNiYXogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiAjYmF6IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiAjYmF6IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiAjYmF6IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBz
aG91bGQgbWF0Y2g6IFBBU1MKKy5xdXggOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0
Y2g6IFBBU1MKKy5xdXggKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CiAucXV4IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIC5x
dXggI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlu
cHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlu
cHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlu
cHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MK
KworU2hvdWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBzaWJsaW5nIHNlbGVjdG9yczoKKyNz
aWIgKyA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArICo6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0Ojot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyAjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dCNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0LmJhcjo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+
IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gKjo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQ6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0I2Zvbzo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQuYmFyOjotd2Vi
a2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dFt0eXBlPXJh
bmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArIDo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICo6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dCNmb286Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dC5iYXI6Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dFt0eXBl
PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+
IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICo6Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dDo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICNmb286Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dCNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dC5iYXI6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dFt0
eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNo
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1h
dGNoaW5nLmh0bWwKaW5kZXggNmFmZWViZTI5ZjQ1YTA5ZTg0ZGRjODcxOWNhMGVkOTg2ZWMxMmRi
ZC4uN2ZkMWVkZTBlNjBjYTI0MDMyNzJiMmYyNGEyODk4YWY3NTkyOGFiZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hp
bmcuaHRtbApAQCAtMTgsNiArMTgsNyBAQCB2YXIgTkFNRVNQQUNFX0RFQ0xBUkFUSU9OID0gJ0Bu
YW1lc3BhY2UgImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vbmFtZXNwYWNlIjtcbkBuYQogdmFyIFNF
TEVDVE9SX1RFU1RfUFJPUEVSVElFUyA9ICcgeyBoZWlnaHQ6IDFweDsgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lOyB9JzsKIHZhciBTRUxFQ1RPUlMgPSBbCiAnOjotd2Via2l0LXNsaWRlci10aHVt
YicsCisnKjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0Ojotd2Via2l0LXNsaWRlci10
aHVtYicsCiAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0I2Zvbzo6LXdlYmtp
dC1zbGlkZXItdGh1bWInLApAQCAtMjcsOSArMjgsMTEgQEAgdmFyIFNFTEVDVE9SUyA9IFsKIHZh
ciBESVNBQkxFRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7
IHJldHVybiBzZWxlY3RvciArICc6ZGlzYWJsZWQnOyB9KTsKIHZhciBIT1ZFUl9TRUxFQ1RPUlMg
PSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBzZWxlY3RvciArICc6
aG92ZXInOyB9KTsKIHZhciBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAo
ZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcjYmF6ICcgKyBzZWxlY3RvcjsgfSk7Ci1ERVND
RU5EQU5UX0lEX1NFTEVDVE9SUy5zaGlmdCgpOwogdmFyIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNU
T1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5xdXggJyAr
IHNlbGVjdG9yOyB9KTsKLURFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLnNoaWZ0KCk7Cit2YXIg
RElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxl
Y3RvcikgeyByZXR1cm4gJyNzaWIgKyAnICsgc2VsZWN0b3I7IH0pOwordmFyIElORElSRUNUX1NJ
QkxJTkdfSURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyBy
ZXR1cm4gJyNzaWIgfiAnICsgc2VsZWN0b3I7IH0pOwordmFyIERJUkVDVF9TSUJMSU5HX0NMQVNT
X1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcu
bGluZyArICcgKyBzZWxlY3RvcjsgfSk7Cit2YXIgSU5ESVJFQ1RfU0lCTElOR19DTEFTU19TRUxF
Q1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnLmxpbmcg
fiAnICsgc2VsZWN0b3I7IH0pOwogCiAvLyBjb252ZW5pZW5jZSBjb25zdGFudHMKIHZhciBNQVRD
SCA9IHRydWU7CkBAIC02NiwxMiArNjksMTYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAg
aGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKKyAgICB0ZXN0
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JheicpOwogICAgIGxvZ0RpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKICAgICBsb2coJ0Jhc2ljIHNlbGVjdG9y
IHRlc3RzOicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInKTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqOjotd2Via2l0LXNsaWRlci10
aHVtYicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJyp8
Ojotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CisgICAgcnVuU2VsZWN0
b3JUZXN0KE1BVENILCAnKnwqOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNF
Uyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICdodG1s
fCo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKICAgICBydW5TZWxl
Y3RvclRlc3QoTUFUQ0gsICcjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNl
bGVjdG9yVGVzdChNQVRDSCwgJy5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CiAgICAgcnVu
U2VsZWN0b3JUZXN0KE5PX01BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRI
X05BTUVTUEFDRVMpOwpAQCAtMTA3LDcgKzExNCwxMyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAg
ICBsb2coJzxicj5TaG91bGQgbWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIGRlc2NlbmRhbnQgc2Vs
ZWN0b3JzOicpOwogICAgIERFU0NFTkRBTlRfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0
Y2gpOwogICAgIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gp
OwotICAgIGlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOworICAgIGxvZygnPGJy
PlNob3VsZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6Jyk7Cisg
ICAgRElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAg
IElORElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAg
IERJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAg
ICBJTkRJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsK
KworICAgIHRlc3RDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVy
KTsKIH0KIAogZnVuY3Rpb24gZXhwZWN0Tm9NYXRjaChzZWxlY3RvcikgewpAQCAtMTIzLDYgKzEz
Niw3IEBAIGZ1bmN0aW9uIGV4cGVjdE1hdGNoKHNlbGVjdG9yKSB7CiA8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CiAgICAgPHA+VGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21iaW5hdGlvbnMsIGNv
bnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMuPC9wPgogICAgIDxkaXYg
aWQ9ImJheiIgY2xhc3M9InF1eCI+CisgICAgICAgIDxzcGFuIGlkPSJzaWIiIGNsYXNzPSJsaW5n
Ij5TaWJsaW5nPC9zcGFuPgogICAgICAgICA8aW5wdXQgaWQ9ImZvbyIgY2xhc3M9ImJhciIgdHlw
ZT0icmFuZ2UiPgogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116199</attachid>
            <date>2011-11-22 04:16:07 -0800</date>
            <delta_ts>2011-11-23 23:34:27 -0800</delta_ts>
            <desc>work-in-progress #2b</desc>
            <filename>bug-72933-20111122211605.patch</filename>
            <type>text/plain</type>
            <size>19099</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYyOGViNjlhMTAwMjk4
NzhiNDE2MDQ5ZTdiMzU0ZTJlY2RiODY3MC4uMTU5ZGMxZmZiNTNiNjNmNjk5OWEyOGU0OTIxY2Uy
YzRjODYwMDJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTIyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgSGFuZGxlIGNyb3NzaW5nIG92ZXIg
c2hhZG93IGJvdW5kYXJ5IGZvciAicmF3IiBwc2V1ZG8tSUQgc2VsZWN0b3JzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bWF0Y2hSdWxl
c0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tTZWxl
Y3Rvcik6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JDaGVja2VyOjpjaGVja1BzZXVkb0lEU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JDaGVja2VyLmg6CisKIDIwMTEtMTEtMjEgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjk4NTQyKTogQ2hyb21pdW06IENTUyB0
ZXh0IGlzIHJlbmRlcmVkIG9uIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCAxNjI5NGZiNzNhMDc2OWYwZWVhZGZlNjIzMTJlZGY0MzRlM2FmMGRiLi45OTAw
ODM0MzQ0OTBhYTY0NDdjZWM4OThiMWQzM2NlYmMwODg1MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xNzk2LDcgKzE3OTYsMTIgQEAgaW5saW5lIGJvb2wg
Q1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
CiAgICAgfQogCiAgICAgLy8gU2xvdyBwYXRoLgotICAgIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0
b3JNYXRjaCBtYXRjaCA9IG1fY2hlY2tlci5jaGVja1NlbGVjdG9yKHJ1bGVEYXRhLnNlbGVjdG9y
KCksIG1fZWxlbWVudCwgbV9keW5hbWljUHNldWRvLCBmYWxzZSwgU2VsZWN0b3JDaGVja2VyOjpW
aXNpdGVkTWF0Y2hFbmFibGVkLCBzdHlsZSgpLCBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUt
PnJlbmRlclN0eWxlKCkgOiAwKTsKKyAgICBDU1NTZWxlY3Rvciogc2VsID0gcnVsZURhdGEuc2Vs
ZWN0b3IoKTsKKyAgICBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggbWF0Y2g7CisgICAg
aWYgKHNlbC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBzZWwtPmlz
VW5rbm93blBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgbWF0Y2ggPSBtX2NoZWNrZXIuY2hlY2tQ
c2V1ZG9JRFNlbGVjdG9yKHNlbCwgbV9lbGVtZW50LCBtX2R5bmFtaWNQc2V1ZG8sIFNlbGVjdG9y
Q2hlY2tlcjo6VmlzaXRlZE1hdGNoRW5hYmxlZCk7CisgICAgZWxzZQorICAgICAgICBtYXRjaCA9
IG1fY2hlY2tlci5jaGVja1NlbGVjdG9yKHNlbCwgbV9lbGVtZW50LCBtX2R5bmFtaWNQc2V1ZG8s
IGZhbHNlLCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaEVuYWJsZWQsIHN0eWxlKCksIG1f
cGFyZW50Tm9kZSA/IG1fcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDApOwogICAgIGlmICht
YXRjaCAhPSBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2hlcykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmIChtX2NoZWNrZXIucHNldWRvU3R5bGUoKSAhPSBOT1BTRVVETyAmJiBt
X2NoZWNrZXIucHNldWRvU3R5bGUoKSAhPSBtX2R5bmFtaWNQc2V1ZG8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDJjNWM3MzIwMGQxOTdhZmQ5NmQwOWJlNjllOWVh
YTdmYTk5YzFmOWUuLjBmYmI0NzZmYTAwMjFhMjgwZjU1NzU0Y2JjYzkxZjkyN2YwNmEyZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC01MjMsMTUgKzUyMywxMjIg
QEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tT
ZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsLAogICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFp
bHNDb21wbGV0ZWx5OwogICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFt
aWNQc2V1ZG8sIHRydWUsIHZpc2l0ZWRNYXRjaFR5cGUsIGVsZW1lbnRTdHlsZSwgZWxlbWVudFBh
cmVudFN0eWxlKTsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgorICAg
ICAgICAvLyBQc2V1ZG8tSUQgc2VsZWN0b3JzIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBieSBj
aGVja1BzZXVkb0lEU2VsZWN0b3IoKS4KKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21w
bGV0ZWx5OworICAgIH0KKworICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKK30K
KworU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tQ
c2V1ZG9JRFNlbGVjdG9yKAorICAgIENTU1NlbGVjdG9yKiBzZWwsCisgICAgRWxlbWVudCogZSwK
KyAgICBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbywKKyAgICBWaXNpdGVkTWF0Y2hUeXBlIHZpc2l0
ZWRNYXRjaFR5cGUpIGNvbnN0Cit7CisgICAgLy8gUHNldWRvLUlEIGhhcyB0byBtYXRjaAorICAg
IGlmIChlLT5zaGFkb3dQc2V1ZG9JZCgpICE9IHNlbC0+dmFsdWUoKSkKKyAgICAgICAgcmV0dXJu
IFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworCisgICAgLy8gVGhlIG5vZGUgbXVzdCBiZSBpbiBh
IHNoYWRvdyB0cmVlLiBDaGVjayB0aGlzIGFuZCBzd2l0Y2ggdG8gdGhlIGhvc3Qgbm9kZSBmb3Ig
dGhlIHJlc3QuCisgICAgTm9kZSogc2hhZG93SG9zdE5vZGUgPSBlLT5zaGFkb3dBbmNlc3Rvck5v
ZGUoKTsKKyAgICBpZiAoc2hhZG93SG9zdE5vZGUgPT0gZSB8fCAhc2hhZG93SG9zdE5vZGUtPmlz
RWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5Owor
ICAgIGUgPSB0b0VsZW1lbnQoc2hhZG93SG9zdE5vZGUpOworCisgICAgLy8gRmxhZyBwcmVzZW5j
ZSBvZiBwc2V1ZG8tSUQgc2VsZWN0b3JzCisgICAgbV9oYXNVbmtub3duUHNldWRvRWxlbWVudHMg
PSB0cnVlOworCisgICAgLy8gVGhlIHJlc3Qgb2YgdGhlIHNlbGVjdG9ycyBoYXMgdG8gbWF0Y2gK
KyAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWwtPnJlbGF0aW9uKCk7CisK
KyAgICAvLyBQcmVwYXJlIG5leHQgc2VsCisgICAgc2VsID0gc2VsLT50YWdIaXN0b3J5KCk7Cisg
ICAgaWYgKCFzZWwpCisgICAgICAgIHJldHVybiBTZWxlY3Rvck1hdGNoZXM7CisKKyAgICBpZiAo
cmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKSB7CisgICAgICAgIC8vIEJhaWwt
b3V0IGlmIHRoaXMgc2VsZWN0b3IgaXMgaXJyZWxldmFudCBmb3IgdGhlIHBzZXVkb1N0eWxlCisg
ICAgICAgIGlmIChtX3BzZXVkb1N0eWxlICE9IE5PUFNFVURPICYmIG1fcHNldWRvU3R5bGUgIT0g
ZHluYW1pY1BzZXVkbykKKyAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVs
eTsKKworICAgICAgICAvLyBEaXNhYmxlIDp2aXNpdGVkIG1hdGNoaW5nIHdoZW4gd2Ugc2VlIHRo
ZSBmaXJzdCBsaW5rIG9yIHRyeSB0byBtYXRjaCBhbnl0aGluZyBlbHNlIHRoYW4gYW4gYW5jZXN0
b3IuCisgICAgICAgIGlmIChlLT5pc0xpbmsoKSB8fCAocmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6
OkRlc2NlbmRhbnQgJiYgcmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OkNoaWxkICYmIHJlbGF0aW9u
ICE9IENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50KSkKKyAgICAgICAgICAgIHZpc2l0ZWRN
YXRjaFR5cGUgPSBWaXNpdGVkTWF0Y2hEaXNhYmxlZDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHJl
bGF0aW9uKSB7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudDoKKyAgICAgICAgZm9y
ICg7OykgeworICAgICAgICAgICAgQ29udGFpbmVyTm9kZSogbiA9IGUtPnBhcmVudE5vZGUoKTsK
KyAgICAgICAgICAgIGlmICghbiB8fCAhbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKKyAgICAgICAgICAgIGUgPSBzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obik7CisgICAgICAgICAgICBTZWxlY3Rvck1hdGNoIG1hdGNoID0g
Y2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIGZhbHNlLCB2aXNpdGVkTWF0Y2hU
eXBlKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCAhPSBTZWxlY3RvckZhaWxzTG9jYWxseSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNl
bGVjdG9yRmFpbHNDb21wbGV0ZWx5OworCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q2hpbGQ6Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIG4gPSBlLT5wYXJlbnROb2RlKCk7
CisgICAgICAgICAgICBpZiAoIW4gfHwgIW4tPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgICAgICAgICBlID0gdG9F
bGVtZW50KG4pOworICAgICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWlj
UHNldWRvLCBmYWxzZSwgdmlzaXRlZE1hdGNoVHlwZSkgPT0gU2VsZWN0b3JNYXRjaGVzKQorICAg
ICAgICAgICAgICAgIHJldHVybiBTZWxlY3Rvck1hdGNoZXM7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
RGlyZWN0QWRqYWNlbnQ6CiAgICAgICAgIHsKLSAgICAgICAgICAgIE5vZGUqIHNoYWRvd0hvc3RO
b2RlID0gZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7Ci0gICAgICAgICAgICBpZiAoc2hhZG93SG9z
dE5vZGUgPT0gZSB8fCAhc2hhZG93SG9zdE5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAg
ICAgIGlmICghbV9pc0NvbGxlY3RpbmdSdWxlc09ubHkgJiYgZS0+cGFyZW50Tm9kZSgpICYmIGUt
PnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlID0gZS0+cGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpOworICAg
ICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50
U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG4gPSBlLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAg
ICAgICAgICAgIHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAg
ICAgbiA9IG4tPnByZXZpb3VzU2libGluZygpOworICAgICAgICAgICAgaWYgKCFuKQogICAgICAg
ICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKLSAgICAgICAgICAgIGUg
PSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oc2hhZG93SG9zdE5vZGUpOwotICAgICAgICAgICAgcmV0
dXJuIGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwgdmlzaXRlZE1h
dGNoVHlwZSk7CisgICAgICAgICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworICAg
ICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwg
dmlzaXRlZE1hdGNoVHlwZSkgPT0gU2VsZWN0b3JNYXRjaGVzKQorICAgICAgICAgICAgICAgIHJl
dHVybiBTZWxlY3Rvck1hdGNoZXM7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNlbGVjdG9y
RmFpbHNDb21wbGV0ZWx5OworCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2Vu
dDoKKyAgICAgICAgaWYgKCFtX2lzQ29sbGVjdGluZ1J1bGVzT25seSAmJiBlLT5wYXJlbnROb2Rl
KCkgJiYgZS0+cGFyZW50Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IGUtPnBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKTsK
KyAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICBwYXJlbnRTdHls
ZS0+c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOworICAgICAg
ICB9CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBOb2RlKiBuID0gZS0+cHJl
dmlvdXNTaWJsaW5nKCk7CisgICAgICAgICAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVtZW50Tm9k
ZSgpKQorICAgICAgICAgICAgICAgIG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAg
ICAgIGlmICghbikKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRl
bHk7CisgICAgICAgICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworICAgICAgICAg
ICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNl
dWRvLCBmYWxzZSwgdmlzaXRlZE1hdGNoVHlwZSk7CisgICAgICAgICAgICBpZiAobWF0Y2ggIT0g
U2VsZWN0b3JGYWlsc0xvY2FsbHkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAg
ICAgICB9OworICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcjoKKyAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cg
YW55dGhpbmcgZm9sbG93aW5nIGEgcHNldWRvLUlEIHNlbGVjdG9yLgorICAgICAgICByZXR1cm4g
U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dE
ZXNjZW5kYW50OgorICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1
ZG8sIGZhbHNlLCB2aXNpdGVkTWF0Y2hUeXBlKSA9PSBTZWxlY3Rvck1hdGNoZXMpCisgICAgICAg
ICAgICByZXR1cm4gU2VsZWN0b3JNYXRjaGVzOworICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWls
c0NvbXBsZXRlbHk7CiAgICAgfQogCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OwogfQogCkBAIC0xMTk1LDEwICsxMzAyLDEwIEBA
IGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWws
IEVsZW1lbnQqIGUsIFBzZXVkb0lkJiBkCiAgICAgICAgIGlmICghZWxlbWVudFN0eWxlICYmICFt
X2lzQ29sbGVjdGluZ1J1bGVzT25seSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
ICAgICBpZiAoc2VsLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKLSAgICAgICAgICAgIG1f
aGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBlLT5z
aGFkb3dQc2V1ZG9JZCgpID09IHNlbC0+dmFsdWUoKTsKLSAgICAgICAgfQorICAgICAgICAvLyBX
ZSBkb24ndCBhbGxvdyBwc2V1ZG8tSUQgc2VsZWN0b3JzIGluIHRoZSBtaWRkbGUgb2YgYSBjb21w
bGV4IHNlbGVjdG9yLgorICAgICAgICAvLyBQc2V1ZG8tSUQgc2VsZWN0b3JzIGF0IHRoZSBlbmQg
YXJlIGhhbmRsZWQgaW4gY2hlY2tQc2V1ZG9JRFNlbGVjdG9yKCkuCisgICAgICAgIGlmIChzZWwt
PmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBQc2V1ZG9JZCBwc2V1ZG9JZCA9IENTU1NlbGVjdG9yOjpwc2V1ZG9JZChzZWwtPnBz
ZXVkb1R5cGUoKSk7CiAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCA3NjBiYTUyMDdiZTU3NGM1ZGZlOGE5
YTA0Yjk3MDBlNGQwY2RmMjhkLi5jZDNkZDQ5Y2IxOTJhOWJhYTMzYmNlN2VmZjkzZDA2YzAyYjZm
YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC01Myw2ICs1Myw3IEBA
IHB1YmxpYzoKICAgICBlbnVtIFZpc2l0ZWRNYXRjaFR5cGUgeyBWaXNpdGVkTWF0Y2hEaXNhYmxl
ZCwgVmlzaXRlZE1hdGNoRW5hYmxlZCB9OwogICAgIGJvb2wgY2hlY2tTZWxlY3RvcihDU1NTZWxl
Y3RvciosIEVsZW1lbnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9yID0gZmFsc2UpIGNv
bnN0OwogICAgIFNlbGVjdG9yTWF0Y2ggY2hlY2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVsZW1l
bnQqLCBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbywgYm9vbCBpc1N1YlNlbGVjdG9yLCBWaXNpdGVk
TWF0Y2hUeXBlLCBSZW5kZXJTdHlsZSogPSAwLCBSZW5kZXJTdHlsZSogZWxlbWVudFBhcmVudFN0
eWxlID0gMCkgY29uc3Q7CisgICAgU2VsZWN0b3JNYXRjaCBjaGVja1BzZXVkb0lEU2VsZWN0b3Io
Q1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8sIFZpc2l0ZWRN
YXRjaFR5cGUpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGlzRmFzdENoZWNrYWJsZVNlbGVjdG9y
KGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgYm9vbCBmYXN0Q2hlY2tTZWxlY3Rvcihjb25zdCBD
U1NTZWxlY3RvciosIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFlODFlMWMxZGM4
YzZjY2RlMTIyOTA5NDViOWFkYzIzNmQzNTdjZWUuLjE3ZmU0MTM5YTEwZjNhZWFiNmE3ZWNkZTE5
YTk5YzNmODc0YTNmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0yMiAgUm9sYW5k
IFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KKworICAgICAgICAiUmF3IiBw
c2V1ZG8gc2VsZWN0b3JzIGRvbid0IG1hdGNoIGlmIGltbWVkaWF0ZWx5IGFmdGVyIGEgY2hpbGQg
b3IgZGVzY2VuZGFudCBjb21iaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MjkzMworCisgICAgICAgIEV4dGVuZCB0ZXN0IGNhc2VzIHRvIGlu
Y2x1ZGUgInJhdyIgcHNldWRvLUlEIHNlbGVjdG9ycyBhbmQgc2libGluZyBjb21iaW5hdG9ycy4K
KyAgICAgICAgQWxzbyBhZGQgYSBmZXcgY2FzZXMgd2l0aCBleHBsaWNpdCB1bml2ZXJzYWwgc2Vs
ZWN0b3IuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWw6
CisKIDIwMTEtMTEtMjEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0dUS10gRW5hYmxlIFdlYlNvY2tldCBoeWJpIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hp
bmctZXhwZWN0ZWQudHh0CmluZGV4IGE4OTY5MGYzOWE0NmYzMDA2N2Q5ZDczM2EwZWE1NDVlNGRj
MzE5ZmEuLjYwYjZmYTM2NmI5OGUxNTI2NmMxMzY2OTQyNDgzNWRkNDUyMDMwYTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmct
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVs
ZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC0yLDkgKzIsMTIgQEAgVGVzdHMgdmFyaW91
cyBzZWxlY3RvciBjb21iaW5hdGlvbnMsIGNvbnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVu
dCBzZWxlY3RvcnMKIAogQmFzaWMgc2VsZWN0b3IgdGVzdHM6CiA6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZh
dWx0IG5hbWVzcGFjZSBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAqfDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDog
UEFTUworKnwqOjotd2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVs
dCBuYW1lc3BhY2Ugc2hvdWxkIG1hdGNoOiBQQVNTCiBodG1sfDo6LXdlYmtpdC1zbGlkZXItdGh1
bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFT
UworaHRtbHwqOjotd2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVs
dCBuYW1lc3BhY2Ugc2hvdWxkIG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKIC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBt
YXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90
IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTI4LDYgKzMxLDcg
QEAgaW5wdXQuYmFyW3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0
Y2g6IFBBU1MKIAogU2hvdWxkbid0IGlnbm9yZSBzZWxlY3RvciBhZnRlciB0aGUgdW5rbm93biBw
c2V1ZG8gZWxlbWVudDoKIDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5v
dCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5v
dCBtYXRjaDogUEFTUwogaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3Vs
ZCBub3QgbWF0Y2g6IFBBU1MKICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNo
b3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlz
YWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwpAQCAtMzYsNiArNDAsNyBAQCBpbnB1dFt0eXBl
PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDog
UEFTUwogCiBTaG91bGQgbm90IG1hdGNoIGRpc2FibGVkIGlucHV0LCBiZWNhdXNlIHRoZSBkaXNh
YmxlZCBzdGF0ZSBpcyBvbiB0aGUgaW5wdXQsIG5vdCB0aGUgdGh1bWI6CiA6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0Ojotd2Via2l0
LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dCNm
b286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MK
QEAgLTQ0LDYgKzQ5LDcgQEAgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1i
OmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIDpob3ZlciB3
aGVuIHRoZSBtb3VzZSBpcyBvdmVyIHRoZSBzbGlkZXIgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6
aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92
ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBz
aG91bGQgbWF0Y2g6IFBBU1MKIGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIg
c2hvdWxkIG1hdGNoOiBQQVNTCkBAIC01MSwxMyArNTcsNDcgQEAgaW5wdXQuYmFyOjotd2Via2l0
LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxk
IG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBkZXNjZW5kYW50IHNlbGVjdG9yczoKKyNiYXogOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNiYXogKjo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0Ojotd2Via2l0LXNsaWRl
ci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKICNiYXogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5xdXggOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5xdXggKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxk
IG1hdGNoOiBQQVNTCiAucXV4IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0
Y2g6IFBBU1MKIC5xdXggI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAucXV4IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAucXV4IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAucXV4IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQg
bWF0Y2g6IFBBU1MKKworU2hvdWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBzaWJsaW5nIHNl
bGVjdG9yczoKKyNzaWIgKyA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UworI3NpYiArICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3Np
YiArIGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIg
KyAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBp
bnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiAr
IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2li
ICsgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDog
UEFTUworI3NpYiB+IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisj
c2liIH4gKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4g
aW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICNm
b286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0
I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5w
dXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBp
bnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CisubGluZyArIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGlu
ZyArICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBp
bnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICNm
b286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1
dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBp
bnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcg
KyBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCisubGluZyB+IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisu
bGluZyB+ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcg
fiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+
ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBp
bnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcg
fiBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxp
bmcgfiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNo
OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1l
bGVtZW50LW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVk
by1lbGVtZW50LW1hdGNoaW5nLmh0bWwKaW5kZXggNmFmZWViZTI5ZjQ1YTA5ZTg0ZGRjODcxOWNh
MGVkOTg2ZWMxMmRiZC4uN2ZkMWVkZTBlNjBjYTI0MDMyNzJiMmYyNGEyODk4YWY3NTkyOGFiZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1t
YXRjaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVs
ZW1lbnQtbWF0Y2hpbmcuaHRtbApAQCAtMTgsNiArMTgsNyBAQCB2YXIgTkFNRVNQQUNFX0RFQ0xB
UkFUSU9OID0gJ0BuYW1lc3BhY2UgImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vbmFtZXNwYWNlIjtc
bkBuYQogdmFyIFNFTEVDVE9SX1RFU1RfUFJPUEVSVElFUyA9ICcgeyBoZWlnaHQ6IDFweDsgLXdl
YmtpdC1hcHBlYXJhbmNlOiBub25lOyB9JzsKIHZhciBTRUxFQ1RPUlMgPSBbCiAnOjotd2Via2l0
LXNsaWRlci10aHVtYicsCisnKjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0Ojotd2Vi
a2l0LXNsaWRlci10aHVtYicsCiAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0
I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLApAQCAtMjcsOSArMjgsMTEgQEAgdmFyIFNFTEVD
VE9SUyA9IFsKIHZhciBESVNBQkxFRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9u
KHNlbGVjdG9yKSB7IHJldHVybiBzZWxlY3RvciArICc6ZGlzYWJsZWQnOyB9KTsKIHZhciBIT1ZF
Ul9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBz
ZWxlY3RvciArICc6aG92ZXInOyB9KTsKIHZhciBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUyA9IFNF
TEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcjYmF6ICcgKyBzZWxlY3Rv
cjsgfSk7Ci1ERVNDRU5EQU5UX0lEX1NFTEVDVE9SUy5zaGlmdCgpOwogdmFyIERFU0NFTkRBTlRf
Q0xBU1NfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1
cm4gJy5xdXggJyArIHNlbGVjdG9yOyB9KTsKLURFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLnNo
aWZ0KCk7Cit2YXIgRElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChm
dW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJyNzaWIgKyAnICsgc2VsZWN0b3I7IH0pOwordmFy
IElORElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihz
ZWxlY3RvcikgeyByZXR1cm4gJyNzaWIgfiAnICsgc2VsZWN0b3I7IH0pOwordmFyIERJUkVDVF9T
SUJMSU5HX0NMQVNTX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3Ip
IHsgcmV0dXJuICcubGluZyArICcgKyBzZWxlY3RvcjsgfSk7Cit2YXIgSU5ESVJFQ1RfU0lCTElO
R19DTEFTU19TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJl
dHVybiAnLmxpbmcgfiAnICsgc2VsZWN0b3I7IH0pOwogCiAvLyBjb252ZW5pZW5jZSBjb25zdGFu
dHMKIHZhciBNQVRDSCA9IHRydWU7CkBAIC02NiwxMiArNjksMTYgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpCiB7CiAgICAgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylb
MF07CiAgICAgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVsw
XTsKKyAgICB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JheicpOwog
ICAgIGxvZ0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKICAgICBsb2coJ0Jh
c2ljIHNlbGVjdG9yIHRlc3RzOicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJzo6LXdl
YmtpdC1zbGlkZXItdGh1bWInKTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqOjotd2Vi
a2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJzo6LXdl
YmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVz
dChNQVRDSCwgJyp8Ojotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7Cisg
ICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnKnwqOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJ
VEhfTkFNRVNQQUNFUyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnaHRtbHw6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKKyAgICBydW5TZWxlY3RvclRlc3Qo
TUFUQ0gsICdodG1sfCo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsK
ICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYicp
OwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJy5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1i
Jyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE5PX01BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwpAQCAtMTA3LDcgKzExNCwxMyBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkKICAgICBsb2coJzxicj5TaG91bGQgbWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIGRl
c2NlbmRhbnQgc2VsZWN0b3JzOicpOwogICAgIERFU0NFTkRBTlRfSURfU0VMRUNUT1JTLmZvckVh
Y2goZXhwZWN0TWF0Y2gpOwogICAgIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLmZvckVhY2go
ZXhwZWN0TWF0Y2gpOwotICAgIGlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOwor
ICAgIGxvZygnPGJyPlNob3VsZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxl
Y3RvcnM6Jyk7CisgICAgRElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0
TWF0Y2gpOworICAgIElORElSRUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0
TWF0Y2gpOworICAgIERJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVj
dE1hdGNoKTsKKyAgICBJTkRJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4
cGVjdE1hdGNoKTsKKworICAgIHRlc3RDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0
ZXN0Q29udGFpbmVyKTsKIH0KIAogZnVuY3Rpb24gZXhwZWN0Tm9NYXRjaChzZWxlY3RvcikgewpA
QCAtMTIzLDYgKzEzNiw3IEBAIGZ1bmN0aW9uIGV4cGVjdE1hdGNoKHNlbGVjdG9yKSB7CiA8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CiAgICAgPHA+VGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21i
aW5hdGlvbnMsIGNvbnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMuPC9w
PgogICAgIDxkaXYgaWQ9ImJheiIgY2xhc3M9InF1eCI+CisgICAgICAgIDxzcGFuIGlkPSJzaWIi
IGNsYXNzPSJsaW5nIj5TaWJsaW5nPC9zcGFuPgogICAgICAgICA8aW5wdXQgaWQ9ImZvbyIgY2xh
c3M9ImJhciIgdHlwZT0icmFuZ2UiPgogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116481</attachid>
            <date>2011-11-23 23:34:34 -0800</date>
            <delta_ts>2011-11-30 21:19:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72933-20111124163432.patch</filename>
            <type>text/plain</type>
            <size>20438</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxMzAwY2M2NTU3ZmNh
OTAyYWQxOTVjMDgwNTcwNTExMmFkZDc0YS4uZGFjZjYwOWNiZDkwMmM3ZjE3YWNjYjQ5M2UzY2I3
NWVlNDFlODk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTIyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgSGFuZGxlIGNyb3NzaW5nIG92ZXIg
c2hhZG93IGJvdW5kYXJ5IGZvciAicmF3IiBwc2V1ZG8tSUQgc2VsZWN0b3JzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bWF0Y2hSdWxl
c0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tTZWxl
Y3Rvcik6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JDaGVja2VyOjpjaGVja1BzZXVkb0lEU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JDaGVja2VyLmg6CisKIDIwMTEtMTEtMjMgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMwNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAwNmI5
ZjlhNmFhYmE1N2E3NDdiNjc2NjQwMTZhY2IyNGFhYWYzNGU2Li5mYzMxYmIxZjY3ODIyMmE3OGYw
MzZlOTk4OWI5MzBlYTI2MDc3ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCkBAIC0xNzk2LDcgKzE3OTYsMTIgQEAgaW5saW5lIGJvb2wgQ1NTU3R5bGVTZWxlY3Rv
cjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiAgICAgfQogCiAgICAg
Ly8gU2xvdyBwYXRoLgotICAgIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBtYXRjaCA9
IG1fY2hlY2tlci5jaGVja1NlbGVjdG9yKHJ1bGVEYXRhLnNlbGVjdG9yKCksIG1fZWxlbWVudCwg
bV9keW5hbWljUHNldWRvLCBmYWxzZSwgU2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hFbmFi
bGVkLCBzdHlsZSgpLCBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkg
OiAwKTsKKyAgICBDU1NTZWxlY3Rvciogc2VsID0gcnVsZURhdGEuc2VsZWN0b3IoKTsKKyAgICBT
ZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggbWF0Y2g7CisgICAgaWYgKHNlbC0+bV9tYXRj
aCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBzZWwtPmlzVW5rbm93blBzZXVkb0Vs
ZW1lbnQoKSkKKyAgICAgICAgbWF0Y2ggPSBtX2NoZWNrZXIuY2hlY2tQc2V1ZG9JRFNlbGVjdG9y
KHNlbCwgbV9lbGVtZW50LCBtX2R5bmFtaWNQc2V1ZG8sIFNlbGVjdG9yQ2hlY2tlcjo6VmlzaXRl
ZE1hdGNoRW5hYmxlZCwgc3R5bGUoKSwgbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5k
ZXJTdHlsZSgpIDogMCk7CisgICAgZWxzZQorICAgICAgICBtYXRjaCA9IG1fY2hlY2tlci5jaGVj
a1NlbGVjdG9yKHNlbCwgbV9lbGVtZW50LCBtX2R5bmFtaWNQc2V1ZG8sIGZhbHNlLCBTZWxlY3Rv
ckNoZWNrZXI6OlZpc2l0ZWRNYXRjaEVuYWJsZWQsIHN0eWxlKCksIG1fcGFyZW50Tm9kZSA/IG1f
cGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDApOwogICAgIGlmIChtYXRjaCAhPSBTZWxlY3Rv
ckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2hlcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChtX2NoZWNrZXIucHNldWRvU3R5bGUoKSAhPSBOT1BTRVVETyAmJiBtX2NoZWNrZXIucHNldWRv
U3R5bGUoKSAhPSBtX2R5bmFtaWNQc2V1ZG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCmluZGV4IDJjNWM3MzIwMGQxOTdhZmQ5NmQwOWJlNjllOWVhYTdmYTk5YzFmOWUuLmY1
YTkyZDVlNzI0YjljOTAzY2FlZjNmMjM0ZWYzNTZiYTNlNjhhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC01MjMsMTUgKzUyMywxMzggQEAgU2VsZWN0b3JDaGVj
a2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3RvcihDU1NTZWxl
Y3Rvciogc2VsLAogICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5Owog
ICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIHRydWUs
IHZpc2l0ZWRNYXRjaFR5cGUsIGVsZW1lbnRTdHlsZSwgZWxlbWVudFBhcmVudFN0eWxlKTsKICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgotICAgICAgICB7Ci0gICAgICAg
ICAgICBOb2RlKiBzaGFkb3dIb3N0Tm9kZSA9IGUtPnNoYWRvd0FuY2VzdG9yTm9kZSgpOwotICAg
ICAgICAgICAgaWYgKHNoYWRvd0hvc3ROb2RlID09IGUgfHwgIXNoYWRvd0hvc3ROb2RlLT5pc0Vs
ZW1lbnROb2RlKCkpCisgICAgICAgIC8vIFBzZXVkby1JRCBzZWxlY3RvcnMgc2hvdWxkIGhhdmUg
YmVlbiBoYW5kbGVkIGJ5IGNoZWNrUHNldWRvSURTZWxlY3RvcigpLgorICAgICAgICByZXR1cm4g
U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgfQorCisgICAgcmV0dXJuIFNlbGVjdG9yRmFp
bHNDb21wbGV0ZWx5OworfQorCitTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0
b3JDaGVja2VyOjpjaGVja1BzZXVkb0lEU2VsZWN0b3IoCisgICAgQ1NTU2VsZWN0b3IqIHNlbCwK
KyAgICBFbGVtZW50KiBlLAorICAgIFBzZXVkb0lkJiBkeW5hbWljUHNldWRvLAorICAgIFZpc2l0
ZWRNYXRjaFR5cGUgdmlzaXRlZE1hdGNoVHlwZSwKKyAgICBSZW5kZXJTdHlsZSogZWxlbWVudFN0
eWxlLAorICAgIFJlbmRlclN0eWxlKiBlbGVtZW50UGFyZW50U3R5bGUpIGNvbnN0Cit7CisgICAg
Ly8gUHNldWRvLUlEIGhhcyB0byBtYXRjaAorICAgIGlmIChlLT5zaGFkb3dQc2V1ZG9JZCgpICE9
IHNlbC0+dmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5Owor
CisgICAgLy8gVGhlIG5vZGUgbXVzdCBiZSBpbiBhIHNoYWRvdyB0cmVlLiBDaGVjayB0aGlzIGFu
ZCBzd2l0Y2ggdG8gdGhlIGhvc3Qgbm9kZSBmb3IgdGhlIHJlc3QuCisgICAgTm9kZSogc2hhZG93
SG9zdE5vZGUgPSBlLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoc2hhZG93SG9zdE5v
ZGUgPT0gZSB8fCAhc2hhZG93SG9zdE5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0
dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworICAgIEVsZW1lbnQqIGhvc3QgPSB0b0VsZW1l
bnQoc2hhZG93SG9zdE5vZGUpOworCisgICAgLy8gRmxhZyBwcmVzZW5jZSBvZiBwc2V1ZG8tSUQg
c2VsZWN0b3JzCisgICAgbV9oYXNVbmtub3duUHNldWRvRWxlbWVudHMgPSB0cnVlOworCisgICAg
Zm9yICg7OykgeworICAgICAgICAvLyBUaGUgcmVzdCBvZiB0aGUgc2VsZWN0b3JzIGhhcyB0byBt
YXRjaAorICAgICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWwtPnJlbGF0
aW9uKCk7CisKKyAgICAgICAgLy8gUHJlcGFyZSBuZXh0IHNlbAorICAgICAgICBzZWwgPSBzZWwt
PnRhZ0hpc3RvcnkoKTsKKyAgICAgICAgaWYgKCFzZWwpCisgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JNYXRjaGVzOworCisgICAgICAgIGlmIChyZWxhdGlvbiAhPSBDU1NTZWxlY3Rvcjo6U3Vi
U2VsZWN0b3IpIHsKKyAgICAgICAgICAgIC8vIEJhaWwtb3V0IGlmIHRoaXMgc2VsZWN0b3IgaXMg
aXJyZWxldmFudCBmb3IgdGhlIHBzZXVkb1N0eWxlCisgICAgICAgICAgICBpZiAobV9wc2V1ZG9T
dHlsZSAhPSBOT1BTRVVETyAmJiBtX3BzZXVkb1N0eWxlICE9IGR5bmFtaWNQc2V1ZG8pCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OwotICAgICAgICAgICAg
ZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihzaGFkb3dIb3N0Tm9kZSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIGZhbHNlLCB2aXNpdGVk
TWF0Y2hUeXBlKTsKKworICAgICAgICAgICAgLy8gRGlzYWJsZSA6dmlzaXRlZCBtYXRjaGluZyB3
aGVuIHdlIHNlZSB0aGUgZmlyc3QgbGluayBvciB0cnkgdG8gbWF0Y2ggYW55dGhpbmcgZWxzZSB0
aGFuIGFuIGFuY2VzdG9yLgorICAgICAgICAgICAgaWYgKGhvc3QtPmlzTGluaygpIHx8IChyZWxh
dGlvbiAhPSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudCAmJiByZWxhdGlvbiAhPSBDU1NTZWxlY3Rv
cjo6Q2hpbGQgJiYgcmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpKQor
ICAgICAgICAgICAgICAgIHZpc2l0ZWRNYXRjaFR5cGUgPSBWaXNpdGVkTWF0Y2hEaXNhYmxlZDsK
KyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAocmVsYXRpb24pIHsKKyAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6RGVzY2VuZGFudDoKKyAgICAgICAgICAgIGUgPSBob3N0OworICAgICAgICAg
ICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIG4gPSBlLT5wYXJl
bnROb2RlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFuIHx8ICFuLT5pc0VsZW1lbnROb2RlKCkp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKKyAg
ICAgICAgICAgICAgICBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworICAgICAgICAgICAg
ICAgIFNlbGVjdG9yTWF0Y2ggbWF0Y2ggPSBjaGVja1NlbGVjdG9yKHNlbCwgZSwgZHluYW1pY1Bz
ZXVkbywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5cGUpOworICAgICAgICAgICAgICAgIGlmIChtYXRj
aCAhPSBTZWxlY3RvckZhaWxzTG9jYWxseSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1h
dGNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21w
bGV0ZWx5OworCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNoaWxkOgorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIG4gPSBob3N0LT5wYXJlbnROb2RlKCk7
CisgICAgICAgICAgICAgICAgaWYgKCFuIHx8ICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKKyAgICAgICAgICAg
ICAgICBlID0gdG9FbGVtZW50KG4pOworICAgICAgICAgICAgICAgIGlmIChjaGVja1NlbGVjdG9y
KHNlbCwgZSwgZHluYW1pY1BzZXVkbywgZmFsc2UsIHZpc2l0ZWRNYXRjaFR5cGUpID09IFNlbGVj
dG9yTWF0Y2hlcykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yTWF0Y2hlczsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVs
eTsKKworICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDoKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1faXNDb2xsZWN0aW5nUnVsZXNPbmx5ICYmIGhv
c3QtPnBhcmVudE5vZGUoKSAmJiBob3N0LT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSkg
eworICAgICAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBob3N0LT5w
YXJlbnROb2RlKCktPnJlbmRlclN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJl
bnRTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0eWxlLT5zZXRDaGlsZHJl
bkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIE5vZGUqIG4gPSBob3N0LT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAg
ICAgICAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgICAg
ICAgICBuID0gbi0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgICAgICAgICAgICAgaWYgKCFuKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAg
ICAgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKKyAgICAgICAgICAgICAg
ICBpZiAoY2hlY2tTZWxlY3RvcihzZWwsIGUsIGR5bmFtaWNQc2V1ZG8sIGZhbHNlLCB2aXNpdGVk
TWF0Y2hUeXBlKSA9PSBTZWxlY3Rvck1hdGNoZXMpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBTZWxlY3Rvck1hdGNoZXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJl
Y3RBZGphY2VudDoKKyAgICAgICAgICAgIGlmICghbV9pc0NvbGxlY3RpbmdSdWxlc09ubHkgJiYg
aG9zdC0+cGFyZW50Tm9kZSgpICYmIGhvc3QtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
KSB7CisgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gaG9zdC0+cGFy
ZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTdHls
ZSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRC
eUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGUg
PSBob3N0OworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBuID0gZS0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKG4gJiYg
IW4tPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgbiA9IG4tPnByZXZpb3Vz
U2libGluZygpOworICAgICAgICAgICAgICAgIGlmICghbikKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworICAgICAgICAgICAgICAgIGUgPSBzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obik7CisgICAgICAgICAgICAgICAgU2VsZWN0b3JNYXRjaCBtYXRj
aCA9IGNoZWNrU2VsZWN0b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCBmYWxzZSwgdmlzaXRlZE1h
dGNoVHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoICE9IFNlbGVjdG9yRmFpbHNMb2Nh
bGx5KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OworCisgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yOgorICAgICAgICAgICAgLy8gQSBzZWxlY3RvciBp
cyBpbnZhbGlkIGlmIHNvbWV0aGluZyBmb2xsb3dzIGEgcHNldWRvLWVsZW1lbnQKKyAgICAgICAg
ICAgIC8vIFdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBzY3JvbGxiYXIgcHNldWRvIGVsZW1lbnRz
IGFuZCBhbGxvdyBhIHNldCBvZiBwc2V1ZG8gY2xhc3NlcyAoYnV0IG5vdGhpbmcgZWxzZSkKKyAg
ICAgICAgICAgIC8vIHRvIGZvbGxvdyB0aGUgcHNldWRvIGVsZW1lbnRzLgorICAgICAgICAgICAg
aWYgKChlbGVtZW50U3R5bGUgfHwgbV9pc0NvbGxlY3RpbmdSdWxlc09ubHkpCisgICAgICAgICAg
ICAgICAgJiYgZHluYW1pY1BzZXVkbyAhPSBOT1BTRVVETworICAgICAgICAgICAgICAgICYmIGR5
bmFtaWNQc2V1ZG8gIT0gU0VMRUNUSU9OCisgICAgICAgICAgICAgICAgJiYgISgoUmVuZGVyU2Ny
b2xsYmFyOjpzY3JvbGxiYXJGb3JTdHlsZVJlc29sdmUoKSB8fCBkeW5hbWljUHNldWRvID09IFND
Uk9MTEJBUl9DT1JORVIgfHwgZHluYW1pY1BzZXVkbyA9PSBSRVNJWkVSKSAmJiBzZWwtPm1fbWF0
Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CisgICAgICAgICAgICBpZiAoIWNoZWNrT25lU2VsZWN0
b3Ioc2VsLCBlLCBkeW5hbWljUHNldWRvLCB0cnVlLCB2aXNpdGVkTWF0Y2hUeXBlLCBlbGVtZW50
U3R5bGUsIGVsZW1lbnRQYXJlbnRTdHlsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVj
dG9yRmFpbHNDb21wbGV0ZWx5OworICAgICAgICAgICAgLy8gQ29udGludWUgbG9vcC4KKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRh
bnQ6CisgICAgICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihzZWwsIGhvc3QsIGR5bmFtaWNQc2V1
ZG8sIGZhbHNlLCB2aXNpdGVkTWF0Y2hUeXBlKSA9PSBTZWxlY3Rvck1hdGNoZXMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIFNlbGVjdG9yTWF0Y2hlczsKKyAgICAgICAgICAgIHJldHVybiBTZWxl
Y3RvckZhaWxzQ29tcGxldGVseTsKICAgICAgICAgfQogICAgIH0KIAorICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKIH0KIApAQCAt
MTE5NSwxMCArMTMxOCwxMCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rv
cihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZW50KiBlLCBQc2V1ZG9JZCYgZAogICAgICAgICBpZiAo
IWVsZW1lbnRTdHlsZSAmJiAhbV9pc0NvbGxlY3RpbmdSdWxlc09ubHkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKHNlbC0+aXNVbmtub3duUHNldWRvRWxlbWVudCgp
KSB7Ci0gICAgICAgICAgICBtX2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IHRydWU7Ci0gICAg
ICAgICAgICByZXR1cm4gZS0+c2hhZG93UHNldWRvSWQoKSA9PSBzZWwtPnZhbHVlKCk7Ci0gICAg
ICAgIH0KKyAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgcHNldWRvLUlEIHNlbGVjdG9ycyBpbiB0
aGUgbWlkZGxlIG9mIGEgY29tcGxleCBzZWxlY3Rvci4KKyAgICAgICAgLy8gUHNldWRvLUlEIHNl
bGVjdG9ycyBhdCB0aGUgZW5kIGFyZSBoYW5kbGVkIGluIGNoZWNrUHNldWRvSURTZWxlY3Rvcigp
LgorICAgICAgICBpZiAoc2VsLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgUHNldWRvSWQgcHNldWRvSWQgPSBDU1NTZWxlY3Rv
cjo6cHNldWRvSWQoc2VsLT5wc2V1ZG9UeXBlKCkpOwogICAgICAgICBpZiAocHNldWRvSWQgPT0g
RklSU1RfTEVUVEVSKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKaW5kZXggNzYw
YmE1MjA3YmU1NzRjNWRmZThhOWEwNGI5NzAwZTRkMGNkZjI4ZC4uNDFlZDM4Yjg3ZDVjMjBmYjk2
ODM2MjFkZGJjYmMxNTFhZDJiOGJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
aApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBWaXNpdGVkTWF0Y2hUeXBlIHsg
VmlzaXRlZE1hdGNoRGlzYWJsZWQsIFZpc2l0ZWRNYXRjaEVuYWJsZWQgfTsKICAgICBib29sIGNo
ZWNrU2VsZWN0b3IoQ1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgYm9vbCBpc0Zhc3RDaGVja2FibGVT
ZWxlY3RvciA9IGZhbHNlKSBjb25zdDsKICAgICBTZWxlY3Rvck1hdGNoIGNoZWNrU2VsZWN0b3Io
Q1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8sIGJvb2wgaXNT
dWJTZWxlY3RvciwgVmlzaXRlZE1hdGNoVHlwZSwgUmVuZGVyU3R5bGUqID0gMCwgUmVuZGVyU3R5
bGUqIGVsZW1lbnRQYXJlbnRTdHlsZSA9IDApIGNvbnN0OworICAgIFNlbGVjdG9yTWF0Y2ggY2hl
Y2tQc2V1ZG9JRFNlbGVjdG9yKENTU1NlbGVjdG9yKiwgRWxlbWVudCosIFBzZXVkb0lkJiBkeW5h
bWljUHNldWRvLCBWaXNpdGVkTWF0Y2hUeXBlLCBSZW5kZXJTdHlsZSogPSAwLCBSZW5kZXJTdHls
ZSogZWxlbWVudFBhcmVudFN0eWxlID0gMCkgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgaXNGYXN0
Q2hlY2thYmxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqKTsKICAgICBib29sIGZhc3RDaGVj
a1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDk2ZGU3YzJjNTFjNTk4ZGMwYzUwODA5YzhiMzQxNWQ2ODRiNWJmYS4uODRiN2ZkYmQ4
OGJiOGUzZTg3YjhiZjdlZTZkN2Q4ZTA4NDgwMzU1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDExLTExLTIyICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgICJSYXciIHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRl
bHkgYWZ0ZXIgYSBjaGlsZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgRXh0ZW5k
IHRlc3QgY2FzZXMgdG8gaW5jbHVkZSAicmF3IiBwc2V1ZG8tSUQgc2VsZWN0b3JzIGFuZCBzaWJs
aW5nIGNvbWJpbmF0b3JzLgorICAgICAgICBBbHNvIGFkZCBhIGZldyBjYXNlcyB3aXRoIGV4cGxp
Y2l0IHVuaXZlcnNhbCBzZWxlY3Rvci4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1l
bnQtbWF0Y2hpbmcuaHRtbDoKKwogMjAxMS0xMS0yMyAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBn
b29nbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzA1NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1
ZG8tZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91
bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhODk2OTBm
MzlhNDZmMzAwNjdkOWQ3MzNhMGVhNTQ1ZTRkYzMxOWZhLi42MGI2ZmEzNjZiOThlMTUyNjZjMTM2
Njk0MjQ4MzVkZDQ1MjAzMGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtu
b3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dApA
QCAtMiw5ICsyLDEyIEBAIFRlc3RzIHZhcmlvdXMgc2VsZWN0b3IgY29tYmluYXRpb25zLCBjb250
YWluaW5nIHVua25vd24gcHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzCiAKIEJhc2ljIHNlbGVjdG9y
IHRlc3RzOgogOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyo6Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogOjotd2Via2l0LXNsaWRlci10
aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxkIG5vdCBtYXRj
aDogUEFTUwogKnw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZh
dWx0IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKKyp8Kjo6LXdlYmtpdC1zbGlkZXItdGh1
bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFT
UwogaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0
IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKK2h0bWx8Kjo6LXdlYmtpdC1zbGlkZXItdGh1
bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFT
UwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAuYmFyOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKICNmb286Oi13ZWJraXQtc2xp
ZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbm90
IG1hdGNoOiBQQVNTCkBAIC0yOCw2ICszMSw3IEBAIGlucHV0LmJhclt0eXBlPXJhbmdlXTo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAKIFNob3VsZG4ndCBpZ25vcmUg
c2VsZWN0b3IgYWZ0ZXIgdGhlIHVua25vd24gcHNldWRvIGVsZW1lbnQ6CiA6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0Ojotd2Via2l0
LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dCNm
b286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MK
QEAgLTM2LDYgKzQwLDcgQEAgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1i
OmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG5vdCBtYXRjaCBkaXNh
YmxlZCBpbnB1dCwgYmVjYXVzZSB0aGUgZGlzYWJsZWQgc3RhdGUgaXMgb24gdGhlIGlucHV0LCBu
b3QgdGhlIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90
IG1hdGNoOiBQQVNTCisqOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90
IG1hdGNoOiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxk
IG5vdCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hv
dWxkIG5vdCBtYXRjaDogUEFTUwogaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNh
YmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCkBAIC00NCw2ICs0OSw3IEBAIGlucHV0W3R5cGU9
cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQ
QVNTCiAKIFNob3VsZCBtYXRjaCA6aG92ZXIgd2hlbiB0aGUgbW91c2UgaXMgb3ZlciB0aGUgc2xp
ZGVyIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBB
U1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUwogaW5w
dXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUwogI2Zvbzo6
LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiBpbnB1dCNmb286
Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUwpAQCAtNTEsMTMg
KzU3LDQ3IEBAIGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1h
dGNoOiBQQVNTCiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIg
c2hvdWxkIG1hdGNoOiBQQVNTCiAKIFNob3VsZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggZGVz
Y2VuZGFudCBzZWxlY3RvcnM6CisjYmF6IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCisjYmF6ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UwogI2JheiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAj
YmF6ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2JheiBp
bnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2JheiBp
bnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2JheiBp
bnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CisucXV4IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisucXV4ICo6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dDo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4ICNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dCNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dC5iYXI6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1eCBpbnB1dFt0eXBlPXJhbmdlXTo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisKK1Nob3VsZCBtYXRjaCB3
aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6Cisjc2liICsgOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyAqOjotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0
LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBz
aG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91
bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyA6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAqOjotd2Via2l0LXNsaWRlci10aHVtYiBz
aG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91
bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBz
aG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAqOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBz
aG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sCmluZGV4
IDZhZmVlYmUyOWY0NWEwOWU4NGRkYzg3MTljYTBlZDk4NmVjMTJkYmQuLjdmZDFlZGUwZTYwY2Ey
NDAzMjcyYjJmMjRhMjg5OGFmNzU5MjhhYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwKQEAgLTE4LDYg
KzE4LDcgQEAgdmFyIE5BTUVTUEFDRV9ERUNMQVJBVElPTiA9ICdAbmFtZXNwYWNlICJodHRwOi8v
ZXhhbXBsZS5jb20vZm9vL25hbWVzcGFjZSI7XG5AbmEKIHZhciBTRUxFQ1RPUl9URVNUX1BST1BF
UlRJRVMgPSAnIHsgaGVpZ2h0OiAxcHg7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfSc7CiB2
YXIgU0VMRUNUT1JTID0gWwogJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAorJyo6Oi13ZWJraXQt
c2xpZGVyLXRodW1iJywKICdpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJyNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iJywKICdpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywK
QEAgLTI3LDkgKzI4LDExIEBAIHZhciBTRUxFQ1RPUlMgPSBbCiB2YXIgRElTQUJMRURfU0VMRUNU
T1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gc2VsZWN0b3Ig
KyAnOmRpc2FibGVkJzsgfSk7CiB2YXIgSE9WRVJfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChm
dW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gc2VsZWN0b3IgKyAnOmhvdmVyJzsgfSk7CiB2YXIg
REVTQ0VOREFOVF9JRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9y
KSB7IHJldHVybiAnI2JheiAnICsgc2VsZWN0b3I7IH0pOwotREVTQ0VOREFOVF9JRF9TRUxFQ1RP
UlMuc2hpZnQoKTsKIHZhciBERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5t
YXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcucXV4ICcgKyBzZWxlY3RvcjsgfSk7Ci1E
RVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUy5zaGlmdCgpOwordmFyIERJUkVDVF9TSUJMSU5HX0lE
X1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcj
c2liICsgJyArIHNlbGVjdG9yOyB9KTsKK3ZhciBJTkRJUkVDVF9TSUJMSU5HX0lEX1NFTEVDVE9S
UyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcjc2liIH4gJyAr
IHNlbGVjdG9yOyB9KTsKK3ZhciBESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMgPSBTRUxF
Q1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnLmxpbmcgKyAnICsgc2VsZWN0
b3I7IH0pOwordmFyIElORElSRUNUX1NJQkxJTkdfQ0xBU1NfU0VMRUNUT1JTID0gU0VMRUNUT1JT
Lm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5saW5nIH4gJyArIHNlbGVjdG9yOyB9
KTsKIAogLy8gY29udmVuaWVuY2UgY29uc3RhbnRzCiB2YXIgTUFUQ0ggPSB0cnVlOwpAQCAtNjYs
MTIgKzY5LDE2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGhlYWQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAgIGlucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CisgICAgdGVzdENvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdiYXonKTsKICAgICBsb2dEaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbG9nJyk7CiAgICAgbG9nKCdCYXNpYyBzZWxlY3RvciB0ZXN0czonKTsKICAgICBy
dW5TZWxlY3RvclRlc3QoTUFUQ0gsICc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CisgICAgcnVu
U2VsZWN0b3JUZXN0KE1BVENILCAnKjo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBydW5T
ZWxlY3RvclRlc3QoTk9fTUFUQ0gsICc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1F
U1BBQ0VTKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqfDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOworICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJyp8
Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwogICAgIHJ1blNlbGVj
dG9yVGVzdChNQVRDSCwgJ2h0bWx8Ojotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQ
QUNFUyk7CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnaHRtbHwqOjotd2Via2l0LXNsaWRl
ci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAn
I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gs
ICcuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChOT19N
QVRDSCwgJyNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKQEAg
LTEwNyw3ICsxMTQsMTMgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgbG9nKCc8YnI+U2hvdWxk
IG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBkZXNjZW5kYW50IHNlbGVjdG9yczonKTsKICAgICBE
RVNDRU5EQU5UX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKICAgICBERVNDRU5E
QU5UX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKLSAgICBpbnB1dC5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGlucHV0KTsKKyAgICBsb2coJzxicj5TaG91bGQgbWF0Y2ggd2hl
biBjb21iaW5lZCB3aXRoIHNpYmxpbmcgc2VsZWN0b3JzOicpOworICAgIERJUkVDVF9TSUJMSU5H
X0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBJTkRJUkVDVF9TSUJMSU5H
X0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBESVJFQ1RfU0lCTElOR19D
TEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7CisgICAgSU5ESVJFQ1RfU0lCTElO
R19DTEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7CisKKyAgICB0ZXN0Q29udGFp
bmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CiB9CiAKIGZ1bmN0aW9u
IGV4cGVjdE5vTWF0Y2goc2VsZWN0b3IpIHsKQEAgLTEyMyw2ICsxMzYsNyBAQCBmdW5jdGlvbiBl
eHBlY3RNYXRjaChzZWxlY3RvcikgewogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogICAgIDxw
PlRlc3RzIHZhcmlvdXMgc2VsZWN0b3IgY29tYmluYXRpb25zLCBjb250YWluaW5nIHVua25vd24g
cHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzLjwvcD4KICAgICA8ZGl2IGlkPSJiYXoiIGNsYXNzPSJx
dXgiPgorICAgICAgICA8c3BhbiBpZD0ic2liIiBjbGFzcz0ibGluZyI+U2libGluZzwvc3Bhbj4K
ICAgICAgICAgPGlucHV0IGlkPSJmb28iIGNsYXNzPSJiYXIiIHR5cGU9InJhbmdlIj4KICAgICA8
L2Rpdj4KICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117325</attachid>
            <date>2011-11-30 21:20:18 -0800</date>
            <delta_ts>2011-12-01 22:19:55 -0800</delta_ts>
            <desc>patch, alternative solution</desc>
            <filename>bug-72933-20111201142015.patch</filename>
            <type>text/plain</type>
            <size>11500</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQxNzVmNzc2Y2E3NWMx
ZTQzNzY5NTVjZDNjOGE5ZmQ4NjU2ZGU2Ny4uMzVkMzQ0YTYyOWE3MGE2OTQzNDc0OWMwZmJhZDAw
ODIwYThjYzNlOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTMwICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgUmVtb3ZlIHNob3J0Y3V0IHRoYXQg
cHJldmVudHMgdW5pdmVyc2FsIHNlbGVjdG9ycyBmcm9tIGJlaW5nIGNyZWF0ZWQgYmVmb3JlIHNo
YWRvdyBwc2V1ZG8tZWxlbWVudHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6CisKIDIwMTEtMTEtMzAg
IFRha2FzaGkgVG95b3NoaW1hICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBPVkVSUklERSB0byBXZWJTb2NrZXQgcmVsYXRlZCBzb3VyY2VzIGZvciBzYWZlIGluaGVyaXRh
bmNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNzVjN2JjOWRlN2M3ZDU3MzczODRj
YWY4MDQwMTEzZjMzOGJiY2U0ZS4uMzRkOWJmYWRjZGRlMzhiOTRkYzk4ZDdkNTU2ODZlMGY0M2Iy
ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTc2NzMsMTEgKzc2NzMsOCBAQCB2
b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWVzcGFjZVByZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
Tm8gbmVlZCB0byBjcmVhdGUgYW4gZXh0cmEgZWxlbWVudCBuYW1lIHNlbGVjdG9yIGlmIHdlIGFy
ZSBtYXRjaGluZyBhbnkgZWxlbWVudAotICAgIC8vIGluIGFueSBuYW1lc3BhY2UuCi0gICAgaWYg
KGVsZW1lbnROYW1lID09IHN0YXJBdG9tICYmIG1fZGVmYXVsdE5hbWVzcGFjZSA9PSBzdGFyQXRv
bSkKLSAgICAgICAgcmV0dXJuOwotCisgICAgLy8gTm90ZSB0aGF0IENTU1NlbGVjdG9yOjpTaGFk
b3dEZXNjZW5kYW50IG5lZWRzIHRvIGJlIHVzZWQuCisgICAgLy8gVGhlcmVmb3JlIHdlIGNyZWF0
ZSBhIG5ldyBTZWxlY3RvciBoZXJlIGluIGFueSBjYXNlLCBldmVuIGlmIG1hdGNoaW5nIGFueSAo
aG9zdCkgZWxlbWVudCBpbiBhbnkgbmFtZXNwYWNlLgogICAgIE93blB0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4gZWxlbWVudE5hbWVTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBDU1NQYXJzZXJTZWxlY3Rv
cik7CiAgICAgZWxlbWVudE5hbWVTZWxlY3Rvci0+c2V0VGFnKHRhZyk7CiAgICAgbGFzdFNoYWRv
d0Rlc2NlbmRhbnQtPnNldFRhZ0hpc3RvcnkoZWxlbWVudE5hbWVTZWxlY3Rvci5yZWxlYXNlKCkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGI1MTFiNWZlZGQxZWEyN2Q4MDViYTVjMTQ0N2QwYWUzYjQ5MjUzODQuLmZkNTMx
ZWRmNTk4Y2YyNTgyNTIxY2ZmZDJkZTJkMzJiN2YyNDE4Y2EgMTAwNzU1Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMS0xMS0zMCAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9y
Zz4KKworICAgICAgICAiUmF3IiBwc2V1ZG8gc2VsZWN0b3JzIGRvbid0IG1hdGNoIGlmIGltbWVk
aWF0ZWx5IGFmdGVyIGEgY2hpbGQgb3IgZGVzY2VuZGFudCBjb21iaW5hdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkzMworCisgICAgICAgIEFk
ZCB0ZXN0cyBjYXNlcyBmb3IgInJhdyIgc2hhZG93IHBzZXVkby1lbGVtZW50IHNlbGVjdG9ycyB3
aXRoIHZhcmlvdXMgY29tYmluYXRvcnMuCisgICAgICAgIEFsc28gYWRkIGNhc2VzIHdpdGggZXhw
bGljaXQgdW5pdmVyc2FsICcqJyBzZWxlY3Rvci4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQt
bWF0Y2hpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24tcHNldWRv
LWVsZW1lbnQtbWF0Y2hpbmcuaHRtbDoKKwogMjAxMS0xMS0zMCAgSGF5YXRvIEl0byAgPGhheWF0
b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIHRlc3QgZXhwZWN0
YXRpb25zIGFmdGVyIHIxMDE1NzYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91
bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IGE4OTY5MGYzOWE0NmYzMDA2N2Q5ZDczM2EwZWE1NDVlNGRjMzE5ZmEuLjYwYjZmYTM2NmI5
OGUxNTI2NmMxMzY2OTQyNDgzNWRkNDUyMDMwYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhw
ZWN0ZWQudHh0CkBAIC0yLDkgKzIsMTIgQEAgVGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21iaW5h
dGlvbnMsIGNvbnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMKIAogQmFz
aWMgc2VsZWN0b3IgdGVzdHM6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDog
UEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiA6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91
bGQgbm90IG1hdGNoOiBQQVNTCiAqfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwg
aXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworKnwqOjotd2Via2l0
LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxk
IG1hdGNoOiBQQVNTCiBodG1sfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMg
bm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworaHRtbHwqOjotd2Via2l0
LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxk
IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKIC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2Zvbzo6
LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNl
IHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTI4LDYgKzMxLDcgQEAgaW5wdXQuYmFyW3R5cGU9
cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxk
bid0IGlnbm9yZSBzZWxlY3RvciBhZnRlciB0aGUgdW5rbm93biBwc2V1ZG8gZWxlbWVudDoKIDo6
LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworKjo6
LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogaW5w
dXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MK
ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBB
U1MKIGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBt
YXRjaDogUEFTUwpAQCAtMzYsNiArNDAsNyBAQCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1z
bGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogCiBTaG91bGQgbm90
IG1hdGNoIGRpc2FibGVkIGlucHV0LCBiZWNhdXNlIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBvbiB0
aGUgaW5wdXQsIG5vdCB0aGUgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVk
IHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVk
IHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYjpkaXNh
YmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpk
aXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVy
LXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTQ0LDYgKzQ5LDcgQEAg
aW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBu
b3QgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIDpob3ZlciB3aGVuIHRoZSBtb3VzZSBpcyBv
dmVyIHRoZSBzbGlkZXIgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3Vs
ZCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNo
OiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MK
IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNT
CkBAIC01MSwxMyArNTcsNDcgQEAgaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYjpob3Zl
ciBzaG91bGQgbWF0Y2g6IFBBU1MKIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10
aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIHdoZW4gY29tYmlu
ZWQgd2l0aCBkZXNjZW5kYW50IHNlbGVjdG9yczoKKyNiYXogOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNiYXogKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxk
IG1hdGNoOiBQQVNTCiAjYmF6IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0
Y2g6IFBBU1MKICNiYXogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjYmF6IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjYmF6IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjYmF6IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQg
bWF0Y2g6IFBBU1MKKy5xdXggOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKKy5xdXggKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4
IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIC5xdXggI2Zv
bzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0I2Zv
bzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0LmJh
cjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0W3R5
cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKworU2hv
dWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBzaWJsaW5nIHNlbGVjdG9yczoKKyNzaWIgKyA6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArICo6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0Ojotd2Via2l0
LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyAjZm9vOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dCNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0LmJhcjo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXRbdHlwZT1yYW5n
ZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IDo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gKjo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQ6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICNmb286Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQuYmFyOjotd2Via2l0LXNs
aWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dFt0eXBlPXJhbmdlXTo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArIDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICo6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICNmb286Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dCNmb286Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dC5iYXI6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dFt0eXBlPXJhbmdl
XTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+IDo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICo6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICNmb286Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dCNmb286Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dC5iYXI6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dFt0eXBlPXJh
bmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5n
Lmh0bWwKaW5kZXggNmFmZWViZTI5ZjQ1YTA5ZTg0ZGRjODcxOWNhMGVkOTg2ZWMxMmRiZC4uN2Zk
MWVkZTBlNjBjYTI0MDMyNzJiMmYyNGEyODk4YWY3NTkyOGFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRt
bApAQCAtMTgsNiArMTgsNyBAQCB2YXIgTkFNRVNQQUNFX0RFQ0xBUkFUSU9OID0gJ0BuYW1lc3Bh
Y2UgImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vbmFtZXNwYWNlIjtcbkBuYQogdmFyIFNFTEVDVE9S
X1RFU1RfUFJPUEVSVElFUyA9ICcgeyBoZWlnaHQ6IDFweDsgLXdlYmtpdC1hcHBlYXJhbmNlOiBu
b25lOyB9JzsKIHZhciBTRUxFQ1RPUlMgPSBbCiAnOjotd2Via2l0LXNsaWRlci10aHVtYicsCisn
Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYics
CiAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0I2Zvbzo6LXdlYmtpdC1zbGlk
ZXItdGh1bWInLApAQCAtMjcsOSArMjgsMTEgQEAgdmFyIFNFTEVDVE9SUyA9IFsKIHZhciBESVNB
QkxFRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVy
biBzZWxlY3RvciArICc6ZGlzYWJsZWQnOyB9KTsKIHZhciBIT1ZFUl9TRUxFQ1RPUlMgPSBTRUxF
Q1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBzZWxlY3RvciArICc6aG92ZXIn
OyB9KTsKIHZhciBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rp
b24oc2VsZWN0b3IpIHsgcmV0dXJuICcjYmF6ICcgKyBzZWxlY3RvcjsgfSk7Ci1ERVNDRU5EQU5U
X0lEX1NFTEVDVE9SUy5zaGlmdCgpOwogdmFyIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTID0g
U0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5xdXggJyArIHNlbGVj
dG9yOyB9KTsKLURFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLnNoaWZ0KCk7Cit2YXIgRElSRUNU
X1NJQkxJTkdfSURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3Rvcikg
eyByZXR1cm4gJyNzaWIgKyAnICsgc2VsZWN0b3I7IH0pOwordmFyIElORElSRUNUX1NJQkxJTkdf
SURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4g
JyNzaWIgfiAnICsgc2VsZWN0b3I7IH0pOwordmFyIERJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVD
VE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcubGluZyAr
ICcgKyBzZWxlY3RvcjsgfSk7Cit2YXIgSU5ESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMg
PSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnLmxpbmcgfiAnICsg
c2VsZWN0b3I7IH0pOwogCiAvLyBjb252ZW5pZW5jZSBjb25zdGFudHMKIHZhciBNQVRDSCA9IHRy
dWU7CkBAIC02NiwxMiArNjksMTYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaGVhZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgaW5wdXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKKyAgICB0ZXN0Q29udGFp
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JheicpOwogICAgIGxvZ0RpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKICAgICBsb2coJ0Jhc2ljIHNlbGVjdG9yIHRlc3Rz
OicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
KTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqOjotd2Via2l0LXNsaWRlci10aHVtYicp
OwogICAgIHJ1blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
LCBXSVRIX05BTUVTUEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJyp8Ojotd2Vi
a2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CisgICAgcnVuU2VsZWN0b3JUZXN0
KE1BVENILCAnKnwqOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CiAg
ICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywg
V0lUSF9OQU1FU1BBQ0VTKTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICdodG1sfCo6Oi13
ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKICAgICBydW5TZWxlY3RvclRl
c3QoTUFUQ0gsICcjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9y
VGVzdChNQVRDSCwgJy5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CiAgICAgcnVuU2VsZWN0
b3JUZXN0KE5PX01BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVT
UEFDRVMpOwpAQCAtMTA3LDcgKzExNCwxMyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICBsb2co
Jzxicj5TaG91bGQgbWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIGRlc2NlbmRhbnQgc2VsZWN0b3Jz
OicpOwogICAgIERFU0NFTkRBTlRfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOwog
ICAgIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOwotICAg
IGlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOworICAgIGxvZygnPGJyPlNob3Vs
ZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6Jyk7CisgICAgRElS
RUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAgIElORElS
RUNUX1NJQkxJTkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAgIERJUkVD
VF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBJTkRJ
UkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKworICAg
IHRlc3RDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIH0K
IAogZnVuY3Rpb24gZXhwZWN0Tm9NYXRjaChzZWxlY3RvcikgewpAQCAtMTIzLDYgKzEzNiw3IEBA
IGZ1bmN0aW9uIGV4cGVjdE1hdGNoKHNlbGVjdG9yKSB7CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+CiAgICAgPHA+VGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21iaW5hdGlvbnMsIGNvbnRhaW5p
bmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMuPC9wPgogICAgIDxkaXYgaWQ9ImJh
eiIgY2xhc3M9InF1eCI+CisgICAgICAgIDxzcGFuIGlkPSJzaWIiIGNsYXNzPSJsaW5nIj5TaWJs
aW5nPC9zcGFuPgogICAgICAgICA8aW5wdXQgaWQ9ImZvbyIgY2xhc3M9ImJhciIgdHlwZT0icmFu
Z2UiPgogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117565</attachid>
            <date>2011-12-01 22:20:02 -0800</date>
            <delta_ts>2011-12-04 19:23:10 -0800</delta_ts>
            <desc>patch, v2</desc>
            <filename>bug-72933-20111202152001.patch</filename>
            <type>text/plain</type>
            <size>17134</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RkMmViYWE3ZTc3MzVk
ZWVhZmI4OThjMDgwOTQ1YTg1NDhiNDkyNy4uNzM2YjQ4Mjg0OGM3NjZjNWJlZWM3ZTAxZWVlNjFl
ZDA3YWU5YmExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEyLTAyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgUmVtb3ZlIHNob3J0Y3V0IHRoYXQg
cHJldmVudHMgdW5pdmVyc2FsIHNlbGVjdG9ycyBmcm9tIGJlaW5nIGNyZWF0ZWQgYmVmb3JlIHNo
YWRvdyBwc2V1ZG8tZWxlbWVudHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6CisgICAgICAgICogY3Nz
L0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3Rv
clRleHQpOgorCiAyMDExLTEyLTAxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVc2UgdGhlIFtTdXBwbGVtZW50YWxdIElETCBmb3Igd2ViYXVkaW8gYXR0
cmlidXRlcyBpbiBDaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA3NWM3YmM5
ZGU3YzdkNTczNzM4NGNhZjgwNDAxMTNmMzM4YmJjZTRlLi4zNGQ5YmZhZGNkZGUzOGI5NGRjOThk
N2Q1NTY4NmUwZjQzYjJlOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNzY3Mywx
MSArNzY3Myw4IEBAIHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnRO
YW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBObyBuZWVkIHRvIGNyZWF0ZSBhbiBleHRyYSBlbGVtZW50IG5hbWUgc2Vs
ZWN0b3IgaWYgd2UgYXJlIG1hdGNoaW5nIGFueSBlbGVtZW50Ci0gICAgLy8gaW4gYW55IG5hbWVz
cGFjZS4KLSAgICBpZiAoZWxlbWVudE5hbWUgPT0gc3RhckF0b20gJiYgbV9kZWZhdWx0TmFtZXNw
YWNlID09IHN0YXJBdG9tKQotICAgICAgICByZXR1cm47Ci0KKyAgICAvLyBOb3RlIHRoYXQgQ1NT
U2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgbmVlZHMgdG8gYmUgdXNlZC4KKyAgICAvLyBUaGVy
ZWZvcmUgd2UgY3JlYXRlIGEgbmV3IFNlbGVjdG9yIGhlcmUgaW4gYW55IGNhc2UsIGV2ZW4gaWYg
bWF0Y2hpbmcgYW55IChob3N0KSBlbGVtZW50IGluIGFueSBuYW1lc3BhY2UuCiAgICAgT3duUHRy
PENTU1BhcnNlclNlbGVjdG9yPiBlbGVtZW50TmFtZVNlbGVjdG9yID0gYWRvcHRQdHIobmV3IENT
U1BhcnNlclNlbGVjdG9yKTsKICAgICBlbGVtZW50TmFtZVNlbGVjdG9yLT5zZXRUYWcodGFnKTsK
ICAgICBsYXN0U2hhZG93RGVzY2VuZGFudC0+c2V0VGFnSGlzdG9yeShlbGVtZW50TmFtZVNlbGVj
dG9yLnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBiZTI4YzYw
MWI1MDhkZmZhZjU3YjAzNWExMmI1OWVjMmI2MTI4NTE1Li42OWMzYzIyNGUwZjg2MzQyODliYmMx
ZDliYTQ5YWNjMTQ3ODA0OTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTYz
Miw5ICs2MzIsMTEgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoKSBjb25zdAog
ICAgICAgICAgICAgc3RyID0gdGFnSGlzdG9yeVRleHQgKyAiIH4gIiArIHN0cjsKICAgICAgICAg
ZWxzZSBpZiAoY3MtPnJlbGF0aW9uKCkgPT0gQ1NTU2VsZWN0b3I6OkNoaWxkKQogICAgICAgICAg
ICAgc3RyID0gdGFnSGlzdG9yeVRleHQgKyAiID4gIiArIHN0cjsKLSAgICAgICAgZWxzZSBpZiAo
Y3MtPnJlbGF0aW9uKCkgPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpCisgICAgICAg
IGVsc2UgaWYgKGNzLT5yZWxhdGlvbigpID09IENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50
KSB7CisgICAgICAgICAgICBpZiAodGFnSGlzdG9yeVRleHQuZW5kc1dpdGgoIioiKSkKKyAgICAg
ICAgICAgICAgICB0YWdIaXN0b3J5VGV4dC50cnVuY2F0ZSh0YWdIaXN0b3J5VGV4dC5sZW5ndGgo
KSAtIDEpOwogICAgICAgICAgICAgc3RyID0gdGFnSGlzdG9yeVRleHQgKyBzdHI7Ci0gICAgICAg
IGVsc2UKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAvLyBEZXNjZW5kYW50CiAgICAgICAg
ICAgICBzdHIgPSB0YWdIaXN0b3J5VGV4dCArICIgIiArIHN0cjsKICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODlk
NjZkYWRmOTQ4OWRiODc4YjI2NzRiNWVmMmQ1OThkZWY3ZjNlNi4uOGEzNjgxYzNjY2ZiMjEwMzI2
YjNjYjdhY2QyZjU2MzA1YmM3ODQ2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTAy
ICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAg
ICJSYXciIHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIg
YSBjaGlsZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgQWRkIHRlc3RzIGNhc2Vz
IGZvciAicmF3IiBzaGFkb3cgcHNldWRvLWVsZW1lbnQgc2VsZWN0b3JzIHdpdGggdmFyaW91cyBj
b21iaW5hdG9ycy4KKyAgICAgICAgQWxzbyBhZGQgY2FzZXMgd2l0aCBleHBsaWNpdCB1bml2ZXJz
YWwgJyonIHNlbGVjdG9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy91bmtub3du
LXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nz
cy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWw6CisKIDIwMTEtMTItMDEgIEph
Y29iIEdvbGRzdGVpbiAgPGphY29iZ0BhZG9iZS5jb20+CiAKICAgICAgICAgQ29udmVydCBzb21l
IGZhc3QvcmVnaW9ucyBwaXhlbCB0ZXN0cyB0byByZWZ0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGFkMDJjYmJl
ZGNkMDNmZDU3OTI5OWFiN2U1ZmU3YTlkOGFhYmNmNTkuLmU1OWQzZjFjOWJjMzQ2NTA0OWJjZTBk
ZThiZmM4N2ZjOTg5ODQ2MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1z
ZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mt
c2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKQEAgLTczLDYgKzczLDEyIEBAIFBBU1MgcGFyc2VU
aGVuU2VyaWFsaXplUnVsZSgnLmE6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScpIGlzICcuYTo6
LXdlYmtpdC1zbGlkCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJy5hIDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgeyB9JykgaXMgJy5hIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JwogUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCcjYTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9Jykg
aXMgJyNhOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJyNhIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJyNhIDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCcqIDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJyogOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCisK
K1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYVtiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
eyB9JykgaXMgJ2FbYl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnYS5iOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnYS5iOjot
d2Via2l0LXNsaWRlci10aHVtYiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2Ej
Yjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJ2EjYjo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhW2JdLmMjZDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgeyB9JykgaXMgJ2FbYl0uYyNkOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0n
CiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0p
OmZvY3VzIHsgfScpIGlzICdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMgeyB9JwogUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6LXdlYmtpdC1hbnkoW3R5cGU9ImZpbGUiXSkgeyB9
JykgaXMgJzotd2Via2l0LWFueShbdHlwZT0iZmlsZSJdKSB7IH0nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBiMmMxZjRiZWIwOGQwYTBjNWVhN2Iw
MjFmZGM2MmM0NGQ1ODM2OTNlLi4yYmZlYTc0Y2MwNGVkNjk0NTY5YzRlOGFjN2RjZWM1ZDQxZjU0
MDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAg
LTExNCw2ICsxMTQsMTQgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCIuYTo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIiKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiLmEgOjotd2Via2l0LXNsaWRlci10
aHVtYiIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCIjYTo6LXdlYmtpdC1zbGlkZXItdGh1bWIi
KTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiI2EgOjotd2Via2l0LXNsaWRlci10aHVtYiIpOwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCIqIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKKworZGVi
dWcoJycpOworCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl06Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEuYjo6LXdlYmtpdC1zbGlkZXItdGh1bWIi
KTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYSNiOjotd2Via2l0LXNsaWRlci10aHVtYiIpOwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdLmMjZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsK
IAogZGVidWcoJycpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0
LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNl
dC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4MjViNTZhNWZmNDI2YzVlNmIyZmM1
OGM2YTJmOTczOWM0MjAyZjA4Li40ODBmODFmMTM4ZWZjMTA3N2FiNWY4ZDBhYmViOTQ3Y2EwODc1
Y2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRl
eHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0
b3ItdGV4dC1leHBlY3RlZC50eHQKQEAgLTgzLDYgKzgzLDEyIEBAIFBBU1Mgc2V0VGhlblJlYWRT
ZWxlY3RvclRleHQoJy5hOjotd2Via2l0LXNsaWRlci10aHVtYicpIGlzICcuYTo6LXdlYmtpdC1z
bGlkZXItCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCcuYSA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iJykgaXMgJy5hIDo6LXdlYmtpdC1zbGlkZXItdGh1bWInCiBQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCcjYTo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnI2E6Oi13ZWJraXQt
c2xpZGVyLXRodW1iJwogUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnI2EgOjotd2Via2l0
LXNsaWRlci10aHVtYicpIGlzICcjYSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJworUEFTUyBzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnKiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJyogOjot
d2Via2l0LXNsaWRlci10aHVtYicKKworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYVti
XTo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnYVtiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
CitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhLmI6Oi13ZWJraXQtc2xpZGVyLXRodW1i
JykgaXMgJ2EuYjo6LXdlYmtpdC1zbGlkZXItdGh1bWInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0
b3JUZXh0KCdhI2I6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJ2EjYjo6LXdlYmtpdC1zbGlk
ZXItdGh1bWInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhW2JdLmMjZDo6LXdlYmtp
dC1zbGlkZXItdGh1bWInKSBpcyAnYVtiXS5jI2Q6Oi13ZWJraXQtc2xpZGVyLXRodW1iJwogCiBQ
QVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6Zm9j
dXMnKSBpcyAnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzJwogUEFTUyBzZXRUaGVuUmVh
ZFNlbGVjdG9yVGV4dCgnOi13ZWJraXQtYW55KFt0eXBlPSJmaWxlIl0pJykgaXMgJzotd2Via2l0
LWFueShbdHlwZT0iZmlsZSJdKScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nz
cy1zZXQtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1z
ZWxlY3Rvci10ZXh0Lmh0bWwKaW5kZXggZTgzYzYzZDc2Mjk4NmM5ODkxZDExMjIzOTRkNzY2MGE2
ODQyY2RiYy4uM2FjYzAxNTJhNjA0MjA4MDNhZGNhNDY3MDU5Mjk2OTI4NjI4NWYyZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTEz
MSw2ICsxMzEsMTQgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCIuYTo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIiKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiLmEgOjotd2Via2l0LXNsaWRlci10aHVt
YiIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCIjYTo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsK
IHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiI2EgOjotd2Via2l0LXNsaWRlci10aHVtYiIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCIqIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKKworZGVidWco
JycpOworCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl06Oi13ZWJraXQtc2xpZGVyLXRodW1i
Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEuYjo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsK
K3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYSNiOjotd2Via2l0LXNsaWRlci10aHVtYiIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdLmMjZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKIAog
ZGVidWcoJycpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBz
ZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IGE4OTY5
MGYzOWE0NmYzMDA2N2Q5ZDczM2EwZWE1NDVlNGRjMzE5ZmEuLjYwYjZmYTM2NmI5OGUxNTI2NmMx
MzY2OTQyNDgzNWRkNDUyMDMwYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vu
a25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CkBAIC0yLDkgKzIsMTIgQEAgVGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21iaW5hdGlvbnMsIGNv
bnRhaW5pbmcgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMKIAogQmFzaWMgc2VsZWN0
b3IgdGVzdHM6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworKjo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbm90IG1h
dGNoOiBQQVNTCiAqfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRl
ZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworKnwqOjotd2Via2l0LXNsaWRlci10
aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxkIG1hdGNoOiBQ
QVNTCiBodG1sfDo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1
bHQgbmFtZXNwYWNlIHNob3VsZCBtYXRjaDogUEFTUworaHRtbHwqOjotd2Via2l0LXNsaWRlci10
aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIC5iYXI6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1z
bGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3VsZCBu
b3QgbWF0Y2g6IFBBU1MKQEAgLTI4LDYgKzMxLDcgQEAgaW5wdXQuYmFyW3R5cGU9cmFuZ2VdOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxkbid0IGlnbm9y
ZSBzZWxlY3RvciBhZnRlciB0aGUgdW5rbm93biBwc2V1ZG8gZWxlbWVudDoKIDo6LXdlYmtpdC1z
bGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworKjo6LXdlYmtpdC1z
bGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogaW5wdXQ6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKICNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIGlucHV0
I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFT
UwpAQCAtMzYsNiArNDAsNyBAQCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1
bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogCiBTaG91bGQgbm90IG1hdGNoIGRp
c2FibGVkIGlucHV0LCBiZWNhdXNlIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBvbiB0aGUgaW5wdXQs
IG5vdCB0aGUgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBu
b3QgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBu
b3QgbWF0Y2g6IFBBU1MKIGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91
bGQgbm90IG1hdGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBz
aG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRp
c2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTQ0LDYgKzQ5LDcgQEAgaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6
IFBBU1MKIAogU2hvdWxkIG1hdGNoIDpob3ZlciB3aGVuIHRoZSBtb3VzZSBpcyBvdmVyIHRoZSBz
bGlkZXIgdGh1bWI6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBtYXRjaDog
UEFTUworKjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiBp
bnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjZm9v
Ojotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKIGlucHV0I2Zv
bzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCkBAIC01MSwx
MyArNTcsNDcgQEAgaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91bGQg
bWF0Y2g6IFBBU1MKIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYjpob3Zl
ciBzaG91bGQgbWF0Y2g6IFBBU1MKIAogU2hvdWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBk
ZXNjZW5kYW50IHNlbGVjdG9yczoKKyNiYXogOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQg
bWF0Y2g6IFBBU1MKKyNiYXogKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCiAjYmF6IGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MK
ICNiYXogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6
IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6
IGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6
IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKKy5xdXggOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5xdXgg
Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0Ojot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKIC5xdXggI2Zvbzo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0I2Zvbzo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0LmJhcjo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCiAucXV4IGlucHV0W3R5cGU9cmFuZ2Vd
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKworU2hvdWxkIG1hdGNo
IHdoZW4gY29tYmluZWQgd2l0aCBzaWJsaW5nIHNlbGVjdG9yczoKKyNzaWIgKyA6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArICo6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0Ojotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyAjZm9vOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gKjo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVt
YiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArIDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICo6Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyArICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+IDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICo6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisubGluZyB+ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1i
IHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwKaW5k
ZXggNmFmZWViZTI5ZjQ1YTA5ZTg0ZGRjODcxOWNhMGVkOTg2ZWMxMmRiZC4uN2ZkMWVkZTBlNjBj
YTI0MDMyNzJiMmYyNGEyODk4YWY3NTkyOGFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbApAQCAtMTgs
NiArMTgsNyBAQCB2YXIgTkFNRVNQQUNFX0RFQ0xBUkFUSU9OID0gJ0BuYW1lc3BhY2UgImh0dHA6
Ly9leGFtcGxlLmNvbS9mb28vbmFtZXNwYWNlIjtcbkBuYQogdmFyIFNFTEVDVE9SX1RFU1RfUFJP
UEVSVElFUyA9ICcgeyBoZWlnaHQ6IDFweDsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9JzsK
IHZhciBTRUxFQ1RPUlMgPSBbCiAnOjotd2Via2l0LXNsaWRlci10aHVtYicsCisnKjo6LXdlYmtp
dC1zbGlkZXItdGh1bWInLAogJ2lucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYicsCiAnI2Zvbzo6
LXdlYmtpdC1zbGlkZXItdGh1bWInLAogJ2lucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
LApAQCAtMjcsOSArMjgsMTEgQEAgdmFyIFNFTEVDVE9SUyA9IFsKIHZhciBESVNBQkxFRF9TRUxF
Q1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBzZWxlY3Rv
ciArICc6ZGlzYWJsZWQnOyB9KTsKIHZhciBIT1ZFUl9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFw
KGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBzZWxlY3RvciArICc6aG92ZXInOyB9KTsKIHZh
ciBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0
b3IpIHsgcmV0dXJuICcjYmF6ICcgKyBzZWxlY3RvcjsgfSk7Ci1ERVNDRU5EQU5UX0lEX1NFTEVD
VE9SUy5zaGlmdCgpOwogdmFyIERFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTID0gU0VMRUNUT1JT
Lm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5xdXggJyArIHNlbGVjdG9yOyB9KTsK
LURFU0NFTkRBTlRfQ0xBU1NfU0VMRUNUT1JTLnNoaWZ0KCk7Cit2YXIgRElSRUNUX1NJQkxJTkdf
SURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4g
JyNzaWIgKyAnICsgc2VsZWN0b3I7IH0pOwordmFyIElORElSRUNUX1NJQkxJTkdfSURfU0VMRUNU
T1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJyNzaWIgfiAn
ICsgc2VsZWN0b3I7IH0pOwordmFyIERJUkVDVF9TSUJMSU5HX0NMQVNTX1NFTEVDVE9SUyA9IFNF
TEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcubGluZyArICcgKyBzZWxl
Y3RvcjsgfSk7Cit2YXIgSU5ESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMgPSBTRUxFQ1RP
UlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnLmxpbmcgfiAnICsgc2VsZWN0b3I7
IH0pOwogCiAvLyBjb252ZW5pZW5jZSBjb25zdGFudHMKIHZhciBNQVRDSCA9IHRydWU7CkBAIC02
NiwxMiArNjksMTYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaGVhZCA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgaW5wdXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKKyAgICB0ZXN0Q29udGFpbmVyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JheicpOwogICAgIGxvZ0RpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2cnKTsKICAgICBsb2coJ0Jhc2ljIHNlbGVjdG9yIHRlc3RzOicpOwogICAg
IHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKKyAgICBy
dW5TZWxlY3RvclRlc3QoTUFUQ0gsICcqOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1
blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05B
TUVTUEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJyp8Ojotd2Via2l0LXNsaWRl
ci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAn
KnwqOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CiAgICAgcnVuU2Vs
ZWN0b3JUZXN0KE1BVENILCAnaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywgV0lUSF9OQU1F
U1BBQ0VTKTsKKyAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICdodG1sfCo6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gs
ICcjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRD
SCwgJy5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE5P
X01BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOwpA
QCAtMTA3LDcgKzExNCwxMyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICBsb2coJzxicj5TaG91
bGQgbWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIGRlc2NlbmRhbnQgc2VsZWN0b3JzOicpOwogICAg
IERFU0NFTkRBTlRfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOwogICAgIERFU0NF
TkRBTlRfQ0xBU1NfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOwotICAgIGlucHV0LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOworICAgIGxvZygnPGJyPlNob3VsZCBtYXRjaCB3
aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6Jyk7CisgICAgRElSRUNUX1NJQkxJ
TkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAgIElORElSRUNUX1NJQkxJ
TkdfSURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0TWF0Y2gpOworICAgIERJUkVDVF9TSUJMSU5H
X0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKyAgICBJTkRJUkVDVF9TSUJM
SU5HX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKKworICAgIHRlc3RDb250
YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIH0KIAogZnVuY3Rp
b24gZXhwZWN0Tm9NYXRjaChzZWxlY3RvcikgewpAQCAtMTIzLDYgKzEzNiw3IEBAIGZ1bmN0aW9u
IGV4cGVjdE1hdGNoKHNlbGVjdG9yKSB7CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CiAgICAg
PHA+VGVzdHMgdmFyaW91cyBzZWxlY3RvciBjb21iaW5hdGlvbnMsIGNvbnRhaW5pbmcgdW5rbm93
biBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMuPC9wPgogICAgIDxkaXYgaWQ9ImJheiIgY2xhc3M9
InF1eCI+CisgICAgICAgIDxzcGFuIGlkPSJzaWIiIGNsYXNzPSJsaW5nIj5TaWJsaW5nPC9zcGFu
PgogICAgICAgICA8aW5wdXQgaWQ9ImZvbyIgY2xhc3M9ImJhciIgdHlwZT0icmFuZ2UiPgogICAg
IDwvZGl2PgogICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117826</attachid>
            <date>2011-12-04 19:23:17 -0800</date>
            <delta_ts>2011-12-05 07:33:05 -0800</delta_ts>
            <desc>patch v2, don&apos;t suppress &apos;*&apos;</desc>
            <filename>bug-72933-20111205122315.patch</filename>
            <type>text/plain</type>
            <size>24221</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxOTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YjFiOTlmMDEwZmNh
Mjk3ZjdlYWEyODVmZTkzNDA5OGIzOWFjNi4uZTJlNTc5OWYyNmYyMTNiY2U0ZGQ5MTEzNWU1ZGYy
YmQ2ZTk2ODRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTA1ICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgICJSYXci
IHBzZXVkbyBzZWxlY3RvcnMgZG9uJ3QgbWF0Y2ggaWYgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBjaGls
ZCBvciBkZXNjZW5kYW50IGNvbWJpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyOTMzCisKKyAgICAgICAgUmVtb3ZlIHNob3J0Y3V0IHRoYXQg
cHJldmVudHMgdW5pdmVyc2FsIHNlbGVjdG9ycyBmcm9tIGJlaW5nIGNyZWF0ZWQgYmVmb3JlIHNo
YWRvdyBwc2V1ZG8tZWxlbWVudHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6CisKIDIwMTEtMTItMDQg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSElFUkFSQ0hZX1JF
UVVFU1RfRVJSIGNoZWNrIGluIGNoZWNrQWNjZXB0Q2hpbGQgc2hvdWxkIGJlIG9wdGltaXplZCBm
b3IgbmV3Q2hpbGQgd2l0aG91dCBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCBjMTkyZDM1ODg0MTU5YmI1YWNjZmNiY2VmYTIzMDBkOTdiM2JjZjc1Li4xMGNiMmRjOTEwOGJl
YmU4Y2RhOTNkN2E5MTA0YjA1NTQ1YTRmZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtNzY3MywxMSArNzY3Myw4IEBAIHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0
aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICAvLyBObyBuZWVkIHRvIGNyZWF0ZSBhbiBleHRyYSBlbGVtZW50
IG5hbWUgc2VsZWN0b3IgaWYgd2UgYXJlIG1hdGNoaW5nIGFueSBlbGVtZW50Ci0gICAgLy8gaW4g
YW55IG5hbWVzcGFjZS4KLSAgICBpZiAoZWxlbWVudE5hbWUgPT0gc3RhckF0b20gJiYgbV9kZWZh
dWx0TmFtZXNwYWNlID09IHN0YXJBdG9tKQotICAgICAgICByZXR1cm47Ci0KKyAgICAvLyBGb3Ig
c2hhZG93LUlEIHBzZXVkby1lbGVtZW50cyB0byBiZSBjb3JyZWN0bHkgbWF0Y2hlZCwgdGhlIFNo
YWRvd0Rlc2NlbmRhbnQgY29tYmluYXRvciBoYXMgdG8gYmUgdXNlZC4KKyAgICAvLyBXZSB0aGVy
ZWZvcmUgY3JlYXRlIGEgbmV3IFNlbGVjdG9yIHdpdGggdGhhdCBjb21iaW5hdG9yIGhlcmUgaW4g
YW55IGNhc2UsIGV2ZW4gaWYgbWF0Y2hpbmcgYW55IChob3N0KSBlbGVtZW50IGluIGFueSBuYW1l
c3BhY2UgKGkuZS4gJyonKS4KICAgICBPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IGVsZW1lbnRO
YW1lU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgQ1NTUGFyc2VyU2VsZWN0b3IpOwogICAgIGVsZW1l
bnROYW1lU2VsZWN0b3ItPnNldFRhZyh0YWcpOwogICAgIGxhc3RTaGFkb3dEZXNjZW5kYW50LT5z
ZXRUYWdIaXN0b3J5KGVsZW1lbnROYW1lU2VsZWN0b3IucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MGJm
ZGFiNjA0YzcxNjBkYWM0NGY4ZmE4Njk0MzY5YTk0MTNhNDNiLi4yOWFkNDc4YzVhYWU0YmY0NGVh
NmQ0MjQxODRlZmYzYjRiNWNhZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTItMDUg
IFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
IlJhdyIgcHNldWRvIHNlbGVjdG9ycyBkb24ndCBtYXRjaCBpZiBpbW1lZGlhdGVseSBhZnRlciBh
IGNoaWxkIG9yIGRlc2NlbmRhbnQgY29tYmluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5MzMKKworICAgICAgICBBZGQgdGVzdHMgY2FzZXMg
Zm9yICJyYXciIHNoYWRvdyBwc2V1ZG8tZWxlbWVudCBzZWxlY3RvcnMgd2l0aCB2YXJpb3VzIGNv
bWJpbmF0b3JzLgorICAgICAgICBBbHNvIGFkZCBjYXNlcyB3aXRoIGV4cGxpY2l0IHVuaXZlcnNh
bCAnKicgc2VsZWN0b3IuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24t
cHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbDoKKwogMjAxMS0xMi0wNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBvYnNvbGV0ZSBl
eHBlY3RlZCByZXN1bHRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIHdoZW4gY29udmVy
dGluZyB0byBhIHJlZiB0ZXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3Nz
LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNl
bGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGFkMDJjYmJlZGNkMDNmZDU3OTI5OWFiN2U1
ZmU3YTlkOGFhYmNmNTkuLjVjNmEyMTFkOTVjZDA1MzdiYWU5YjgwNDdlYmVmNmFmMTM2ZmM5ZjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBl
Y3RlZC50eHQKQEAgLTU4LDIxICs1OCwyNyBAQCBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
Jzotd2Via2l0LWFueS1saW5rIHsgfScpIGlzICc6LXdlYmtpdC1hbnktbGluayB7IH0nCiBQQVNT
IHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzotd2Via2l0LWF1dG9maWxsIHsgfScpIGlzICc6LXdl
YmtpdC1hdXRvZmlsbCB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzotd2Via2l0
LWRyYWcgeyB9JykgaXMgJzotd2Via2l0LWRyYWcgeyB9JwogCi1QQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24geyB9JykgaXMgJzo6LXdlYmtp
dC1maWxlLXVwbG9hZC1idXR0b24geyB9JwotUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24geyB9JykgaXMgJzo6LXdlYmtpdC1zZWFyY2gt
Y2FuY2VsLWJ1dHRvbiB7IH0nCi1QQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtp
dC1zZWFyY2gtZGVjb3JhdGlvbiB7IH0nKSBpcyAnOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9u
IHsgfScKLVBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOjotd2Via2l0LXNlYXJjaC1yZXN1
bHRzLWJ1dHRvbiB7IH0nKSBpcyAnOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiB7IH0n
Ci1QQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1k
ZWNvcmF0aW9uIHsgfScpIGlzICc6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7
IH0nCi1QQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
eyB9JykgaXMgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHsgfScpIGlzICcqOjotd2Vi
a2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
Jzo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7IH0nKSBpcyAnKjo6LXdlYmtpdC1zZWFy
Y2gtY2FuY2VsLWJ1dHRvbiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdl
YmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7IH0nKSBpcyAnKjo6LXdlYmtpdC1zZWFyY2gtZGVjb3Jh
dGlvbiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtpdC1zZWFyY2gt
cmVzdWx0cy1idXR0b24geyB9JykgaXMgJyo6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9u
IHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOjotd2Via2l0LXNlYXJjaC1yZXN1
bHRzLWRlY29yYXRpb24geyB9JykgaXMgJyo6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3Jh
dGlvbiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIgeyB9JykgaXMgJyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScKIAogUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCdhOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnYTo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JwotUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdh
IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJ2EgOjotd2Via2l0LXNsaWRlci10aHVt
YiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2EgOjotd2Via2l0LXNsaWRlci10
aHVtYiB7IH0nKSBpcyAnYSAqOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCiBQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJ1thXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJ1th
XTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JwotUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCdbYV0gOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnW2FdIDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdbYV0gOjotd2Via2l0
LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnW2FdICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScK
IFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnLmE6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsg
fScpIGlzICcuYTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JwotUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCcuYSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScpIGlzICcuYSA6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnLmEgOjot
d2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnLmEgKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
eyB9JwogUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCcjYTo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgeyB9JykgaXMgJyNhOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCi1QQVNTIHBhcnNlVGhl
blNlcmlhbGl6ZVJ1bGUoJyNhIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJyNhIDo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCcj
YSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScpIGlzICcjYSAqOjotd2Via2l0LXNsaWRlci10
aHVtYiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJyogOjotd2Via2l0LXNsaWRl
ci10aHVtYiB7IH0nKSBpcyAnKiAqOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCisKK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYVtiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9Jykg
aXMgJ2FbYl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnYS5iOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSBpcyAnYS5iOjotd2Via2l0
LXNsaWRlci10aHVtYiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2EjYjo6LXdl
YmtpdC1zbGlkZXItdGh1bWIgeyB9JykgaXMgJ2EjYjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9
JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhW2JdLmMjZDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIgeyB9JykgaXMgJ2FbYl0uYyNkOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nCiAKIFBB
U1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3Vz
IHsgfScpIGlzICdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMgeyB9JwogUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6LXdlYmtpdC1hbnkoW3R5cGU9ImZpbGUiXSkgeyB9JykgaXMg
Jzotd2Via2l0LWFueShbdHlwZT0iZmlsZSJdKSB7IH0nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBiMmMxZjRiZWIwOGQwYTBjNWVhN2IwMjFmZGM2
MmM0NGQ1ODM2OTNlLi5jNjM3YzIwMzczZDQ4NjgwMTc1OWQ3Y2E4ZmQzYzlmY2FhMjYwODNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTk3LDIz
ICs5NywzMSBAQCB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjotd2Via2l0LWRyYWciKTsKIAogZGVi
dWcoJycpOwogCi10ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6LXdlYmtpdC1maWxlLXVwbG9hZC1i
dXR0b24iKTsKLXRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOjotd2Via2l0LXNlYXJjaC1jYW5jZWwt
YnV0dG9uIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6LXdlYmtpdC1zZWFyY2gtZGVjb3Jh
dGlvbiIpOwotdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMt
YnV0dG9uIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1kZWNvcmF0aW9uIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIiKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6Oi13ZWJraXQtZmls
ZS11cGxvYWQtYnV0dG9uIHsgfScpIiwgIicqOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7
IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOjotd2Via2l0LXNlYXJj
aC1jYW5jZWwtYnV0dG9uIHsgfScpIiwgIicqOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9u
IHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6Oi13ZWJraXQtc2Vh
cmNoLWRlY29yYXRpb24geyB9JykiLCAiJyo6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24geyB9
JyIpOworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzo6LXdlYmtpdC1zZWFyY2gt
cmVzdWx0cy1idXR0b24geyB9JykiLCAiJyo6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9u
IHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6Oi13ZWJraXQtc2Vh
cmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7IH0nKSIsICInKjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1kZWNvcmF0aW9uIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgfScpIiwgIicqOjotd2Via2l0LXNsaWRlci10aHVtYiB7
IH0nIik7CiAKIGRlYnVnKCcnKTsKIAogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhOjotd2Via2l0
LXNsaWRlci10aHVtYiIpOwotdGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhIDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWIiKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhIDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgeyB9JykiLCAiJ2EgKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JyIp
OwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCJbYV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7Ci10
ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIlthXSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7CitzaG91
bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnW2FdIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
eyB9JykiLCAiJ1thXSAqOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nIik7CiB0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIi5hOjotd2Via2l0LXNsaWRlci10aHVtYiIpOwotdGVzdFNlbGVjdG9yUm91
bmRUcmlwKCIuYSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7CitzaG91bGRCZSgicGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnLmEgOjotd2Via2l0LXNsaWRlci10aHVtYiB7IH0nKSIsICInLmEgKjo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JyIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCIjYTo6
LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKLXRlc3RTZWxlY3RvclJvdW5kVHJpcCgiI2EgOjotd2Vi
a2l0LXNsaWRlci10aHVtYiIpOworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJyNh
IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JykiLCAiJyNhICo6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCcqIDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIgeyB9JykiLCAiJyogKjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB9JyIp
OworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTo6LXdlYmtpdC1z
bGlkZXItdGh1bWIiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOjotd2Via2l0LXNsaWRl
ci10aHVtYiIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhI2I6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNkOjotd2Via2l0LXNsaWRlci10
aHVtYiIpOwogCiBkZWJ1ZygnJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDgyNWI1NmE1ZmY0MjZj
NWU2YjJmYzU4YzZhMmY5NzM5YzQyMDJmMDguLmI3ODYzNTI2MzRhMTBjMThhOGEzOWUwMDJlMmFh
MTU2MzgyZDFjNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2Vs
ZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNl
dC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dApAQCAtNjgsMjEgKzY4LDI3IEBAIFBBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJzotd2Via2l0LWFueS1saW5rJykgaXMgJzotd2Via2l0LWFu
eS1saW5rJwogUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOi13ZWJraXQtYXV0b2ZpbGwn
KSBpcyAnOi13ZWJraXQtYXV0b2ZpbGwnCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6
LXdlYmtpdC1kcmFnJykgaXMgJzotd2Via2l0LWRyYWcnCiAKLVBBU1Mgc2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJzo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24nKSBpcyAnOjotd2Via2l0LWZp
bGUtdXBsb2FkLWJ1dHRvbicKLVBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6LXdlYmtp
dC1zZWFyY2gtY2FuY2VsLWJ1dHRvbicpIGlzICc6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0
b24nCi1QQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtc2VhcmNoLWRlY29y
YXRpb24nKSBpcyAnOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uJwotUEFTUyBzZXRUaGVuUmVh
ZFNlbGVjdG9yVGV4dCgnOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbicpIGlzICc6Oi13
ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uJwotUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4
dCgnOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24nKSBpcyAnOjotd2Via2l0LXNl
YXJjaC1yZXN1bHRzLWRlY29yYXRpb24nCi1QQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6
Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInCitQQVNT
IHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uJykg
aXMgJyo6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uJykgaXMgJyo6Oi13ZWJraXQt
c2VhcmNoLWNhbmNlbC1idXR0b24nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13
ZWJraXQtc2VhcmNoLWRlY29yYXRpb24nKSBpcyAnKjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlv
bicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1idXR0b24nKSBpcyAnKjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24nCitQQVNTIHNl
dFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlv
bicpIGlzICcqOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24nCitQQVNTIHNldFRo
ZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJyo6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iJwogCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhOjotd2Vi
a2l0LXNsaWRlci10aHVtYicpIGlzICdhOjotd2Via2l0LXNsaWRlci10aHVtYicKLVBBU1Mgc2V0
VGhlblJlYWRTZWxlY3RvclRleHQoJ2EgOjotd2Via2l0LXNsaWRlci10aHVtYicpIGlzICdhIDo6
LXdlYmtpdC1zbGlkZXItdGh1bWInCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhIDo6
LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnYSAqOjotd2Via2l0LXNsaWRlci10aHVtYicKIFBB
U1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ1thXTo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBp
cyAnW2FdOjotd2Via2l0LXNsaWRlci10aHVtYicKLVBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJ1thXSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJ1thXSA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnW2FdIDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWInKSBpcyAnW2FdICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJwogUEFTUyBzZXRUaGVu
UmVhZFNlbGVjdG9yVGV4dCgnLmE6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykgaXMgJy5hOjotd2Vi
a2l0LXNsaWRlci10aHVtYicKLVBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJy5hIDo6LXdl
YmtpdC1zbGlkZXItdGh1bWInKSBpcyAnLmEgOjotd2Via2l0LXNsaWRlci10aHVtYicKK1BBU1Mg
c2V0VGhlblJlYWRTZWxlY3RvclRleHQoJy5hIDo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAn
LmEgKjo6LXdlYmtpdC1zbGlkZXItdGh1bWInCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCcjYTo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnI2E6Oi13ZWJraXQtc2xpZGVyLXRodW1i
JwotUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnI2EgOjotd2Via2l0LXNsaWRlci10aHVt
YicpIGlzICcjYSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJworUEFTUyBzZXRUaGVuUmVhZFNlbGVj
dG9yVGV4dCgnI2EgOjotd2Via2l0LXNsaWRlci10aHVtYicpIGlzICcjYSAqOjotd2Via2l0LXNs
aWRlci10aHVtYicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJyogOjotd2Via2l0LXNs
aWRlci10aHVtYicpIGlzICcqICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJworCitQQVNTIHNldFRo
ZW5SZWFkU2VsZWN0b3JUZXh0KCdhW2JdOjotd2Via2l0LXNsaWRlci10aHVtYicpIGlzICdhW2Jd
Ojotd2Via2l0LXNsaWRlci10aHVtYicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2Eu
Yjo6LXdlYmtpdC1zbGlkZXItdGh1bWInKSBpcyAnYS5iOjotd2Via2l0LXNsaWRlci10aHVtYicK
K1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EjYjo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
KSBpcyAnYSNiOjotd2Via2l0LXNsaWRlci10aHVtYicKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJ2FbYl0uYyNkOjotd2Via2l0LXNsaWRlci10aHVtYicpIGlzICdhW2JdLmMjZDo6LXdl
YmtpdC1zbGlkZXItdGh1bWInCiAKIFBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2lucHV0
Om5vdChbdHlwZT0iZmlsZSJdKTpmb2N1cycpIGlzICdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6
Zm9jdXMnCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6LXdlYmtpdC1hbnkoW3R5cGU9
ImZpbGUiXSknKSBpcyAnOi13ZWJraXQtYW55KFt0eXBlPSJmaWxlIl0pJwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBlODNjNjNkNzYy
OTg2Yzk4OTFkMTEyMjM5NGQ3NjYwYTY4NDJjZGJjLi43YjNhNTFkMzBhNDVmZjQyMTllYzhhMzVi
YjFiNDAyOTIyMzEyMTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0
LXNlbGVjdG9yLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNl
bGVjdG9yLXRleHQuaHRtbApAQCAtMTE0LDIzICsxMTQsMzEgQEAgdGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6LXdlYmtpdC1kcmFnIik7CiAKIGRlYnVnKCcnKTsKIAotdGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoIjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiIpOwotdGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iKTsKLXRlc3RTZWxlY3RvclJvdW5kVHJp
cCgiOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIpOwotdGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIpOwotdGVzdFNlbGVjdG9y
Um91bmRUcmlwKCI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7CitzaG91bGRCZSgic2V0VGhlblJl
YWRTZWxlY3RvclRleHQoJzo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24nKSIsICInKjo6LXdl
YmtpdC1maWxlLXVwbG9hZC1idXR0b24nIik7CitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJzo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbicpIiwgIicqOjotd2Via2l0LXNl
YXJjaC1jYW5jZWwtYnV0dG9uJyIpOworc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCc6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24nKSIsICInKjo6LXdlYmtpdC1zZWFyY2gtZGVj
b3JhdGlvbiciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOjotd2Via2l0
LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbicpIiwgIicqOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1
dHRvbiciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOjotd2Via2l0LXNl
YXJjaC1yZXN1bHRzLWRlY29yYXRpb24nKSIsICInKjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1k
ZWNvcmF0aW9uJyIpOworc2hvdWxkQmUoInNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCc6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iJykiLCAiJyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyIpOwogCiBkZWJ1
ZygnJyk7CiAKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiYTo6LXdlYmtpdC1zbGlkZXItdGh1bWIi
KTsKLXRlc3RTZWxlY3RvclJvdW5kVHJpcCgiYSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7Citz
aG91bGRCZSgic2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EgOjotd2Via2l0LXNsaWRlci10aHVt
YicpIiwgIidhICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyIpOwogdGVzdFNlbGVjdG9yUm91bmRU
cmlwKCJbYV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRyaXAo
IlthXSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7CitzaG91bGRCZSgic2V0VGhlblJlYWRTZWxl
Y3RvclRleHQoJ1thXSA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykiLCAiJ1thXSAqOjotd2Via2l0
LXNsaWRlci10aHVtYiciKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiLmE6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iIik7Ci10ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIi5hIDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWIiKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnLmEgOjotd2Via2l0
LXNsaWRlci10aHVtYicpIiwgIicuYSAqOjotd2Via2l0LXNsaWRlci10aHVtYiciKTsKIHRlc3RT
ZWxlY3RvclJvdW5kVHJpcCgiI2E6Oi13ZWJraXQtc2xpZGVyLXRodW1iIik7Ci10ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIiNhIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIiKTsKK3Nob3VsZEJlKCJzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnI2EgOjotd2Via2l0LXNsaWRlci10aHVtYicpIiwgIicjYSAq
Ojotd2Via2l0LXNsaWRlci10aHVtYiciKTsKK3Nob3VsZEJlKCJzZXRUaGVuUmVhZFNlbGVjdG9y
VGV4dCgnKiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iJykiLCAiJyogKjo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInIik7CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdOjot
d2Via2l0LXNsaWRlci10aHVtYiIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhLmI6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEjYjo6LXdlYmtpdC1z
bGlkZXItdGh1bWIiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXS5jI2Q6Oi13ZWJraXQt
c2xpZGVyLXRodW1iIik7CiAKIGRlYnVnKCcnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVj
dGVkLnR4dAppbmRleCBhODk2OTBmMzlhNDZmMzAwNjdkOWQ3MzNhMGVhNTQ1ZTRkYzMxOWZhLi42
MGI2ZmEzNjZiOThlMTUyNjZjMTM2Njk0MjQ4MzVkZDQ1MjAzMGEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1h
dGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMiw5ICsyLDEyIEBAIFRlc3RzIHZhcmlvdXMgc2VsZWN0
b3IgY29tYmluYXRpb25zLCBjb250YWluaW5nIHVua25vd24gcHNldWRvIGVsZW1lbnQgc2VsZWN0
b3JzCiAKIEJhc2ljIHNlbGVjdG9yIHRlc3RzOgogOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91
bGQgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFT
UwogOjotd2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1l
c3BhY2Ugc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogKnw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3
aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKKyp8
Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNw
YWNlIHNob3VsZCBtYXRjaDogUEFTUwogaHRtbHw6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVy
ZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbWF0Y2g6IFBBU1MKK2h0bWx8
Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNw
YWNlIHNob3VsZCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxk
IG1hdGNoOiBQQVNTCiAuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0
IG5hbWVzcGFjZSBzaG91bGQgbm90IG1hdGNoOiBQQVNTCkBAIC0yOCw2ICszMSw3IEBAIGlucHV0
LmJhclt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CiAKIFNob3VsZG4ndCBpZ25vcmUgc2VsZWN0b3IgYWZ0ZXIgdGhlIHVua25vd24gcHNldWRvIGVs
ZW1lbnQ6CiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6
IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6
IFBBU1MKIGlucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1h
dGNoOiBQQVNTCiAjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90
IG1hdGNoOiBQQVNTCiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNo
b3VsZCBub3QgbWF0Y2g6IFBBU1MKQEAgLTM2LDYgKzQwLDcgQEAgaW5wdXRbdHlwZT1yYW5nZV06
Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKIAog
U2hvdWxkIG5vdCBtYXRjaCBkaXNhYmxlZCBpbnB1dCwgYmVjYXVzZSB0aGUgZGlzYWJsZWQgc3Rh
dGUgaXMgb24gdGhlIGlucHV0LCBub3QgdGhlIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVt
YjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCisqOjotd2Via2l0LXNsaWRlci10aHVt
YjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiBpbnB1dDo6LXdlYmtpdC1zbGlkZXIt
dGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlk
ZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogaW5wdXQjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCkBAIC00NCw2
ICs0OSw3IEBAIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxl
ZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAKIFNob3VsZCBtYXRjaCA6aG92ZXIgd2hlbiB0aGUg
bW91c2UgaXMgb3ZlciB0aGUgc2xpZGVyIHRodW1iOgogOjotd2Via2l0LXNsaWRlci10aHVtYjpo
b3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKKyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNo
b3VsZCBtYXRjaDogUEFTUwogaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3Vs
ZCBtYXRjaDogUEFTUwogI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1h
dGNoOiBQQVNTCiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNob3VsZCBt
YXRjaDogUEFTUwpAQCAtNTEsMTMgKzU3LDQ3IEBAIGlucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXIt
dGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtp
dC1zbGlkZXItdGh1bWI6aG92ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCiAKIFNob3VsZCBtYXRjaCB3
aGVuIGNvbWJpbmVkIHdpdGggZGVzY2VuZGFudCBzZWxlY3RvcnM6CisjYmF6IDo6LXdlYmtpdC1z
bGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjYmF6ICo6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iIHNob3VsZCBtYXRjaDogUEFTUwogI2JheiBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCiAjYmF6ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3Vs
ZCBtYXRjaDogUEFTUwogI2JheiBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3Vs
ZCBtYXRjaDogUEFTUwogI2JheiBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3Vs
ZCBtYXRjaDogUEFTUwogI2JheiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1
bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisucXV4IDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxk
IG1hdGNoOiBQQVNTCisucXV4ICo6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDog
UEFTUwogLnF1eCBpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNT
CiAucXV4ICNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1
eCBpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1
eCBpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogLnF1
eCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQ
QVNTCisKK1Nob3VsZCBtYXRjaCB3aGVuIGNvbWJpbmVkIHdpdGggc2libGluZyBzZWxlY3RvcnM6
Cisjc2liICsgOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIg
KyAqOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1
dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgI2Zvbzo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liICsgaW5wdXQjZm9v
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgKyBpbnB1dC5i
YXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiArIGlucHV0
W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNz
aWIgfiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+ICo6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0Ojot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiAjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKyNzaWIgfiBpbnB1dCNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworI3NpYiB+IGlucHV0LmJhcjo6
LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1hdGNoOiBQQVNTCisjc2liIH4gaW5wdXRbdHlw
ZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcg
KyA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAqOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQ6Oi13
ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgKyAjZm9vOjotd2Vi
a2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQjZm9vOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXQuYmFy
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nICsgaW5wdXRb
dHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxp
bmcgfiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAq
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQ6
Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUworLmxpbmcgfiAjZm9vOjot
d2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQjZm9v
Ojotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5wdXQu
YmFyOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKy5saW5nIH4gaW5w
dXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1t
YXRjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVu
dC1tYXRjaGluZy5odG1sCmluZGV4IDZhZmVlYmUyOWY0NWEwOWU4NGRkYzg3MTljYTBlZDk4NmVj
MTJkYmQuLjdmZDFlZGUwZTYwY2EyNDAzMjcyYjJmMjRhMjg5OGFmNzU5MjhhYmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1h
dGNoaW5nLmh0bWwKQEAgLTE4LDYgKzE4LDcgQEAgdmFyIE5BTUVTUEFDRV9ERUNMQVJBVElPTiA9
ICdAbmFtZXNwYWNlICJodHRwOi8vZXhhbXBsZS5jb20vZm9vL25hbWVzcGFjZSI7XG5AbmEKIHZh
ciBTRUxFQ1RPUl9URVNUX1BST1BFUlRJRVMgPSAnIHsgaGVpZ2h0OiAxcHg7IC13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZTsgfSc7CiB2YXIgU0VMRUNUT1JTID0gWwogJzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInLAorJyo6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywKICdpbnB1dDo6LXdlYmtpdC1zbGlk
ZXItdGh1bWInLAogJyNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywKICdpbnB1dCNmb286Oi13
ZWJraXQtc2xpZGVyLXRodW1iJywKQEAgLTI3LDkgKzI4LDExIEBAIHZhciBTRUxFQ1RPUlMgPSBb
CiB2YXIgRElTQUJMRURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3Rv
cikgeyByZXR1cm4gc2VsZWN0b3IgKyAnOmRpc2FibGVkJzsgfSk7CiB2YXIgSE9WRVJfU0VMRUNU
T1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gc2VsZWN0b3Ig
KyAnOmhvdmVyJzsgfSk7CiB2YXIgREVTQ0VOREFOVF9JRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMu
bWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiAnI2JheiAnICsgc2VsZWN0b3I7IH0pOwot
REVTQ0VOREFOVF9JRF9TRUxFQ1RPUlMuc2hpZnQoKTsKIHZhciBERVNDRU5EQU5UX0NMQVNTX1NF
TEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuICcucXV4
ICcgKyBzZWxlY3RvcjsgfSk7Ci1ERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUy5zaGlmdCgpOwor
dmFyIERJUkVDVF9TSUJMSU5HX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24o
c2VsZWN0b3IpIHsgcmV0dXJuICcjc2liICsgJyArIHNlbGVjdG9yOyB9KTsKK3ZhciBJTkRJUkVD
VF9TSUJMSU5HX0lEX1NFTEVDVE9SUyA9IFNFTEVDVE9SUy5tYXAoZnVuY3Rpb24oc2VsZWN0b3Ip
IHsgcmV0dXJuICcjc2liIH4gJyArIHNlbGVjdG9yOyB9KTsKK3ZhciBESVJFQ1RfU0lCTElOR19D
TEFTU19TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVy
biAnLmxpbmcgKyAnICsgc2VsZWN0b3I7IH0pOwordmFyIElORElSRUNUX1NJQkxJTkdfQ0xBU1Nf
U0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gJy5s
aW5nIH4gJyArIHNlbGVjdG9yOyB9KTsKIAogLy8gY29udmVuaWVuY2UgY29uc3RhbnRzCiB2YXIg
TUFUQ0ggPSB0cnVlOwpAQCAtNjYsMTIgKzY5LDE2IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogewog
ICAgIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAg
IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CisgICAg
dGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXonKTsKICAgICBsb2dE
aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7CiAgICAgbG9nKCdCYXNpYyBzZWxl
Y3RvciB0ZXN0czonKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICc6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iJyk7CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnKjo6LXdlYmtpdC1zbGlk
ZXItdGh1bWInKTsKICAgICBydW5TZWxlY3RvclRlc3QoTk9fTUFUQ0gsICc6Oi13ZWJraXQtc2xp
ZGVyLXRodW1iJywgV0lUSF9OQU1FU1BBQ0VTKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gs
ICcqfDo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVTUEFDRVMpOworICAgIHJ1blNl
bGVjdG9yVGVzdChNQVRDSCwgJyp8Kjo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05BTUVT
UEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJ2h0bWx8Ojotd2Via2l0LXNsaWRl
ci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CisgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAn
aHRtbHwqOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CiAgICAgcnVu
U2VsZWN0b3JUZXN0KE1BVENILCAnI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBy
dW5TZWxlY3RvclRlc3QoTUFUQ0gsICcuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAg
IHJ1blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJyNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iJywg
V0lUSF9OQU1FU1BBQ0VTKTsKQEAgLTEwNyw3ICsxMTQsMTMgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
CiAgICAgbG9nKCc8YnI+U2hvdWxkIG1hdGNoIHdoZW4gY29tYmluZWQgd2l0aCBkZXNjZW5kYW50
IHNlbGVjdG9yczonKTsKICAgICBERVNDRU5EQU5UX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVj
dE1hdGNoKTsKICAgICBERVNDRU5EQU5UX0NMQVNTX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1h
dGNoKTsKLSAgICBpbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGlucHV0KTsKKyAgICBsb2co
Jzxicj5TaG91bGQgbWF0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIHNpYmxpbmcgc2VsZWN0b3JzOicp
OworICAgIERJUkVDVF9TSUJMSU5HX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsK
KyAgICBJTkRJUkVDVF9TSUJMSU5HX0lEX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsK
KyAgICBESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7
CisgICAgSU5ESVJFQ1RfU0lCTElOR19DTEFTU19TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRj
aCk7CisKKyAgICB0ZXN0Q29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdENvbnRh
aW5lcik7CiB9CiAKIGZ1bmN0aW9uIGV4cGVjdE5vTWF0Y2goc2VsZWN0b3IpIHsKQEAgLTEyMyw2
ICsxMzYsNyBAQCBmdW5jdGlvbiBleHBlY3RNYXRjaChzZWxlY3RvcikgewogPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgogICAgIDxwPlRlc3RzIHZhcmlvdXMgc2VsZWN0b3IgY29tYmluYXRpb25z
LCBjb250YWluaW5nIHVua25vd24gcHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzLjwvcD4KICAgICA8
ZGl2IGlkPSJiYXoiIGNsYXNzPSJxdXgiPgorICAgICAgICA8c3BhbiBpZD0ic2liIiBjbGFzcz0i
bGluZyI+U2libGluZzwvc3Bhbj4KICAgICAgICAgPGlucHV0IGlkPSJmb28iIGNsYXNzPSJiYXIi
IHR5cGU9InJhbmdlIj4KICAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>