<?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>138170</bug_id>
          
          <creation_ts>2014-10-29 06:24:48 -0700</creation_ts>
          <short_desc>Add initial parsing functionality of :lang pseudo class in Selectors Level 4.</short_desc>
          <delta_ts>2014-11-05 08:54:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>138421</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dhi Aurrahman">diorahman</reporter>
          <assigned_to name="Dhi Aurrahman">diorahman</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044743</commentid>
    <comment_count>0</comment_count>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-29 06:24:48 -0700</bug_when>
    <thetext>Extend the :lang() pseudo-class to accept comma-separated list arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044744</commentid>
    <comment_count>1</comment_count>
      <attachid>240598</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-29 06:26:21 -0700</bug_when>
    <thetext>Created attachment 240598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044769</commentid>
    <comment_count>2</comment_count>
      <attachid>240608</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-29 09:59:23 -0700</bug_when>
    <thetext>Created attachment 240608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044940</commentid>
    <comment_count>3</comment_count>
      <attachid>240608</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-29 18:19:32 -0700</bug_when>
    <thetext>Comment on attachment 240608
Patch

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

First round of review really quick.

I did not look into the crash yet. Can you make an update from the comments above? I&apos;ll try it locally.

&gt; Source/WebCore/ChangeLog:27
&gt; +        * css/SelectorChecker.cpp:

Let&apos;s do matching in a separate patch. There is enough complexity in parsing alone to justify a patch.

&gt; Source/WebCore/css/CSSGrammar.y.in:1555
&gt; +comma_separated_identifiers:

There is one more case I did not mention in my email: errors.

Let&apos;s say we have &quot;:lang(foo, bar, 25)&quot; 

The grammar would work like this on &quot;foo, bar, 25&quot;):
1) Find that &quot;foo&quot; is an IDENT.
2) Get the &quot;,&quot; with look ahead.
3) Resolve the IDENT to &quot;comma_separated_identifiers&quot;. Create the new Vector&lt;CSSParserString&gt;.
4) (Resolve the maybe_space)
5) Find that bar is an IDENT.
6) Get the &quot;,&quot; with look ahead.
7) Resolve &quot;comma_separated_identifiers &apos;,&apos; maybe_space IDENT&quot; to comma_separated_identifiers&quot;, append the new IDENT.
8) Find that &quot;25&quot; is not an IDENT
9) Fails to parse this rule.

Now the problem is the Vector allocated in [3] was never freed by the parser. To solve that, you will need one more case handling the error and deleting the vector.

You can look at the rule for &quot;selector_list&quot; as an example.

&gt; Source/WebCore/css/CSSParserValues.cpp:255
&gt; +void CSSParserSelector::adoptStringVector(Vector&lt;CSSParserString&gt;&amp; argumentVector) 

I think I would prefer setArgumentList() here instead of adoptStringVector(). The function does not really adopt the values or the vector, it creates a new vector based on the identifiers.

&gt; Source/WebCore/css/CSSParserValues.cpp:256
&gt; +{

At the function entry, it would be good to test for valid input:
    ASSERT_WITH_MESSAGE(!argumentVector.isEmpty(), &quot;No CSS Selector accept an empty argument list.&quot;);

&gt; Source/WebCore/css/CSSParserValues.cpp:257
&gt; +    auto argumentList = std::make_unique&lt;Vector&lt;AtomicString&gt;&gt;();

After creating the vector, you can initialize its memory:
    argumentList-&gt;reserveInitialCapacity(argumentVector-&gt;size());

That way the following loop does not need to grow the vector dynamically, the vector will already be of the right size.

&gt; Source/WebCore/css/CSSParserValues.cpp:258
&gt; +    for (const auto&amp; argument : argumentVector)

I would prefer the type CSSParserString instead of &quot;auto&quot; here to avoid any confusion between CSSParserString and AtomicString when reading the code.

&gt; Source/WebCore/css/CSSParserValues.cpp:259
&gt; +        argumentList-&gt;append(static_cast&lt;String&gt;(argument));

Wouldn&apos;t this code work without the static_cast through implicit conversion?

If not, the cast should be to AtomicString instead of String.

&gt; Source/WebCore/css/CSSParserValues.h:203
&gt; +#if ENABLE(CSS_SELECTORS_LEVEL4)    
&gt; +    void adoptStringVector(Vector&lt;CSSParserString&gt;&amp; stringVector);
&gt; +#endif

Let&apos;s move this after the definition of adoptSelectorVector().

&gt; Source/WebCore/css/CSSSelector.cpp:257
&gt; +static void appendArgumentList(StringBuilder&amp; str, const Vector&lt;AtomicString&gt;* argumentList)

Let&apos;s pass argumenList by reference instead of pointer.

&gt; Source/WebCore/css/CSSSelector.cpp:260
&gt; +    if (!argumentList)
&gt; +        return;

Let&apos;s remove this.

&gt; Source/WebCore/css/CSSSelector.cpp:261
&gt; +    for (auto&amp; argument : *argumentList) {

auto&amp; -&gt; const AtomicString&amp;

This is a personal preference, other reviewers would not necessary say the same. I prefer using &quot;auto&quot; only when the type is obvious from an operation on the same line.

&gt; Source/WebCore/css/CSSSelector.cpp:262
&gt; +        if (argument != argumentList-&gt;last()) 

It is better to evaluate &quot;argumentList-&gt;last()&quot; out of the loop and keep the reference in a temporary variable.

The reason is that the compiler will have to reevaluate this expression from memory every time. The implementation of last() is:
    T&amp; last() { return at(size() - 1); }
To do that, the code will have to read the size from memory, subtract 1 from the size, load the AtomicString from memory, and compare the string to argument.

Why I don&apos;t think the compiler will optimize this out of the loop by itself?
The reason is StringBuilder::appendLiteral() and StringBuilder::append() will eventually do one out-of-line function call. The compiler does not know what those function does to the memory. Because of that unknown, it cannot ensure that the input vector was not modified, and it cannot prove that argumentList-&gt;last() will return the same value. Thus it needs to evaluate that code every time.

&gt; Source/WebCore/css/CSSSelector.cpp:413
&gt; +                appendArgumentList(str, cs-&gt;argumentList());
&gt; +                str.append(&apos;)&apos;);

Your grammar make it incorrect to have an empty list.

Here you could do:
    ASSERT_WITH_MESSAGE(cs-&gt;argumentList() &amp;&amp; !cs-&gt;argumentList().isEmpty(), &quot;An empty :lang() is invalid and should never be generated by the parser.&quot;);

&gt; Source/WebCore/css/CSSSelector.h:318
&gt;              AtomicString m_argument; // Used for :contains, :lang and :nth-*

Let&apos;s remove :lang from this comment.

&gt; Source/WebCore/css/CSSSelector.h:320
&gt; +            std::unique_ptr&lt;Vector&lt;AtomicString&gt;&gt; m_argumentList; // Used for :lang

You can remove the comment, the code is clear enough IMHO.

&gt; Source/WebCore/css/SelectorChecker.cpp:866
&gt; +                for (const auto&amp; argument : *argumentList) {
&gt; +                    if (matchesLangPseudoClass(element, argument.impl()))

We will need to be more efficient than that, but we&apos;ll see that in the next patch.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:734
&gt; +            if (argumentList-&gt;isEmpty() || argumentList-&gt;size() &gt; 1)

You could assert that argumentList-&gt;isEmpty() here instead of checking at runtime.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:737
&gt; +            const AtomicString&amp; argument = argumentList-&gt;at(0);

at(0) = first()

&gt; LayoutTests/ChangeLog:4
&gt; +        Extend the :lang() pseudo-class to accept comma-separated list arguments
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=138170

The way you can test this without implementing SelectorChecker is through CSSOM.

For example, you can see the tests added in:
-http://trac.webkit.org/changeset/173698
-http://trac.webkit.org/changeset/174259</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044985</commentid>
    <comment_count>4</comment_count>
      <attachid>240660</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-29 23:06:47 -0700</bug_when>
    <thetext>Created attachment 240660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044986</commentid>
    <comment_count>5</comment_count>
      <attachid>240661</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-29 23:12:43 -0700</bug_when>
    <thetext>Created attachment 240661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044990</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 00:14:32 -0700</bug_when>
    <thetext>Sorry, I was not clear.

You don&apos;t need to implement the matching of multiple languages now but you need to keep the current functionality working.

In SelectorChecker.cpp, you can do something like:

#if ENABLE(CSS_SELECTORS_LEVEL4)
const AtomicString&amp; argument = selector-&gt;argumentList()-&gt;first();
#else
const AtomicString&amp; argument = selector-&gt;argument();
#endif

And something similar for the compiler.

Did you find what was causing the crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044992</commentid>
    <comment_count>7</comment_count>
      <attachid>240661</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 00:17:37 -0700</bug_when>
    <thetext>Comment on attachment 240661
Patch

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

Quick look before going to bed:

&gt; Source/WebCore/css/CSSSelector.cpp:263
&gt; +            str.append(&apos;,&apos;);

This should be &quot;, &quot; for CSSOM.

&gt; LayoutTests/ChangeLog:12
&gt; +        * fast/css/css-selector-text-expected.txt: Updated
&gt; +        * fast/css/css-selector-text.html: Updated

Let&apos;s also have tests make sure that:
-empty :lang().
-invalid language
cause parsing errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044996</commentid>
    <comment_count>8</comment_count>
      <attachid>240662</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-30 00:59:33 -0700</bug_when>
    <thetext>Created attachment 240662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044997</commentid>
    <comment_count>9</comment_count>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-30 01:01:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Sorry, I was not clear.
&gt; 
&gt; You don&apos;t need to implement the matching of multiple languages now but you
&gt; need to keep the current functionality working.
&gt; 
&gt; In SelectorChecker.cpp, you can do something like:
&gt; 
&gt; #if ENABLE(CSS_SELECTORS_LEVEL4)
&gt; const AtomicString&amp; argument = selector-&gt;argumentList()-&gt;first();
&gt; #else
&gt; const AtomicString&amp; argument = selector-&gt;argument();
&gt; #endif

Yes, I&apos;m sorry I forgot to put --no-review, I was just wanted to know which tests are affected.

&gt; 
&gt; And something similar for the compiler.
&gt; 
&gt; Did you find what was causing the crash?

I cleanup the build and hey, it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045001</commentid>
    <comment_count>10</comment_count>
      <attachid>240663</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-30 02:12:43 -0700</bug_when>
    <thetext>Created attachment 240663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045165</commentid>
    <comment_count>11</comment_count>
      <attachid>240711</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-30 16:03:22 -0700</bug_when>
    <thetext>Created attachment 240711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045192</commentid>
    <comment_count>12</comment_count>
      <attachid>240711</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 17:51:28 -0700</bug_when>
    <thetext>Comment on attachment 240711
Patch

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

The patch looks correct. cq- because I had some ideas for test coverage but everything looks good.

&gt; Source/WebCore/css/CSSParserValues.cpp:263
&gt; +    ASSERT_WITH_MESSAGE(!stringVector.isEmpty(), &quot;No CSS Selector accept an empty argument list.&quot;);

accept-&gt;accepts/takes

&gt; LayoutTests/fast/css/css-selector-text.html:86
&gt; +testSelectorRoundTrip(&quot;:lang(fr, fr-ca, fr-be)&quot;);

Can you please add a test case with:
&quot;de-DE, de-DE-1996, de-Latn-DE, de-Latf-DE, de-Latn-DE-1996, de-CH, it-CH, fr-CH, rm-CH&quot;?

They are the examples in the spec, it would be a good idea to have them in our parsing tests.

Let&apos;s also have :lang(lang) to make sure the internal lang is recognized properly.

&gt; LayoutTests/fast/css/css-selector-text.html:325
&gt; +shouldBe(&quot;parseThenSerializeRule(&apos;:lang(a   ) { }&apos;)&quot;, &quot;&apos;:lang(a) { }&apos;&quot;);
&gt; +shouldBe(&quot;parseThenSerializeRule(&apos;:lang(a, b, c   ) { }&apos;)&quot;, &quot;&apos;:lang(a, b, c) { }&apos;&quot;);
&gt; +shouldBe(&quot;parseThenSerializeRule(&apos;:lang(a,                 b, c   ) { }&apos;)&quot;, &quot;&apos;:lang(a, b, c) { }&apos;&quot;);
&gt; +shouldBe(&quot;parseThenSerializeRule(&apos;:lang(a,b, c,d,e   ) { }&apos;)&quot;, &quot;&apos;:lang(a, b, c, d, e) { }&apos;&quot;);

Looks like we need one ore two more cases of normalization: when there is one ore more spaces after the opening parenthesis. E.g.:
:lang(   a)
:lang(   a    )
:lang( a , b , c )

&gt; LayoutTests/fast/selectors/lang-invalid.html:28
&gt; +description(&apos;Verify invalid :lang() selectors.&apos;);

Awesome.

&gt; LayoutTests/fast/selectors/lang-invalid.html:30
&gt; +shouldThrow(&apos;document.querySelectorAll(&quot;:lang()&quot;).length&apos;);

Let&apos;s add cases for various valid tokens and keyword:
-:lang(:lang(en))
-:lang())
-:lang({})
-:lang({)
-:lang(}})
-:lang([])
-:lang([)
-:lang(])
-:lang(@media screen {})

...that&apos;s all I can think of, feel free to add other cases that could be break parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045242</commentid>
    <comment_count>13</comment_count>
      <attachid>240726</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-30 23:33:59 -0700</bug_when>
    <thetext>Created attachment 240726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045244</commentid>
    <comment_count>14</comment_count>
      <attachid>240726</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 23:39:38 -0700</bug_when>
    <thetext>Comment on attachment 240726
Patch

Lots of good ideas in the new tests. Let&apos;s r+ already. I&apos;ll wait for the bots to cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045251</commentid>
    <comment_count>15</comment_count>
      <attachid>240729</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-31 01:31:40 -0700</bug_when>
    <thetext>Created attachment 240729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045252</commentid>
    <comment_count>16</comment_count>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-31 01:38:11 -0700</bug_when>
    <thetext>

(In reply to comment #15)
&gt; Created attachment 240729 [details]
&gt; Patch

1. It removes the &apos;warning: unset value: $$&apos;
2. Add some tests on multiple arguments, but some of it are invalid. 
e.g. 

shouldThrow(&quot;parseThenSerializeRule(&apos;:lang(12, b, c) { }&apos;)&quot;);
shouldThrow(&quot;parseThenSerializeRule(&apos;:lang(a, 12, c) { }&apos;)&quot;);
shouldThrow(&quot;parseThenSerializeRule(&apos;:lang(a, b, 12) { }&apos;)&quot;);
shouldThrow(&quot;parseThenSerializeRule(&apos;:lang(a, 12, 12) { }&apos;)&quot;);
shouldThrow(&quot;parseThenSerializeRule(&apos;:lang(12, b, 12) { }&apos;)&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045467</commentid>
    <comment_count>17</comment_count>
      <attachid>240729</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-31 19:29:15 -0700</bug_when>
    <thetext>Comment on attachment 240729
Patch

Great job. Let&apos;s land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045473</commentid>
    <comment_count>18</comment_count>
      <attachid>240729</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 20:07:38 -0700</bug_when>
    <thetext>Comment on attachment 240729
Patch

Clearing flags on attachment: 240729

Committed r175446: &lt;http://trac.webkit.org/changeset/175446&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045474</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 20:07:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240598</attachid>
            <date>2014-10-29 06:26:21 -0700</date>
            <delta_ts>2014-10-29 09:59:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141029202628.patch</filename>
            <type>text/plain</type>
            <size>12006</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjZGY0YTljOWIwODJk
NmFhN2E4YTU4NWUzNmRjNmE3ZGY2ZTE2ZS4uOTAwNDk2NmIxMmUyMDBmZjk4ZjBjNTA2YzFjZWYz
YzZlMDJjNGFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTEwLTI5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRo
ZSA6bGFuZygpIHBzZXVkby1jbGFzcyB0byBhY2NlcHQgY29tbWEtc2VwYXJhdGVkIGxpc3QgYXJn
dW1lbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM4MTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisJCisJRXh0ZW5kIHRoZSA6bGFuZygpIHBzZXVkby1jbGFz
cyB0byBhY2NlcHQgY29tbWEtc2VwYXJhdGVkIGxpc3QgYXJndW1lbnRzIGFzIHNwZWNpZmllZCBp
biBbMV0uCisKKyAgICAgICAgWzFdIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9yczQvI2xh
bmctcHNldWRvCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRlY3RGdW5j
dGlvblR5cGVUb2tlbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTdHJpbmdWZWN0b3IpOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQXJndW1lbnRMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6YXJndW1lbnRMaXN0KToKKyAgICAgICAg
KiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmUpOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlwZSk6
CisKIDIwMTQtMTAtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBDYXJldHMgaW4gR01haWwgYW5kIGlDbG91ZCBjb21wb3NpdGlvbnMgYXJlIHRo
ZSBmb3JlZ3JvdW5kIHRleHQgY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4
IDMwOGEwMWFjNTIzYjYzZTVjZjNhZjI3ZTUxYmNiN2IyMmFiNDJjOGMuLmJkZGRjZGZjMzEzZDRj
ZDliOTk5ODQ5OTE0ZTQzYTZlMDI4OGZkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgpAQCAtNjIsNiArNjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNDU1NUb2tlbkFTdHJpbmco
aW50IHl5dHlwZSkKICAgICBjYXNlIE5USENISUxERlVOQ1RJT046CiAgICAgY2FzZSBOVEhDSElM
RFNFTEVDVE9SU0VQQVJBVE9SOgogI2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorICAg
IGNhc2UgTEFOR0ZVTkNUSU9OOgogICAgIGNhc2UgTUFUQ0hFU0ZVTkNUSU9OOgogI2VuZGlmCiAg
ICAgY2FzZSBVTklDT0RFUkFOR0U6CkBAIC0yMjksNiArMjMwLDcgQEAgc3RhdGljIGJvb2wgc2Vs
ZWN0b3JMaXN0RG9lc05vdE1hdGNoQW55UHNldWRvRWxlbWVudChjb25zdCBWZWN0b3I8c3RkOjp1
bmlxdWVfcHQKICV0b2tlbiA8c3RyaW5nPiBOVEhDSElMREZVTkNUSU9OCiAKICNpZiBFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQKKyV0b2tlbiA8c3RyaW5nPiBMQU5HRlVOQ1RJT04KICV0b2tl
biA8c3RyaW5nPiBNQVRDSEVTRlVOQ1RJT04KICNlbmRpZgogCkBAIC0zMzUsNiArMzM3LDEyIEBA
IHN0YXRpYyBib29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29u
c3QgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0CiAldW5pb24geyBDU1NQYXJzZXI6OkxvY2F0aW9uIGxv
Y2F0aW9uOyB9CiAldHlwZSA8bG9jYXRpb24+IGVycm9yX2xvY2F0aW9uCiAKKyNpZiBFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBz
dHJpbmdMaXN0OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZp
ZXJzCislZGVzdHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmll
cnMKKyNlbmRpZgorCiAjaWYgRU5BQkxFX0NTU19HUklEX0xBWU9VVAogJXR5cGUgPHZhbHVlTGlz
dD4gaWRlbnRfbGlzdAogJWRlc3RydWN0b3IgeyBkZWxldGUgJCQ7IH0gaWRlbnRfbGlzdApAQCAt
MTMzMCw2ICsxMzM4LDE4IEBAIHBzZXVkbzoKICAgICB9CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyAgICB8ICc6JyBMQU5HRlVOQ1RJT04gbWF5YmVfc3BhY2UgY29tbWFfc2Vw
YXJhdGVkX2lkZW50aWZpZXJzIG1heWJlX3NwYWNlICcpJyB7CisgICAgICAgICQkID0gbnVsbHB0
cjsKKyAgICAgICAgaWYgKCQ0KSB7CisgICAgICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjpt
YWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKKyAgICAgICAgICAgIHNlbGVjdG9yLT5z
ZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOworICAgICAgICAgICAgc2VsZWN0b3It
PmFkb3B0U3RyaW5nVmVjdG9yKCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPENTU1BhcnNlclN0cmlu
Zz4+KCQ0KSk7CisgICAgICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7
CisgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc0xhbmcpIAorICAgICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVs
ZWFzZSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgfCAnOicgTUFUQ0hFU0ZVTkNUSU9OIG1h
eWJlX3NwYWNlIG5lc3RlZF9zZWxlY3Rvcl9saXN0IG1heWJlX3NwYWNlICcpJyB7CiAgICAgICAg
ICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYgKCQ0KSB7CkBAIC0xNTMwLDYgKzE1NTAsMjAgQEAg
cHJvcGVydHk6IElERU5UIG1heWJlX3NwYWNlIHsgJCQgPSBjc3NQcm9wZXJ0eUlEKCQxKTsgfSA7
CiAKIHByaW9yaXR5OiBJTVBPUlRBTlRfU1lNIG1heWJlX3NwYWNlIHsgJCQgPSB0cnVlOyB9IHwg
LyogZW1wdHkgKi8geyAkJCA9IGZhbHNlOyB9IDsKIAorI2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JT
X0xFVkVMNAorCitjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnM6CisgICAgSURFTlQgeworICAg
ICAgICAkJCA9IG5ldyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKKyAgICAgICAgJCQtPmFwcGVu
ZCgkMSk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzICcsJyBtYXli
ZV9zcGFjZSBJREVOVCB7CisgICAgICAgICQxLT5hcHBlbmQoJDQpOworICAgIH0KKyAgICA7CisK
KyNlbmRpZgorCiAjaWYgRU5BQkxFX0NTU19HUklEX0xBWU9VVAogCiBpZGVudF9saXN0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxOTYzZGE0YWNmMzM5OGM3ZDYyN2ZjYTdkMmQyODQz
NGIzMDk4OTE5Li5jNjU1OTcxODgwNDgzYjJmMDAzOTdhOGYyNmYxYTkyNTU2MmJlOWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTA2NzAsNiArMTA2NzAsMTIgQEAgaW5saW5lIGJv
b2wgQ1NTUGFyc2VyOjpkZXRlY3RGdW5jdGlvblR5cGVUb2tlbihpbnQgbGVuZ3RoKQogICAgICAg
ICAgICAgbV90b2tlbiA9IENBTENGVU5DVElPTjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICBpZiAo
aXNFcXVhbFRvQ1NTSWRlbnRpZmllcihuYW1lLCAibGFuZyIpKSB7CisgICAgICAgICAgICBtX3Rv
a2VuID0gTEFOR0ZVTkNUSU9OOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyNlbmRpZiAgICAgICAgCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShDU1Nf
U0VMRUNUT1JTX0xFVkVMNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5k
ZXggYzAzNjY2Zjg2ZTVlMDFiNzg4ODAxZmNkMTczOTNlZmQ2YTU1NGFkYi4uNDNhZWNjNTI1NTky
ODUxYzJiMjQ2ZWQ0MzhlOGY5MzA3ZDc1OTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
clZhbHVlcy5jcHAKQEAgLTI1MSw2ICsyNTEsMTcgQEAgQ1NTUGFyc2VyU2VsZWN0b3I6On5DU1NQ
YXJzZXJTZWxlY3RvcigpCiAgICAgfQogfQogCisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVW
RUw0KQordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTdHJpbmdWZWN0b3IoVmVjdG9yPENT
U1BhcnNlclN0cmluZz4mIGFyZ3VtZW50VmVjdG9yKSAKK3sKKyAgICBhcmd1bWVudFZlY3Rvci5z
aXplKCk7CisgICAgYXV0byBhcmd1bWVudExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxB
dG9taWNTdHJpbmc+PigpOworICAgIGZvciAoY29uc3QgYXV0byYgYXJndW1lbnQgOiBhcmd1bWVu
dFZlY3RvcikKKyAgICAgICAgYXJndW1lbnRMaXN0LT5hcHBlbmQoc3RhdGljX2Nhc3Q8U3RyaW5n
Pihhcmd1bWVudCkpOworICAgIG1fc2VsZWN0b3ItPnNldEFyZ3VtZW50TGlzdChXVEY6Om1vdmUo
YXJndW1lbnRMaXN0KSk7Cit9CisjZW5kaWYKKwogdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRv
cHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
Pj4mIHNlbGVjdG9yVmVjdG9yKQogewogICAgIGF1dG8gc2VsZWN0b3JMaXN0ID0gc3RkOjptYWtl
X3VuaXF1ZTxDU1NTZWxlY3Rvckxpc3Q+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmgKaW5kZXggMzIyMzkyODgwZTU0ZjAxYjM2NWNhZTQ3NmQ4NTgwMDc3ZTQ5ZjI3ZC4uOThiMTQ0
NmFiNWViZTNkMzk2MjI1ZjNjMTFiMDVjM2I3MTk0OWI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1h
dGNoKENTU1NlbGVjdG9yOjpNYXRjaCB2YWx1ZSkgeyBtX3NlbGVjdG9yLT5zZXRNYXRjaCh2YWx1
ZSk7IH0KICAgICB2b2lkIHNldFJlbGF0aW9uKENTU1NlbGVjdG9yOjpSZWxhdGlvbiB2YWx1ZSkg
eyBtX3NlbGVjdG9yLT5zZXRSZWxhdGlvbih2YWx1ZSk7IH0KICAgICB2b2lkIHNldEZvclBhZ2Uo
KSB7IG1fc2VsZWN0b3ItPnNldEZvclBhZ2UoKTsgfQorICAgIHZvaWQgYWRvcHRTdHJpbmdWZWN0
b3IoVmVjdG9yPENTU1BhcnNlclN0cmluZz4mIHN0cmluZ1ZlY3Rvcik7CiAKIAogICAgIHZvaWQg
YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4mIHNlbGVjdG9yVmVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4
IGY3YTEzNTFkOWUwNWVkYmZmYzFjY2JlZDkyNWU4YTM0ZjA5MzM3NTIuLmI3ZWFlMTEzY2U3Y2Q1
MzdmZGEzZDU5YjRmZGJiYWRmM2M3ZWJjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cApAQCAtMjUzLDYgKzI1MywxOSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0
aW9uVGFpbChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yKgogCiB9CiAKKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCitzdGF0aWMgdm9pZCBhcHBlbmRBcmd1bWVu
dExpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiogYXJn
dW1lbnRMaXN0KQoreworICAgIGlmICghYXJndW1lbnRMaXN0KQorICAgICAgICByZXR1cm47Cisg
ICAgZm9yIChhdXRvJiBhcmd1bWVudCA6ICphcmd1bWVudExpc3QpIHsKKyAgICAgICAgaWYgKGFy
Z3VtZW50ICE9IGFyZ3VtZW50TGlzdC0+bGFzdCgpKSAKKyAgICAgICAgICAgIHN0ci5hcHBlbmRM
aXRlcmFsKCIsICIpOworICAgICAgICBzdHIuYXBwZW5kKGFyZ3VtZW50KTsKKyAgICB9Cit9Cisj
ZW5kaWYKKwogc3RhdGljIHZvaWQgYXBwZW5kU2VsZWN0b3JMaXN0KFN0cmluZ0J1aWxkZXImIHN0
ciwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QpCiB7CiAgICAgY29uc3QgQ1NT
U2VsZWN0b3IqIGZpcnN0U3ViU2VsZWN0b3IgPSBzZWxlY3Rvckxpc3QtPmZpcnN0KCk7CkBAIC0z
OTAsNyArNDAzLDEyIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFN0
cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAgICAgICAgIHN0
ci5hcHBlbmRMaXRlcmFsKCI6bGFuZygiKTsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZF
TDQpCisgICAgICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRMaXN0KHN0ciwgY3MtPmFyZ3VtZW50
TGlzdCgpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisjZWxzZQogICAgICAg
ICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwgY3MpOworI2VuZGlm
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQ6CiAgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpsYXN0LWNoaWxkIik7CkBAIC02MDEsNiArNjE5LDE0IEBAIHZvaWQg
Q1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAgICAg
bV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgPSB2YWx1ZTsKIH0KIAorI2lmIEVOQUJMRShD
U1NfU0VMRUNUT1JTX0xFVkVMNCkKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdChz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IHZhbHVlcykKK3sKKyAgICBjcmVh
dGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50TGlzdCA9IFdU
Rjo6bW92ZSh2YWx1ZXMpOworfQorI2VuZGlmCisKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldFNlbGVj
dG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBzZWxlY3Rvckxpc3QpCiB7
CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNzk4
ZmQzMzA4ZTc3Njg3NDk1NTAxZGM3MTdkYjVkYWEwZGEyOWM0Yy4uYzk3ZjdjNzVhYTlmMWU2MTk2
YTk1MjdiODgxZGVmYjhmYjBjZjE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTIw
NCwxMSArMjA0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
YXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRh
Lm1fcmFyZURhdGEtPm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQorI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JTX0xFVkVMNCkKKyAgICAgICAgY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4qIGFyZ3Vt
ZW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0
YS0+bV9hcmd1bWVudExpc3QuZ2V0KCkgOiBudWxscHRyOyB9CisjZW5kaWYKICAgICAgICAgY29u
c3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jh
cmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fc2VsZWN0b3JMaXN0LmdldCgpIDogbnVsbHB0
cjsgfQogCisKICAgICAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKICAg
ICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGJvb2wgaXNDYXNl
SW5zZW5zaXRpdmUpOwogICAgICAgICB2b2lkIHNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgdm9pZCBzZXRB
cmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxBdG9taWNTdHJpbmc+Pik7CisjZW5k
aWYKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxpc3Qoc3RkOjp1bmlxdWVfcHRyPENTU1NlbGVj
dG9yTGlzdD4pOwogCiAgICAgICAgIGJvb2wgcGFyc2VOdGgoKSBjb25zdDsKQEAgLTMwNyw2ICsz
MTQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBRdWFsaWZpZWROYW1lIG1f
YXR0cmlidXRlOyAvLyB1c2VkIGZvciBhdHRyaWJ1dGUgc2VsZWN0b3IKICAgICAgICAgICAgIEF0
b21pY1N0cmluZyBtX2F0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZTsKICAgICAgICAgICAgIEF0
b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2VkIGZvciA6Y29udGFpbnMsIDpsYW5nIGFuZCA6
bnRoLSoKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IG1fYXJndW1lbnRMaXN0OyAvLyBVc2Vk
IGZvciA6bGFuZworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0
b3JMaXN0PiBtX3NlbGVjdG9yTGlzdDsgLy8gVXNlZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90
CiAgICAgICAgIAogICAgICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAppbmRleCBjNGQ0NjFjMDA0YjNmYjM3YmZjNTU4MjRlYWFlMzc5NTRkN2M2MDM4Li4x
NTRiYTQ1NDJkNGQwMmY1MjVlYmM4NjMyMTA4MTkxNDU5OTU0Yjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtODU2LDEwICs4NTYsMjAgQEAgYm9vbCBTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IENoZWNraW5nQ29udGV4dFdpdGhTdGF0dXMmIGNvbnRl
eHQpIGNvbnN0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAgICAgeworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JT
X0xFVkVMNCkKKyAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiogYXJn
dW1lbnRMaXN0ID0gc2VsZWN0b3ItPmFyZ3VtZW50TGlzdCgpOworICAgICAgICAgICAgICAgIEFT
U0VSVChhcmd1bWVudExpc3QpOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYXJn
dW1lbnQgOiAqYXJndW1lbnRMaXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVz
TGFuZ1BzZXVkb0NsYXNzKGVsZW1lbnQsIGFyZ3VtZW50LmltcGwoKSkpIAorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBhcmd1bWVudCA9IHNlbGVjdG9yLT5hcmd1bWVudCgpOwogICAgICAgICAgICAgICAgIGlm
IChhcmd1bWVudC5pc051bGwoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzTGFuZ1BzZXVkb0NsYXNzKGVsZW1lbnQsIGFy
Z3VtZW50LmltcGwoKSk7CisjZW5kaWYKICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRnVsbFNjcmVl
bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCBhNDFk
MDhiNDVjZjNjNjQxOGMzODUzN2YyNzQ5NmFjYjdmM2Y4NDEyLi43NWE4NzBhMmI2YTg3ODg0MWYz
Y2UwNjQyNmQzZmRmNDMxMTgzYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCkBAIC03MjQsOCArNzI0LDE4IEBAIHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25U
eXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBDU1NTZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVj
CiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhbmc6CiAgICAgICAgIHsKKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgICAgICBjb25zdCBWZWN0b3I8
QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0ID0gc2VsZWN0b3IuYXJndW1lbnRMaXN0KCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIEFTU0VSVChhcmd1bWVudExpc3QpOworICAgICAgICAg
ICAgaWYgKGFyZ3VtZW50TGlzdC0+aXNFbXB0eSgpIHx8IGFyZ3VtZW50TGlzdC0+c2l6ZSgpID4g
MSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOwor
CisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gYXJndW1lbnRMaXN0
LT5hdCgwKTsKKyNlbHNlCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
ID0gc2VsZWN0b3IuYXJndW1lbnQoKTsKLSAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc0VtcHR5
KCkpCisjZW5kaWYKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc0VtcHR5KCkpIAogICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAKICAg
ICAgICAgICAgIGlmICghZnJhZ21lbnQubGFuZ0ZpbHRlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240608</attachid>
            <date>2014-10-29 09:59:23 -0700</date>
            <delta_ts>2014-10-29 23:06:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141029235930.patch</filename>
            <type>text/plain</type>
            <size>15184</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ4ZWExMThmMjk3MDg4
YzM3YTM0M2QwYWFlNmU4YjZhMDQxNzdiMi4uNTY0ZDBmY2FjZmE3NDBlZGNjN2Q4YTg2MGE0YTBh
YTdjYmJjZGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTEwLTI5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRo
ZSA6bGFuZygpIHBzZXVkby1jbGFzcyB0byBhY2NlcHQgY29tbWEtc2VwYXJhdGVkIGxpc3QgYXJn
dW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzgxNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHRlbmQgdGhlIDpsYW5nKCkgcHNldWRvLWNsYXNzIHRvIGFjY2VwdCBjb21tYS1zZXBhcmF0ZWQg
bGlzdCBhcmd1bWVudHMsCisgICAgICAgIGFzIGRlZmluZWQgaW4gWzFdLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnMvI3RoZS1sYW5nLXBzZXVkbworCisg
ICAgICAgIFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL2xhbmctY29tbWEtc2VwYXJhdGVkLWFyZ3VtZW50
cy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRlY3RGdW5jdGlv
blR5cGVUb2tlbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTdHJpbmdWZWN0b3IpOgorICAgICAg
ICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQXJndW1lbnRMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2Vs
ZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6YXJndW1lbnRMaXN0KToKKyAgICAgICAgKiBj
c3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUpOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlwZSk6CisK
IDIwMTQtMTAtMjkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
bGVhbiB1cCB2aXJ0dWFsIGZ1bmN0aW9ucyBpbiBodG1sLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkuaW4KaW5kZXggMzA4YTAxYWM1MjNiNjNlNWNmM2FmMjdlNTFiY2I3YjIyYWI0MmM4Yy4uYmRk
ZGNkZmMzMTNkNGNkOWI5OTk4NDk5MTRlNDNhNmUwMjg4ZmRiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhbW1hci55LmluCkBAIC02Miw2ICs2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1Rv
a2VuQVN0cmluZyhpbnQgeXl0eXBlKQogICAgIGNhc2UgTlRIQ0hJTERGVU5DVElPTjoKICAgICBj
YXNlIE5USENISUxEU0VMRUNUT1JTRVBBUkFUT1I6CiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0CisgICAgY2FzZSBMQU5HRlVOQ1RJT046CiAgICAgY2FzZSBNQVRDSEVTRlVOQ1RJT046
CiAjZW5kaWYKICAgICBjYXNlIFVOSUNPREVSQU5HRToKQEAgLTIyOSw2ICsyMzAsNyBAQCBzdGF0
aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVtZW50KGNvbnN0IFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXRva2VuIDxzdHJpbmc+IE5USENISUxERlVOQ1RJT04KIAog
I2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorJXRva2VuIDxzdHJpbmc+IExBTkdGVU5D
VElPTgogJXRva2VuIDxzdHJpbmc+IE1BVENIRVNGVU5DVElPTgogI2VuZGlmCiAKQEAgLTMzNSw2
ICszMzcsMTIgQEAgc3RhdGljIGJvb2wgc2VsZWN0b3JMaXN0RG9lc05vdE1hdGNoQW55UHNldWRv
RWxlbWVudChjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHQKICV1bmlvbiB7IENTU1BhcnNlcjo6
TG9jYXRpb24gbG9jYXRpb247IH0KICV0eXBlIDxsb2NhdGlvbj4gZXJyb3JfbG9jYXRpb24KIAor
I2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorJXVuaW9uIHsgVmVjdG9yPENTU1BhcnNl
clN0cmluZz4qIHN0cmluZ0xpc3Q7IH0KKyV0eXBlIDxzdHJpbmdMaXN0PiBjb21tYV9zZXBhcmF0
ZWRfaWRlbnRpZmllcnMKKyVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVycworI2VuZGlmCisKICNpZiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUCiAldHlw
ZSA8dmFsdWVMaXN0PiBpZGVudF9saXN0CiAlZGVzdHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBpZGVu
dF9saXN0CkBAIC0xMzMwLDYgKzEzMzgsMTggQEAgcHNldWRvOgogICAgIH0KIAogI2lmIEVOQUJM
RV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorICAgIHwgJzonIExBTkdGVU5DVElPTiBtYXliZV9zcGFj
ZSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMgbWF5YmVfc3BhY2UgJyknIHsKKyAgICAgICAg
JCQgPSBudWxscHRyOworICAgICAgICBpZiAoJDQpIHsKKyAgICAgICAgICAgIGF1dG8gc2VsZWN0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOworICAgICAgICAgICAg
c2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CisgICAgICAgICAg
ICBzZWxlY3Rvci0+YWRvcHRTdHJpbmdWZWN0b3IoKnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Q1NT
UGFyc2VyU3RyaW5nPj4oJDQpKTsKKyAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFz
c1ZhbHVlKCQyKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFuZykgCisgICAgICAgICAgICAgICAgJCQgPSBz
ZWxlY3Rvci5yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICB8ICc6JyBNQVRDSEVT
RlVOQ1RJT04gbWF5YmVfc3BhY2UgbmVzdGVkX3NlbGVjdG9yX2xpc3QgbWF5YmVfc3BhY2UgJykn
IHsKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAoJDQpIHsKQEAgLTE1MzAsNiAr
MTU1MCwyMCBAQCBwcm9wZXJ0eTogSURFTlQgbWF5YmVfc3BhY2UgeyAkJCA9IGNzc1Byb3BlcnR5
SUQoJDEpOyB9IDsKIAogcHJpb3JpdHk6IElNUE9SVEFOVF9TWU0gbWF5YmVfc3BhY2UgeyAkJCA9
IHRydWU7IH0gfCAvKiBlbXB0eSAqLyB7ICQkID0gZmFsc2U7IH0gOwogCisjaWYgRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0CisKK2NvbW1hX3NlcGFyYXRlZF9pZGVudGlmaWVyczoKKyAgICBJ
REVOVCB7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+OworICAgICAg
ICAkJC0+YXBwZW5kKCQxKTsKKyAgICB9CisgICAgfCBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmll
cnMgJywnIG1heWJlX3NwYWNlIElERU5UIHsKKyAgICAgICAgJDEtPmFwcGVuZCgkNCk7CisgICAg
fQorICAgIDsKKworI2VuZGlmCisKICNpZiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUCiAKIGlkZW50
X2xpc3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDE5NjNkYTRhY2YzMzk4YzdkNjI3
ZmNhN2QyZDI4NDM0YjMwOTg5MTkuLmM2NTU5NzE4ODA0ODNiMmYwMDM5N2E4ZjI2ZjFhOTI1NTYy
YmU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xMDY3MCw2ICsxMDY3MCwxMiBA
QCBpbmxpbmUgYm9vbCBDU1NQYXJzZXI6OmRldGVjdEZ1bmN0aW9uVHlwZVRva2VuKGludCBsZW5n
dGgpCiAgICAgICAgICAgICBtX3Rva2VuID0gQ0FMQ0ZVTkNUSU9OOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisg
ICAgICAgIGlmIChpc0VxdWFsVG9DU1NJZGVudGlmaWVyKG5hbWUsICJsYW5nIikpIHsKKyAgICAg
ICAgICAgIG1fdG9rZW4gPSBMQU5HRlVOQ1RJT047CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorI2VuZGlmICAgICAgICAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYg
RU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFs
dWVzLmNwcAppbmRleCBjMDM2NjZmODZlNWUwMWI3ODg4MDFmY2QxNzM5M2VmZDZhNTU0YWRiLi43
NjhhMTA3ZjA0NDkzN2QxZTc4NDNmYWU4MGJmOGM5ZjIyNWQ4MGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjUxLDYgKzI1MSwxNiBAQCBDU1NQYXJzZXJTZWxl
Y3Rvcjo6fkNTU1BhcnNlclNlbGVjdG9yKCkKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NF
TEVDVE9SU19MRVZFTDQpCit2b2lkIENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFN0cmluZ1ZlY3Rv
cihWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPiYgYXJndW1lbnRWZWN0b3IpIAoreworICAgIGF1dG8g
YXJndW1lbnRMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8QXRvbWljU3RyaW5nPj4oKTsK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZ3VtZW50IDogYXJndW1lbnRWZWN0b3IpCisgICAgICAg
IGFyZ3VtZW50TGlzdC0+YXBwZW5kKHN0YXRpY19jYXN0PFN0cmluZz4oYXJndW1lbnQpKTsKKyAg
ICBtX3NlbGVjdG9yLT5zZXRBcmd1bWVudExpc3QoV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCkpOwor
fQorI2VuZGlmCisKIHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFkb3B0U2VsZWN0b3JWZWN0b3Io
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxlY3RvclZlY3Rv
cikKIHsKICAgICBhdXRvIHNlbGVjdG9yTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0
b3JMaXN0PigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVl
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDMyMjM5Mjg4
MGU1NGYwMWIzNjVjYWU0NzZkODU4MDA3N2U0OWYyN2QuLmQyMDA2OGQxZmM3ODc3ZTRkNGMwNzBh
NzEwMWJiOWRjZjA3MmM4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXJWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAg
LTE5OCw2ICsxOTgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXRjaChDU1NTZWxlY3Rvcjo6
TWF0Y2ggdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0TWF0Y2godmFsdWUpOyB9CiAgICAgdm9pZCBz
ZXRSZWxhdGlvbihDU1NTZWxlY3Rvcjo6UmVsYXRpb24gdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0
UmVsYXRpb24odmFsdWUpOyB9CiAgICAgdm9pZCBzZXRGb3JQYWdlKCkgeyBtX3NlbGVjdG9yLT5z
ZXRGb3JQYWdlKCk7IH0KKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpICAgIAorICAg
IHZvaWQgYWRvcHRTdHJpbmdWZWN0b3IoVmVjdG9yPENTU1BhcnNlclN0cmluZz4mIHN0cmluZ1Zl
Y3Rvcik7CisjZW5kaWYKIAogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMDllYTM0NmY4OTM0MGM0YzBmMmZiN2RlNTU0
OTUzZmY3MWI0YTgwNC4uOGI4ODdjMmZlYmY1MTQyMTViYjZkOGZjMTI1OWJiMTMyYjI2MmQ2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yNTMsNiArMjUzLDE5IEBAIHN0YXRp
YyB2b2lkIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKFN0cmluZ0J1aWxkZXImIHN0ciwg
Y29uc3QgQ1NTU2VsZWN0b3IqCiAKIH0KIAorI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVM
NCkKK3N0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNv
bnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+KiBhcmd1bWVudExpc3QpCit7CisgICAgaWYgKCFhcmd1
bWVudExpc3QpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIGFyZ3VtZW50IDogKmFy
Z3VtZW50TGlzdCkgeworICAgICAgICBpZiAoYXJndW1lbnQgIT0gYXJndW1lbnRMaXN0LT5sYXN0
KCkpIAorICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIHN0ci5h
cHBlbmQoYXJndW1lbnQpOworICAgIH0KK30KKyNlbmRpZgorCiBzdGF0aWMgdm9pZCBhcHBlbmRT
ZWxlY3Rvckxpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNl
bGVjdG9yTGlzdCkKIHsKICAgICBjb25zdCBDU1NTZWxlY3RvciogZmlyc3RTdWJTZWxlY3RvciA9
IHNlbGVjdG9yTGlzdC0+Zmlyc3QoKTsKQEAgLTM5NSw3ICs0MDgsMTIgQEAgU3RyaW5nIENTU1Nl
bGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsYW5nKCIpOwor
I2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgICAgICAgICBhcHBlbmRB
cmd1bWVudExpc3Qoc3RyLCBjcy0+YXJndW1lbnRMaXN0KCkpOworICAgICAgICAgICAgICAgIHN0
ci5hcHBlbmQoJyknKTsKKyNlbHNlCiAgICAgICAgICAgICAgICAgYXBwZW5kUHNldWRvQ2xhc3NG
dW5jdGlvblRhaWwoc3RyLCBjcyk7CisjZW5kaWYgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xh
c3RDaGlsZDoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhc3QtY2hpbGQi
KTsKQEAgLTYwNiw2ICs2MjQsMTQgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKICAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVu
dCA9IHZhbHVlOwogfQogCisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQordm9pZCBD
U1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWlj
U3RyaW5nPj4gdmFsdWVzKQoreworICAgIGNyZWF0ZVJhcmVEYXRhKCk7CisgICAgbV9kYXRhLm1f
cmFyZURhdGEtPm1fYXJndW1lbnRMaXN0ID0gV1RGOjptb3ZlKHZhbHVlcyk7Cit9CisjZW5kaWYK
Kwogdm9pZCBDU1NTZWxlY3Rvcjo6c2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVlX3B0cjxDU1NT
ZWxlY3Rvckxpc3Q+IHNlbGVjdG9yTGlzdCkKIHsKICAgICBjcmVhdGVSYXJlRGF0YSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA5M2FkNWU0OTZjY2ZjMzIzOGNjZTk2YTUxOTdmMjQw
OTg3MjZjZGNjLi4wZTlhNDcyYTM4YzJkZDYxODllMjIyNDc3MWIzN2RjOThmOWU3ZmY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMjA3LDExICsyMDcsMTcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUoKSBjb25zdDsK
ICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWUo
KSBjb25zdDsKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA6IG51
bGxBdG9tOyB9CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICBjb25z
dCBWZWN0b3I8QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNSYXJlRGF0YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50TGlzdC5nZXQoKSA6IG51
bGxwdHI7IH0KKyNlbmRpZgogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9y
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+
bV9zZWxlY3Rvckxpc3QuZ2V0KCkgOiBudWxscHRyOyB9CiAKICAgICAgICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpOwogICAgICAgICB2b2lkIHNl
dEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JT
X0xFVkVMNCkKKyAgICAgICAgdm9pZCBzZXRBcmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxBdG9taWNTdHJpbmc+Pik7CisjZW5kaWYKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxp
c3Qoc3RkOjp1bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4pOwogCiAgICAgICAgIGJvb2wgcGFy
c2VOdGgoKSBjb25zdDsKQEAgLTMxMCw2ICszMTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBRdWFsaWZpZWROYW1lIG1fYXR0cmlidXRlOyAvLyB1c2VkIGZvciBhdHRyaWJ1
dGUgc2VsZWN0b3IKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2F0dHJpYnV0ZUNhbm9uaWNh
bExvY2FsTmFtZTsKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2Vk
IGZvciA6Y29udGFpbnMsIDpsYW5nIGFuZCA6bnRoLSoKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9S
U19MRVZFTDQpCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmlu
Zz4+IG1fYXJndW1lbnRMaXN0OyAvLyBVc2VkIGZvciA6bGFuZworI2VuZGlmCiAgICAgICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBtX3NlbGVjdG9yTGlzdDsgLy8gVXNl
ZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90CiAgICAgICAgIAogICAgICAgICBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCBjMzVkZDZkOTFhZjNmODE2
NWM2NGQ1NWFlOWY1ZDhlOWE1YzI4YmQ5Li4wNjBhYmE2OTU4NDI4YWZkMGU1OTAyZGJkNmQ1NTI2
N2ViNDI4NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtODU5
LDEwICs4NTksMjAgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IENoZWNr
aW5nQ29udGV4dFdpdGhTdGF0dXMmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAgICAg
eworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgICAgICAgICBjb25z
dCBWZWN0b3I8QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0ID0gc2VsZWN0b3ItPmFyZ3VtZW50
TGlzdCgpOworICAgICAgICAgICAgICAgIEFTU0VSVChhcmd1bWVudExpc3QpOworICAgICAgICAg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgYXJndW1lbnQgOiAqYXJndW1lbnRMaXN0KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzTGFuZ1BzZXVkb0NsYXNzKGVsZW1lbnQsIGFyZ3Vt
ZW50LmltcGwoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKICAgICAg
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3Vt
ZW50KCk7CiAgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50LmlzTnVsbCgpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNM
YW5nUHNldWRvQ2xhc3MoZWxlbWVudCwgYXJndW1lbnQuaW1wbCgpKTsKKyNlbmRpZgogICAgICAg
ICAgICAgfQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3NGdWxsU2NyZWVuOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVj
dG9yQ29tcGlsZXIuY3BwCmluZGV4IDY4ZjIxYTM2MjQ3OGRhZTdhNzdmZTE4OWU4ZWY0YWU1OTJh
MGNkNTQuLjUyNzAyYzQ1NjFkNGQ4NGE3NzM5MTQ3NjRmZDczMjQxYWM0Mzc1ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTcyNywxMCArNzI3LDE5
IEBAIHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25UeXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBD
U1NTZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVjCiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc0xhbmc6CiAgICAgICAgIHsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQp
CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0ID0g
c2VsZWN0b3IuYXJndW1lbnRMaXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFTU0VS
VChhcmd1bWVudExpc3QpOworICAgICAgICAgICAgaWYgKGFyZ3VtZW50TGlzdC0+aXNFbXB0eSgp
IHx8IGFyZ3VtZW50TGlzdC0+c2l6ZSgpID4gMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVu
Y3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOworCisgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGFyZ3VtZW50ID0gYXJndW1lbnRMaXN0LT5hdCgwKTsKKyNlbHNlCiAgICAgICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3IuYXJndW1lbnQoKTsKLSAgICAg
ICAgICAgIGlmIChhcmd1bWVudC5pc0VtcHR5KCkpCisjZW5kaWYKKyAgICAgICAgICAgIGlmIChh
cmd1bWVudC5pc0VtcHR5KCkpIAogICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6
OkNhbm5vdE1hdGNoQW55dGhpbmc7Ci0KICAgICAgICAgICAgIGlmICghZnJhZ21lbnQubGFuZ0Zp
bHRlcikKICAgICAgICAgICAgICAgICBmcmFnbWVudC5sYW5nRmlsdGVyID0gJmFyZ3VtZW50Owog
ICAgICAgICAgICAgZWxzZSBpZiAoKmZyYWdtZW50LmxhbmdGaWx0ZXIgIT0gYXJndW1lbnQpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NTIxZTc4NGI4NzYyYTNmZDhiMzQwZTQ4MmVhNjEwZTZiNWFhYTQ2Li5mOTAxMDJj
YzU1NGRiM2E1OTIxOTkwMDgxNTZhNzRlNjhhMWQxNTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTQtMTAtMjkgIERoaSBBdXJyYWhtYW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KKwor
ICAgICAgICBFeHRlbmQgdGhlIDpsYW5nKCkgcHNldWRvLWNsYXNzIHRvIGFjY2VwdCBjb21tYS1z
ZXBhcmF0ZWQgbGlzdCBhcmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1jb21tYS1zZXBhcmF0ZWQtYXJn
dW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFu
Zy1jb21tYS1zZXBhcmF0ZWQtYXJndW1lbnRzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEwLTE3ICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFTU0VS
VElPTiBGQUlMRUQ6IGdyb3d0aFNoYXJlID4gMCBpbiBXZWJDb3JlOjpSZW5kZXJHcmlkOjpkaXN0
cmlidXRlU3BhY2VUb1RyYWNrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3Rv
cnMvbGFuZy1jb21tYS1zZXBhcmF0ZWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctY29tbWEtc2VwYXJhdGVkLWFyZ3VtZW50cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTZkYmI1M2YxOGZiMzFjMWY1Y2QzNWE1NThhOTliZTQyZDMzMjEx
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctY29t
bWEtc2VwYXJhdGVkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmVy
aWZ5IHNlbGVjdG9yIHNwZWNpZnlpbmcgbXVsdGlwbGUgOmxhbmcoKSBwc2V1ZG8gY2xhc3MsIHdp
dGggY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQxIikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MiIp
KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0
b3JzL2xhbmctY29tbWEtc2VwYXJhdGVkLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zZWxlY3RvcnMvbGFuZy1jb21tYS1zZXBhcmF0ZWQtYXJndW1lbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmEyYWVkZjQ0YzY1MjQ4ZDlhNWZhODJmOTM5OWIzYWNhYjk4MTc1ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctY29tbWEtc2VwYXJhdGVkLWFy
Z3VtZW50cy5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorOmxhbmcoZnItY2EsIGZyLWJlLCBmci1jaCkgeworICAgIGNvbG9yOiBy
Z2IoMSwgMiwgMyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHls
ZT0iZGlzcGxheTpub25lIj4KKyAgICAgICAgPGEgbGFuZz0iRlItQkUiPgorICAgICAgICAgICAg
PGI+CisgICAgICAgICAgICAgICAgPGMgaWQ9InRhcmdldDEiPjwvYz4KKyAgICAgICAgICAgIDwv
Yj4KKyAgICAgICAgPC9hPgorICAgICAgICA8YSBsYW5nPSJGUi1DQSI+CisgICAgICAgICAgICA8
Yj4KKyAgICAgICAgICAgICAgICA8YyBpZD0idGFyZ2V0MiI+PC9jPgorICAgICAgICAgICAgPC9i
PgorICAgICAgICA8L2E+CisgICAgICAgIDxhIGxhbmc9IkZSLUNIIj4KKyAgICAgICAgICAgIDxi
PgorICAgICAgICAgICAgICAgIDxjIGlkPSJ0YXJnZXQzIj48L2M+CisgICAgICAgICAgICA8L2I+
CisgICAgICAgIDwvYT4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVmVyaWZ5IHNlbGVjdG9yIHNwZWNpZnlpbmcgbXVsdGlwbGUgOmxhbmcoKSBwc2V1ZG8gY2xh
c3MsIHdpdGggY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50cycpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikp
LmNvbG9yJywgJ3JnYigxLCAyLCAzKScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmNvbG9yJywgJ3Jn
YigxLCAyLCAzKScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmNvbG9yJywgJ3JnYigxLCAyLCAzKScp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240660</attachid>
            <date>2014-10-29 23:06:47 -0700</date>
            <delta_ts>2014-10-29 23:12:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141030130654.patch</filename>
            <type>text/plain</type>
            <size>14625</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMGI0ZDYwOWYyOWZkYzU0YTM5MGNiN2Q5YTkxNTgz
YTE0Y2QyN2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTEwLTI5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgYWNjZXB0cyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmcgYXJndW1l
bnRzLiBDdXJyZW50bHksIGl0IHRocm93cyBlcnJvcgorICAgICAgICBvbiBhcmd1bWVudHMgd2l0
aCAiKiIgKGUuZy4gOmxhbmcoemgsICotaGFudCkpLgorCisgICAgICAgIEFkZCBubyBuZXcgdGVz
dHMsIGJ1dCB1cGRhdGUgdGhlIGZhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwgdG8gYWNj
b21tb2RhdGUgCisgICAgICAgIDpsYW5nIHRvIGFjY2VwdCBjb21tYS1zZXBhcmF0ZWQgbGlzdCBh
cmd1bWVudHMuCisKKyAgICAgICAgWzFdIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL3NlbGVjdG9y
czQvI3RoZS1sYW5nLXBzZXVkbworCisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy9jc3Mtc2VsZWN0
b3ItdGV4dC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRlY3RG
dW5jdGlvblR5cGVUb2tlbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0QXJndW1lbnRMaXN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFyZ3VtZW50TGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpzZXRBcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5o
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmFyZ3VtZW50TGlzdCk6CisKIDIwMTQt
MTAtMjkgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtDb29yZGluYXRlZEdyYXBoaWNzXSBVc2UgbW9kZXJuIGZvci1sb29wcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KaW5kZXggMzA4YTAxYWM1MjNiNjNlNWNmM2FmMjdlNTFiY2I3YjIyYWI0
MmM4Yy4uMDI4ZDk0NmFmNzM5NDA1N2IyMmQ0MDhkZDVkZDVkZTI5Y2M1Y2E0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC02Miw2ICs2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0NTU1Rva2VuQVN0cmluZyhpbnQgeXl0eXBlKQogICAgIGNhc2UgTlRIQ0hJTERGVU5DVElP
TjoKICAgICBjYXNlIE5USENISUxEU0VMRUNUT1JTRVBBUkFUT1I6CiAjaWYgRU5BQkxFX0NTU19T
RUxFQ1RPUlNfTEVWRUw0CisgICAgY2FzZSBMQU5HRlVOQ1RJT046CiAgICAgY2FzZSBNQVRDSEVT
RlVOQ1RJT046CiAjZW5kaWYKICAgICBjYXNlIFVOSUNPREVSQU5HRToKQEAgLTIyOSw2ICsyMzAs
NyBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVtZW50
KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXRva2VuIDxzdHJpbmc+IE5USENISUxERlVO
Q1RJT04KIAogI2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorJXRva2VuIDxzdHJpbmc+
IExBTkdGVU5DVElPTgogJXRva2VuIDxzdHJpbmc+IE1BVENIRVNGVU5DVElPTgogI2VuZGlmCiAK
QEAgLTMyOCw2ICszMzAsMTIgQEAgc3RhdGljIGJvb2wgc2VsZWN0b3JMaXN0RG9lc05vdE1hdGNo
QW55UHNldWRvRWxlbWVudChjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHQKICV0eXBlIDx2YWx1
ZUxpc3Q+IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHByX2xpc3QgY2FsY19mdW5jX3BhcmVu
X2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1ZSB2YWxpZF9jYWxjX2Z1bmNfZXhw
ciB2YWxpZF9leHByCiAlZGVzdHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjYWxjX2Z1bmNfZXhwciBj
YWxjX2Z1bmNfZXhwcl9saXN0IGNhbGNfZnVuY19wYXJlbl9leHByIGV4cHIga2V5X2xpc3QgbWF5
YmVfbWVkaWFfdmFsdWUgdmFsaWRfY2FsY19mdW5jX2V4cHIgdmFsaWRfZXhwcgogCisjaWYgRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldW5pb24geyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5n
Piogc3RyaW5nTGlzdDsgfQorJXR5cGUgPHN0cmluZ0xpc3Q+IGNvbW1hX3NlcGFyYXRlZF9pZGVu
dGlmaWVycworJWRlc3RydWN0b3IgeyBkZWxldGUgJCQ7IH0gY29tbWFfc2VwYXJhdGVkX2lkZW50
aWZpZXJzCisjZW5kaWYKKwogJXR5cGUgPHN0cmluZz4gbWluX29yX21heAogCiAldHlwZSA8c3Ry
aW5nPiBlbGVtZW50X25hbWUKQEAgLTEwODIsNiArMTA5MCwyMiBAQCBuZXN0ZWRfc2VsZWN0b3Jf
bGlzdDoKICAgICB9CiAgICAgOwogCisjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0Citj
b21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnM6CisgICAgSURFTlQgeworICAgICAgICAkJCA9IG5l
dyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKKyAgICAgICAgJCQtPmFwcGVuZCgkMSk7CisgICAg
fQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzICcsJyBtYXliZV9zcGFjZSBJREVO
VCB7CisgICAgICAgICQxLT5hcHBlbmQoJDQpOworICAgIH0KKyAgICB8IGNvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVycyBlcnJvciB7CisgICAgICAgICQkID0gbnVsbHB0cjsKKyAgICAgICAgZGVs
ZXRlICQxOworICAgIH0KKyAgICA7CisjZW5kaWYKKwogY29tcGxleF9zZWxlY3Rvcl93aXRoX3Ry
YWlsaW5nX3doaXRlc3BhY2U6CiAgICAgY29tcGxleF9zZWxlY3RvciBXSElURVNQQUNFOwogCkBA
IC0xMzMwLDYgKzEzNTQsMTggQEAgcHNldWRvOgogICAgIH0KIAogI2lmIEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNAorICAgIHwgJzonIExBTkdGVU5DVElPTiBtYXliZV9zcGFjZSBjb21tYV9z
ZXBhcmF0ZWRfaWRlbnRpZmllcnMgbWF5YmVfc3BhY2UgJyknIHsKKyAgICAgICAgJCQgPSBudWxs
cHRyOworICAgICAgICBpZiAoJDQpIHsKKyAgICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjpt
YWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKKyAgICAgICAgICBzZWxlY3Rvci0+c2V0
TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKKyAgICAgICAgICBzZWxlY3Rvci0+c2V0
QXJndW1lbnRMaXN0KCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPENTU1BhcnNlclN0cmluZz4+KCQ0
KSk7CisgICAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOworICAgICAg
ICAgIGlmIChzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzTGFuZykKKyAgICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICB8ICc6JyBNQVRDSEVTRlVOQ1RJT04gbWF5YmVfc3BhY2UgbmVz
dGVkX3NlbGVjdG9yX2xpc3QgbWF5YmVfc3BhY2UgJyknIHsKICAgICAgICAgJCQgPSBudWxscHRy
OwogICAgICAgICBpZiAoJDQpIHsKQEAgLTE4MzAsNyArMTg2Niw3IEBAIGludmFsaWRfcGFyZW50
aGVzZXNfYmxvY2s6IG9wZW5pbmdfcGFyZW50aGVzaXMgZXJyb3JfcmVjb3ZlcnkgY2xvc2luZ19w
YXJlbnRoZXNpCiBvcGVuaW5nX3BhcmVudGhlc2lzOgogICAgICcoJyB8IEZVTkNUSU9OIHwgQ0FM
Q0ZVTkNUSU9OIHwgTUlORlVOQ1RJT04gfCBNQVhGVU5DVElPTiB8IEFOWUZVTkNUSU9OIHwgTk9U
RlVOQ1RJT04KICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKLSAgICB8IE1BVENIRVNG
VU5DVElPTgorICAgIHwgTEFOR0ZVTkNUSU9OIHwgTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKICNp
ZiBFTkFCTEVfVklERU9fVFJBQ0sKICAgICB8IENVRUZVTkNUSU9OCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCmluZGV4IDE5NjNkYTRhY2YzMzk4YzdkNjI3ZmNhN2QyZDI4NDM0YjMwOTg5MTkuLjcz
NmNkNGU5MDNhODI2ZTA5YmY0MmFhYzRhMWMyZjhhNzUxM2NlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCkBAIC0xMDY3MCw2ICsxMDY3MCwxMiBAQCBpbmxpbmUgYm9vbCBDU1NQYXJzZXI6
OmRldGVjdEZ1bmN0aW9uVHlwZVRva2VuKGludCBsZW5ndGgpCiAgICAgICAgICAgICBtX3Rva2Vu
ID0gQ0FMQ0ZVTkNUSU9OOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgIGlmIChpc0VxdWFsVG9DU1NJ
ZGVudGlmaWVyKG5hbWUsICJsYW5nIikpIHsKKyAgICAgICAgICAgIG1fdG9rZW4gPSBMQU5HRlVO
Q1RJT047CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggYzAzNjY2Zjg2ZTVlMDFiNzg4
ODAxZmNkMTczOTNlZmQ2YTU1NGFkYi4uNmMyNGM4NDJlMzJlYTYyYzVlMzgzOGUxZjIyNmU0YzQ0
NzdiNDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTI1OCw2
ICsyNTgsMTYgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3RvcihW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKICAgICBtX3NlbGVjdG9yLT5zZXRT
ZWxlY3Rvckxpc3QoV1RGOjptb3ZlKHNlbGVjdG9yTGlzdCkpOwogfQogCit2b2lkIENTU1BhcnNl
clNlbGVjdG9yOjpzZXRBcmd1bWVudExpc3QoVmVjdG9yPENTU1BhcnNlclN0cmluZz4mIHN0cmlu
Z1ZlY3RvcikKK3sKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFzdHJpbmdWZWN0b3IuaXNFbXB0
eSgpLCAiTm8gQ1NTIFNlbGVjdG9yIGFjY2VwdCBhbiBlbXB0eSBhcmd1bWVudCBsaXN0LiIpOwor
ICAgIGF1dG8gYXJndW1lbnRMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8QXRvbWljU3Ry
aW5nPj4oKTsKKyAgICBhcmd1bWVudExpc3QtPnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5n
VmVjdG9yLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50IDog
c3RyaW5nVmVjdG9yKQorICAgICAgICBhcmd1bWVudExpc3QtPmFwcGVuZChhcmd1bWVudCk7Cisg
ICAgbV9zZWxlY3Rvci0+c2V0QXJndW1lbnRMaXN0KFdURjo6bW92ZShhcmd1bWVudExpc3QpKTsK
K30KKwogdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZShjb25zdCBD
U1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKQogewogICAgIEFTU0VSVChtX3NlbGVj
dG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMzIyMzkyODgwZTU0ZjAxYjM2NWNhZTQ3NmQ4NTgwMDc3
ZTQ5ZjI3ZC4uNDQyZTVkMDNjYzgxYzkzNjM1YzlhN2ZmMDIyYmY3MTMyOTIxYzQ0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMjAxLDYgKzIwMSw5IEBAIHB1YmxpYzoK
IAogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOworI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JTX0xFVkVMNCkKKyAgICB2b2lkIHNldEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NTUGFyc2Vy
U3RyaW5nPiYgc3RyaW5nVmVjdG9yKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzZXRQc2V1ZG9DbGFz
c1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvQ2xhc3NTdHJpbmcpOwogICAgIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCmluZGV4IDA5ZWEzNDZmODkzNDBjNGMwZjJmYjdkZTU1NDk1M2ZmNzFiNGE4MDQuLjU2
NjcxZWJlODQ2N2E2YzllMjNkYThmMTM1NGIxNmE3YWRlZDc0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcApAQCAtMjUzLDYgKzI1MywxOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRQc2V1
ZG9DbGFzc0Z1bmN0aW9uVGFpbChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9y
KgogCiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCitzdGF0aWMgdm9pZCBh
cHBlbmRBcmd1bWVudExpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBWZWN0b3I8QXRvbWlj
U3RyaW5nPiYgYXJndW1lbnRMaXN0KQoreworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbGFzdEFy
Z3VtZW50ID0gYXJndW1lbnRMaXN0Lmxhc3QoKTsKKyAgICBmb3IgKGNvbnN0IEF0b21pY1N0cmlu
ZyBhcmd1bWVudCA6IGFyZ3VtZW50TGlzdCkgeworICAgICAgICBzdHIuYXBwZW5kKGFyZ3VtZW50
KTsKKyAgICAgICAgaWYgKGFyZ3VtZW50ICE9IGxhc3RBcmd1bWVudCkKKyAgICAgICAgICAgIHN0
ci5hcHBlbmQoJywnKTsKKyAgICB9Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgYXBwZW5kU2Vs
ZWN0b3JMaXN0KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxl
Y3Rvckxpc3QpCiB7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGZpcnN0U3ViU2VsZWN0b3IgPSBz
ZWxlY3Rvckxpc3QtPmZpcnN0KCk7CkBAIC0zOTUsNyArNDA3LDEzIEBAIFN0cmluZyBDU1NTZWxl
Y3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NMYW5nOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGFuZygiKTsKKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgICAgICAgICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRShjcy0+YXJndW1lbnRMaXN0KCkgJiYgIWNzLT5hcmd1bWVudExpc3QoKS5pc0Vt
cHR5KCksICJBbiBlbXB0eSA6bGFuZygpIGlzIGludmFsaWQgYW5kIHNob3VsZCBuZXZlciBiZSBn
ZW5lcmF0ZWQgYnkgdGhlIHBhcnNlci4iKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRBcmd1bWVu
dExpc3Qoc3RyLCAqY3MtPmFyZ3VtZW50TGlzdCgpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kKCcpJyk7CisjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rp
b25UYWlsKHN0ciwgY3MpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhc3RDaGlsZDoKICAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhc3QtY2hpbGQiKTsKQEAgLTYwNiw2ICs2MjQsMTQg
QEAgdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKICAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA9IHZhbHVlOwogfQogCisjaWYg
RU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQordm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1l
bnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3RyaW5nPj4gYXJndW1lbnRMaXN0
KQoreworICAgIGNyZWF0ZVJhcmVEYXRhKCk7CisgICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJn
dW1lbnRMaXN0ID0gV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCk7Cit9CisjZW5kaWYKKwogdm9pZCBD
U1NTZWxlY3Rvcjo6c2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rvckxp
c3Q+IHNlbGVjdG9yTGlzdCkKIHsKICAgICBjcmVhdGVSYXJlRGF0YSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaAppbmRleCA5M2FkNWU0OTZjY2ZjMzIzOGNjZTk2YTUxOTdmMjQwOTg3MjZjZGNj
Li5hYzEwOGNiODM2YjZkZjgxN2QzZTdlYmM1NzcyYWQxYmI1ZmM3MTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaApAQCAtMjA3LDExICsyMDcsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUoKSBjb25zdDsKICAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWUoKSBjb25zdDsK
ICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA6IG51bGxBdG9tOyB9
CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICBjb25zdCBWZWN0b3I8
QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0
YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50TGlzdC5nZXQoKSA6IG51bGxwdHI7IH0K
KyNlbmRpZgogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9zZWxlY3Rv
ckxpc3QuZ2V0KCkgOiBudWxscHRyOyB9CiAKICAgICAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBB
dG9taWNTdHJpbmcmKTsKICAgICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpOwogICAgICAgICB2b2lkIHNldEFyZ3VtZW50
KGNvbnN0IEF0b21pY1N0cmluZyYpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkK
KyAgICAgICAgdm9pZCBzZXRBcmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxBdG9t
aWNTdHJpbmc+Pik7CisjZW5kaWYKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxpc3Qoc3RkOjp1
bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4pOwogCiAgICAgICAgIGJvb2wgcGFyc2VOdGgoKSBj
b25zdDsKQEAgLTMwOSw3ICszMTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgaW50IG1fYjsgLy8gVXNlZCBmb3IgOm50aC0qCiAgICAgICAgICAgICBRdWFsaWZpZWROYW1l
IG1fYXR0cmlidXRlOyAvLyB1c2VkIGZvciBhdHRyaWJ1dGUgc2VsZWN0b3IKICAgICAgICAgICAg
IEF0b21pY1N0cmluZyBtX2F0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZTsKLSAgICAgICAgICAg
IEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2VkIGZvciA6Y29udGFpbnMsIDpsYW5nIGFu
ZCA6bnRoLSoKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2VkIGZv
ciA6Y29udGFpbnMgYW5kIDpudGgtKgorI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkK
KyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3RyaW5nPj4gbV9hcmd1
bWVudExpc3Q7CisjZW5kaWYKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rv
ckxpc3Q+IG1fc2VsZWN0b3JMaXN0OyAvLyBVc2VkIGZvciA6LXdlYmtpdC1hbnkgYW5kIDpub3QK
ICAgICAgICAgCiAgICAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTA3MTBhNzQ3ZDAzN2IwMWZlZTcy
NWFjOTViMjBiMzU5ZDkzNjFhOS4uNDdlOTM0MjdhMDFjNzE2MGI5OTBiNTAzZWVhNjJmOTAxMWRl
ZjkzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTI5ICBEaGkgQXVycmFobWFuICA8
ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgcGFyc2luZyBm
dW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3RvcnMgTGV2ZWwgNC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0
aGUgY3NzLXNlbGVjdG9yLXRleHQuaHRtbCB0byB0ZXN0IDpsYW5nIHBzZXVkbyBjbGFzcyBzZWxl
Y3RvcgorICAgICAgICB3aXRoIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFzIGl0cyBhcmd1bWVudHMu
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQ6IFVw
ZGF0ZWQKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sOiBVcGRhdGVk
CisKIDIwMTQtMTAtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2tpcCBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCB3aGljaCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCAxMzdl
YmI3ZGM1N2I0ZmZkODAzOGY4ZDc5ZTQzZWE5MWZjMDkzYzE3Li40Mzg5MWU5ZWQ0ODM2NjBkMjRi
MTQ1YWU1Mzk1OTUxOWI0YmMzNzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
c3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0OCw5IEBAIFBBU1MgcGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOnRhcmdldCB7IH0nKSBpcyAnOnRhcmdldCB7IH0nCiBQQVNT
IHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzp2aXNpdGVkIHsgfScpIGlzICc6dmlzaXRlZCB7IH0n
CiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSkgeyB9JykgaXMgJzpsYW5n
KGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSxiLGMpIHsgfScp
IGlzICc6bGFuZyhhLGIsYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZyhmcixkZSxlbixpZCkgeyB9JykgaXMgJzpsYW5nKGZyLGRlLGVuLGlkKSB7IH0nCitQQVNTIHBh
cnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGZyLGZyLWNhLGZyLWJlKSB7IH0nKSBpcyAnOmxh
bmcoZnIsZnItY2EsZnItYmUpIHsgfScKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5v
dChhKSB7IH0nKSBpcyAnOm5vdChhKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
Jzotd2Via2l0LWFueShhLGIscCkgeyB9JykgaXMgJzotd2Via2l0LWFueShhLGIscCkgeyB9Jwog
CkBAIC0yNDUsNiArMjQ4LDEwIEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCgu
Y2xhc3MxOmhvdmVyICAgKSB7IH0nKSBpcyAnOm5vdCguY2xhc3MxOmhvdmVyCiBQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpub3QoYS5jbGFzczEuY2xhc3MyLmNsYXNzMzpob3ZlciAgICkg
eyB9JykgaXMgJzpub3QoYS5jbGFzczEuY2xhc3MyLmNsYXNzMzpob3ZlcikgeyB9JwogUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KDptYXRjaGVzKHNpbmdsZSAgICApLDptYXRjaGVz
KGEsYiAgICAscCksOm1hdGNoZXMoI2FsaWNlLCAgICAgICAgICAgICAgICAgICAjYm9iLCNjaHJp
cykpIHsgfScpIGlzICc6bm90KDptYXRjaGVzKHNpbmdsZSksIDptYXRjaGVzKGEsIGIsIHApLCA6
bWF0Y2hlcygjYWxpY2UsICNib2IsICNjaHJpcykpIHsgfScKIAorUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZyhhICAgKSB7IH0nKSBpcyAnOmxhbmcoYSkgeyB9JworUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCBiLCBjICAgKSB7IH0nKSBpcyAnOmxhbmcoYSxi
LGMpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSwgICAgICAgICAg
ICAgICAgIGIsIGMgICApIHsgfScpIGlzICc6bGFuZyhhLGIsYykgeyB9JworUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLGIsIGMsZCxlICAgKSB7IH0nKSBpcyAnOmxhbmcoYSxi
LGMsZCxlKSB7IH0nCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sCmluZGV4
IGVjM2NiMDg3MDkxOGU4NmI2OWVhNzU1MTIxMDhjYWEwYWMzNTMyZGEuLmI3YmM0MzAxM2ZhZjdi
ZDk1ZTRjZjI0YjcxNDc3MGU2YTYwMDFhZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3Nz
LXNlbGVjdG9yLXRleHQuaHRtbApAQCAtODEsNiArODEsOSBAQCB0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoIjp2aXNpdGVkIik7CiBkZWJ1ZygnJyk7CiAKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxh
bmcoYSkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoYSxiLGMpIik7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZyLGRlLGVuLGlkKSIpOwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6bGFuZyhmcixmci1jYSxmci1iZSkiKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOm5v
dChhKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6LXdlYmtpdC1hbnkoYSxiLHApIik7CiAK
QEAgLTMxNiw2ICszMTksMTEgQEAgc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpu
b3QoOm1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSwKIAogZGVidWcoJycp
OwogCitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSAgICkgeyB9Jyki
LCAiJzpsYW5nKGEpIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
bGFuZyhhLCBiLCBjICAgKSB7IH0nKSIsICInOmxhbmcoYSxiLGMpIHsgfSciKTsKK3Nob3VsZEJl
KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCAgICAgICAgICAgICAgICAgYiwgYyAg
ICkgeyB9JykiLCAiJzpsYW5nKGEsYixjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoYSxiLCBjLGQsZSAgICkgeyB9JykiLCAiJzpsYW5nKGEsYixjLGQs
ZSkgeyB9JyIpOworCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240661</attachid>
            <date>2014-10-29 23:12:43 -0700</date>
            <delta_ts>2014-10-30 00:59:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141030131250.patch</filename>
            <type>text/plain</type>
            <size>14625</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMGI0ZDYwOWYyOWZkYzU0YTM5MGNiN2Q5YTkxNTgz
YTE0Y2QyN2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTEwLTI5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgYWNjZXB0cyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmcgYXJndW1l
bnRzLiBDdXJyZW50bHksIGl0IHRocm93cyBlcnJvcgorICAgICAgICBvbiBhcmd1bWVudHMgd2l0
aCAiKiIgKGUuZy4gOmxhbmcoemgsICotaGFudCkpLgorCisgICAgICAgIEFkZCBubyBuZXcgdGVz
dHMsIGJ1dCB1cGRhdGUgdGhlIGZhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwgdG8gYWNj
b21tb2RhdGUgCisgICAgICAgIDpsYW5nIHRvIGFjY2VwdCBjb21tYS1zZXBhcmF0ZWQgbGlzdCBh
cmd1bWVudHMuCisKKyAgICAgICAgWzFdIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL3NlbGVjdG9y
czQvI3RoZS1sYW5nLXBzZXVkbworCisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy9jc3Mtc2VsZWN0
b3ItdGV4dC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRlY3RG
dW5jdGlvblR5cGVUb2tlbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0QXJndW1lbnRMaXN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFyZ3VtZW50TGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjpzZXRBcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5o
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmFyZ3VtZW50TGlzdCk6CisKIDIwMTQt
MTAtMjkgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtDb29yZGluYXRlZEdyYXBoaWNzXSBVc2UgbW9kZXJuIGZvci1sb29wcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KaW5kZXggMzA4YTAxYWM1MjNiNjNlNWNmM2FmMjdlNTFiY2I3YjIyYWI0
MmM4Yy4uMDI4ZDk0NmFmNzM5NDA1N2IyMmQ0MDhkZDVkZDVkZTI5Y2M1Y2E0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC02Miw2ICs2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0NTU1Rva2VuQVN0cmluZyhpbnQgeXl0eXBlKQogICAgIGNhc2UgTlRIQ0hJTERGVU5DVElP
TjoKICAgICBjYXNlIE5USENISUxEU0VMRUNUT1JTRVBBUkFUT1I6CiAjaWYgRU5BQkxFX0NTU19T
RUxFQ1RPUlNfTEVWRUw0CisgICAgY2FzZSBMQU5HRlVOQ1RJT046CiAgICAgY2FzZSBNQVRDSEVT
RlVOQ1RJT046CiAjZW5kaWYKICAgICBjYXNlIFVOSUNPREVSQU5HRToKQEAgLTIyOSw2ICsyMzAs
NyBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVtZW50
KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXRva2VuIDxzdHJpbmc+IE5USENISUxERlVO
Q1RJT04KIAogI2lmIEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAorJXRva2VuIDxzdHJpbmc+
IExBTkdGVU5DVElPTgogJXRva2VuIDxzdHJpbmc+IE1BVENIRVNGVU5DVElPTgogI2VuZGlmCiAK
QEAgLTMyOCw2ICszMzAsMTIgQEAgc3RhdGljIGJvb2wgc2VsZWN0b3JMaXN0RG9lc05vdE1hdGNo
QW55UHNldWRvRWxlbWVudChjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHQKICV0eXBlIDx2YWx1
ZUxpc3Q+IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHByX2xpc3QgY2FsY19mdW5jX3BhcmVu
X2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1ZSB2YWxpZF9jYWxjX2Z1bmNfZXhw
ciB2YWxpZF9leHByCiAlZGVzdHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjYWxjX2Z1bmNfZXhwciBj
YWxjX2Z1bmNfZXhwcl9saXN0IGNhbGNfZnVuY19wYXJlbl9leHByIGV4cHIga2V5X2xpc3QgbWF5
YmVfbWVkaWFfdmFsdWUgdmFsaWRfY2FsY19mdW5jX2V4cHIgdmFsaWRfZXhwcgogCisjaWYgRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldW5pb24geyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5n
Piogc3RyaW5nTGlzdDsgfQorJXR5cGUgPHN0cmluZ0xpc3Q+IGNvbW1hX3NlcGFyYXRlZF9pZGVu
dGlmaWVycworJWRlc3RydWN0b3IgeyBkZWxldGUgJCQ7IH0gY29tbWFfc2VwYXJhdGVkX2lkZW50
aWZpZXJzCisjZW5kaWYKKwogJXR5cGUgPHN0cmluZz4gbWluX29yX21heAogCiAldHlwZSA8c3Ry
aW5nPiBlbGVtZW50X25hbWUKQEAgLTEwODIsNiArMTA5MCwyMiBAQCBuZXN0ZWRfc2VsZWN0b3Jf
bGlzdDoKICAgICB9CiAgICAgOwogCisjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0Citj
b21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnM6CisgICAgSURFTlQgeworICAgICAgICAkJCA9IG5l
dyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKKyAgICAgICAgJCQtPmFwcGVuZCgkMSk7CisgICAg
fQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzICcsJyBtYXliZV9zcGFjZSBJREVO
VCB7CisgICAgICAgICQxLT5hcHBlbmQoJDQpOworICAgIH0KKyAgICB8IGNvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVycyBlcnJvciB7CisgICAgICAgICQkID0gbnVsbHB0cjsKKyAgICAgICAgZGVs
ZXRlICQxOworICAgIH0KKyAgICA7CisjZW5kaWYKKwogY29tcGxleF9zZWxlY3Rvcl93aXRoX3Ry
YWlsaW5nX3doaXRlc3BhY2U6CiAgICAgY29tcGxleF9zZWxlY3RvciBXSElURVNQQUNFOwogCkBA
IC0xMzMwLDYgKzEzNTQsMTggQEAgcHNldWRvOgogICAgIH0KIAogI2lmIEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNAorICAgIHwgJzonIExBTkdGVU5DVElPTiBtYXliZV9zcGFjZSBjb21tYV9z
ZXBhcmF0ZWRfaWRlbnRpZmllcnMgbWF5YmVfc3BhY2UgJyknIHsKKyAgICAgICAgJCQgPSBudWxs
cHRyOworICAgICAgICBpZiAoJDQpIHsKKyAgICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjpt
YWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKKyAgICAgICAgICBzZWxlY3Rvci0+c2V0
TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKKyAgICAgICAgICBzZWxlY3Rvci0+c2V0
QXJndW1lbnRMaXN0KCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPENTU1BhcnNlclN0cmluZz4+KCQ0
KSk7CisgICAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOworICAgICAg
ICAgIGlmIChzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzTGFuZykKKyAgICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICB8ICc6JyBNQVRDSEVTRlVOQ1RJT04gbWF5YmVfc3BhY2UgbmVz
dGVkX3NlbGVjdG9yX2xpc3QgbWF5YmVfc3BhY2UgJyknIHsKICAgICAgICAgJCQgPSBudWxscHRy
OwogICAgICAgICBpZiAoJDQpIHsKQEAgLTE4MzAsNyArMTg2Niw3IEBAIGludmFsaWRfcGFyZW50
aGVzZXNfYmxvY2s6IG9wZW5pbmdfcGFyZW50aGVzaXMgZXJyb3JfcmVjb3ZlcnkgY2xvc2luZ19w
YXJlbnRoZXNpCiBvcGVuaW5nX3BhcmVudGhlc2lzOgogICAgICcoJyB8IEZVTkNUSU9OIHwgQ0FM
Q0ZVTkNUSU9OIHwgTUlORlVOQ1RJT04gfCBNQVhGVU5DVElPTiB8IEFOWUZVTkNUSU9OIHwgTk9U
RlVOQ1RJT04KICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKLSAgICB8IE1BVENIRVNG
VU5DVElPTgorICAgIHwgTEFOR0ZVTkNUSU9OIHwgTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKICNp
ZiBFTkFCTEVfVklERU9fVFJBQ0sKICAgICB8IENVRUZVTkNUSU9OCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCmluZGV4IDE5NjNkYTRhY2YzMzk4YzdkNjI3ZmNhN2QyZDI4NDM0YjMwOTg5MTkuLjcz
NmNkNGU5MDNhODI2ZTA5YmY0MmFhYzRhMWMyZjhhNzUxM2NlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCkBAIC0xMDY3MCw2ICsxMDY3MCwxMiBAQCBpbmxpbmUgYm9vbCBDU1NQYXJzZXI6
OmRldGVjdEZ1bmN0aW9uVHlwZVRva2VuKGludCBsZW5ndGgpCiAgICAgICAgICAgICBtX3Rva2Vu
ID0gQ0FMQ0ZVTkNUSU9OOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgIGlmIChpc0VxdWFsVG9DU1NJ
ZGVudGlmaWVyKG5hbWUsICJsYW5nIikpIHsKKyAgICAgICAgICAgIG1fdG9rZW4gPSBMQU5HRlVO
Q1RJT047CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggYzAzNjY2Zjg2ZTVlMDFiNzg4
ODAxZmNkMTczOTNlZmQ2YTU1NGFkYi4uNmMyNGM4NDJlMzJlYTYyYzVlMzgzOGUxZjIyNmU0YzQ0
NzdiNDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTI1OCw2
ICsyNTgsMTYgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3RvcihW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKICAgICBtX3NlbGVjdG9yLT5zZXRT
ZWxlY3Rvckxpc3QoV1RGOjptb3ZlKHNlbGVjdG9yTGlzdCkpOwogfQogCit2b2lkIENTU1BhcnNl
clNlbGVjdG9yOjpzZXRBcmd1bWVudExpc3QoVmVjdG9yPENTU1BhcnNlclN0cmluZz4mIHN0cmlu
Z1ZlY3RvcikKK3sKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFzdHJpbmdWZWN0b3IuaXNFbXB0
eSgpLCAiTm8gQ1NTIFNlbGVjdG9yIGFjY2VwdCBhbiBlbXB0eSBhcmd1bWVudCBsaXN0LiIpOwor
ICAgIGF1dG8gYXJndW1lbnRMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8QXRvbWljU3Ry
aW5nPj4oKTsKKyAgICBhcmd1bWVudExpc3QtPnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5n
VmVjdG9yLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50IDog
c3RyaW5nVmVjdG9yKQorICAgICAgICBhcmd1bWVudExpc3QtPmFwcGVuZChhcmd1bWVudCk7Cisg
ICAgbV9zZWxlY3Rvci0+c2V0QXJndW1lbnRMaXN0KFdURjo6bW92ZShhcmd1bWVudExpc3QpKTsK
K30KKwogdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZShjb25zdCBD
U1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKQogewogICAgIEFTU0VSVChtX3NlbGVj
dG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMzIyMzkyODgwZTU0ZjAxYjM2NWNhZTQ3NmQ4NTgwMDc3
ZTQ5ZjI3ZC4uNDQyZTVkMDNjYzgxYzkzNjM1YzlhN2ZmMDIyYmY3MTMyOTIxYzQ0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMjAxLDYgKzIwMSw5IEBAIHB1YmxpYzoK
IAogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOworI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JTX0xFVkVMNCkKKyAgICB2b2lkIHNldEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NTUGFyc2Vy
U3RyaW5nPiYgc3RyaW5nVmVjdG9yKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzZXRQc2V1ZG9DbGFz
c1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvQ2xhc3NTdHJpbmcpOwogICAgIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCmluZGV4IDA5ZWEzNDZmODkzNDBjNGMwZjJmYjdkZTU1NDk1M2ZmNzFiNGE4MDQuLjU2
NjcxZWJlODQ2N2E2YzllMjNkYThmMTM1NGIxNmE3YWRlZDc0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcApAQCAtMjUzLDYgKzI1MywxOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRQc2V1
ZG9DbGFzc0Z1bmN0aW9uVGFpbChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9y
KgogCiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCitzdGF0aWMgdm9pZCBh
cHBlbmRBcmd1bWVudExpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBWZWN0b3I8QXRvbWlj
U3RyaW5nPiYgYXJndW1lbnRMaXN0KQoreworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbGFzdEFy
Z3VtZW50ID0gYXJndW1lbnRMaXN0Lmxhc3QoKTsKKyAgICBmb3IgKGNvbnN0IEF0b21pY1N0cmlu
ZyBhcmd1bWVudCA6IGFyZ3VtZW50TGlzdCkgeworICAgICAgICBzdHIuYXBwZW5kKGFyZ3VtZW50
KTsKKyAgICAgICAgaWYgKGFyZ3VtZW50ICE9IGxhc3RBcmd1bWVudCkKKyAgICAgICAgICAgIHN0
ci5hcHBlbmQoJywnKTsKKyAgICB9Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgYXBwZW5kU2Vs
ZWN0b3JMaXN0KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxl
Y3Rvckxpc3QpCiB7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGZpcnN0U3ViU2VsZWN0b3IgPSBz
ZWxlY3Rvckxpc3QtPmZpcnN0KCk7CkBAIC0zOTUsNyArNDA3LDEzIEBAIFN0cmluZyBDU1NTZWxl
Y3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NMYW5nOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGFuZygiKTsKKyNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAgICAgICAgICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRShjcy0+YXJndW1lbnRMaXN0KCkgJiYgIWNzLT5hcmd1bWVudExpc3QoKS5pc0Vt
cHR5KCksICJBbiBlbXB0eSA6bGFuZygpIGlzIGludmFsaWQgYW5kIHNob3VsZCBuZXZlciBiZSBn
ZW5lcmF0ZWQgYnkgdGhlIHBhcnNlci4iKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRBcmd1bWVu
dExpc3Qoc3RyLCAqY3MtPmFyZ3VtZW50TGlzdCgpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kKCcpJyk7CisjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rp
b25UYWlsKHN0ciwgY3MpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhc3RDaGlsZDoKICAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhc3QtY2hpbGQiKTsKQEAgLTYwNiw2ICs2MjQsMTQg
QEAgdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKICAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA9IHZhbHVlOwogfQogCisjaWYg
RU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQordm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1l
bnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3RyaW5nPj4gYXJndW1lbnRMaXN0
KQoreworICAgIGNyZWF0ZVJhcmVEYXRhKCk7CisgICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJn
dW1lbnRMaXN0ID0gV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCk7Cit9CisjZW5kaWYKKwogdm9pZCBD
U1NTZWxlY3Rvcjo6c2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rvckxp
c3Q+IHNlbGVjdG9yTGlzdCkKIHsKICAgICBjcmVhdGVSYXJlRGF0YSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaAppbmRleCA5M2FkNWU0OTZjY2ZjMzIzOGNjZTk2YTUxOTdmMjQwOTg3MjZjZGNj
Li5hYzEwOGNiODM2YjZkZjgxN2QzZTdlYmM1NzcyYWQxYmI1ZmM3MTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaApAQCAtMjA3LDExICsyMDcsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUoKSBjb25zdDsKICAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWUoKSBjb25zdDsK
ICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA6IG51bGxBdG9tOyB9
CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICBjb25zdCBWZWN0b3I8
QXRvbWljU3RyaW5nPiogYXJndW1lbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0
YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50TGlzdC5nZXQoKSA6IG51bGxwdHI7IH0K
KyNlbmRpZgogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9zZWxlY3Rv
ckxpc3QuZ2V0KCkgOiBudWxscHRyOyB9CiAKICAgICAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBB
dG9taWNTdHJpbmcmKTsKICAgICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpOwogICAgICAgICB2b2lkIHNldEFyZ3VtZW50
KGNvbnN0IEF0b21pY1N0cmluZyYpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkK
KyAgICAgICAgdm9pZCBzZXRBcmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxBdG9t
aWNTdHJpbmc+Pik7CisjZW5kaWYKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rvckxpc3Qoc3RkOjp1
bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4pOwogCiAgICAgICAgIGJvb2wgcGFyc2VOdGgoKSBj
b25zdDsKQEAgLTMwOSw3ICszMTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgaW50IG1fYjsgLy8gVXNlZCBmb3IgOm50aC0qCiAgICAgICAgICAgICBRdWFsaWZpZWROYW1l
IG1fYXR0cmlidXRlOyAvLyB1c2VkIGZvciBhdHRyaWJ1dGUgc2VsZWN0b3IKICAgICAgICAgICAg
IEF0b21pY1N0cmluZyBtX2F0dHJpYnV0ZUNhbm9uaWNhbExvY2FsTmFtZTsKLSAgICAgICAgICAg
IEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2VkIGZvciA6Y29udGFpbnMsIDpsYW5nIGFu
ZCA6bnRoLSoKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBVc2VkIGZv
ciA6Y29udGFpbnMgYW5kIDpudGgtKgorI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkK
KyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3RyaW5nPj4gbV9hcmd1
bWVudExpc3Q7CisjZW5kaWYKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rv
ckxpc3Q+IG1fc2VsZWN0b3JMaXN0OyAvLyBVc2VkIGZvciA6LXdlYmtpdC1hbnkgYW5kIDpub3QK
ICAgICAgICAgCiAgICAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTA3MTBhNzQ3ZDAzN2IwMWZlZTcy
NWFjOTViMjBiMzU5ZDkzNjFhOS4uNDdlOTM0MjdhMDFjNzE2MGI5OTBiNTAzZWVhNjJmOTAxMWRl
ZjkzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTI5ICBEaGkgQXVycmFobWFuICA8
ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgcGFyc2luZyBm
dW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3RvcnMgTGV2ZWwgNC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0
aGUgY3NzLXNlbGVjdG9yLXRleHQuaHRtbCB0byB0ZXN0IDpsYW5nIHBzZXVkbyBjbGFzcyBzZWxl
Y3RvcgorICAgICAgICB3aXRoIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFzIGl0cyBhcmd1bWVudHMu
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQ6IFVw
ZGF0ZWQKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sOiBVcGRhdGVk
CisKIDIwMTQtMTAtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2tpcCBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNo
YWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCB3aGljaCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCAxMzdl
YmI3ZGM1N2I0ZmZkODAzOGY4ZDc5ZTQzZWE5MWZjMDkzYzE3Li40Mzg5MWU5ZWQ0ODM2NjBkMjRi
MTQ1YWU1Mzk1OTUxOWI0YmMzNzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
c3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0OCw5IEBAIFBBU1MgcGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOnRhcmdldCB7IH0nKSBpcyAnOnRhcmdldCB7IH0nCiBQQVNT
IHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzp2aXNpdGVkIHsgfScpIGlzICc6dmlzaXRlZCB7IH0n
CiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSkgeyB9JykgaXMgJzpsYW5n
KGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSxiLGMpIHsgfScp
IGlzICc6bGFuZyhhLGIsYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZyhmcixkZSxlbixpZCkgeyB9JykgaXMgJzpsYW5nKGZyLGRlLGVuLGlkKSB7IH0nCitQQVNTIHBh
cnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGZyLGZyLWNhLGZyLWJlKSB7IH0nKSBpcyAnOmxh
bmcoZnIsZnItY2EsZnItYmUpIHsgfScKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5v
dChhKSB7IH0nKSBpcyAnOm5vdChhKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
Jzotd2Via2l0LWFueShhLGIscCkgeyB9JykgaXMgJzotd2Via2l0LWFueShhLGIscCkgeyB9Jwog
CkBAIC0yNDUsNiArMjQ4LDEwIEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCgu
Y2xhc3MxOmhvdmVyICAgKSB7IH0nKSBpcyAnOm5vdCguY2xhc3MxOmhvdmVyCiBQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpub3QoYS5jbGFzczEuY2xhc3MyLmNsYXNzMzpob3ZlciAgICkg
eyB9JykgaXMgJzpub3QoYS5jbGFzczEuY2xhc3MyLmNsYXNzMzpob3ZlcikgeyB9JwogUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KDptYXRjaGVzKHNpbmdsZSAgICApLDptYXRjaGVz
KGEsYiAgICAscCksOm1hdGNoZXMoI2FsaWNlLCAgICAgICAgICAgICAgICAgICAjYm9iLCNjaHJp
cykpIHsgfScpIGlzICc6bm90KDptYXRjaGVzKHNpbmdsZSksIDptYXRjaGVzKGEsIGIsIHApLCA6
bWF0Y2hlcygjYWxpY2UsICNib2IsICNjaHJpcykpIHsgfScKIAorUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZyhhICAgKSB7IH0nKSBpcyAnOmxhbmcoYSkgeyB9JworUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCBiLCBjICAgKSB7IH0nKSBpcyAnOmxhbmcoYSxi
LGMpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSwgICAgICAgICAg
ICAgICAgIGIsIGMgICApIHsgfScpIGlzICc6bGFuZyhhLGIsYykgeyB9JworUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLGIsIGMsZCxlICAgKSB7IH0nKSBpcyAnOmxhbmcoYSxi
LGMsZCxlKSB7IH0nCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sCmluZGV4
IGVjM2NiMDg3MDkxOGU4NmI2OWVhNzU1MTIxMDhjYWEwYWMzNTMyZGEuLmI3YmM0MzAxM2ZhZjdi
ZDk1ZTRjZjI0YjcxNDc3MGU2YTYwMDFhZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3Nz
LXNlbGVjdG9yLXRleHQuaHRtbApAQCAtODEsNiArODEsOSBAQCB0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoIjp2aXNpdGVkIik7CiBkZWJ1ZygnJyk7CiAKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxh
bmcoYSkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoYSxiLGMpIik7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZyLGRlLGVuLGlkKSIpOwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6bGFuZyhmcixmci1jYSxmci1iZSkiKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOm5v
dChhKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6LXdlYmtpdC1hbnkoYSxiLHApIik7CiAK
QEAgLTMxNiw2ICszMTksMTEgQEAgc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpu
b3QoOm1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSwKIAogZGVidWcoJycp
OwogCitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSAgICkgeyB9Jyki
LCAiJzpsYW5nKGEpIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
bGFuZyhhLCBiLCBjICAgKSB7IH0nKSIsICInOmxhbmcoYSxiLGMpIHsgfSciKTsKK3Nob3VsZEJl
KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCAgICAgICAgICAgICAgICAgYiwgYyAg
ICkgeyB9JykiLCAiJzpsYW5nKGEsYixjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoYSxiLCBjLGQsZSAgICkgeyB9JykiLCAiJzpsYW5nKGEsYixjLGQs
ZSkgeyB9JyIpOworCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240662</attachid>
            <date>2014-10-30 00:59:33 -0700</date>
            <delta_ts>2014-10-30 02:12:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141030145940.patch</filename>
            <type>text/plain</type>
            <size>19742</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMTFkMzIwODdkOWIwMWM1ZTM0ZWJiY2FjODc4NDZm
MWUyMmMwNjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEwLTMwICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgcGFyc2VzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZyBhcmd1bWVu
dHMuIEN1cnJlbnRseSwgaXQgdGhyb3dzIGVycm9yCisgICAgICAgIG9uIGFyZ3VtZW50cyB3aXRo
ICIqIiAoZS5nLiA6bGFuZyh6aCwgKi1oYW50KSkuCisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
dGVzdCBmaWxlIGZhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1sIGFsb25nIHNpZGUgdGhl
IAorICAgICAgICBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyN0aGUtbGFuZy1wc2V1ZG8KKwor
ICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW4pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZh
bHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRBcmd1bWVudExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRM
aXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6CisgICAg
ICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKwogMjAxNC0xMC0yOSAgSHVuc2Vv
cCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVk
R3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgppbmRleCAzMDhhMDFhYzUyM2I2M2U1Y2YzYWYyN2U1MWJjYjdiMjJhYjQyYzhjLi4wMjhkOTQ2
YWY3Mzk0MDU3YjIyZDQwOGRkNWRkNWRlMjljYzVjYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkuaW4KQEAgLTYyLDYgKzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5B
U3RyaW5nKGludCB5eXR5cGUpCiAgICAgY2FzZSBOVEhDSElMREZVTkNUSU9OOgogICAgIGNhc2Ug
TlRIQ0hJTERTRUxFQ1RPUlNFUEFSQVRPUjoKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKKyAgICBjYXNlIExBTkdGVU5DVElPTjoKICAgICBjYXNlIE1BVENIRVNGVU5DVElPTjoKICNl
bmRpZgogICAgIGNhc2UgVU5JQ09ERVJBTkdFOgpAQCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBi
b29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29uc3QgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0CiAldG9rZW4gPHN0cmluZz4gTlRIQ0hJTERGVU5DVElPTgogCiAjaWYg
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldG9rZW4gPHN0cmluZz4gTEFOR0ZVTkNUSU9O
CiAldG9rZW4gPHN0cmluZz4gTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKIApAQCAtMzI4LDYgKzMz
MCwxMiBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVt
ZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXR5cGUgPHZhbHVlTGlzdD4gY2FsY19m
dW5jX2V4cHIgY2FsY19mdW5jX2V4cHJfbGlzdCBjYWxjX2Z1bmNfcGFyZW5fZXhwciBleHByIGtl
eV9saXN0IG1heWJlX21lZGlhX3ZhbHVlIHZhbGlkX2NhbGNfZnVuY19leHByIHZhbGlkX2V4cHIK
ICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHBy
X2xpc3QgY2FsY19mdW5jX3BhcmVuX2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1
ZSB2YWxpZF9jYWxjX2Z1bmNfZXhwciB2YWxpZF9leHByCiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBzdHJpbmdMaXN0
OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzCislZGVz
dHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMKKyNlbmRp
ZgorCiAldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4CiAKICV0eXBlIDxzdHJpbmc+IGVsZW1lbnRf
bmFtZQpAQCAtMTA4Miw2ICsxMDkwLDIyIEBAIG5lc3RlZF9zZWxlY3Rvcl9saXN0OgogICAgIH0K
ICAgICA7CiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKK2NvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVyczoKKyAgICBJREVOVCB7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxDU1NQ
YXJzZXJTdHJpbmc+OworICAgICAgICAkJC0+YXBwZW5kKCQxKTsKKyAgICB9CisgICAgfCBjb21t
YV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMgJywnIG1heWJlX3NwYWNlIElERU5UIHsKKyAgICAgICAg
JDEtPmFwcGVuZCgkNCk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJz
IGVycm9yIHsKKyAgICAgICAgJCQgPSBudWxscHRyOworICAgICAgICBkZWxldGUgJDE7CisgICAg
fQorICAgIDsKKyNlbmRpZgorCiBjb21wbGV4X3NlbGVjdG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVz
cGFjZToKICAgICBjb21wbGV4X3NlbGVjdG9yIFdISVRFU1BBQ0U7CiAKQEAgLTEzMzAsNiArMTM1
NCwxOCBAQCBwc2V1ZG86CiAgICAgfQogCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
CisgICAgfCAnOicgTEFOR0ZVTkNUSU9OIG1heWJlX3NwYWNlIGNvbW1hX3NlcGFyYXRlZF9pZGVu
dGlmaWVycyBtYXliZV9zcGFjZSAnKScgeworICAgICAgICAkJCA9IG51bGxwdHI7CisgICAgICAg
IGlmICgkNCkgeworICAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENT
U1BhcnNlclNlbGVjdG9yPigpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudExpc3Qo
KnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPj4oJDQpKTsKKyAgICAgICAg
ICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CisgICAgICAgICAgaWYgKHNlbGVj
dG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nKQor
ICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0K
KwogICAgIHwgJzonIE1BVENIRVNGVU5DVElPTiBtYXliZV9zcGFjZSBuZXN0ZWRfc2VsZWN0b3Jf
bGlzdCBtYXliZV9zcGFjZSAnKScgewogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlm
ICgkNCkgewpAQCAtMTgzMCw3ICsxODY2LDcgQEAgaW52YWxpZF9wYXJlbnRoZXNlc19ibG9jazog
b3BlbmluZ19wYXJlbnRoZXNpcyBlcnJvcl9yZWNvdmVyeSBjbG9zaW5nX3BhcmVudGhlc2kKIG9w
ZW5pbmdfcGFyZW50aGVzaXM6CiAgICAgJygnIHwgRlVOQ1RJT04gfCBDQUxDRlVOQ1RJT04gfCBN
SU5GVU5DVElPTiB8IE1BWEZVTkNUSU9OIHwgQU5ZRlVOQ1RJT04gfCBOT1RGVU5DVElPTgogI2lm
IEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAotICAgIHwgTUFUQ0hFU0ZVTkNUSU9OCisgICAg
fCBMQU5HRlVOQ1RJT04gfCBNQVRDSEVTRlVOQ1RJT04KICNlbmRpZgogI2lmIEVOQUJMRV9WSURF
T19UUkFDSwogICAgIHwgQ1VFRlVOQ1RJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
MTk2M2RhNGFjZjMzOThjN2Q2MjdmY2E3ZDJkMjg0MzRiMzA5ODkxOS4uNzM2Y2Q0ZTkwM2E4MjZl
MDliZjQyYWFjNGExYzJmOGE3NTEzY2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTEwNjcwLDYgKzEwNjcwLDEyIEBAIGlubGluZSBib29sIENTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rp
b25UeXBlVG9rZW4oaW50IGxlbmd0aCkKICAgICAgICAgICAgIG1fdG9rZW4gPSBDQUxDRlVOQ1RJ
T047CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorI2lmIEVOQUJMRShDU1Nf
U0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgaWYgKGlzRXF1YWxUb0NTU0lkZW50aWZpZXIobmFt
ZSwgImxhbmciKSkgeworICAgICAgICAgICAgbV90b2tlbiA9IExBTkdGVU5DVElPTjsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmNwcAppbmRleCBjMDM2NjZmODZlNWUwMWI3ODg4MDFmY2QxNzM5M2Vm
ZDZhNTU0YWRiLi42YzI0Yzg0MmUzMmVhNjJjNWUzODM4ZTFmMjI2ZTRjNDQ3N2I0MzM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjU4LDYgKzI1OCwxNiBAQCB2
b2lkIENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZQogICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChX
VEY6Om1vdmUoc2VsZWN0b3JMaXN0KSk7CiB9CiAKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNl
dEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPiYgc3RyaW5nVmVjdG9yKQorewor
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXN0cmluZ1ZlY3Rvci5pc0VtcHR5KCksICJObyBDU1Mg
U2VsZWN0b3IgYWNjZXB0IGFuIGVtcHR5IGFyZ3VtZW50IGxpc3QuIik7CisgICAgYXV0byBhcmd1
bWVudExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxBdG9taWNTdHJpbmc+PigpOworICAg
IGFyZ3VtZW50TGlzdC0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdWZWN0b3Iuc2l6ZSgp
KTsKKyAgICBmb3IgKGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgOiBzdHJpbmdWZWN0b3Ip
CisgICAgICAgIGFyZ3VtZW50TGlzdC0+YXBwZW5kKGFyZ3VtZW50KTsKKyAgICBtX3NlbGVjdG9y
LT5zZXRBcmd1bWVudExpc3QoV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCkpOworfQorCiB2b2lkIENT
U1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgcHNldWRvQ2xhc3NTdHJpbmcpCiB7CiAgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuaAppbmRleCAzMjIzOTI4ODBlNTRmMDFiMzY1Y2FlNDc2ZDg1ODAwNzdlNDlmMjdkLi40NDJl
NWQwM2NjODFjOTM2MzVjOWE3ZmYwMjJiZjcxMzI5MjFjNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlclZhbHVlcy5oCkBAIC0yMDEsNiArMjAxLDkgQEAgcHVibGljOgogCiAKICAgICB2b2lk
IGFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+JiBzZWxlY3RvclZlY3Rvcik7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+JiBzdHJp
bmdWZWN0b3IpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFBzZXVkb0NsYXNzVmFsdWUoY29uc3Qg
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzVHlwZSBwc2V1ZG9DbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9y
LT5wc2V1ZG9DbGFzc1R5cGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
MDllYTM0NmY4OTM0MGM0YzBmMmZiN2RlNTU0OTUzZmY3MWI0YTgwNC4uODczYzlkMzU0NDAyZjI1
MDViMDYxOGQzNTI2M2I1Y2M4NDRiNjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
CkBAIC0yNTMsNiArMjUzLDE4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rp
b25UYWlsKFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqCiAKIH0KIAorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3N0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBhcmd1
bWVudExpc3QpCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsYXN0QXJndW1lbnQgPSBhcmd1
bWVudExpc3QubGFzdCgpOworICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nIGFyZ3VtZW50IDog
YXJndW1lbnRMaXN0KSB7CisgICAgICAgIHN0ci5hcHBlbmQoYXJndW1lbnQpOworICAgICAgICBp
ZiAoYXJndW1lbnQgIT0gbGFzdEFyZ3VtZW50KQorICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIiwgIik7CisgICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIGFwcGVuZFNlbGVjdG9y
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2VsZWN0b3JM
aXN0KQogewogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gc2VsZWN0
b3JMaXN0LT5maXJzdCgpOwpAQCAtMzk1LDcgKzQwNywxMyBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6
OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFu
ZzoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhbmcoIik7CisjaWYgRU5B
QkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoY3MtPmFyZ3VtZW50TGlzdCgpICYmICFjcy0+YXJndW1lbnRMaXN0KCkuaXNFbXB0eSgp
LCAiQW4gZW1wdHkgOmxhbmcoKSBpcyBpbnZhbGlkIGFuZCBzaG91bGQgbmV2ZXIgYmUgZ2VuZXJh
dGVkIGJ5IHRoZSBwYXJzZXIuIik7CisgICAgICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRMaXN0
KHN0ciwgKmNzLT5hcmd1bWVudExpc3QoKSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgn
KScpOworI2Vsc2UKICAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFp
bChzdHIsIGNzKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQ6CiAgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpsYXN0LWNoaWxkIik7CkBAIC02MDYsNiArNjI0LDE0IEBAIHZv
aWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAg
ICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgPSB2YWx1ZTsKIH0KIAorI2lmIEVOQUJM
RShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlz
dChzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IGFyZ3VtZW50TGlzdCkKK3sK
KyAgICBjcmVhdGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50
TGlzdCA9IFdURjo6bW92ZShhcmd1bWVudExpc3QpOworfQorI2VuZGlmCisKIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldFNlbGVjdG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBz
ZWxlY3Rvckxpc3QpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKaW5kZXggOTNhZDVlNDk2Y2NmYzMyMzhjY2U5NmE1MTk3ZjI0MDk4NzI2Y2RjYy4uYWMx
MDhjYjgzNmI2ZGY4MTdkM2U3ZWJjNTc3MmFkMWJiNWZjNzExYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmgKQEAgLTIwNywxMSArMjA3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lKCkgY29uc3Q7CiAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jh
cmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgY29uc3QgVmVjdG9yPEF0b21p
Y1N0cmluZz4qIGFyZ3VtZW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBt
X2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudExpc3QuZ2V0KCkgOiBudWxscHRyOyB9CisjZW5k
aWYKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7
IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fc2VsZWN0b3JMaXN0
LmdldCgpIDogbnVsbHB0cjsgfQogCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAgICAgICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKTsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVudChjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3Ry
aW5nPj4pOworI2VuZGlmCiAgICAgICAgIHZvaWQgc2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVl
X3B0cjxDU1NTZWxlY3Rvckxpc3Q+KTsKIAogICAgICAgICBib29sIHBhcnNlTnRoKCkgY29uc3Q7
CkBAIC0zMDksNyArMzE1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGlu
dCBtX2I7IC8vIFVzZWQgZm9yIDpudGgtKgogICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2F0
dHJpYnV0ZTsgLy8gdXNlZCBmb3IgYXR0cmlidXRlIHNlbGVjdG9yCiAgICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWU7Ci0gICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNvbnRhaW5zLCA6bGFuZyBhbmQgOm50
aC0qCisgICAgICAgICAgICBBdG9taWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNv
bnRhaW5zIGFuZCA6bnRoLSoKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IG1fYXJndW1lbnRM
aXN0OworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0
PiBtX3NlbGVjdG9yTGlzdDsgLy8gVXNlZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90CiAgICAg
ICAgIAogICAgICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCBjMzVkZDZkOTFhZjNmODE2NWM2NGQ1NWFlOWY1ZDhlOWE1YzI4YmQ5Li40MWNmNzUw
NjFjMDdjOTJmODU2NGNmN2RlZWFjZjk2N2Q4ZWY5NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtODU5LDcgKzg1OSwxMiBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUoY29uc3QgQ2hlY2tpbmdDb250ZXh0V2l0aFN0YXR1cyYgY29udGV4dCkgY29u
c3QKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgICAgICB7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci0+YXJndW1lbnRMaXN0KCkgJiYgIXNl
bGVjdG9yLT5hcmd1bWVudExpc3QoKS0+aXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3VtZW50TGlzdCgpLT5maXJz
dCgpOworI2Vsc2UKICAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
ID0gc2VsZWN0b3ItPmFyZ3VtZW50KCk7CisjZW5kaWYgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKGFyZ3VtZW50LmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNMYW5nUHNldWRvQ2xhc3Mo
ZWxlbWVudCwgYXJndW1lbnQuaW1wbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcAppbmRleCA2OGYyMWEzNjI0NzhkYWU3YTc3ZmUxODllOGVmNGFlNTkyYTBj
ZDU0Li4xZTMzYTk3OTJlYjk1ZDEwZGM0NzY3YmZkMmY0YjdmZWExOWQxYWI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC03MjcsNyArNzI3LDEyIEBA
IHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25UeXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBDU1NT
ZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVjCiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgIHsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisg
ICAgICAgICAgICBBU1NFUlQoc2VsZWN0b3IuYXJndW1lbnRMaXN0KCkgJiYgIXNlbGVjdG9yLmFy
Z3VtZW50TGlzdCgpLT5pc0VtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBhcmd1bWVudCA9IHNlbGVjdG9yLmFyZ3VtZW50TGlzdCgpLT5maXJzdCgpOworI2Vsc2UKICAg
ICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxlY3Rvci5hcmd1bWVu
dCgpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoYXJndW1lbnQuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MDcxMGE3NDdkMDM3YjAxZmVlNzI1YWM5NWIyMGIzNTlkOTM2MWE5Li41MmYwOWZhNDM0
YzVmZmMzMTNhOGFjNmNmZTQ2NGZmYjQxYTNkZmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTQtMTAtMzAgIERoaSBBdXJyYWhtYW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KKworICAg
ICAgICBBZGQgaW5pdGlhbCBwYXJzaW5nIGZ1bmN0aW9uYWxpdHkgb2YgOmxhbmcgcHNldWRvIGNs
YXNzIGluIFNlbGVjdG9ycyBMZXZlbCA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjb21tYS1zZXBhcmF0ZWQgbGlzdCBhcmd1
bWVudHMgZm9yIDpsYW5nCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1l
eHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRl
eHQuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFs
aWQuaHRtbDogQWRkZWQuCisKIDIwMTQtMTAtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0
ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCB3aGljaCAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVk
LnR4dAppbmRleCAxMzdlYmI3ZGM1N2I0ZmZkODAzOGY4ZDc5ZTQzZWE5MWZjMDkzYzE3Li5iZmE2
NmYzY2VmYzE2ODE4NTFmMTk3MjhhNTg0YWFlZWYxZTYyOGM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0
OCw5IEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOnRhcmdldCB7IH0nKSBpcyAnOnRh
cmdldCB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzp2aXNpdGVkIHsgfScpIGlz
ICc6dmlzaXRlZCB7IH0nCiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSkg
eyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSwgYiwgYykgeyB9JykgaXMgJzpsYW5nKGEsIGIsIGMpIHsgfScKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnOmxhbmcoZnIsIGRlLCBlbiwgaWQpIHsgfScpIGlzICc6bGFuZyhmciwg
ZGUsIGVuLCBpZCkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhmciwg
ZnItY2EsIGZyLWJlKSB7IH0nKSBpcyAnOmxhbmcoZnIsIGZyLWNhLCBmci1iZSkgeyB9JwogUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KGEpIHsgfScpIGlzICc6bm90KGEpIHsgfScK
IFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nKSBp
cyAnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nCiAKQEAgLTI0NSw2ICsyNDgsMTQgQEAgUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KC5jbGFzczE6aG92ZXIgICApIHsgfScpIGlzICc6
bm90KC5jbGFzczE6aG92ZXIKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdChhLmNs
YXNzMS5jbGFzczIuY2xhc3MzOmhvdmVyICAgKSB7IH0nKSBpcyAnOm5vdChhLmNsYXNzMS5jbGFz
czIuY2xhc3MzOmhvdmVyKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpub3Qo
Om1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSw6bWF0Y2hlcygjYWxpY2Us
ICAgICAgICAgICAgICAgICAgICNib2IsI2NocmlzKSkgeyB9JykgaXMgJzpub3QoOm1hdGNoZXMo
c2luZ2xlKSwgOm1hdGNoZXMoYSwgYiwgcCksIDptYXRjaGVzKCNhbGljZSwgI2JvYiwgI2Nocmlz
KSkgeyB9JwogCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEgICApIHsgfScp
IGlzICc6bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEs
IGIsIGMgICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKGEsICAgICAgICAgICAgICAgICBiLCBjICAgKSB7IH0nKSBpcyAn
OmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhh
LGIsIGMsZCxlICAgKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYywgZCwgZSkgeyB9JworUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg8MF8wPikgeyB9JykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxl
RWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNz
c1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
ODgpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4
dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygpIHsgfScpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBlYzNjYjA4NzA5MThlODZiNjllYTc1NTEy
MTA4Y2FhMGFjMzUzMmRhLi42NWMyMTJkZTkyZTEwOTVmNDM4NTkzYzQ3MDc5Yzk3OWQ5ZTQ2OTQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTgx
LDYgKzgxLDkgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6dmlzaXRlZCIpOwogZGVidWcoJycp
OwogCiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGEpIik7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoIjpsYW5nKGEsIGIsIGMpIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZy
LCBkZSwgZW4sIGlkKSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhmciwgZnItY2Es
IGZyLWJlKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bm90KGEpIik7CiB0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIjotd2Via2l0LWFueShhLGIscCkiKTsKIApAQCAtMzE2LDYgKzMxOSwxNiBA
QCBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCg6bWF0Y2hlcyhzaW5nbGUg
ICAgKSw6bWF0Y2hlcyhhLGIgICAgLHApLAogCiBkZWJ1ZygnJyk7CiAKK3Nob3VsZEJlKCJwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhICAgKSB7IH0nKSIsICInOmxhbmcoYSkgeyB9JyIp
Oworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsIGIsIGMgICApIHsg
fScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnOmxhbmcoYSwgICAgICAgICAgICAgICAgIGIsIGMgICApIHsgfScpIiwgIic6bGFu
ZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSxiLCBjLGQsZSAgICkgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMsIGQsIGUpIHsgfSciKTsK
Kworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDwwXzA+KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDg4KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9Jyki
KTsKKwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9sYW5nLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxl
Y3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjVjMDlmMzNlY2Qw
ODYyYTc2M2IzNDFmMDVmZTAzNWI3MTliZDg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0
IEBACitWZXJpZnkgaW52YWxpZCA6bGFuZygpIHNlbGVjdG9ycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoNzcp
IikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRp
b24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDBfMCkgKiIpLmxl
bmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEy
LgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygxXzEpICoiKS5sZW5ndGgg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMDVfNTApICoiKS5sZW5ndGggdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5jb2xv
ciBpcyAicmdiKDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xh
bmctaW52YWxpZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGZlN2E0ODEyMDgxZGNiZGNiN2M0NWFhNzUwNGY2YzQ5YzgzOTc3
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctaW52
YWxpZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorKiB7CisgICAgY29sb3I6IHJnYigwLCAwLCAwKTsKK30KKzpsYW5nKCkgewor
ICAgIGNvbG9yOiByZ2IoMSwgMiwgMyk7Cit9CisKKzpsYW5nKCkgKiB7CisgICAgY29sb3I6IHJn
Yig0LCA1LCA2KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxl
PSJkaXNwbGF5Om5vbmUiPgorICAgICAgICA8YT4KKyAgICAgICAgICAgIDxiPgorICAgICAgICAg
ICAgICAgIDxjIGlkPSJ0YXJnZXQxIj48L2M+CisgICAgICAgICAgICA8L2I+CisgICAgICAgIDwv
YT4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVmVyaWZ5IGlu
dmFsaWQgOmxhbmcoKSBzZWxlY3RvcnMuJyk7CisKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZygpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoNzcpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMF8wKSAqIikubGVuZ3RoJyk7CitzaG91bGRU
aHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMV8xKSAqIikubGVuZ3RoJyk7
CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMDVfNTApICoi
KS5sZW5ndGgnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5jb2xvcicsICdyZ2IoMCwgMCwgMCknKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240663</attachid>
            <date>2014-10-30 02:12:43 -0700</date>
            <delta_ts>2014-10-30 16:03:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141030161249.patch</filename>
            <type>text/plain</type>
            <size>19846</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMTFkMzIwODdkOWIwMWM1ZTM0ZWJiY2FjODc4NDZm
MWUyMmMwNjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEwLTMwICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgcGFyc2VzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZyBhcmd1bWVu
dHMuIEN1cnJlbnRseSwgaXQgdGhyb3dzIGVycm9yCisgICAgICAgIG9uIGFyZ3VtZW50cyB3aXRo
ICIqIiAoZS5nLiA6bGFuZyh6aCwgKi1oYW50KSkuCisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
dGVzdCBmaWxlIGZhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1sIGFsb25nIHNpZGUgdGhl
IAorICAgICAgICBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyN0aGUtbGFuZy1wc2V1ZG8KKwor
ICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW4pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZh
bHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRBcmd1bWVudExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRM
aXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6CisgICAg
ICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKwogMjAxNC0xMC0yOSAgSHVuc2Vv
cCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVk
R3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgppbmRleCAzMDhhMDFhYzUyM2I2M2U1Y2YzYWYyN2U1MWJjYjdiMjJhYjQyYzhjLi4wMjhkOTQ2
YWY3Mzk0MDU3YjIyZDQwOGRkNWRkNWRlMjljYzVjYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkuaW4KQEAgLTYyLDYgKzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5B
U3RyaW5nKGludCB5eXR5cGUpCiAgICAgY2FzZSBOVEhDSElMREZVTkNUSU9OOgogICAgIGNhc2Ug
TlRIQ0hJTERTRUxFQ1RPUlNFUEFSQVRPUjoKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKKyAgICBjYXNlIExBTkdGVU5DVElPTjoKICAgICBjYXNlIE1BVENIRVNGVU5DVElPTjoKICNl
bmRpZgogICAgIGNhc2UgVU5JQ09ERVJBTkdFOgpAQCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBi
b29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29uc3QgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0CiAldG9rZW4gPHN0cmluZz4gTlRIQ0hJTERGVU5DVElPTgogCiAjaWYg
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldG9rZW4gPHN0cmluZz4gTEFOR0ZVTkNUSU9O
CiAldG9rZW4gPHN0cmluZz4gTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKIApAQCAtMzI4LDYgKzMz
MCwxMiBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVt
ZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXR5cGUgPHZhbHVlTGlzdD4gY2FsY19m
dW5jX2V4cHIgY2FsY19mdW5jX2V4cHJfbGlzdCBjYWxjX2Z1bmNfcGFyZW5fZXhwciBleHByIGtl
eV9saXN0IG1heWJlX21lZGlhX3ZhbHVlIHZhbGlkX2NhbGNfZnVuY19leHByIHZhbGlkX2V4cHIK
ICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHBy
X2xpc3QgY2FsY19mdW5jX3BhcmVuX2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1
ZSB2YWxpZF9jYWxjX2Z1bmNfZXhwciB2YWxpZF9leHByCiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBzdHJpbmdMaXN0
OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzCislZGVz
dHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMKKyNlbmRp
ZgorCiAldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4CiAKICV0eXBlIDxzdHJpbmc+IGVsZW1lbnRf
bmFtZQpAQCAtMTA4Miw2ICsxMDkwLDIyIEBAIG5lc3RlZF9zZWxlY3Rvcl9saXN0OgogICAgIH0K
ICAgICA7CiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKK2NvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVyczoKKyAgICBJREVOVCB7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxDU1NQ
YXJzZXJTdHJpbmc+OworICAgICAgICAkJC0+YXBwZW5kKCQxKTsKKyAgICB9CisgICAgfCBjb21t
YV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMgJywnIG1heWJlX3NwYWNlIElERU5UIHsKKyAgICAgICAg
JDEtPmFwcGVuZCgkNCk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJz
IGVycm9yIHsKKyAgICAgICAgJCQgPSBudWxscHRyOworICAgICAgICBkZWxldGUgJDE7CisgICAg
fQorICAgIDsKKyNlbmRpZgorCiBjb21wbGV4X3NlbGVjdG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVz
cGFjZToKICAgICBjb21wbGV4X3NlbGVjdG9yIFdISVRFU1BBQ0U7CiAKQEAgLTEzMzAsNiArMTM1
NCwxOCBAQCBwc2V1ZG86CiAgICAgfQogCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
CisgICAgfCAnOicgTEFOR0ZVTkNUSU9OIG1heWJlX3NwYWNlIGNvbW1hX3NlcGFyYXRlZF9pZGVu
dGlmaWVycyBtYXliZV9zcGFjZSAnKScgeworICAgICAgICAkJCA9IG51bGxwdHI7CisgICAgICAg
IGlmICgkNCkgeworICAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENT
U1BhcnNlclNlbGVjdG9yPigpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudExpc3Qo
KnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPj4oJDQpKTsKKyAgICAgICAg
ICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CisgICAgICAgICAgaWYgKHNlbGVj
dG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nKQor
ICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0K
KwogICAgIHwgJzonIE1BVENIRVNGVU5DVElPTiBtYXliZV9zcGFjZSBuZXN0ZWRfc2VsZWN0b3Jf
bGlzdCBtYXliZV9zcGFjZSAnKScgewogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlm
ICgkNCkgewpAQCAtMTgzMCw3ICsxODY2LDcgQEAgaW52YWxpZF9wYXJlbnRoZXNlc19ibG9jazog
b3BlbmluZ19wYXJlbnRoZXNpcyBlcnJvcl9yZWNvdmVyeSBjbG9zaW5nX3BhcmVudGhlc2kKIG9w
ZW5pbmdfcGFyZW50aGVzaXM6CiAgICAgJygnIHwgRlVOQ1RJT04gfCBDQUxDRlVOQ1RJT04gfCBN
SU5GVU5DVElPTiB8IE1BWEZVTkNUSU9OIHwgQU5ZRlVOQ1RJT04gfCBOT1RGVU5DVElPTgogI2lm
IEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAotICAgIHwgTUFUQ0hFU0ZVTkNUSU9OCisgICAg
fCBMQU5HRlVOQ1RJT04gfCBNQVRDSEVTRlVOQ1RJT04KICNlbmRpZgogI2lmIEVOQUJMRV9WSURF
T19UUkFDSwogICAgIHwgQ1VFRlVOQ1RJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
MTk2M2RhNGFjZjMzOThjN2Q2MjdmY2E3ZDJkMjg0MzRiMzA5ODkxOS4uNzM2Y2Q0ZTkwM2E4MjZl
MDliZjQyYWFjNGExYzJmOGE3NTEzY2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTEwNjcwLDYgKzEwNjcwLDEyIEBAIGlubGluZSBib29sIENTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rp
b25UeXBlVG9rZW4oaW50IGxlbmd0aCkKICAgICAgICAgICAgIG1fdG9rZW4gPSBDQUxDRlVOQ1RJ
T047CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorI2lmIEVOQUJMRShDU1Nf
U0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgaWYgKGlzRXF1YWxUb0NTU0lkZW50aWZpZXIobmFt
ZSwgImxhbmciKSkgeworICAgICAgICAgICAgbV90b2tlbiA9IExBTkdGVU5DVElPTjsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmNwcAppbmRleCBjMDM2NjZmODZlNWUwMWI3ODg4MDFmY2QxNzM5M2Vm
ZDZhNTU0YWRiLi42YzI0Yzg0MmUzMmVhNjJjNWUzODM4ZTFmMjI2ZTRjNDQ3N2I0MzM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjU4LDYgKzI1OCwxNiBAQCB2
b2lkIENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZQogICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChX
VEY6Om1vdmUoc2VsZWN0b3JMaXN0KSk7CiB9CiAKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNl
dEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPiYgc3RyaW5nVmVjdG9yKQorewor
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXN0cmluZ1ZlY3Rvci5pc0VtcHR5KCksICJObyBDU1Mg
U2VsZWN0b3IgYWNjZXB0IGFuIGVtcHR5IGFyZ3VtZW50IGxpc3QuIik7CisgICAgYXV0byBhcmd1
bWVudExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxBdG9taWNTdHJpbmc+PigpOworICAg
IGFyZ3VtZW50TGlzdC0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdWZWN0b3Iuc2l6ZSgp
KTsKKyAgICBmb3IgKGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgOiBzdHJpbmdWZWN0b3Ip
CisgICAgICAgIGFyZ3VtZW50TGlzdC0+YXBwZW5kKGFyZ3VtZW50KTsKKyAgICBtX3NlbGVjdG9y
LT5zZXRBcmd1bWVudExpc3QoV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCkpOworfQorCiB2b2lkIENT
U1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgcHNldWRvQ2xhc3NTdHJpbmcpCiB7CiAgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuaAppbmRleCAzMjIzOTI4ODBlNTRmMDFiMzY1Y2FlNDc2ZDg1ODAwNzdlNDlmMjdkLi40NDJl
NWQwM2NjODFjOTM2MzVjOWE3ZmYwMjJiZjcxMzI5MjFjNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlclZhbHVlcy5oCkBAIC0yMDEsNiArMjAxLDkgQEAgcHVibGljOgogCiAKICAgICB2b2lk
IGFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+JiBzZWxlY3RvclZlY3Rvcik7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+JiBzdHJp
bmdWZWN0b3IpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFBzZXVkb0NsYXNzVmFsdWUoY29uc3Qg
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzVHlwZSBwc2V1ZG9DbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9y
LT5wc2V1ZG9DbGFzc1R5cGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
MDllYTM0NmY4OTM0MGM0YzBmMmZiN2RlNTU0OTUzZmY3MWI0YTgwNC4uODczYzlkMzU0NDAyZjI1
MDViMDYxOGQzNTI2M2I1Y2M4NDRiNjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
CkBAIC0yNTMsNiArMjUzLDE4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rp
b25UYWlsKFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqCiAKIH0KIAorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3N0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBhcmd1
bWVudExpc3QpCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsYXN0QXJndW1lbnQgPSBhcmd1
bWVudExpc3QubGFzdCgpOworICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nIGFyZ3VtZW50IDog
YXJndW1lbnRMaXN0KSB7CisgICAgICAgIHN0ci5hcHBlbmQoYXJndW1lbnQpOworICAgICAgICBp
ZiAoYXJndW1lbnQgIT0gbGFzdEFyZ3VtZW50KQorICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIiwgIik7CisgICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIGFwcGVuZFNlbGVjdG9y
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2VsZWN0b3JM
aXN0KQogewogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gc2VsZWN0
b3JMaXN0LT5maXJzdCgpOwpAQCAtMzk1LDcgKzQwNywxMyBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6
OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFu
ZzoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhbmcoIik7CisjaWYgRU5B
QkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoY3MtPmFyZ3VtZW50TGlzdCgpICYmICFjcy0+YXJndW1lbnRMaXN0KCkuaXNFbXB0eSgp
LCAiQW4gZW1wdHkgOmxhbmcoKSBpcyBpbnZhbGlkIGFuZCBzaG91bGQgbmV2ZXIgYmUgZ2VuZXJh
dGVkIGJ5IHRoZSBwYXJzZXIuIik7CisgICAgICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRMaXN0
KHN0ciwgKmNzLT5hcmd1bWVudExpc3QoKSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgn
KScpOworI2Vsc2UKICAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFp
bChzdHIsIGNzKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQ6CiAgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpsYXN0LWNoaWxkIik7CkBAIC02MDYsNiArNjI0LDE0IEBAIHZv
aWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAg
ICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgPSB2YWx1ZTsKIH0KIAorI2lmIEVOQUJM
RShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlz
dChzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IGFyZ3VtZW50TGlzdCkKK3sK
KyAgICBjcmVhdGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50
TGlzdCA9IFdURjo6bW92ZShhcmd1bWVudExpc3QpOworfQorI2VuZGlmCisKIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldFNlbGVjdG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBz
ZWxlY3Rvckxpc3QpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKaW5kZXggOTNhZDVlNDk2Y2NmYzMyMzhjY2U5NmE1MTk3ZjI0MDk4NzI2Y2RjYy4uYWMx
MDhjYjgzNmI2ZGY4MTdkM2U3ZWJjNTc3MmFkMWJiNWZjNzExYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmgKQEAgLTIwNywxMSArMjA3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lKCkgY29uc3Q7CiAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jh
cmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgY29uc3QgVmVjdG9yPEF0b21p
Y1N0cmluZz4qIGFyZ3VtZW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBt
X2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudExpc3QuZ2V0KCkgOiBudWxscHRyOyB9CisjZW5k
aWYKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7
IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fc2VsZWN0b3JMaXN0
LmdldCgpIDogbnVsbHB0cjsgfQogCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAgICAgICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKTsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVudChjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3Ry
aW5nPj4pOworI2VuZGlmCiAgICAgICAgIHZvaWQgc2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVl
X3B0cjxDU1NTZWxlY3Rvckxpc3Q+KTsKIAogICAgICAgICBib29sIHBhcnNlTnRoKCkgY29uc3Q7
CkBAIC0zMDksNyArMzE1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGlu
dCBtX2I7IC8vIFVzZWQgZm9yIDpudGgtKgogICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2F0
dHJpYnV0ZTsgLy8gdXNlZCBmb3IgYXR0cmlidXRlIHNlbGVjdG9yCiAgICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWU7Ci0gICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNvbnRhaW5zLCA6bGFuZyBhbmQgOm50
aC0qCisgICAgICAgICAgICBBdG9taWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNv
bnRhaW5zIGFuZCA6bnRoLSoKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IG1fYXJndW1lbnRM
aXN0OworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0
PiBtX3NlbGVjdG9yTGlzdDsgLy8gVXNlZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90CiAgICAg
ICAgIAogICAgICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCBjMzVkZDZkOTFhZjNmODE2NWM2NGQ1NWFlOWY1ZDhlOWE1YzI4YmQ5Li40MWNmNzUw
NjFjMDdjOTJmODU2NGNmN2RlZWFjZjk2N2Q4ZWY5NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtODU5LDcgKzg1OSwxMiBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUoY29uc3QgQ2hlY2tpbmdDb250ZXh0V2l0aFN0YXR1cyYgY29udGV4dCkgY29u
c3QKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgICAgICB7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci0+YXJndW1lbnRMaXN0KCkgJiYgIXNl
bGVjdG9yLT5hcmd1bWVudExpc3QoKS0+aXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3VtZW50TGlzdCgpLT5maXJz
dCgpOworI2Vsc2UKICAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
ID0gc2VsZWN0b3ItPmFyZ3VtZW50KCk7CisjZW5kaWYgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKGFyZ3VtZW50LmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNMYW5nUHNldWRvQ2xhc3Mo
ZWxlbWVudCwgYXJndW1lbnQuaW1wbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcAppbmRleCA2OGYyMWEzNjI0NzhkYWU3YTc3ZmUxODllOGVmNGFlNTkyYTBj
ZDU0Li4xZTMzYTk3OTJlYjk1ZDEwZGM0NzY3YmZkMmY0YjdmZWExOWQxYWI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC03MjcsNyArNzI3LDEyIEBA
IHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25UeXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBDU1NT
ZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVjCiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgIHsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisg
ICAgICAgICAgICBBU1NFUlQoc2VsZWN0b3IuYXJndW1lbnRMaXN0KCkgJiYgIXNlbGVjdG9yLmFy
Z3VtZW50TGlzdCgpLT5pc0VtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBhcmd1bWVudCA9IHNlbGVjdG9yLmFyZ3VtZW50TGlzdCgpLT5maXJzdCgpOworI2Vsc2UKICAg
ICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxlY3Rvci5hcmd1bWVu
dCgpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoYXJndW1lbnQuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MDcxMGE3NDdkMDM3YjAxZmVlNzI1YWM5NWIyMGIzNTlkOTM2MWE5Li41MmYwOWZhNDM0
YzVmZmMzMTNhOGFjNmNmZTQ2NGZmYjQxYTNkZmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTQtMTAtMzAgIERoaSBBdXJyYWhtYW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KKworICAg
ICAgICBBZGQgaW5pdGlhbCBwYXJzaW5nIGZ1bmN0aW9uYWxpdHkgb2YgOmxhbmcgcHNldWRvIGNs
YXNzIGluIFNlbGVjdG9ycyBMZXZlbCA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjb21tYS1zZXBhcmF0ZWQgbGlzdCBhcmd1
bWVudHMgZm9yIDpsYW5nCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1l
eHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRl
eHQuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFs
aWQuaHRtbDogQWRkZWQuCisKIDIwMTQtMTAtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0
ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCB3aGljaCAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVk
LnR4dAppbmRleCAxMzdlYmI3ZGM1N2I0ZmZkODAzOGY4ZDc5ZTQzZWE5MWZjMDkzYzE3Li5iZmE2
NmYzY2VmYzE2ODE4NTFmMTk3MjhhNTg0YWFlZWYxZTYyOGM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0
OCw5IEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOnRhcmdldCB7IH0nKSBpcyAnOnRh
cmdldCB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzp2aXNpdGVkIHsgfScpIGlz
ICc6dmlzaXRlZCB7IH0nCiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSkg
eyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSwgYiwgYykgeyB9JykgaXMgJzpsYW5nKGEsIGIsIGMpIHsgfScKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnOmxhbmcoZnIsIGRlLCBlbiwgaWQpIHsgfScpIGlzICc6bGFuZyhmciwg
ZGUsIGVuLCBpZCkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhmciwg
ZnItY2EsIGZyLWJlKSB7IH0nKSBpcyAnOmxhbmcoZnIsIGZyLWNhLCBmci1iZSkgeyB9JwogUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KGEpIHsgfScpIGlzICc6bm90KGEpIHsgfScK
IFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nKSBp
cyAnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nCiAKQEAgLTI0NSw2ICsyNDgsMTQgQEAgUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KC5jbGFzczE6aG92ZXIgICApIHsgfScpIGlzICc6
bm90KC5jbGFzczE6aG92ZXIKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdChhLmNs
YXNzMS5jbGFzczIuY2xhc3MzOmhvdmVyICAgKSB7IH0nKSBpcyAnOm5vdChhLmNsYXNzMS5jbGFz
czIuY2xhc3MzOmhvdmVyKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpub3Qo
Om1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSw6bWF0Y2hlcygjYWxpY2Us
ICAgICAgICAgICAgICAgICAgICNib2IsI2NocmlzKSkgeyB9JykgaXMgJzpub3QoOm1hdGNoZXMo
c2luZ2xlKSwgOm1hdGNoZXMoYSwgYiwgcCksIDptYXRjaGVzKCNhbGljZSwgI2JvYiwgI2Nocmlz
KSkgeyB9JwogCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEgICApIHsgfScp
IGlzICc6bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEs
IGIsIGMgICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKGEsICAgICAgICAgICAgICAgICBiLCBjICAgKSB7IH0nKSBpcyAn
OmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhh
LGIsIGMsZCxlICAgKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYywgZCwgZSkgeyB9JworUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg8MF8wPikgeyB9JykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxl
RWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNz
c1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
ODgpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4
dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygpIHsgfScpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBlYzNjYjA4NzA5MThlODZiNjllYTc1NTEy
MTA4Y2FhMGFjMzUzMmRhLi42NWMyMTJkZTkyZTEwOTVmNDM4NTkzYzQ3MDc5Yzk3OWQ5ZTQ2OTQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTgx
LDYgKzgxLDkgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6dmlzaXRlZCIpOwogZGVidWcoJycp
OwogCiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGEpIik7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoIjpsYW5nKGEsIGIsIGMpIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZy
LCBkZSwgZW4sIGlkKSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhmciwgZnItY2Es
IGZyLWJlKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bm90KGEpIik7CiB0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIjotd2Via2l0LWFueShhLGIscCkiKTsKIApAQCAtMzE2LDYgKzMxOSwxNiBA
QCBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCg6bWF0Y2hlcyhzaW5nbGUg
ICAgKSw6bWF0Y2hlcyhhLGIgICAgLHApLAogCiBkZWJ1ZygnJyk7CiAKK3Nob3VsZEJlKCJwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhICAgKSB7IH0nKSIsICInOmxhbmcoYSkgeyB9JyIp
Oworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsIGIsIGMgICApIHsg
fScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnOmxhbmcoYSwgICAgICAgICAgICAgICAgIGIsIGMgICApIHsgfScpIiwgIic6bGFu
ZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSxiLCBjLGQsZSAgICkgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMsIGQsIGUpIHsgfSciKTsK
Kworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDwwXzA+KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDg4KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9Jyki
KTsKKwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9sYW5nLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxl
Y3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDQ0ODRlYTRiY2E1
MzNlOTIxMDA2MGY2ZjQwYWUwZTRhMDZkMWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitWZXJpZnkgaW52YWxpZCA6bGFuZygpIHNlbGVjdG9ycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoKSIp
Lmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9u
IDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg3NykiKS5sZW5ndGgg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMF8wKSAqIikubGVuZ3RoIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDFfMSkgKiIpLmxlbmd0aCB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygwNV81MCkgKiIpLmxlbmd0aCB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yIGlzICJyZ2Io
MCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZmU3YTQ4MTIwODFkY2JkY2I3YzQ1YWE3NTA0ZjZjNDljODM5NzdiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CisqIHsKKyAgICBjb2xvcjogcmdiKDAsIDAsIDApOworfQorOmxhbmcoKSB7CisgICAgY29sb3I6
IHJnYigxLCAyLCAzKTsKK30KKworOmxhbmcoKSAqIHsKKyAgICBjb2xvcjogcmdiKDQsIDUsIDYp
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CisgICAgICAgIDxhPgorICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgPGMg
aWQ9InRhcmdldDEiPjwvYz4KKyAgICAgICAgICAgIDwvYj4KKyAgICAgICAgPC9hPgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdWZXJpZnkgaW52YWxpZCA6bGFu
ZygpIHNlbGVjdG9ycy4nKTsKKworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpsYW5nKCkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCI6bGFuZyg3NykiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZygwXzApICoiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygxXzEpICoiKS5sZW5ndGgnKTsKK3Nob3VsZFRo
cm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygwNV81MCkgKiIpLmxlbmd0aCcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yJywgJ3JnYigwLCAwLCAwKScpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240711</attachid>
            <date>2014-10-30 16:03:22 -0700</date>
            <delta_ts>2014-10-30 23:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141031060329.patch</filename>
            <type>text/plain</type>
            <size>19846</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMTFkMzIwODdkOWIwMWM1ZTM0ZWJiY2FjODc4NDZm
MWUyMmMwNjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEwLTMwICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgcGFyc2VzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZyBhcmd1bWVu
dHMuIEN1cnJlbnRseSwgaXQgdGhyb3dzIGVycm9yCisgICAgICAgIG9uIGFyZ3VtZW50cyB3aXRo
ICIqIiAoZS5nLiA6bGFuZyh6aCwgKi1oYW50KSkuCisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
dGVzdCBmaWxlIGZhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1sIGFsb25nIHNpZGUgdGhl
IAorICAgICAgICBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyN0aGUtbGFuZy1wc2V1ZG8KKwor
ICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW4pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZh
bHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRBcmd1bWVudExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRM
aXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6CisgICAg
ICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKwogMjAxNC0xMC0yOSAgSHVuc2Vv
cCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVk
R3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgppbmRleCAzMDhhMDFhYzUyM2I2M2U1Y2YzYWYyN2U1MWJjYjdiMjJhYjQyYzhjLi4wMjhkOTQ2
YWY3Mzk0MDU3YjIyZDQwOGRkNWRkNWRlMjljYzVjYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkuaW4KQEAgLTYyLDYgKzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5B
U3RyaW5nKGludCB5eXR5cGUpCiAgICAgY2FzZSBOVEhDSElMREZVTkNUSU9OOgogICAgIGNhc2Ug
TlRIQ0hJTERTRUxFQ1RPUlNFUEFSQVRPUjoKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKKyAgICBjYXNlIExBTkdGVU5DVElPTjoKICAgICBjYXNlIE1BVENIRVNGVU5DVElPTjoKICNl
bmRpZgogICAgIGNhc2UgVU5JQ09ERVJBTkdFOgpAQCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBi
b29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29uc3QgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0CiAldG9rZW4gPHN0cmluZz4gTlRIQ0hJTERGVU5DVElPTgogCiAjaWYg
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldG9rZW4gPHN0cmluZz4gTEFOR0ZVTkNUSU9O
CiAldG9rZW4gPHN0cmluZz4gTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKIApAQCAtMzI4LDYgKzMz
MCwxMiBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVt
ZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXR5cGUgPHZhbHVlTGlzdD4gY2FsY19m
dW5jX2V4cHIgY2FsY19mdW5jX2V4cHJfbGlzdCBjYWxjX2Z1bmNfcGFyZW5fZXhwciBleHByIGtl
eV9saXN0IG1heWJlX21lZGlhX3ZhbHVlIHZhbGlkX2NhbGNfZnVuY19leHByIHZhbGlkX2V4cHIK
ICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHBy
X2xpc3QgY2FsY19mdW5jX3BhcmVuX2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1
ZSB2YWxpZF9jYWxjX2Z1bmNfZXhwciB2YWxpZF9leHByCiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBzdHJpbmdMaXN0
OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzCislZGVz
dHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMKKyNlbmRp
ZgorCiAldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4CiAKICV0eXBlIDxzdHJpbmc+IGVsZW1lbnRf
bmFtZQpAQCAtMTA4Miw2ICsxMDkwLDIyIEBAIG5lc3RlZF9zZWxlY3Rvcl9saXN0OgogICAgIH0K
ICAgICA7CiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKK2NvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVyczoKKyAgICBJREVOVCB7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxDU1NQ
YXJzZXJTdHJpbmc+OworICAgICAgICAkJC0+YXBwZW5kKCQxKTsKKyAgICB9CisgICAgfCBjb21t
YV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMgJywnIG1heWJlX3NwYWNlIElERU5UIHsKKyAgICAgICAg
JDEtPmFwcGVuZCgkNCk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJz
IGVycm9yIHsKKyAgICAgICAgJCQgPSBudWxscHRyOworICAgICAgICBkZWxldGUgJDE7CisgICAg
fQorICAgIDsKKyNlbmRpZgorCiBjb21wbGV4X3NlbGVjdG9yX3dpdGhfdHJhaWxpbmdfd2hpdGVz
cGFjZToKICAgICBjb21wbGV4X3NlbGVjdG9yIFdISVRFU1BBQ0U7CiAKQEAgLTEzMzAsNiArMTM1
NCwxOCBAQCBwc2V1ZG86CiAgICAgfQogCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
CisgICAgfCAnOicgTEFOR0ZVTkNUSU9OIG1heWJlX3NwYWNlIGNvbW1hX3NlcGFyYXRlZF9pZGVu
dGlmaWVycyBtYXliZV9zcGFjZSAnKScgeworICAgICAgICAkJCA9IG51bGxwdHI7CisgICAgICAg
IGlmICgkNCkgeworICAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENT
U1BhcnNlclNlbGVjdG9yPigpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudExpc3Qo
KnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPj4oJDQpKTsKKyAgICAgICAg
ICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CisgICAgICAgICAgaWYgKHNlbGVj
dG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nKQor
ICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0K
KwogICAgIHwgJzonIE1BVENIRVNGVU5DVElPTiBtYXliZV9zcGFjZSBuZXN0ZWRfc2VsZWN0b3Jf
bGlzdCBtYXliZV9zcGFjZSAnKScgewogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlm
ICgkNCkgewpAQCAtMTgzMCw3ICsxODY2LDcgQEAgaW52YWxpZF9wYXJlbnRoZXNlc19ibG9jazog
b3BlbmluZ19wYXJlbnRoZXNpcyBlcnJvcl9yZWNvdmVyeSBjbG9zaW5nX3BhcmVudGhlc2kKIG9w
ZW5pbmdfcGFyZW50aGVzaXM6CiAgICAgJygnIHwgRlVOQ1RJT04gfCBDQUxDRlVOQ1RJT04gfCBN
SU5GVU5DVElPTiB8IE1BWEZVTkNUSU9OIHwgQU5ZRlVOQ1RJT04gfCBOT1RGVU5DVElPTgogI2lm
IEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNAotICAgIHwgTUFUQ0hFU0ZVTkNUSU9OCisgICAg
fCBMQU5HRlVOQ1RJT04gfCBNQVRDSEVTRlVOQ1RJT04KICNlbmRpZgogI2lmIEVOQUJMRV9WSURF
T19UUkFDSwogICAgIHwgQ1VFRlVOQ1RJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
MTk2M2RhNGFjZjMzOThjN2Q2MjdmY2E3ZDJkMjg0MzRiMzA5ODkxOS4uNzM2Y2Q0ZTkwM2E4MjZl
MDliZjQyYWFjNGExYzJmOGE3NTEzY2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTEwNjcwLDYgKzEwNjcwLDEyIEBAIGlubGluZSBib29sIENTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rp
b25UeXBlVG9rZW4oaW50IGxlbmd0aCkKICAgICAgICAgICAgIG1fdG9rZW4gPSBDQUxDRlVOQ1RJ
T047CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorI2lmIEVOQUJMRShDU1Nf
U0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgaWYgKGlzRXF1YWxUb0NTU0lkZW50aWZpZXIobmFt
ZSwgImxhbmciKSkgeworICAgICAgICAgICAgbV90b2tlbiA9IExBTkdGVU5DVElPTjsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmNwcAppbmRleCBjMDM2NjZmODZlNWUwMWI3ODg4MDFmY2QxNzM5M2Vm
ZDZhNTU0YWRiLi42YzI0Yzg0MmUzMmVhNjJjNWUzODM4ZTFmMjI2ZTRjNDQ3N2I0MzM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjU4LDYgKzI1OCwxNiBAQCB2
b2lkIENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZQogICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChX
VEY6Om1vdmUoc2VsZWN0b3JMaXN0KSk7CiB9CiAKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNl
dEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPiYgc3RyaW5nVmVjdG9yKQorewor
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXN0cmluZ1ZlY3Rvci5pc0VtcHR5KCksICJObyBDU1Mg
U2VsZWN0b3IgYWNjZXB0IGFuIGVtcHR5IGFyZ3VtZW50IGxpc3QuIik7CisgICAgYXV0byBhcmd1
bWVudExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxBdG9taWNTdHJpbmc+PigpOworICAg
IGFyZ3VtZW50TGlzdC0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdWZWN0b3Iuc2l6ZSgp
KTsKKyAgICBmb3IgKGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgOiBzdHJpbmdWZWN0b3Ip
CisgICAgICAgIGFyZ3VtZW50TGlzdC0+YXBwZW5kKGFyZ3VtZW50KTsKKyAgICBtX3NlbGVjdG9y
LT5zZXRBcmd1bWVudExpc3QoV1RGOjptb3ZlKGFyZ3VtZW50TGlzdCkpOworfQorCiB2b2lkIENT
U1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgcHNldWRvQ2xhc3NTdHJpbmcpCiB7CiAgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuaAppbmRleCAzMjIzOTI4ODBlNTRmMDFiMzY1Y2FlNDc2ZDg1ODAwNzdlNDlmMjdkLi40NDJl
NWQwM2NjODFjOTM2MzVjOWE3ZmYwMjJiZjcxMzI5MjFjNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlclZhbHVlcy5oCkBAIC0yMDEsNiArMjAxLDkgQEAgcHVibGljOgogCiAKICAgICB2b2lk
IGFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+JiBzZWxlY3RvclZlY3Rvcik7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+JiBzdHJp
bmdWZWN0b3IpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFBzZXVkb0NsYXNzVmFsdWUoY29uc3Qg
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzVHlwZSBwc2V1ZG9DbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9y
LT5wc2V1ZG9DbGFzc1R5cGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
MDllYTM0NmY4OTM0MGM0YzBmMmZiN2RlNTU0OTUzZmY3MWI0YTgwNC4uODczYzlkMzU0NDAyZjI1
MDViMDYxOGQzNTI2M2I1Y2M4NDRiNjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
CkBAIC0yNTMsNiArMjUzLDE4IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rp
b25UYWlsKFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqCiAKIH0KIAorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3N0YXRpYyB2b2lkIGFwcGVuZEFyZ3VtZW50
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBhcmd1
bWVudExpc3QpCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsYXN0QXJndW1lbnQgPSBhcmd1
bWVudExpc3QubGFzdCgpOworICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nIGFyZ3VtZW50IDog
YXJndW1lbnRMaXN0KSB7CisgICAgICAgIHN0ci5hcHBlbmQoYXJndW1lbnQpOworICAgICAgICBp
ZiAoYXJndW1lbnQgIT0gbGFzdEFyZ3VtZW50KQorICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIiwgIik7CisgICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIGFwcGVuZFNlbGVjdG9y
TGlzdChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2VsZWN0b3JM
aXN0KQogewogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gc2VsZWN0
b3JMaXN0LT5maXJzdCgpOwpAQCAtMzk1LDcgKzQwNywxMyBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6
OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFu
ZzoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhbmcoIik7CisjaWYgRU5B
QkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoY3MtPmFyZ3VtZW50TGlzdCgpICYmICFjcy0+YXJndW1lbnRMaXN0KCkuaXNFbXB0eSgp
LCAiQW4gZW1wdHkgOmxhbmcoKSBpcyBpbnZhbGlkIGFuZCBzaG91bGQgbmV2ZXIgYmUgZ2VuZXJh
dGVkIGJ5IHRoZSBwYXJzZXIuIik7CisgICAgICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRMaXN0
KHN0ciwgKmNzLT5hcmd1bWVudExpc3QoKSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgn
KScpOworI2Vsc2UKICAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFp
bChzdHIsIGNzKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQ6CiAgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpsYXN0LWNoaWxkIik7CkBAIC02MDYsNiArNjI0LDE0IEBAIHZv
aWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAg
ICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgPSB2YWx1ZTsKIH0KIAorI2lmIEVOQUJM
RShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlz
dChzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IGFyZ3VtZW50TGlzdCkKK3sK
KyAgICBjcmVhdGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50
TGlzdCA9IFdURjo6bW92ZShhcmd1bWVudExpc3QpOworfQorI2VuZGlmCisKIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldFNlbGVjdG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBz
ZWxlY3Rvckxpc3QpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKaW5kZXggOTNhZDVlNDk2Y2NmYzMyMzhjY2U5NmE1MTk3ZjI0MDk4NzI2Y2RjYy4uYWMx
MDhjYjgzNmI2ZGY4MTdkM2U3ZWJjNTc3MmFkMWJiNWZjNzExYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmgKQEAgLTIwNywxMSArMjA3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lKCkgY29uc3Q7CiAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jh
cmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQorI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgY29uc3QgVmVjdG9yPEF0b21p
Y1N0cmluZz4qIGFyZ3VtZW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBt
X2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudExpc3QuZ2V0KCkgOiBudWxscHRyOyB9CisjZW5k
aWYKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7
IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fc2VsZWN0b3JMaXN0
LmdldCgpIDogbnVsbHB0cjsgfQogCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAgICAgICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBib29sIGlzQ2FzZUluc2Vuc2l0aXZlKTsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVudChjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgIHZvaWQgc2V0QXJndW1lbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8QXRvbWljU3Ry
aW5nPj4pOworI2VuZGlmCiAgICAgICAgIHZvaWQgc2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVl
X3B0cjxDU1NTZWxlY3Rvckxpc3Q+KTsKIAogICAgICAgICBib29sIHBhcnNlTnRoKCkgY29uc3Q7
CkBAIC0zMDksNyArMzE1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGlu
dCBtX2I7IC8vIFVzZWQgZm9yIDpudGgtKgogICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2F0
dHJpYnV0ZTsgLy8gdXNlZCBmb3IgYXR0cmlidXRlIHNlbGVjdG9yCiAgICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWU7Ci0gICAgICAgICAgICBBdG9t
aWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNvbnRhaW5zLCA6bGFuZyBhbmQgOm50
aC0qCisgICAgICAgICAgICBBdG9taWNTdHJpbmcgbV9hcmd1bWVudDsgLy8gVXNlZCBmb3IgOmNv
bnRhaW5zIGFuZCA6bnRoLSoKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+IG1fYXJndW1lbnRM
aXN0OworI2VuZGlmCiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0
PiBtX3NlbGVjdG9yTGlzdDsgLy8gVXNlZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90CiAgICAg
ICAgIAogICAgICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCBjMzVkZDZkOTFhZjNmODE2NWM2NGQ1NWFlOWY1ZDhlOWE1YzI4YmQ5Li40MWNmNzUw
NjFjMDdjOTJmODU2NGNmN2RlZWFjZjk2N2Q4ZWY5NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtODU5LDcgKzg1OSwxMiBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUoY29uc3QgQ2hlY2tpbmdDb250ZXh0V2l0aFN0YXR1cyYgY29udGV4dCkgY29u
c3QKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgICAgICB7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0
KQorICAgICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci0+YXJndW1lbnRMaXN0KCkgJiYgIXNl
bGVjdG9yLT5hcmd1bWVudExpc3QoKS0+aXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3ItPmFyZ3VtZW50TGlzdCgpLT5maXJz
dCgpOworI2Vsc2UKICAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
ID0gc2VsZWN0b3ItPmFyZ3VtZW50KCk7CisjZW5kaWYgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKGFyZ3VtZW50LmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNMYW5nUHNldWRvQ2xhc3Mo
ZWxlbWVudCwgYXJndW1lbnQuaW1wbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcAppbmRleCA2OGYyMWEzNjI0NzhkYWU3YTc3ZmUxODllOGVmNGFlNTkyYTBj
ZDU0Li4xZTMzYTk3OTJlYjk1ZDEwZGM0NzY3YmZkMmY0YjdmZWExOWQxYWI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC03MjcsNyArNzI3LDEyIEBA
IHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25UeXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBDU1NT
ZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVjCiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0xhbmc6CiAgICAgICAgIHsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisg
ICAgICAgICAgICBBU1NFUlQoc2VsZWN0b3IuYXJndW1lbnRMaXN0KCkgJiYgIXNlbGVjdG9yLmFy
Z3VtZW50TGlzdCgpLT5pc0VtcHR5KCkpOworICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBhcmd1bWVudCA9IHNlbGVjdG9yLmFyZ3VtZW50TGlzdCgpLT5maXJzdCgpOworI2Vsc2UKICAg
ICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxlY3Rvci5hcmd1bWVu
dCgpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoYXJndW1lbnQuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MDcxMGE3NDdkMDM3YjAxZmVlNzI1YWM5NWIyMGIzNTlkOTM2MWE5Li41MmYwOWZhNDM0
YzVmZmMzMTNhOGFjNmNmZTQ2NGZmYjQxYTNkZmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTQtMTAtMzAgIERoaSBBdXJyYWhtYW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KKworICAg
ICAgICBBZGQgaW5pdGlhbCBwYXJzaW5nIGZ1bmN0aW9uYWxpdHkgb2YgOmxhbmcgcHNldWRvIGNs
YXNzIGluIFNlbGVjdG9ycyBMZXZlbCA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjb21tYS1zZXBhcmF0ZWQgbGlzdCBhcmd1
bWVudHMgZm9yIDpsYW5nCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1l
eHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRl
eHQuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFs
aWQuaHRtbDogQWRkZWQuCisKIDIwMTQtMTAtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBjb21wb3NpdGluZy9yZWdpb25zL3Byb3BhZ2F0
ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCB3aGljaCAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVk
LnR4dAppbmRleCAxMzdlYmI3ZGM1N2I0ZmZkODAzOGY4ZDc5ZTQzZWE5MWZjMDkzYzE3Li5iZmE2
NmYzY2VmYzE2ODE4NTFmMTk3MjhhNTg0YWFlZWYxZTYyOGM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0
OCw5IEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOnRhcmdldCB7IH0nKSBpcyAnOnRh
cmdldCB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzp2aXNpdGVkIHsgfScpIGlz
ICc6dmlzaXRlZCB7IH0nCiAKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSkg
eyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSwgYiwgYykgeyB9JykgaXMgJzpsYW5nKGEsIGIsIGMpIHsgfScKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnOmxhbmcoZnIsIGRlLCBlbiwgaWQpIHsgfScpIGlzICc6bGFuZyhmciwg
ZGUsIGVuLCBpZCkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhmciwg
ZnItY2EsIGZyLWJlKSB7IH0nKSBpcyAnOmxhbmcoZnIsIGZyLWNhLCBmci1iZSkgeyB9JwogUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KGEpIHsgfScpIGlzICc6bm90KGEpIHsgfScK
IFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nKSBp
cyAnOi13ZWJraXQtYW55KGEsYixwKSB7IH0nCiAKQEAgLTI0NSw2ICsyNDgsMTQgQEAgUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KC5jbGFzczE6aG92ZXIgICApIHsgfScpIGlzICc6
bm90KC5jbGFzczE6aG92ZXIKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdChhLmNs
YXNzMS5jbGFzczIuY2xhc3MzOmhvdmVyICAgKSB7IH0nKSBpcyAnOm5vdChhLmNsYXNzMS5jbGFz
czIuY2xhc3MzOmhvdmVyKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpub3Qo
Om1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSw6bWF0Y2hlcygjYWxpY2Us
ICAgICAgICAgICAgICAgICAgICNib2IsI2NocmlzKSkgeyB9JykgaXMgJzpub3QoOm1hdGNoZXMo
c2luZ2xlKSwgOm1hdGNoZXMoYSwgYiwgcCksIDptYXRjaGVzKCNhbGljZSwgI2JvYiwgI2Nocmlz
KSkgeyB9JwogCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEgICApIHsgfScp
IGlzICc6bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEs
IGIsIGMgICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKGEsICAgICAgICAgICAgICAgICBiLCBjICAgKSB7IH0nKSBpcyAn
OmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhh
LGIsIGMsZCxlICAgKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYywgZCwgZSkgeyB9JworUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg8MF8wPikgeyB9JykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxl
RWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNz
c1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
ODgpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4
dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygpIHsgfScpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBlYzNjYjA4NzA5MThlODZiNjllYTc1NTEy
MTA4Y2FhMGFjMzUzMmRhLi42NWMyMTJkZTkyZTEwOTVmNDM4NTkzYzQ3MDc5Yzk3OWQ5ZTQ2OTQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTgx
LDYgKzgxLDkgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6dmlzaXRlZCIpOwogZGVidWcoJycp
OwogCiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGEpIik7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoIjpsYW5nKGEsIGIsIGMpIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZy
LCBkZSwgZW4sIGlkKSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhmciwgZnItY2Es
IGZyLWJlKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bm90KGEpIik7CiB0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoIjotd2Via2l0LWFueShhLGIscCkiKTsKIApAQCAtMzE2LDYgKzMxOSwxNiBA
QCBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCg6bWF0Y2hlcyhzaW5nbGUg
ICAgKSw6bWF0Y2hlcyhhLGIgICAgLHApLAogCiBkZWJ1ZygnJyk7CiAKK3Nob3VsZEJlKCJwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhICAgKSB7IH0nKSIsICInOmxhbmcoYSkgeyB9JyIp
Oworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsIGIsIGMgICApIHsg
fScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnOmxhbmcoYSwgICAgICAgICAgICAgICAgIGIsIGMgICApIHsgfScpIiwgIic6bGFu
ZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoYSxiLCBjLGQsZSAgICkgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMsIGQsIGUpIHsgfSciKTsK
Kworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDwwXzA+KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDk5KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDg4KSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9Jyki
KTsKKwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9sYW5nLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxl
Y3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDQ0ODRlYTRiY2E1
MzNlOTIxMDA2MGY2ZjQwYWUwZTRhMDZkMWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitWZXJpZnkgaW52YWxpZCA6bGFuZygpIHNlbGVjdG9ycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoKSIp
Lmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9u
IDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg3NykiKS5sZW5ndGgg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoMF8wKSAqIikubGVuZ3RoIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDFfMSkgKiIpLmxlbmd0aCB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygwNV81MCkgKiIpLmxlbmd0aCB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yIGlzICJyZ2Io
MCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZmU3YTQ4MTIwODFkY2JkY2I3YzQ1YWE3NTA0ZjZjNDljODM5NzdiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CisqIHsKKyAgICBjb2xvcjogcmdiKDAsIDAsIDApOworfQorOmxhbmcoKSB7CisgICAgY29sb3I6
IHJnYigxLCAyLCAzKTsKK30KKworOmxhbmcoKSAqIHsKKyAgICBjb2xvcjogcmdiKDQsIDUsIDYp
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CisgICAgICAgIDxhPgorICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgPGMg
aWQ9InRhcmdldDEiPjwvYz4KKyAgICAgICAgICAgIDwvYj4KKyAgICAgICAgPC9hPgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdWZXJpZnkgaW52YWxpZCA6bGFu
ZygpIHNlbGVjdG9ycy4nKTsKKworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpsYW5nKCkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCI6bGFuZyg3NykiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZygwXzApICoiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygxXzEpICoiKS5sZW5ndGgnKTsKK3Nob3VsZFRo
cm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygwNV81MCkgKiIpLmxlbmd0aCcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yJywgJ3JnYigwLCAwLCAwKScpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240726</attachid>
            <date>2014-10-30 23:33:59 -0700</date>
            <delta_ts>2014-10-31 01:31:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141031133401.patch</filename>
            <type>text/plain</type>
            <size>28136</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMTFkMzIwODdkOWIwMWM1ZTM0ZWJiY2FjODc4NDZm
MWUyMmMwNjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEwLTMwICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgcGFyc2VzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZyBhcmd1bWVu
dHMuIEN1cnJlbnRseSwgaXQgdGhyb3dzIGVycm9yCisgICAgICAgIG9uIGFyZ3VtZW50cyB3aXRo
ICIqIiAoZS5nLiA6bGFuZyh6aCwgKi1oYW50KSkuCisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
dGVzdCBmaWxlIGZhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1sIGFsb25nIHNpZGUgdGhl
IAorICAgICAgICBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyN0aGUtbGFuZy1wc2V1ZG8KKwor
ICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW4pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZh
bHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRBcmd1bWVudExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRM
aXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6CisgICAg
ICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKwogMjAxNC0xMC0yOSAgSHVuc2Vv
cCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVk
R3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgppbmRleCAzMDhhMDFhYzUyM2I2M2U1Y2YzYWYyN2U1MWJjYjdiMjJhYjQyYzhjLi5jMzI5MzJk
N2VjMDMwMDQ0YWEyNGQzODJjNjZhM2E4OWU0ZjYxNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkuaW4KQEAgLTYyLDYgKzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5B
U3RyaW5nKGludCB5eXR5cGUpCiAgICAgY2FzZSBOVEhDSElMREZVTkNUSU9OOgogICAgIGNhc2Ug
TlRIQ0hJTERTRUxFQ1RPUlNFUEFSQVRPUjoKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKKyAgICBjYXNlIExBTkdGVU5DVElPTjoKICAgICBjYXNlIE1BVENIRVNGVU5DVElPTjoKICNl
bmRpZgogICAgIGNhc2UgVU5JQ09ERVJBTkdFOgpAQCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBi
b29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29uc3QgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0CiAldG9rZW4gPHN0cmluZz4gTlRIQ0hJTERGVU5DVElPTgogCiAjaWYg
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldG9rZW4gPHN0cmluZz4gTEFOR0ZVTkNUSU9O
CiAldG9rZW4gPHN0cmluZz4gTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKIApAQCAtMzI4LDYgKzMz
MCwxMiBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVt
ZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXR5cGUgPHZhbHVlTGlzdD4gY2FsY19m
dW5jX2V4cHIgY2FsY19mdW5jX2V4cHJfbGlzdCBjYWxjX2Z1bmNfcGFyZW5fZXhwciBleHByIGtl
eV9saXN0IG1heWJlX21lZGlhX3ZhbHVlIHZhbGlkX2NhbGNfZnVuY19leHByIHZhbGlkX2V4cHIK
ICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHBy
X2xpc3QgY2FsY19mdW5jX3BhcmVuX2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1
ZSB2YWxpZF9jYWxjX2Z1bmNfZXhwciB2YWxpZF9leHByCiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBzdHJpbmdMaXN0
OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzCislZGVz
dHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMKKyNlbmRp
ZgorCiAldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4CiAKICV0eXBlIDxzdHJpbmc+IGVsZW1lbnRf
bmFtZQpAQCAtMTA4Miw2ICsxMDkwLDIzIEBAIG5lc3RlZF9zZWxlY3Rvcl9saXN0OgogICAgIH0K
ICAgICA7CiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKK2NvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVyczoKKyAgICBJREVOVCAlcHJlYyBVTklNUE9SVEFOVF9UT0sgeworICAgICAg
ICAkJCA9IG5ldyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKKyAgICAgICAgJCQtPmFwcGVuZCgk
MSk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzIG1heWJlX3NwYWNl
ICcsJyBtYXliZV9zcGFjZSBJREVOVCAlcHJlYyBVTklNUE9SVEFOVF9UT0sgeworICAgICAgICBp
ZiAoJDEpCisgICAgICAgICAgICAkMS0+YXBwZW5kKCQ1KTsKKyAgICB9CisgICAgfCBjb21tYV9z
ZXBhcmF0ZWRfaWRlbnRpZmllcnMgZXJyb3IgeworICAgICAgICAkJCA9IG51bGxwdHI7CisgICAg
ICAgIGRlbGV0ZSAkMTsKKyAgICB9CisgICAgOworI2VuZGlmCisKIGNvbXBsZXhfc2VsZWN0b3Jf
d2l0aF90cmFpbGluZ193aGl0ZXNwYWNlOgogICAgIGNvbXBsZXhfc2VsZWN0b3IgV0hJVEVTUEFD
RTsKIApAQCAtMTMzMCw2ICsxMzU1LDE4IEBAIHBzZXVkbzoKICAgICB9CiAKICNpZiBFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQKKyAgICB8ICc6JyBMQU5HRlVOQ1RJT04gbWF5YmVfc3BhY2Ug
Y29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzIG1heWJlX3NwYWNlICcpJyB7CisgICAgICAgICQk
ID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKCQ0KSB7CisgICAgICAgICAgYXV0byBzZWxlY3RvciA9
IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CisgICAgICAgICAgc2VsZWN0
b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CisgICAgICAgICAgc2VsZWN0
b3ItPnNldEFyZ3VtZW50TGlzdCgqc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxDU1NQYXJzZXJTdHJp
bmc+PigkNCkpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsK
KyAgICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0xhbmcpCisgICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgp
OworICAgICAgICB9CisgICAgfQorCiAgICAgfCAnOicgTUFUQ0hFU0ZVTkNUSU9OIG1heWJlX3Nw
YWNlIG5lc3RlZF9zZWxlY3Rvcl9saXN0IG1heWJlX3NwYWNlICcpJyB7CiAgICAgICAgICQkID0g
bnVsbHB0cjsKICAgICAgICAgaWYgKCQ0KSB7CkBAIC0xODMwLDcgKzE4NjcsNyBAQCBpbnZhbGlk
X3BhcmVudGhlc2VzX2Jsb2NrOiBvcGVuaW5nX3BhcmVudGhlc2lzIGVycm9yX3JlY292ZXJ5IGNs
b3NpbmdfcGFyZW50aGVzaQogb3BlbmluZ19wYXJlbnRoZXNpczoKICAgICAnKCcgfCBGVU5DVElP
TiB8IENBTENGVU5DVElPTiB8IE1JTkZVTkNUSU9OIHwgTUFYRlVOQ1RJT04gfCBBTllGVU5DVElP
TiB8IE5PVEZVTkNUSU9OCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0Ci0gICAgfCBN
QVRDSEVTRlVOQ1RJT04KKyAgICB8IExBTkdGVU5DVElPTiB8IE1BVENIRVNGVU5DVElPTgogI2Vu
ZGlmCiAjaWYgRU5BQkxFX1ZJREVPX1RSQUNLCiAgICAgfCBDVUVGVU5DVElPTgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCAxOTYzZGE0YWNmMzM5OGM3ZDYyN2ZjYTdkMmQyODQzNGIzMDk4
OTE5Li43MzZjZDRlOTAzYTgyNmUwOWJmNDJhYWM0YTFjMmY4YTc1MTNjZTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtMTA2NzAsNiArMTA2NzAsMTIgQEAgaW5saW5lIGJvb2wgQ1NT
UGFyc2VyOjpkZXRlY3RGdW5jdGlvblR5cGVUb2tlbihpbnQgbGVuZ3RoKQogICAgICAgICAgICAg
bV90b2tlbiA9IENBTENGVU5DVElPTjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICBpZiAoaXNFcXVh
bFRvQ1NTSWRlbnRpZmllcihuYW1lLCAibGFuZyIpKSB7CisgICAgICAgICAgICBtX3Rva2VuID0g
TEFOR0ZVTkNUSU9OOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZF
TDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IGMwMzY2NmY4NmU1
ZTAxYjc4ODgwMWZjZDE3MzkzZWZkNmE1NTRhZGIuLjcxN2M5NjdiNDgyZjRhMDBiMDczZmE3NmRl
OTVjMWU1YjM4MjUxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJW
YWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBA
IC0yNTgsNiArMjU4LDE2IEBAIHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFkb3B0U2VsZWN0b3JW
ZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlCiAgICAgbV9zZWxlY3Rv
ci0+c2V0U2VsZWN0b3JMaXN0KFdURjo6bW92ZShzZWxlY3Rvckxpc3QpKTsKIH0KIAordm9pZCBD
U1NQYXJzZXJTZWxlY3Rvcjo6c2V0QXJndW1lbnRMaXN0KFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+
JiBzdHJpbmdWZWN0b3IpCit7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghc3RyaW5nVmVjdG9y
LmlzRW1wdHkoKSwgIk5vIENTUyBTZWxlY3RvciB0YWtlcyBhbiBlbXB0eSBhcmd1bWVudCBsaXN0
LiIpOworICAgIGF1dG8gYXJndW1lbnRMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8QXRv
bWljU3RyaW5nPj4oKTsKKyAgICBhcmd1bWVudExpc3QtPnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
c3RyaW5nVmVjdG9yLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3Vt
ZW50IDogc3RyaW5nVmVjdG9yKQorICAgICAgICBhcmd1bWVudExpc3QtPmFwcGVuZChhcmd1bWVu
dCk7CisgICAgbV9zZWxlY3Rvci0+c2V0QXJndW1lbnRMaXN0KFdURjo6bW92ZShhcmd1bWVudExp
c3QpKTsKK30KKwogdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZShj
b25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKQogewogICAgIEFTU0VSVCht
X3NlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMzIyMzkyODgwZTU0ZjAxYjM2NWNhZTQ3NmQ4
NTgwMDc3ZTQ5ZjI3ZC4uNDQyZTVkMDNjYzgxYzkzNjM1YzlhN2ZmMDIyYmY3MTMyOTIxYzQ0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMjAxLDYgKzIwMSw5IEBAIHB1
YmxpYzoKIAogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOworI2lmIEVOQUJMRShD
U1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICB2b2lkIHNldEFyZ3VtZW50TGlzdChWZWN0b3I8Q1NT
UGFyc2VyU3RyaW5nPiYgc3RyaW5nVmVjdG9yKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzZXRQc2V1
ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvQ2xhc3NTdHJpbmcpOwog
ICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCmluZGV4IDA5ZWEzNDZmODkzNDBjNGMwZjJmYjdkZTU1NDk1M2ZmNzFiNGE4
MDQuLjg3M2M5ZDM1NDQwMmYyNTA1YjA2MThkMzUyNjNiNWNjODQ0YjYzNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjUzLDYgKzI1MywxOCBAQCBzdGF0aWMgdm9pZCBhcHBl
bmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1Nl
bGVjdG9yKgogCiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCitzdGF0aWMg
dm9pZCBhcHBlbmRBcmd1bWVudExpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBWZWN0b3I8
QXRvbWljU3RyaW5nPiYgYXJndW1lbnRMaXN0KQoreworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
bGFzdEFyZ3VtZW50ID0gYXJndW1lbnRMaXN0Lmxhc3QoKTsKKyAgICBmb3IgKGNvbnN0IEF0b21p
Y1N0cmluZyBhcmd1bWVudCA6IGFyZ3VtZW50TGlzdCkgeworICAgICAgICBzdHIuYXBwZW5kKGFy
Z3VtZW50KTsKKyAgICAgICAgaWYgKGFyZ3VtZW50ICE9IGxhc3RBcmd1bWVudCkKKyAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgIH0KK30KKyNlbmRpZgorCiBzdGF0aWMg
dm9pZCBhcHBlbmRTZWxlY3Rvckxpc3QoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBDU1NTZWxl
Y3Rvckxpc3QqIHNlbGVjdG9yTGlzdCkKIHsKICAgICBjb25zdCBDU1NTZWxlY3RvciogZmlyc3RT
dWJTZWxlY3RvciA9IHNlbGVjdG9yTGlzdC0+Zmlyc3QoKTsKQEAgLTM5NSw3ICs0MDcsMTMgQEAg
U3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUp
IGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc0xhbmc6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpsYW5nKCIpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgICAg
ICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNzLT5hcmd1bWVudExpc3QoKSAmJiAhY3MtPmFyZ3Vt
ZW50TGlzdCgpLmlzRW1wdHkoKSwgIkFuIGVtcHR5IDpsYW5nKCkgaXMgaW52YWxpZCBhbmQgc2hv
dWxkIG5ldmVyIGJlIGdlbmVyYXRlZCBieSB0aGUgcGFyc2VyLiIpOworICAgICAgICAgICAgICAg
IGFwcGVuZEFyZ3VtZW50TGlzdChzdHIsICpjcy0+YXJndW1lbnRMaXN0KCkpOworICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyNlbHNlCiAgICAgICAgICAgICAgICAgYXBwZW5kUHNl
dWRvQ2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CisjZW5kaWYKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFzdENoaWxk
OgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGFzdC1jaGlsZCIpOwpAQCAt
NjA2LDYgKzYyNCwxNCBAQCB2b2lkIENTU1NlbGVjdG9yOjpzZXRBcmd1bWVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlKQogICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50ID0gdmFs
dWU7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCit2b2lkIENTU1NlbGVj
dG9yOjpzZXRBcmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxBdG9taWNTdHJpbmc+
PiBhcmd1bWVudExpc3QpCit7CisgICAgY3JlYXRlUmFyZURhdGEoKTsKKyAgICBtX2RhdGEubV9y
YXJlRGF0YS0+bV9hcmd1bWVudExpc3QgPSBXVEY6Om1vdmUoYXJndW1lbnRMaXN0KTsKK30KKyNl
bmRpZgorCiB2b2lkIENTU1NlbGVjdG9yOjpzZXRTZWxlY3Rvckxpc3Qoc3RkOjp1bmlxdWVfcHRy
PENTU1NlbGVjdG9yTGlzdD4gc2VsZWN0b3JMaXN0KQogewogICAgIGNyZWF0ZVJhcmVEYXRhKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDkzYWQ1ZTQ5NmNjZmMzMjM4Y2NlOTZhNTE5
N2YyNDA5ODcyNmNkY2MuLmFjMTA4Y2I4MzZiNmRmODE3ZDNlN2ViYzU3NzJhZDFiYjVmYzcxMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0yMDcsMTEgKzIwNywxNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSgpIGNv
bnN0OwogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZUNhbm9uaWNhbExvY2Fs
TmFtZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50
IDogbnVsbEF0b207IH0KKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZFTDQpCisgICAgICAg
IGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+KiBhcmd1bWVudExpc3QoKSBjb25zdCB7IHJldHVy
biBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnRMaXN0LmdldCgp
IDogbnVsbHB0cjsgfQorI2VuZGlmCiAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2Vs
ZWN0b3JMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0YSA/IG1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NlbGVjdG9yTGlzdC5nZXQoKSA6IG51bGxwdHI7IH0KIAogICAgICAgICB2b2lkIHNl
dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICB2b2lkIHNldEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCBpc0Nhc2VJbnNlbnNpdGl2ZSk7CiAgICAgICAgIHZv
aWQgc2V0QXJndW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisjaWYgRU5BQkxFKENTU19TRUxF
Q1RPUlNfTEVWRUw0KQorICAgICAgICB2b2lkIHNldEFyZ3VtZW50TGlzdChzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPEF0b21pY1N0cmluZz4+KTsKKyNlbmRpZgogICAgICAgICB2b2lkIHNldFNlbGVj
dG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0Pik7CiAKICAgICAgICAgYm9v
bCBwYXJzZU50aCgpIGNvbnN0OwpAQCAtMzA5LDcgKzMxNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICBpbnQgbV9iOyAvLyBVc2VkIGZvciA6bnRoLSoKICAgICAgICAgICAg
IFF1YWxpZmllZE5hbWUgbV9hdHRyaWJ1dGU7IC8vIHVzZWQgZm9yIGF0dHJpYnV0ZSBzZWxlY3Rv
cgogICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1fYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1l
OwotICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1fYXJndW1lbnQ7IC8vIFVzZWQgZm9yIDpjb250
YWlucywgOmxhbmcgYW5kIDpudGgtKgorICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1fYXJndW1l
bnQ7IC8vIFVzZWQgZm9yIDpjb250YWlucyBhbmQgOm50aC0qCisjaWYgRU5BQkxFKENTU19TRUxF
Q1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxBdG9taWNT
dHJpbmc+PiBtX2FyZ3VtZW50TGlzdDsKKyNlbmRpZgogICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPENTU1NlbGVjdG9yTGlzdD4gbV9zZWxlY3Rvckxpc3Q7IC8vIFVzZWQgZm9yIDotd2Via2l0
LWFueSBhbmQgOm5vdAogICAgICAgICAKICAgICAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYzM1ZGQ2ZDkxYWYzZjgxNjVjNjRkNTVhZTlmNWQ4
ZTlhNWMyOGJkOS4uNDFjZjc1MDYxYzA3YzkyZjg1NjRjZjdkZWVhY2Y5NjdkOGVmOTUxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTg1OSw3ICs4NTksMTIgQEAg
Ym9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IENoZWNraW5nQ29udGV4dFdpdGhT
dGF0dXMmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAgICAgeworI2lmIEVOQUJMRShD
U1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2VsZWN0b3ItPmFy
Z3VtZW50TGlzdCgpICYmICFzZWxlY3Rvci0+YXJndW1lbnRMaXN0KCktPmlzRW1wdHkoKSk7Cisg
ICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCA9IHNlbGVjdG9yLT5h
cmd1bWVudExpc3QoKS0+Zmlyc3QoKTsKKyNlbHNlCiAgICAgICAgICAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBhcmd1bWVudCA9IHNlbGVjdG9yLT5hcmd1bWVudCgpOworI2VuZGlmICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc051bGwoKSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIHJldHVybiBtYXRj
aGVzTGFuZ1BzZXVkb0NsYXNzKGVsZW1lbnQsIGFyZ3VtZW50LmltcGwoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggNjhmMjFhMzYyNDc4ZGFlN2E3
N2ZlMTg5ZThlZjRhZTU5MmEwY2Q1NC4uMWUzM2E5NzkyZWI5NWQxMGRjNDc2N2JmZDJmNGI3ZmVh
MTlkMWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGls
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApA
QCAtNzI3LDcgKzcyNywxMiBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9uVHlwZSBhZGRQc2V1ZG9D
bGFzc1R5cGUoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBTZWxlYwogCiAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICB7CisjaWYgRU5BQkxFKENTU19T
RUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmFyZ3VtZW50TGlz
dCgpICYmICFzZWxlY3Rvci5hcmd1bWVudExpc3QoKS0+aXNFbXB0eSgpKTsKKyAgICAgICAgICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxlY3Rvci5hcmd1bWVudExpc3QoKS0+
Zmlyc3QoKTsKKyNlbHNlCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
ID0gc2VsZWN0b3IuYXJndW1lbnQoKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKGFyZ3VtZW50
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RN
YXRjaEFueXRoaW5nOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTA3MTBhNzQ3ZDAzN2IwMWZlZTcyNWFjOTViMjBiMzU5
ZDkzNjFhOS4uNTJmMDlmYTQzNGM1ZmZjMzEzYThhYzZjZmU0NjRmZmI0MWEzZGZiYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTMwICBEaGkgQXVycmFobWFuICA8ZGlvcmFobWFuQHJv
Y2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5
IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3RvcnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgY29tbWEt
c2VwYXJhdGVkIGxpc3QgYXJndW1lbnRzIGZvciA6bGFuZworCisgICAgICAgICogZmFzdC9jc3Mv
Y3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OiBVcGRhdGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWw6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9zZWxl
Y3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
ZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEwLTI5ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNraXAgY29tcG9zaXRp
bmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9y
LXZpZGVvLmh0bWwgd2hpY2ggCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mt
c2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2Vs
ZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKaW5kZXggMTM3ZWJiN2RjNTdiNGZmZDgwMzhmOGQ3OWU0
M2VhOTFmYzA5M2MxNy4uY2ZlMTBmNDQ4NDVjZTdlMTJkODdjMzI1M2EzZWZmOWVmMzEzZGQ0OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVj
dGVkLnR4dApAQCAtNDgsNiArNDgsMTMgQEAgUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
dGFyZ2V0IHsgfScpIGlzICc6dGFyZ2V0IHsgfScKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOnZpc2l0ZWQgeyB9JykgaXMgJzp2aXNpdGVkIHsgfScKIAogUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZyhhKSB7IH0nKSBpcyAnOmxhbmcoYSkgeyB9JworUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCBiLCBjKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykg
eyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhmciwgZGUsIGVuLCBpZCkg
eyB9JykgaXMgJzpsYW5nKGZyLCBkZSwgZW4sIGlkKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKGZyLCBmci1jYSwgZnItYmUpIHsgfScpIGlzICc6bGFuZyhmciwgZnIt
Y2EsIGZyLWJlKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGRlLURF
LCBkZS1ERS0xOTk2LCBkZS1MYXRuLURFLCBkZS1MYXRmLURFLCBkZS1MYXRuLURFLTE5OTYpIHsg
fScpIGlzICc6bGFuZyhkZS1ERSwgZGUtREUtMTk5NiwgZGUtTGF0bi1ERSwgZGUtTGF0Zi1ERSwg
ZGUtTGF0bi1ERS0xOTk2KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5n
KGRlLUNILCBpdC1DSCwgZnItQ0gsIHJtLUNIKSB7IH0nKSBpcyAnOmxhbmcoZGUtQ0gsIGl0LUNI
LCBmci1DSCwgcm0tQ0gpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
ZGUtREUsIGRlLURFLTE5OTYsIGRlLUxhdG4tREUsIGRlLUxhdGYtREUsIGRlLUxhdG4tREUtMTk5
NiwgZGUtQ0gsIGl0LUNILCBmci1DSCwgcm0tQ0gpIHsgfScpIGlzICc6bGFuZyhkZS1ERSwgZGUt
REUtMTk5NiwgZGUtTGF0bi1ERSwgZGUtTGF0Zi1ERSwgZGUtTGF0bi1ERS0xOTk2LCBkZS1DSCwg
aXQtQ0gsIGZyLUNILCBybS1DSCkgeyB9JworCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
Jzpub3QoYSkgeyB9JykgaXMgJzpub3QoYSkgeyB9JwogUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6LXdlYmtpdC1hbnkoYSxiLHApIHsgfScpIGlzICc6LXdlYmtpdC1hbnkoYSxiLHApIHsg
fScKIApAQCAtMjQ1LDYgKzI1MiwzNCBAQCBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpu
b3QoLmNsYXNzMTpob3ZlciAgICkgeyB9JykgaXMgJzpub3QoLmNsYXNzMTpob3ZlcgogUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KGEuY2xhc3MxLmNsYXNzMi5jbGFzczM6aG92ZXIg
ICApIHsgfScpIGlzICc6bm90KGEuY2xhc3MxLmNsYXNzMi5jbGFzczM6aG92ZXIpIHsgfScKIFBB
U1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCg6bWF0Y2hlcyhzaW5nbGUgICAgKSw6bWF0
Y2hlcyhhLGIgICAgLHApLDptYXRjaGVzKCNhbGljZSwgICAgICAgICAgICAgICAgICAgI2JvYiwj
Y2hyaXMpKSB7IH0nKSBpcyAnOm5vdCg6bWF0Y2hlcyhzaW5nbGUpLCA6bWF0Y2hlcyhhLCBiLCBw
KSwgOm1hdGNoZXMoI2FsaWNlLCAjYm9iLCAjY2hyaXMpKSB7IH0nCiAKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnOmxhbmcoYSAgICApIHsgfScpIGlzICc6bGFuZyhhKSB7IH0nCitQQVNT
IHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCAgICBhKSB7IH0nKSBpcyAnOmxhbmcoYSkg
eyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCAgICBiLCAgICBjKSB7
IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyggICAgYSwgYiAsYykgeyB9JykgaXMgJzpsYW5nKGEsIGIsIGMpIHsgfScKK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoICBhICAsICBiICAsICBjICApIHsgfScpIGlz
ICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5n
KCAgICBhICAsYixjKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSAgLGIgICxjKSB7IH0nKSBpcyAnOmxhbmcoYSwg
YiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSAgLGIg
ICxjICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKGEsYiAgICAsYykgeyB9JykgaXMgJzpsYW5nKGEsIGIsIGMpIHsgfScK
K1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSxiLCAgICBjKSB7IH0nKSBpcyAn
OmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhh
LGIsICAgIGMgICAgKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworCitQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5z
aGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
JzpsYW5nKGxhbmcoKSkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxl
c1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDpsYW5n
KCkpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4
dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg6bGFuZyhpZCkpIHsgfScp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg6bGFuZyhlbiwgYnIpKSB7IH0nKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoPDBfMD4pIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVs
ZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxp
emVSdWxlKCc6bGFuZyg5OSkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NS
dWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDg4
KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQn
KS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoMDApIHsgfScpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bGFuZyh9KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNo
ZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgn
OmxhbmcoeykgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5j
c3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKHt9KSB7IH0nKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoXSkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxl
bWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKFspIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVs
ZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhbXSkg
eyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0Jyku
CitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKEBtZWRpYSBzY3JlZW4ge30pIHsg
fScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBlYzNjYjA4NzA5MThl
ODZiNjllYTc1NTEyMTA4Y2FhMGFjMzUzMmRhLi4yYjA4MWRmMjg3YmMwNWQ4Y2I5NDZiZmVmZTk0
NTM1OGMzYzVjMDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0
b3ItdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0
Lmh0bWwKQEAgLTgxLDYgKzgxLDE1IEBAIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOnZpc2l0ZWQi
KTsKIGRlYnVnKCcnKTsKIAogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhhKSIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhhLCBiLCBjKSIpOwordGVzdFNlbGVjdG9yUm91bmRU
cmlwKCI6bGFuZyhmciwgZGUsIGVuLCBpZCkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxh
bmcoZnIsIGZyLWNhLCBmci1iZSkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoZGUt
REUsIGRlLURFLTE5OTYsIGRlLUxhdG4tREUsIGRlLUxhdGYtREUsIGRlLUxhdG4tREUtMTk5Niki
KTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoZGUtQ0gsIGl0LUNILCBmci1DSCwgcm0t
Q0gpIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGRlLURFLCBkZS1ERS0xOTk2LCBk
ZS1MYXRuLURFLCBkZS1MYXRmLURFLCBkZS1MYXRuLURFLTE5OTYsIGRlLUNILCBpdC1DSCwgZnIt
Q0gsIHJtLUNIKSIpOworCitkZWJ1ZygnJyk7CisKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOm5v
dChhKSIpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6LXdlYmtpdC1hbnkoYSxiLHApIik7CiAK
QEAgLTMxNiw2ICszMjUsMzcgQEAgc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpu
b3QoOm1hdGNoZXMoc2luZ2xlICAgICksOm1hdGNoZXMoYSxiICAgICxwKSwKIAogZGVidWcoJycp
OwogCitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSAgICApIHsgfScp
IiwgIic6bGFuZyhhKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgn
OmxhbmcoICAgIGEpIHsgfScpIiwgIic6bGFuZyhhKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VU
aGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSwgICAgYiwgICAgYykgeyB9JykiLCAiJzpsYW5nKGEs
IGIsIGMpIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygg
ICAgYSwgYiAsYykgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMpIHsgfSciKTsKK3Nob3VsZEJlKCJw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggIGEgICwgIGIgICwgIGMgICkgeyB9JykiLCAi
JzpsYW5nKGEsIGIsIGMpIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyggICAgYSAgLGIsYykgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMpIHsgfSciKTsKK3No
b3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSAgLGIgICxjKSB7IH0n
KSIsICInOmxhbmcoYSwgYiwgYykgeyB9JyIpOworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKCAgICBhICAsYiAgLGMgICkgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMpIHsg
fSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLGIgICAgLGMp
IHsgfScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoYSxiLCAgICBjKSB7IH0nKSIsICInOmxhbmcoYSwgYiwgYykgeyB9
JyIpOworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsYiwgICAgYyAg
ICApIHsgfScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CisKK2RlYnVnKCcnKTsKKworc2hv
dWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9JykiKTsKK3Nob3Vs
ZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhsYW5nKCkpIHsgfScpIik7Citz
aG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoOmxhbmcoKSkgeyB9Jyki
KTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg6bGFuZyhpZCkp
IHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoOmxh
bmcoZW4sIGJyKSkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyg8MF8wPikgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZyg5OSkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZyg4OCkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZygwMCkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZyh9KSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJzpsYW5nKHspIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoe30pIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoXSkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyhbKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
JzpsYW5nKFtdKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
JzpsYW5nKEBtZWRpYSBzY3JlZW4ge30pIHsgfScpIik7CisKIDwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzY1N2IzYjkwOTA3YzA1NDVhOGE2OGNjZmQyY2E5NjhlMTI0MTA5
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctaW52
YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorVmVyaWZ5IGludmFsaWQgOmxhbmco
KSBzZWxlY3RvcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKCkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiOmxhbmcobGFuZygpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
U3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpsYW5nKDpsYW5nKGlkKSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5
bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bGFuZyg6bGFuZyhlbiwgYnIpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
U3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOmxhbmcoPDBfMD4pIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3lu
dGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpsYW5nKDkpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6
IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5n
KDk5KSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhj
ZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg5OTkpIiku
bGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24g
MTIuCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcofSkiKS5sZW5ndGgg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoeykiKS5sZW5ndGggdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoe30iKSkubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpsYW5nKCgpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4
RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IjpsYW5nKCkpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERP
TSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKCgp
IikpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
JyknLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhdKSIpLmxlbmd0aCB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhbKSIpLmxlbmd0aCB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhbXSkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiOmxhbmcoQG1lZGlhIHNjcmVlbiB7fSkiKS5sZW5ndGggdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoQGZvbnQtZmFjZSB7fSkiKS5sZW5ndGggdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOikiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiOmxhbmcoOykiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50
YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiOmxhbmcoLikiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmco
KykiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoLSkiKS5sZW5n
dGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4K
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoPSkiKS5sZW5ndGggdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoJiYpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCisKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5jb2xvciBpcyAicmdi
KDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxp
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWQ3ZjM3M2I2ZDVhZDRlYjBlZGM2NGI0Y2M0ZWM0YWU5ODcxZTllNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1s
CkBAIC0wLDAgKzEsNjggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorKiB7CisgICAgY29sb3I6IHJnYigwLCAwLCAwKTsKK30KKzpsYW5nKCkgeworICAgIGNvbG9y
OiByZ2IoMSwgMiwgMyk7Cit9CisKKzpsYW5nKCkgKiB7CisgICAgY29sb3I6IHJnYig0LCA1LCA2
KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5
Om5vbmUiPgorICAgICAgICA8YT4KKyAgICAgICAgICAgIDxiPgorICAgICAgICAgICAgICAgIDxj
IGlkPSJ0YXJnZXQxIj48L2M+CisgICAgICAgICAgICA8L2I+CisgICAgICAgIDwvYT4KKyAgICA8
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVmVyaWZ5IGludmFsaWQgOmxh
bmcoKSBzZWxlY3RvcnMuJyk7CisKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bGFuZygpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOmxhbmcobGFuZygpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOmxhbmcoaWQpIikubGVuZ3RoJyk7CitzaG91bGRUaHJv
dygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOmxhbmcoZW4sIGJyKSIpLmxlbmd0
aCcpOworCitkZWJ1ZygnJykKKworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpsYW5nKDwwXzA+KSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpsYW5nKDkpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOTkpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOTk5KSIpLmxlbmd0aCcpOworCitkZWJ1Zygn
JykKKworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKH0pIiku
bGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmco
eykiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bGFuZyh7fSIpKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bGFuZygoKSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpsYW5nKCkpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOmxhbmcoKCkiKSkubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoXSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhbKSIpLmxlbmd0aCcpOworc2hvdWxkVGhy
b3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKFtdKSIpLmxlbmd0aCcpOworc2hv
dWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKEBtZWRpYSBzY3JlZW4g
e30pIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
OmxhbmcoQGZvbnQtZmFjZSB7fSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg6KSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDspIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygn
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoLikiKS5sZW5ndGgnKTsKK3Nob3VsZFRo
cm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygrKSIpLmxlbmd0aCcpOworc2hv
dWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKC0pIikubGVuZ3RoJyk7
CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoPSkiKS5sZW5n
dGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygmJiki
KS5sZW5ndGgnKTsKKworZGVidWcoJycpCisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5jb2xvcicsICdy
Z2IoMCwgMCwgMCknKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240729</attachid>
            <date>2014-10-31 01:31:40 -0700</date>
            <delta_ts>2014-10-31 20:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138170-20141031153147.patch</filename>
            <type>text/plain</type>
            <size>29506</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NWUzNWQ1ZWFiZjY1
ZDk0Y2EzZDM2N2Y4ZDFlODc0ZTkzMDgxOC4uMTFkMzIwODdkOWIwMWM1ZTM0ZWJiY2FjODc4NDZm
MWUyMmMwNjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEwLTMwICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRp
YWwgcGFyc2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3Rv
cnMgTGV2ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBpbml0aWFsIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBvZiA6bGFuZyBwc2V1ZG8gY2xh
c3MgaW4gU2VsZWN0b3JzIExldmVsIDQsCisgICAgICAgIGFzIHNwZWNpZmllZCBpbiBbMV0uCisK
KyAgICAgICAgSXQgcGFyc2VzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZyBhcmd1bWVu
dHMuIEN1cnJlbnRseSwgaXQgdGhyb3dzIGVycm9yCisgICAgICAgIG9uIGFyZ3VtZW50cyB3aXRo
ICIqIiAoZS5nLiA6bGFuZyh6aCwgKi1oYW50KSkuCisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
dGVzdCBmaWxlIGZhc3Qvc2VsZWN0b3JzL2xhbmctaW52YWxpZC5odG1sIGFsb25nIHNpZGUgdGhl
IAorICAgICAgICBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sLgorCisgICAgICAgIFsx
XSBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyN0aGUtbGFuZy1wc2V1ZG8KKwor
ICAgICAgICBUZXN0OiBmYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW4pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnNldEFyZ3VtZW50TGlzdCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZh
bHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphcHBlbmRBcmd1bWVudExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0QXJndW1lbnRM
aXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudExpc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6CisgICAg
ICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKwogMjAxNC0xMC0yOSAgSHVuc2Vv
cCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVk
R3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
bgppbmRleCAzMDhhMDFhYzUyM2I2M2U1Y2YzYWYyN2U1MWJjYjdiMjJhYjQyYzhjLi40Y2JhMGJi
MjE3MTM5YjMyYTJkOTY4NTUzZDc1MDBkNjZlYmJmNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkuaW4KQEAgLTYyLDYgKzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQ1NTVG9rZW5B
U3RyaW5nKGludCB5eXR5cGUpCiAgICAgY2FzZSBOVEhDSElMREZVTkNUSU9OOgogICAgIGNhc2Ug
TlRIQ0hJTERTRUxFQ1RPUlNFUEFSQVRPUjoKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKKyAgICBjYXNlIExBTkdGVU5DVElPTjoKICAgICBjYXNlIE1BVENIRVNGVU5DVElPTjoKICNl
bmRpZgogICAgIGNhc2UgVU5JQ09ERVJBTkdFOgpAQCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBi
b29sIHNlbGVjdG9yTGlzdERvZXNOb3RNYXRjaEFueVBzZXVkb0VsZW1lbnQoY29uc3QgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0CiAldG9rZW4gPHN0cmluZz4gTlRIQ0hJTERGVU5DVElPTgogCiAjaWYg
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CisldG9rZW4gPHN0cmluZz4gTEFOR0ZVTkNUSU9O
CiAldG9rZW4gPHN0cmluZz4gTUFUQ0hFU0ZVTkNUSU9OCiAjZW5kaWYKIApAQCAtMzI4LDYgKzMz
MCwxMiBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVt
ZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdAogJXR5cGUgPHZhbHVlTGlzdD4gY2FsY19m
dW5jX2V4cHIgY2FsY19mdW5jX2V4cHJfbGlzdCBjYWxjX2Z1bmNfcGFyZW5fZXhwciBleHByIGtl
eV9saXN0IG1heWJlX21lZGlhX3ZhbHVlIHZhbGlkX2NhbGNfZnVuY19leHByIHZhbGlkX2V4cHIK
ICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9IGNhbGNfZnVuY19leHByIGNhbGNfZnVuY19leHBy
X2xpc3QgY2FsY19mdW5jX3BhcmVuX2V4cHIgZXhwciBrZXlfbGlzdCBtYXliZV9tZWRpYV92YWx1
ZSB2YWxpZF9jYWxjX2Z1bmNfZXhwciB2YWxpZF9leHByCiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQKKyV1bmlvbiB7IFZlY3RvcjxDU1NQYXJzZXJTdHJpbmc+KiBzdHJpbmdMaXN0
OyB9CisldHlwZSA8c3RyaW5nTGlzdD4gY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzCislZGVz
dHJ1Y3RvciB7IGRlbGV0ZSAkJDsgfSBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMKKyNlbmRp
ZgorCiAldHlwZSA8c3RyaW5nPiBtaW5fb3JfbWF4CiAKICV0eXBlIDxzdHJpbmc+IGVsZW1lbnRf
bmFtZQpAQCAtMTA4Miw2ICsxMDkwLDI0IEBAIG5lc3RlZF9zZWxlY3Rvcl9saXN0OgogICAgIH0K
ICAgICA7CiAKKyNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKK2NvbW1hX3NlcGFyYXRl
ZF9pZGVudGlmaWVyczoKKyAgICBJREVOVCAlcHJlYyBVTklNUE9SVEFOVF9UT0sgeworICAgICAg
ICAkJCA9IG5ldyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKKyAgICAgICAgJCQtPmFwcGVuZCgk
MSk7CisgICAgfQorICAgIHwgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzIG1heWJlX3NwYWNl
ICcsJyBtYXliZV9zcGFjZSBJREVOVCAlcHJlYyBVTklNUE9SVEFOVF9UT0sgeworICAgICAgICAk
JCA9ICQxOworICAgICAgICBpZiAoJCQpCisgICAgICAgICAgICAkMS0+YXBwZW5kKCQ1KTsKKyAg
ICB9CisgICAgfCBjb21tYV9zZXBhcmF0ZWRfaWRlbnRpZmllcnMgZXJyb3IgeworICAgICAgICAk
JCA9IG51bGxwdHI7CisgICAgICAgIGRlbGV0ZSAkMTsKKyAgICB9CisgICAgOworI2VuZGlmCisK
IGNvbXBsZXhfc2VsZWN0b3Jfd2l0aF90cmFpbGluZ193aGl0ZXNwYWNlOgogICAgIGNvbXBsZXhf
c2VsZWN0b3IgV0hJVEVTUEFDRTsKIApAQCAtMTMzMCw2ICsxMzU2LDE4IEBAIHBzZXVkbzoKICAg
ICB9CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQKKyAgICB8ICc6JyBMQU5HRlVO
Q1RJT04gbWF5YmVfc3BhY2UgY29tbWFfc2VwYXJhdGVkX2lkZW50aWZpZXJzIG1heWJlX3NwYWNl
ICcpJyB7CisgICAgICAgICQkID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKCQ0KSB7CisgICAgICAg
ICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7
CisgICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7
CisgICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50TGlzdCgqc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxDU1NQYXJzZXJTdHJpbmc+PigkNCkpOworICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1
ZG9DbGFzc1ZhbHVlKCQyKTsKKyAgICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlw
ZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhbmcpCisgICAgICAgICAgICAgICQkID0g
c2VsZWN0b3IucmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgfCAnOicgTUFUQ0hF
U0ZVTkNUSU9OIG1heWJlX3NwYWNlIG5lc3RlZF9zZWxlY3Rvcl9saXN0IG1heWJlX3NwYWNlICcp
JyB7CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYgKCQ0KSB7CkBAIC0xODMwLDcg
KzE4NjgsNyBAQCBpbnZhbGlkX3BhcmVudGhlc2VzX2Jsb2NrOiBvcGVuaW5nX3BhcmVudGhlc2lz
IGVycm9yX3JlY292ZXJ5IGNsb3NpbmdfcGFyZW50aGVzaQogb3BlbmluZ19wYXJlbnRoZXNpczoK
ICAgICAnKCcgfCBGVU5DVElPTiB8IENBTENGVU5DVElPTiB8IE1JTkZVTkNUSU9OIHwgTUFYRlVO
Q1RJT04gfCBBTllGVU5DVElPTiB8IE5PVEZVTkNUSU9OCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0Ci0gICAgfCBNQVRDSEVTRlVOQ1RJT04KKyAgICB8IExBTkdGVU5DVElPTiB8IE1B
VENIRVNGVU5DVElPTgogI2VuZGlmCiAjaWYgRU5BQkxFX1ZJREVPX1RSQUNLCiAgICAgfCBDVUVG
VU5DVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxOTYzZGE0YWNmMzM5OGM3ZDYy
N2ZjYTdkMmQyODQzNGIzMDk4OTE5Li43MzZjZDRlOTAzYTgyNmUwOWJmNDJhYWM0YTFjMmY4YTc1
MTNjZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTA2NzAsNiArMTA2NzAsMTIg
QEAgaW5saW5lIGJvb2wgQ1NTUGFyc2VyOjpkZXRlY3RGdW5jdGlvblR5cGVUb2tlbihpbnQgbGVu
Z3RoKQogICAgICAgICAgICAgbV90b2tlbiA9IENBTENGVU5DVElPTjsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQor
ICAgICAgICBpZiAoaXNFcXVhbFRvQ1NTSWRlbnRpZmllcihuYW1lLCAibGFuZyIpKSB7CisgICAg
ICAgICAgICBtX3Rva2VuID0gTEFOR0ZVTkNUSU9OOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUo
Q1NTX1NFTEVDVE9SU19MRVZFTDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3Bw
CmluZGV4IGMwMzY2NmY4NmU1ZTAxYjc4ODgwMWZjZDE3MzkzZWZkNmE1NTRhZGIuLjcxN2M5Njdi
NDgyZjRhMDBiMDczZmE3NmRlOTVjMWU1YjM4MjUxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCkBAIC0yNTgsNiArMjU4LDE2IEBAIHZvaWQgQ1NTUGFyc2VyU2VsZWN0
b3I6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlCiAgICAgbV9zZWxlY3Rvci0+c2V0U2VsZWN0b3JMaXN0KFdURjo6bW92ZShzZWxlY3Rvckxp
c3QpKTsKIH0KIAordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0QXJndW1lbnRMaXN0KFZlY3Rv
cjxDU1NQYXJzZXJTdHJpbmc+JiBzdHJpbmdWZWN0b3IpCit7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghc3RyaW5nVmVjdG9yLmlzRW1wdHkoKSwgIk5vIENTUyBTZWxlY3RvciB0YWtlcyBhbiBl
bXB0eSBhcmd1bWVudCBsaXN0LiIpOworICAgIGF1dG8gYXJndW1lbnRMaXN0ID0gc3RkOjptYWtl
X3VuaXF1ZTxWZWN0b3I8QXRvbWljU3RyaW5nPj4oKTsKKyAgICBhcmd1bWVudExpc3QtPnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoc3RyaW5nVmVjdG9yLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBB
dG9taWNTdHJpbmcmIGFyZ3VtZW50IDogc3RyaW5nVmVjdG9yKQorICAgICAgICBhcmd1bWVudExp
c3QtPmFwcGVuZChhcmd1bWVudCk7CisgICAgbV9zZWxlY3Rvci0+c2V0QXJndW1lbnRMaXN0KFdU
Rjo6bW92ZShhcmd1bWVudExpc3QpKTsKK30KKwogdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0
UHNldWRvQ2xhc3NWYWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5n
KQogewogICAgIEFTU0VSVChtX3NlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMzIyMzkyODgw
ZTU0ZjAxYjM2NWNhZTQ3NmQ4NTgwMDc3ZTQ5ZjI3ZC4uNDQyZTVkMDNjYzgxYzkzNjM1YzlhN2Zm
MDIyYmY3MTMyOTIxYzQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
clZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAt
MjAxLDYgKzIwMSw5IEBAIHB1YmxpYzoKIAogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9y
KFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0
b3IpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICB2b2lkIHNldEFyZ3Vt
ZW50TGlzdChWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPiYgc3RyaW5nVmVjdG9yKTsKKyNlbmRpZgog
CiAgICAgdm9pZCBzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNl
dWRvQ2xhc3NTdHJpbmcpOwogICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRv
Q2xhc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDA5ZWEzNDZmODkzNDBjNGMwZjJm
YjdkZTU1NDk1M2ZmNzFiNGE4MDQuLjg3M2M5ZDM1NDQwMmYyNTA1YjA2MThkMzUyNjNiNWNjODQ0
YjYzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjUzLDYgKzI1MywxOCBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChTdHJpbmdCdWlsZGVy
JiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yKgogCiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9S
U19MRVZFTDQpCitzdGF0aWMgdm9pZCBhcHBlbmRBcmd1bWVudExpc3QoU3RyaW5nQnVpbGRlciYg
c3RyLCBjb25zdCBWZWN0b3I8QXRvbWljU3RyaW5nPiYgYXJndW1lbnRMaXN0KQoreworICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbGFzdEFyZ3VtZW50ID0gYXJndW1lbnRMaXN0Lmxhc3QoKTsKKyAg
ICBmb3IgKGNvbnN0IEF0b21pY1N0cmluZyBhcmd1bWVudCA6IGFyZ3VtZW50TGlzdCkgeworICAg
ICAgICBzdHIuYXBwZW5kKGFyZ3VtZW50KTsKKyAgICAgICAgaWYgKGFyZ3VtZW50ICE9IGxhc3RB
cmd1bWVudCkKKyAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgIH0KK30K
KyNlbmRpZgorCiBzdGF0aWMgdm9pZCBhcHBlbmRTZWxlY3Rvckxpc3QoU3RyaW5nQnVpbGRlciYg
c3RyLCBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCkKIHsKICAgICBjb25zdCBD
U1NTZWxlY3RvciogZmlyc3RTdWJTZWxlY3RvciA9IHNlbGVjdG9yTGlzdC0+Zmlyc3QoKTsKQEAg
LTM5NSw3ICs0MDcsMTMgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3Qg
U3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhbmc6CiAgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpsYW5nKCIpOworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xF
VkVMNCkKKyAgICAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNzLT5hcmd1bWVudExp
c3QoKSAmJiAhY3MtPmFyZ3VtZW50TGlzdCgpLmlzRW1wdHkoKSwgIkFuIGVtcHR5IDpsYW5nKCkg
aXMgaW52YWxpZCBhbmQgc2hvdWxkIG5ldmVyIGJlIGdlbmVyYXRlZCBieSB0aGUgcGFyc2VyLiIp
OworICAgICAgICAgICAgICAgIGFwcGVuZEFyZ3VtZW50TGlzdChzdHIsICpjcy0+YXJndW1lbnRM
aXN0KCkpOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyNlbHNlCiAgICAgICAg
ICAgICAgICAgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CisjZW5kaWYK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzTGFzdENoaWxkOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
bGFzdC1jaGlsZCIpOwpAQCAtNjA2LDYgKzYyNCwxNCBAQCB2b2lkIENTU1NlbGVjdG9yOjpzZXRB
cmd1bWVudChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogICAgIG1fZGF0YS5tX3JhcmVEYXRh
LT5tX2FyZ3VtZW50ID0gdmFsdWU7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SU19MRVZF
TDQpCit2b2lkIENTU1NlbGVjdG9yOjpzZXRBcmd1bWVudExpc3Qoc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxBdG9taWNTdHJpbmc+PiBhcmd1bWVudExpc3QpCit7CisgICAgY3JlYXRlUmFyZURhdGEo
KTsKKyAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudExpc3QgPSBXVEY6Om1vdmUoYXJn
dW1lbnRMaXN0KTsKK30KKyNlbmRpZgorCiB2b2lkIENTU1NlbGVjdG9yOjpzZXRTZWxlY3Rvckxp
c3Qoc3RkOjp1bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4gc2VsZWN0b3JMaXN0KQogewogICAg
IGNyZWF0ZVJhcmVEYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDkzYWQ1ZTQ5
NmNjZmMzMjM4Y2NlOTZhNTE5N2YyNDA5ODcyNmNkY2MuLmFjMTA4Y2I4MzZiNmRmODE3ZDNlN2Vi
YzU3NzJhZDFiYjVmYzcxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0yMDcsMTEg
KzIwNywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJp
YnV0ZUNhbm9uaWNhbExvY2FsTmFtZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGFyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0YSA/IG1fZGF0YS5tX3Jh
cmVEYXRhLT5tX2FyZ3VtZW50IDogbnVsbEF0b207IH0KKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9S
U19MRVZFTDQpCisgICAgICAgIGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+KiBhcmd1bWVudExp
c3QoKSBjb25zdCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1f
YXJndW1lbnRMaXN0LmdldCgpIDogbnVsbHB0cjsgfQorI2VuZGlmCiAgICAgICAgIGNvbnN0IENT
U1NlbGVjdG9yTGlzdCogc2VsZWN0b3JMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0
YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX3NlbGVjdG9yTGlzdC5nZXQoKSA6IG51bGxwdHI7IH0K
IAogICAgICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICB2
b2lkIHNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCBpc0Nhc2VJbnNlbnNp
dGl2ZSk7CiAgICAgICAgIHZvaWQgc2V0QXJndW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJik7Cisj
aWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICB2b2lkIHNldEFyZ3VtZW50
TGlzdChzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEF0b21pY1N0cmluZz4+KTsKKyNlbmRpZgogICAg
ICAgICB2b2lkIHNldFNlbGVjdG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0
Pik7CiAKICAgICAgICAgYm9vbCBwYXJzZU50aCgpIGNvbnN0OwpAQCAtMzA5LDcgKzMxNSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBpbnQgbV9iOyAvLyBVc2VkIGZvciA6
bnRoLSoKICAgICAgICAgICAgIFF1YWxpZmllZE5hbWUgbV9hdHRyaWJ1dGU7IC8vIHVzZWQgZm9y
IGF0dHJpYnV0ZSBzZWxlY3RvcgogICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1fYXR0cmlidXRl
Q2Fub25pY2FsTG9jYWxOYW1lOwotICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1fYXJndW1lbnQ7
IC8vIFVzZWQgZm9yIDpjb250YWlucywgOmxhbmcgYW5kIDpudGgtKgorICAgICAgICAgICAgQXRv
bWljU3RyaW5nIG1fYXJndW1lbnQ7IC8vIFVzZWQgZm9yIDpjb250YWlucyBhbmQgOm50aC0qCisj
aWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxBdG9taWNTdHJpbmc+PiBtX2FyZ3VtZW50TGlzdDsKKyNlbmRpZgogICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1NlbGVjdG9yTGlzdD4gbV9zZWxlY3Rvckxpc3Q7IC8v
IFVzZWQgZm9yIDotd2Via2l0LWFueSBhbmQgOm5vdAogICAgICAgICAKICAgICAgICAgcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYzM1ZGQ2ZDkxYWYz
ZjgxNjVjNjRkNTVhZTlmNWQ4ZTlhNWMyOGJkOS4uNDFjZjc1MDYxYzA3YzkyZjg1NjRjZjdkZWVh
Y2Y5NjdkOGVmOTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hl
Y2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAg
LTg1OSw3ICs4NTksMTIgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IENo
ZWNraW5nQ29udGV4dFdpdGhTdGF0dXMmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAg
ICAgeworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JTX0xFVkVMNCkKKyAgICAgICAgICAgICAgICBB
U1NFUlQoc2VsZWN0b3ItPmFyZ3VtZW50TGlzdCgpICYmICFzZWxlY3Rvci0+YXJndW1lbnRMaXN0
KCktPmlzRW1wdHkoKSk7CisgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1
bWVudCA9IHNlbGVjdG9yLT5hcmd1bWVudExpc3QoKS0+Zmlyc3QoKTsKKyNlbHNlCiAgICAgICAg
ICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCA9IHNlbGVjdG9yLT5hcmd1bWVu
dCgpOworI2VuZGlmICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChhcmd1bWVu
dC5pc051bGwoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgICAgIHJldHVybiBtYXRjaGVzTGFuZ1BzZXVkb0NsYXNzKGVsZW1lbnQsIGFyZ3VtZW50Lmlt
cGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXgg
NjhmMjFhMzYyNDc4ZGFlN2E3N2ZlMTg5ZThlZjRhZTU5MmEwY2Q1NC4uMWUzM2E5NzkyZWI5NWQx
MGRjNDc2N2JmZDJmNGI3ZmVhMTlkMWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmNwcApAQCAtNzI3LDcgKzcyNywxMiBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0
aW9uVHlwZSBhZGRQc2V1ZG9DbGFzc1R5cGUoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBT
ZWxlYwogCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICB7
CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUlNfTEVWRUw0KQorICAgICAgICAgICAgQVNTRVJUKHNl
bGVjdG9yLmFyZ3VtZW50TGlzdCgpICYmICFzZWxlY3Rvci5hcmd1bWVudExpc3QoKS0+aXNFbXB0
eSgpKTsKKyAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQgPSBzZWxlY3Rv
ci5hcmd1bWVudExpc3QoKS0+Zmlyc3QoKTsKKyNlbHNlCiAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGFyZ3VtZW50ID0gc2VsZWN0b3IuYXJndW1lbnQoKTsKKyNlbmRpZgogICAgICAg
ICAgICAgaWYgKGFyZ3VtZW50LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gRnVu
Y3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTA3MTBhNzQ3ZDAzN2Iw
MWZlZTcyNWFjOTViMjBiMzU5ZDkzNjFhOS4uNTJmMDlmYTQzNGM1ZmZjMzEzYThhYzZjZmU0NjRm
ZmI0MWEzZGZiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTMwICBEaGkgQXVycmFo
bWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgcGFy
c2luZyBmdW5jdGlvbmFsaXR5IG9mIDpsYW5nIHBzZXVkbyBjbGFzcyBpbiBTZWxlY3RvcnMgTGV2
ZWwgNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0ZXN0cyBmb3IgY29tbWEtc2VwYXJhdGVkIGxpc3QgYXJndW1lbnRzIGZvciA6bGFuZworCisg
ICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OiBVcGRhdGVk
LgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWw6IFVwZGF0ZWQuCisg
ICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0bWw6IEFkZGVkLgorCiAy
MDE0LTEwLTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFNraXAgY29tcG9zaXRpbmcvcmVnaW9ucy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ct
Ym9yZGVyLXBhZGRpbmctZm9yLXZpZGVvLmh0bWwgd2hpY2ggCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKaW5kZXggMTM3ZWJiN2Rj
NTdiNGZmZDgwMzhmOGQ3OWU0M2VhOTFmYzA5M2MxNy4uZDk5Yzg2NWExNTE4NWE5MTY5YTYzZTI3
NTU0YzNiYmE4ZjgwZmQxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNl
bGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1z
ZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dApAQCAtNDgsNiArNDgsMTMgQEAgUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6dGFyZ2V0IHsgfScpIGlzICc6dGFyZ2V0IHsgfScKIFBBU1MgcGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOnZpc2l0ZWQgeyB9JykgaXMgJzp2aXNpdGVkIHsgfScKIAog
UEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhKSB7IH0nKSBpcyAnOmxhbmcoYSkg
eyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhhLCBiLCBjKSB7IH0nKSBp
cyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZyhmciwgZGUsIGVuLCBpZCkgeyB9JykgaXMgJzpsYW5nKGZyLCBkZSwgZW4sIGlkKSB7IH0nCitQ
QVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGZyLCBmci1jYSwgZnItYmUpIHsgfScp
IGlzICc6bGFuZyhmciwgZnItY2EsIGZyLWJlKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKGRlLURFLCBkZS1ERS0xOTk2LCBkZS1MYXRuLURFLCBkZS1MYXRmLURFLCBk
ZS1MYXRuLURFLTE5OTYpIHsgfScpIGlzICc6bGFuZyhkZS1ERSwgZGUtREUtMTk5NiwgZGUtTGF0
bi1ERSwgZGUtTGF0Zi1ERSwgZGUtTGF0bi1ERS0xOTk2KSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKGRlLUNILCBpdC1DSCwgZnItQ0gsIHJtLUNIKSB7IH0nKSBpcyAn
OmxhbmcoZGUtQ0gsIGl0LUNILCBmci1DSCwgcm0tQ0gpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoZGUtREUsIGRlLURFLTE5OTYsIGRlLUxhdG4tREUsIGRlLUxhdGYt
REUsIGRlLUxhdG4tREUtMTk5NiwgZGUtQ0gsIGl0LUNILCBmci1DSCwgcm0tQ0gpIHsgfScpIGlz
ICc6bGFuZyhkZS1ERSwgZGUtREUtMTk5NiwgZGUtTGF0bi1ERSwgZGUtTGF0Zi1ERSwgZGUtTGF0
bi1ERS0xOTk2LCBkZS1DSCwgaXQtQ0gsIGZyLUNILCBybS1DSCkgeyB9JworCiBQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpub3QoYSkgeyB9JykgaXMgJzpub3QoYSkgeyB9JwogUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6LXdlYmtpdC1hbnkoYSxiLHApIHsgfScpIGlzICc6LXdl
YmtpdC1hbnkoYSxiLHApIHsgfScKIApAQCAtMjQ1LDYgKzI1Miw0MCBAQCBQQVNTIHBhcnNlVGhl
blNlcmlhbGl6ZVJ1bGUoJzpub3QoLmNsYXNzMTpob3ZlciAgICkgeyB9JykgaXMgJzpub3QoLmNs
YXNzMTpob3ZlcgogUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bm90KGEuY2xhc3MxLmNs
YXNzMi5jbGFzczM6aG92ZXIgICApIHsgfScpIGlzICc6bm90KGEuY2xhc3MxLmNsYXNzMi5jbGFz
czM6aG92ZXIpIHsgfScKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOm5vdCg6bWF0Y2hl
cyhzaW5nbGUgICAgKSw6bWF0Y2hlcyhhLGIgICAgLHApLDptYXRjaGVzKCNhbGljZSwgICAgICAg
ICAgICAgICAgICAgI2JvYiwjY2hyaXMpKSB7IH0nKSBpcyAnOm5vdCg6bWF0Y2hlcyhzaW5nbGUp
LCA6bWF0Y2hlcyhhLCBiLCBwKSwgOm1hdGNoZXMoI2FsaWNlLCAjYm9iLCAjY2hyaXMpKSB7IH0n
CiAKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSAgICApIHsgfScpIGlzICc6
bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCAgICBhKSB7
IH0nKSBpcyAnOmxhbmcoYSkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZyhhLCAgICBiLCAgICBjKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSwgYiAsYykgeyB9JykgaXMgJzpsYW5nKGEs
IGIsIGMpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoICBhICAsICBi
ICAsICBjICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKCAgICBhICAsYixjKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykg
eyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSAgLGIgICxjKSB7
IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyggICAgYSAgLGIgICxjICApIHsgfScpIGlzICc6bGFuZyhhLCBiLCBjKSB7IH0nCitQ
QVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsYiAgICAsYykgeyB9JykgaXMgJzps
YW5nKGEsIGIsIGMpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoYSxi
LCAgICBjKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZyhhLGIsICAgIGMgICAgKSB7IH0nKSBpcyAnOmxhbmcoYSwgYiwgYykg
eyB9JworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCkgeyB9JykgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDEyLCBiLCBjKSB7IH0nKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVF
bGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnOmxhbmcoYSwgMTIsIGMpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hl
ZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6
bGFuZyhhLCBiLCAxMikgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxl
c1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsIDEy
LCAxMikgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NU
ZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDEyLCBiLCAxMikgeyB9
JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQ
QVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDEyLCAxMiwgMTIpIHsgfScpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhsYW5nKCkpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVs
ZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxp
emVSdWxlKCc6bGFuZyg6bGFuZygpKSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0
LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoOmxhbmcoaWQpKSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVz
WzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoOmxhbmco
ZW4sIGJyKSkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5j
c3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDwwXzA+KSB7IH0n
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BB
U1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoOTkpIHsgfScpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHls
ZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZyg4OCkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5j
c3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5n
KDAwKSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1Rl
eHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcofSkgeyB9JykgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1swXS5jc3NUZXh0JykuCitQQVNTIHBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKHspIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQu
c2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyh7fSkgeyB9JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3N0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlc1sw
XS5jc3NUZXh0JykuCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKF0pIHsgfScp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhbKSB7IH0nKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVF
bGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnOmxhbmcoW10pIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3Nz
UnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhA
bWVkaWEgc2NyZWVuIHt9KSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1
bGVzWzBdLmNzc1RleHQnKS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9y
LXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwK
aW5kZXggZWMzY2IwODcwOTE4ZTg2YjY5ZWE3NTUxMjEwOGNhYTBhYzM1MzJkYS4uMTcxNzM0ODNk
NDFkN2RkMTI1MjFjYzViMzVlM2Y3N2FjMTllYTIwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sCkBAIC04MSw2ICs4MSwxNSBAQCB0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoIjp2aXNpdGVkIik7CiBkZWJ1ZygnJyk7CiAKIHRlc3RTZWxlY3RvclJvdW5kVHJp
cCgiOmxhbmcoYSkiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoYSwgYiwgYykiKTsK
K3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiOmxhbmcoZnIsIGRlLCBlbiwgaWQpIik7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGZyLCBmci1jYSwgZnItYmUpIik7Cit0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoIjpsYW5nKGRlLURFLCBkZS1ERS0xOTk2LCBkZS1MYXRuLURFLCBkZS1MYXRmLURF
LCBkZS1MYXRuLURFLTE5OTYpIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoIjpsYW5nKGRlLUNI
LCBpdC1DSCwgZnItQ0gsIHJtLUNIKSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCI6bGFuZyhk
ZS1ERSwgZGUtREUtMTk5NiwgZGUtTGF0bi1ERSwgZGUtTGF0Zi1ERSwgZGUtTGF0bi1ERS0xOTk2
LCBkZS1DSCwgaXQtQ0gsIGZyLUNILCBybS1DSCkiKTsKKworZGVidWcoJycpOworCiB0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoIjpub3QoYSkiKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgiOi13ZWJr
aXQtYW55KGEsYixwKSIpOwogCkBAIC0zMTYsNiArMzI1LDQzIEBAIHNob3VsZEJlKCJwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCc6bm90KDptYXRjaGVzKHNpbmdsZSAgICApLDptYXRjaGVzKGEsYiAg
ICAscCksCiAKIGRlYnVnKCcnKTsKIAorc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
JzpsYW5nKGEgICAgKSB7IH0nKSIsICInOmxhbmcoYSkgeyB9JyIpOworc2hvdWxkQmUoInBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCAgICBhKSB7IH0nKSIsICInOmxhbmcoYSkgeyB9JyIp
Oworc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsICAgIGIsICAgIGMp
IHsgfScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoICAgIGEsIGIgLGMpIHsgfScpIiwgIic6bGFuZyhhLCBiLCBjKSB7
IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoICBhICAsICBi
ICAsICBjICApIHsgfScpIiwgIic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoICAgIGEgICxiLGMpIHsgfScpIiwgIic6bGFuZyhh
LCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
ICAgIGEgICxiICAsYykgeyB9JykiLCAiJzpsYW5nKGEsIGIsIGMpIHsgfSciKTsKK3Nob3VsZEJl
KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyggICAgYSAgLGIgICxjICApIHsgfScpIiwg
Iic6bGFuZyhhLCBiLCBjKSB7IH0nIik7CitzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoYSxiICAgICxjKSB7IH0nKSIsICInOmxhbmcoYSwgYiwgYykgeyB9JyIpOworc2hv
dWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGEsYiwgICAgYykgeyB9JykiLCAi
JzpsYW5nKGEsIGIsIGMpIHsgfSciKTsKK3Nob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCc6bGFuZyhhLGIsICAgIGMgICAgKSB7IH0nKSIsICInOmxhbmcoYSwgYiwgYykgeyB9JyIpOwor
CitkZWJ1ZygnJyk7CisKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZygpIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmco
MTIsIGIsIGMpIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgn
OmxhbmcoYSwgMTIsIGMpIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoYSwgYiwgMTIpIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2Vy
aWFsaXplUnVsZSgnOmxhbmcoYSwgMTIsIDEyKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNl
VGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDEyLCBiLCAxMikgeyB9JykiKTsKK3Nob3VsZFRocm93
KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygxMiwgMTIsIDEyKSB7IH0nKSIpOworc2hv
dWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKGxhbmcoKSkgeyB9JykiKTsK
K3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg6bGFuZygpKSB7IH0n
KSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKDpsYW5nKGlk
KSkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyg6
bGFuZyhlbiwgYnIpKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJzpsYW5nKDwwXzA+KSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKDk5KSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKDg4KSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKDAwKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKH0pIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoeykgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZyh7fSkgeyB9JykiKTsKK3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZyhdKSB7IH0nKSIpOworc2hvdWxkVGhyb3coInBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJzpsYW5nKFspIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoW10pIHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoQG1lZGlhIHNjcmVlbiB7fSkgeyB9JykiKTsKKwogPC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNjU3YjNiOTA5MDdjMDU0NWE4YTY4Y2NmZDJjYTk2OGUxMjQx
MDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1p
bnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitWZXJpZnkgaW52YWxpZCA6bGFu
ZygpIHNlbGVjdG9ycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoKSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZyhsYW5nKCkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOmxhbmcoOmxhbmcoaWQpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
U3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpsYW5nKDpsYW5nKGVuLCBicikiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KKworUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bGFuZyg8MF8wPikiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBT
eW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiOmxhbmcoOSkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxh
bmcoOTkpIikubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBF
eGNlcHRpb24gMTIuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDk5OSki
KS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlv
biAxMi4KKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyh9KSIpLmxlbmd0
aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyh7KSIpLmxlbmd0aCB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyh7fSIpKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcpJy4KK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiOmxhbmcoKCkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50
YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiOmxhbmcoKSkiKS5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmco
KCkiKSkubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tl
biAnKScuCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKF0pIikubGVuZ3Ro
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKFspIikubGVuZ3RoIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKFtdKSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZyhAbWVkaWEgc2NyZWVuIHt9KSIpLmxlbmd0aCB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhAZm9udC1mYWNlIHt9KSIpLmxlbmd0aCB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg6KSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCI6bGFuZyg7KSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5
bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bGFuZyguKSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9y
OiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFu
ZygrKSIpLmxlbmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhj
ZXB0aW9uIDEyLgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygtKSIpLmxl
bmd0aCB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEy
LgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg9KSIpLmxlbmd0aCB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygmJikiKS5sZW5ndGggdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KKworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yIGlzICJy
Z2IoMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZh
bGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWludmFsaWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZDdmMzczYjZkNWFkNGViMGVkYzY0YjRjYzRlYzRhZTk4NzFlOWU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1pbnZhbGlkLmh0
bWwKQEAgLTAsMCArMSw2OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CisqIHsKKyAgICBjb2xvcjogcmdiKDAsIDAsIDApOworfQorOmxhbmcoKSB7CisgICAgY29s
b3I6IHJnYigxLCAyLCAzKTsKK30KKworOmxhbmcoKSAqIHsKKyAgICBjb2xvcjogcmdiKDQsIDUs
IDYpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CisgICAgICAgIDxhPgorICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAg
PGMgaWQ9InRhcmdldDEiPjwvYz4KKyAgICAgICAgICAgIDwvYj4KKyAgICAgICAgPC9hPgorICAg
IDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdWZXJpZnkgaW52YWxpZCA6
bGFuZygpIHNlbGVjdG9ycy4nKTsKKworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpsYW5nKCkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bGFuZyhsYW5nKCkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg6bGFuZyhpZCkiKS5sZW5ndGgnKTsKK3Nob3VsZFRo
cm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg6bGFuZyhlbiwgYnIpIikubGVu
Z3RoJyk7CisKK2RlYnVnKCcnKQorCitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiOmxhbmcoPDBfMD4pIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOmxhbmcoOSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg5OSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg5OTkpIikubGVuZ3RoJyk7CisKK2RlYnVn
KCcnKQorCitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcofSki
KS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFu
Zyh7KSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IjpsYW5nKHt9IikpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpsYW5nKCgpIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiOmxhbmcoKSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6bGFuZygoKSIpKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyhdKSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3co
J2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKFspIikubGVuZ3RoJyk7CitzaG91bGRU
aHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoW10pIikubGVuZ3RoJyk7Citz
aG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoQG1lZGlhIHNjcmVl
biB7fSkiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6bGFuZyhAZm9udC1mYWNlIHt9KSIpLmxlbmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKDopIikubGVuZ3RoJyk7CitzaG91bGRUaHJvdygnZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoOykiKS5sZW5ndGgnKTsKK3Nob3VsZFRocm93
KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyguKSIpLmxlbmd0aCcpOworc2hvdWxk
VGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKCspIikubGVuZ3RoJyk7Citz
aG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoLSkiKS5sZW5ndGgn
KTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZyg9KSIpLmxl
bmd0aCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKCYm
KSIpLmxlbmd0aCcpOworCitkZWJ1ZygnJykKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxIikpLmNvbG9yJywg
J3JnYigwLCAwLCAwKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>