<?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>49240</bug_id>
          
          <creation_ts>2010-11-08 21:59:30 -0800</creation_ts>
          <short_desc>Implement formaction, formenctype, formmethod and formtarget attributes for input and button tags</short_desc>
          <delta_ts>2010-11-15 13:38:38 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HTML5</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dai Mikurube">dmikurube</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>webmaster</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306613</commentid>
    <comment_count>0</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-08 21:59:30 -0800</bug_when>
    <thetext>Implement 4 formaction, formenctype, formmethod and formtarget attributes for &lt;input&gt; tag whose type=submit.

See HTML5 4.10.19.6 Form submission :
http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#form-submission-0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306685</commentid>
    <comment_count>1</comment_count>
      <attachid>73354</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-09 03:30:43 -0800</bug_when>
    <thetext>Created attachment 73354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306764</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-09 07:02:06 -0800</bug_when>
    <thetext>Add Dimitri and Darin who are familiar with form submission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306834</commentid>
    <comment_count>3</comment_count>
      <attachid>73354</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-09 09:39:21 -0800</bug_when>
    <thetext>Comment on attachment 73354
Patch

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

Just  a few comments.

&gt; LayoutTests/fast/forms/formtarget-attribute.html:8
&gt; +                    layoutTestController.waitUntilDone();

This definitely should be a dumpAsText test.

&gt; WebCore/html/HTMLFormElement.cpp:319
&gt; +    if (event &amp;&amp; event-&gt;target() &amp;&amp; event-&gt;target()-&gt;toNode())
&gt; +        button = static_cast&lt;HTMLFormControlElement*&gt;(event-&gt;target()-&gt;toNode());

This seems like a different method from obtaining the button from above (see firstSuccessfulSubmitButton logic). What&apos;s the difference?

&gt; WebCore/html/HTMLFormElement.cpp:330
&gt; +    if (button) {
&gt; +        String attribute;
&gt; +        if (!(attribute = button-&gt;formAction()).isNull())
&gt; +            copiedAttributes.parseAction(attribute);
&gt; +        if (!(attribute = button-&gt;formEnctype()).isNull())
&gt; +            copiedAttributes.parseEncodingType(attribute);
&gt; +        if (!(attribute = button-&gt;formMethod()).isNull())
&gt; +            copiedAttributes.parseMethodType(attribute);
&gt; +        if (!(attribute = button-&gt;formTarget()).isNull())
&gt; +            copiedAttributes.setTarget(attribute);
&gt; +    }

This whole thing looks like it should just live in FormSubmission::create.

&gt; WebCore/loader/FormSubmission.cpp:121
&gt; +void FormSubmission::Attributes::copyFrom(const Attributes&amp; other)
&gt; +{
&gt; +    m_method = other.m_method;
&gt; +    m_action = other.m_action;
&gt; +    m_target = other.m_target;
&gt; +    m_encodingType = other.m_encodingType;
&gt; +    m_acceptCharset = other.m_acceptCharset;
&gt; +}
&gt; +

And this becomes unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307036</commentid>
    <comment_count>4</comment_count>
      <attachid>73354</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-09 16:08:00 -0800</bug_when>
    <thetext>Comment on attachment 73354
Patch

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

&gt; LayoutTests/fast/forms/formaction-attribute-expected.txt:2
&gt; + 
&gt; +This test: PASSED!

The test result should have a test description.

&gt; LayoutTests/fast/forms/formaction-attribute.html:4
&gt; + if (window.layoutTestController)

Indentation looks strange. 1 space?

&gt; LayoutTests/fast/forms/formaction-attribute.html:11
&gt; +ul.document.getElementById(&apos;sourceViewDiv&apos;).innerHTML=&apos; This test: FAILED 2&apos;
&gt; +}
&gt; +function test2(ul) {
&gt; +ul.document.getElementById(&apos;sourceViewDiv&apos;).innerHTML=&apos; This test: PASSED!&apos;

No indentation.
No spaces around &quot;=&quot;
We had better use functions in fast/js/resources/js-test-pre.js as possible.

&gt; LayoutTests/fast/forms/formaction-attribute.html:27
&gt; +var x=document.getElementsByTagName(&apos;input&apos;)[0];

Need spaces around &quot;=&quot;

&gt; LayoutTests/fast/forms/formmethod-attribute-expected.txt:2
&gt; +
&gt; +Success

The test result should have a test description.

&gt; LayoutTests/fast/forms/formmethod-attribute.html:3
&gt; +&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;

Do we need this line?

&gt; LayoutTests/fast/forms/formmethod-attribute.html:24
&gt; +        if (document.URL.substring(document.URL.indexOf(&apos;?&apos;)+1, document.URL.length) == &quot;&quot;)

style: need spaces around &quot;+&quot;

&gt; LayoutTests/fast/forms/formmethod-attribute.html:25
&gt; +            document.write(&quot;&lt;p&gt;Success&lt;/p&gt;&quot;);

We had better use functions in fast/js/resources/js-test-pre.js as possible.

&gt; LayoutTests/fast/forms/formmethod-attribute.html:35
&gt; +    document.write(&quot;&lt;p&gt;This test doesn&apos;t work directly from bugzilla, please save it to a local file first.&lt;/p&gt;&quot;);

We don&apos;t need to mention it.

&gt; LayoutTests/fast/forms/formtarget-attribute.html:6
&gt; +            {

Your JavaScript style is inconsistent:

function name() {
  and
function name()
{

Either is ok because we don&apos;t have explicit style rules for JavaScript, but you should be consistent.

&gt; LayoutTests/fast/forms/formtarget-attribute.html:10
&gt; +                // Not dumping as text since the DumpRenderTree does not dump the text content of child frames.                

We can access the content of iframe by iframe.contentDocument.  We might need to call layoutTestContentroller.setAllowUniversalAccessFromFileURLs(true).

&gt; LayoutTests/fast/forms/mailto/formenctype-attribute.html:11
&gt; +  if (window.layoutTestController) {

We usually use 4-space indentation.

&gt; WebCore/html/HTMLFormControlElement.cpp:87
&gt; +String HTMLFormControlElement::formAction() const

I don&apos;t think we need these access functions.  JavaScript binding doesn&apos;t need them because of [Reflect], and HTMLFormElement can access them by getAttribute().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307719</commentid>
    <comment_count>5</comment_count>
      <attachid>73354</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-10 21:20:30 -0800</bug_when>
    <thetext>Comment on attachment 73354
Patch

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

&gt;&gt; LayoutTests/fast/forms/formaction-attribute-expected.txt:2
&gt;&gt; +This test: PASSED!
&gt; 
&gt; The test result should have a test description.

Thanks. Made it more descriptive. These four new tests were variations from existing tests with as small changes as possible. For this formaction-attribute.html, from form-action.html.

&gt;&gt; LayoutTests/fast/forms/formtarget-attribute.html:8
&gt;&gt; +                    layoutTestController.waitUntilDone();
&gt; 
&gt; This definitely should be a dumpAsText test.

Thanks. I chose dumpAsText and changed how to verify.

&gt;&gt; WebCore/html/HTMLFormControlElement.cpp:87
&gt;&gt; +String HTMLFormControlElement::formAction() const
&gt; 
&gt; I don&apos;t think we need these access functions.  JavaScript binding doesn&apos;t need them because of [Reflect], and HTMLFormElement can access them by getAttribute().

Exactly. Removed.

&gt;&gt; WebCore/html/HTMLFormElement.cpp:319
&gt;&gt; +        button = static_cast&lt;HTMLFormControlElement*&gt;(event-&gt;target()-&gt;toNode());
&gt; 
&gt; This seems like a different method from obtaining the button from above (see firstSuccessfulSubmitButton logic). What&apos;s the difference?

firstSuccessfulSubmitButton was different from this &quot;button&quot; object. In cases of my tests, firstSuccessfulSubmitButton was 0, but &quot;button&quot; pointed the button clicked.

&gt;&gt; WebCore/html/HTMLFormElement.cpp:330
&gt;&gt; +    }
&gt; 
&gt; This whole thing looks like it should just live in FormSubmission::create.

I guess it should be handled here for the same reason as copyFrom() below.

&gt;&gt; WebCore/loader/FormSubmission.cpp:121
&gt;&gt; +
&gt; 
&gt; And this becomes unnecessary.

Copying is still required. Values of attributes form* (like formaction) must be parsed by parser methods (like FormSubmission::Attributes::parseAction()). But HTMLFormElement::m_attribute should not be modified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307722</commentid>
    <comment_count>6</comment_count>
      <attachid>73579</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-10 21:22:46 -0800</bug_when>
    <thetext>Created attachment 73579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307730</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 22:18:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt;&gt; WebCore/html/HTMLFormElement.cpp:330
&gt; &gt;&gt; +    }
&gt; &gt; 
&gt; &gt; This whole thing looks like it should just live in FormSubmission::create.
&gt; 
&gt; I guess it should be handled here for the same reason as copyFrom() below.
&gt; 
&gt; &gt;&gt; WebCore/loader/FormSubmission.cpp:121
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; And this becomes unnecessary.
&gt; 
&gt; Copying is still required. Values of attributes form* (like formaction) must be parsed by parser methods (like FormSubmission::Attributes::parseAction()). But HTMLFormElement::m_attribute should not be modified.

I understand the requirement of copyFrom(), but we can move the HTMLFormElement.cpp change to FormSubmission.cpp because FormSubmission::create() knows all of necessary information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307731</commentid>
    <comment_count>8</comment_count>
      <attachid>73579</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 22:25:17 -0800</bug_when>
    <thetext>Comment on attachment 73579
Patch

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

&gt; LayoutTests/fast/forms/formaction-attribute.html:12
&gt; +if (window.layoutTestController)
&gt; +    layoutTestController.dumpAsText();

You dont need to do this.  js-test-pre.js does it.

&gt; LayoutTests/fast/forms/formaction-attribute.html:14
&gt; +doneAction = false;

Prepend &quot;var &quot;.

&gt; LayoutTests/fast/forms/formaction-attribute.html:29
&gt; +&lt;script&gt;

Why does this HTML have two &lt;script&gt;s?
I think you can merge them into one.

&gt; LayoutTests/fast/forms/formaction-attribute.html:32
&gt; +var x = document.getElementsByTagName(&apos;input&apos;)[0];

&quot;x&quot; is not a good name.

&gt; LayoutTests/fast/forms/formaction-attribute.html:36
&gt; +successfullyParsed = true;

Prepend &quot;var &quot;.

&gt; LayoutTests/fast/forms/formmethod-attribute-expected.txt:1
&gt; +PASS The formmethod attribute was successfully used

Please add a test description.  You can use description() defined by js-test-pre.js

&gt; LayoutTests/fast/forms/formmethod-attribute.html:14
&gt; +&lt;script&gt;

add description() call please.

&gt; LayoutTests/fast/forms/formmethod-attribute.html:16
&gt; +    layoutTestController.dumpAsText();

You don&apos;t need to call dumpAsText() because of js-test-pre.js.

&gt; LayoutTests/fast/forms/formmethod-attribute.html:35
&gt; +successfullyParsed = true;

add &quot;var &quot;.

&gt; LayoutTests/fast/forms/formtarget-attribute.html:7
&gt; +&lt;script&gt;

You can merge this &lt;script&gt; block into the &lt;script&gt; below.

&gt; LayoutTests/fast/forms/formtarget-attribute.html:12
&gt; +        layoutTestController.dumpAsText();

You don&apos;t need to call dumpAsText() because of js-test-pre.js.

&gt; WebCore/ChangeLog:19
&gt; +        (WebCore::HTMLFormControlElement::formAction):
&gt; +        (WebCore::HTMLFormControlElement::formEnctype):
&gt; +        (WebCore::HTMLFormControlElement::setFormEnctype):
&gt; +        (WebCore::HTMLFormControlElement::formMethod):
&gt; +        (WebCore::HTMLFormControlElement::formTarget):

Please update the ChangeLog.  This block refers to non-existent functions.

&gt; WebCore/html/HTMLFormControlElement.cpp:87
&gt; +String HTMLFormControlElement::formEnctype() const

Why didn&apos;t you remove formEnctype() and setFormEnctype()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307735</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 22:48:05 -0800</bug_when>
    <thetext>BTW, &lt;button&gt; should have these attributes too.
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-button-element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307779</commentid>
    <comment_count>10</comment_count>
      <attachid>73579</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 01:16:58 -0800</bug_when>
    <thetext>Comment on attachment 73579
Patch

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

&gt;&gt; WebCore/html/HTMLFormControlElement.cpp:87
&gt;&gt; +String HTMLFormControlElement::formEnctype() const
&gt; 
&gt; Why didn&apos;t you remove formEnctype() and setFormEnctype()?

They are required since formenctype is [ConvertNullToNullString]. It followed the enctype attribute in form tags. (See HTMLFormElement.idl)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307781</commentid>
    <comment_count>11</comment_count>
      <attachid>73588</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 01:20:28 -0800</bug_when>
    <thetext>Created attachment 73588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307787</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 01:38:11 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 73579 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73579&amp;action=review
&gt; 
&gt; &gt;&gt; WebCore/html/HTMLFormControlElement.cpp:87
&gt; &gt;&gt; +String HTMLFormControlElement::formEnctype() const
&gt; &gt; 
&gt; &gt; Why didn&apos;t you remove formEnctype() and setFormEnctype()?
&gt; 
&gt; They are required since formenctype is [ConvertNullToNullString]. It followed the enctype attribute in form tags. (See HTMLFormElement.idl)

[Reflect] for DOMString implies ConvertNullToNullString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307788</commentid>
    <comment_count>13</comment_count>
      <attachid>73588</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 01:42:39 -0800</bug_when>
    <thetext>Comment on attachment 73588
Patch

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

&gt; LayoutTests/ChangeLog:5
&gt; +        Implement formaction, formenctype, formmethod and formtarget attributes for the input tag

Now we support &lt;button&gt;.  The summary should be updated.

&gt; WebCore/ChangeLog:5
&gt; +        Implement formaction, formenctype, formmethod and formtarget attributes for the input tag

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307790</commentid>
    <comment_count>14</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 01:56:50 -0800</bug_when>
    <thetext>(In reply to comment #12)
When using ConvertNullToNullString, formEnctype() and setFormEnctype() are required to compile DerivedSources/WebCore/DOMHTMLFormControlElement.mm, a generated file from idl. This mm calls formEnctype and setFormEnctype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307791</commentid>
    <comment_count>15</comment_count>
      <attachid>73591</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 02:01:14 -0800</bug_when>
    <thetext>Created attachment 73591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307792</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 02:19:10 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; When using ConvertNullToNullString, formEnctype() and setFormEnctype() are required to compile DerivedSources/WebCore/DOMHTMLFormControlElement.mm, a generated file from idl. This mm calls formEnctype and setFormEnctype.

You don&apos;t need to add ConvertNullToNullString.
  attribute [Reflect] DOMString formEnctype;
is enough.  It contains ConvertNullToNullString behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307796</commentid>
    <comment_count>17</comment_count>
      <attachid>73591</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 02:21:45 -0800</bug_when>
    <thetext>Comment on attachment 73591
Patch

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

&gt; WebCore/html/HTMLInputElement.idl:31
&gt; +        attribute [Reflect, URL] DOMString formAction;
&gt; +        attribute [ConvertNullToNullString] DOMString formEnctype;
&gt; +        attribute [Reflect] DOMString formMethod;
&gt;          attribute [Reflect] boolean formNoValidate;
&gt; +        attribute [Reflect] DOMString formTarget;

We need a similar change for HTMLButtonElement.idl.
Also, we need tests for accessing them by JavaScript properties. e.g. input.formAction reflects formaction= HTML attribute correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308401</commentid>
    <comment_count>18</comment_count>
      <attachid>73704</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 23:33:49 -0800</bug_when>
    <thetext>Created attachment 73704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308402</commentid>
    <comment_count>19</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-11 23:35:13 -0800</bug_when>
    <thetext>(In reply to comment #17)
Kent-san,

Thanks for the comments. Revised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308414</commentid>
    <comment_count>20</comment_count>
      <attachid>73704</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 23:58:01 -0800</bug_when>
    <thetext>Comment on attachment 73704
Patch

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

&gt; LayoutTests/ChangeLog:33
&gt; +        * fast/forms/formmethod-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-button-html.html: Added.
&gt; +        * fast/forms/formmethod-attribute-button-js-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-button-js.html: Added.
&gt; +        * fast/forms/formmethod-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-input-html.html: Added.
&gt; +        * fast/forms/formmethod-attribute-input-js-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-input-js.html: Added.
&gt; +        * fast/forms/formtarget-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-button-html.html: Added.
&gt; +        * fast/forms/formtarget-attribute-button-js-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-button-js.html: Added.
&gt; +        * fast/forms/formtarget-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-input-html.html: Added.
&gt; +        * fast/forms/formtarget-attribute-input-js-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-input-js.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-html.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-js-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-js.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-html.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-js-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-js.html: Added.

I don&apos;t think we should test the same test cases with both of an HTML attribute and the corresponding DOM property.
As for tests of form submission behavior, we should test it with either of the HTML attribute or the DOM property, and we should have additional tests for association of the HTML attribute and the DOM property like LayoutTests/fast/forms/script-tests/input-minmax.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308416</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-11 23:59:46 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I don&apos;t think we should test the same test cases with both of an HTML attribute and the corresponding DOM property.

because running a complex test case twice is not good for test performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308426</commentid>
    <comment_count>22</comment_count>
      <attachid>73712</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-12 00:32:19 -0800</bug_when>
    <thetext>Created attachment 73712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308430</commentid>
    <comment_count>23</comment_count>
      <attachid>73712</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-12 00:39:22 -0800</bug_when>
    <thetext>Comment on attachment 73712
Patch

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

&gt; LayoutTests/ChangeLog:21
&gt; +        * fast/forms/formaction-attribute-expected.txt: Added.
&gt; +        * fast/forms/formaction-attribute.html: Added.
&gt; +        * fast/forms/formmethod-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-button-html.html: Added.
&gt; +        * fast/forms/formmethod-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/formmethod-attribute-input-html.html: Added.
&gt; +        * fast/forms/formtarget-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-button-html.html: Added.
&gt; +        * fast/forms/formtarget-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/formtarget-attribute-input-html.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-html-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-button-html.html: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-html-expected.txt: Added.
&gt; +        * fast/forms/mailto/formenctype-attribute-input-html.html: Added.

There is no submit-form-attribute.html.

&gt; LayoutTests/fast/forms/script-tests/submit-form-attributes.js:6
&gt; +input.type=&quot;submit&quot;;

nit: Need spaces around &quot;=&quot;.

&gt; LayoutTests/fast/forms/script-tests/submit-form-attributes.js:100
&gt; +button.type=&quot;submit&quot;;

ditto.

&gt; WebCore/ChangeLog:20
&gt; +        Tests: fast/forms/formaction-attribute.html
&gt; +               fast/forms/formmethod-attribute-button-html.html
&gt; +               fast/forms/formmethod-attribute-button-js.html
&gt; +               fast/forms/formmethod-attribute-input-html.html
&gt; +               fast/forms/formmethod-attribute-input-js.html
&gt; +               fast/forms/formtarget-attribute-button-html.html
&gt; +               fast/forms/formtarget-attribute-button-js.html
&gt; +               fast/forms/formtarget-attribute-input-html.html
&gt; +               fast/forms/formtarget-attribute-input-js.html
&gt; +               fast/forms/mailto/formenctype-attribute-button-html.html
&gt; +               fast/forms/mailto/formenctype-attribute-button-js.html
&gt; +               fast/forms/mailto/formenctype-attribute-input-html.html
&gt; +               fast/forms/mailto/formenctype-attribute-input-js.html

Looks obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308437</commentid>
    <comment_count>24</comment_count>
      <attachid>73715</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-12 01:40:10 -0800</bug_when>
    <thetext>Created attachment 73715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308439</commentid>
    <comment_count>25</comment_count>
      <attachid>73715</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-12 01:44:20 -0800</bug_when>
    <thetext>Comment on attachment 73715
Patch

Looks ok.  Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308472</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 03:15:12 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 73715:

animations/suspend-resume-animation.html
http/tests/misc/empty-file-formdata.html

Please file bugs against the tests.  These tests were authored by cmarrin@apple.com and zimmermann@kde.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308484</commentid>
    <comment_count>27</comment_count>
      <attachid>73715</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 04:07:55 -0800</bug_when>
    <thetext>Comment on attachment 73715
Patch

Rejecting patch 73715 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
tests/inspector ......
http/tests/loading ....................
http/tests/local ........
http/tests/local/blob ...
http/tests/local/formdata ....
http/tests/media .......
http/tests/messaging ..
http/tests/mime .......
http/tests/misc .........................
http/tests/misc/empty-file-formdata.html -&gt; failed

Exiting early after 1 failures. 21119 tests run.
480.33s total testing time

21118 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
11 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/5752011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309166</commentid>
    <comment_count>28</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 20:18:34 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; http/tests/misc .........................
&gt; http/tests/misc/empty-file-formdata.html -&gt; failed
&gt; 
&gt; Exiting early after 1 failures. 21119 tests run.
&gt; 480.33s total testing time
&gt; 
&gt; 21118 test cases (99%) succeeded
&gt; 1 test case (&lt;1%) had incorrect layout

Mikurube-san,
This commit-queue output means your patch broke empty-file-formdata.html.  Would you investigate it please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309169</commentid>
    <comment_count>29</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-14 20:36:09 -0800</bug_when>
    <thetext>(In reply to comment #28)
Yes, I&apos;m checking it. Thanks for your notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309181</commentid>
    <comment_count>30</comment_count>
      <attachid>73874</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-14 21:10:30 -0800</bug_when>
    <thetext>Created attachment 73874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309182</commentid>
    <comment_count>31</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-14 21:12:19 -0800</bug_when>
    <thetext>(In reply to comment #28)
Fixed. Added
&gt;     m_isMultiPartForm = other.m_isMultiPartForm;
in WebCore/loader/FormSubmission.cpp: FormSubmission::Attributes::copyFrom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309183</commentid>
    <comment_count>32</comment_count>
      <attachid>73874</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 21:14:05 -0800</bug_when>
    <thetext>Comment on attachment 73874
Patch

&gt; Fixed. Added
&gt; &gt;     m_isMultiPartForm = other.m_isMultiPartForm;
&gt; in WebCore/loader/FormSubmission.cpp: FormSubmission::Attributes::copyFrom.

ok, I understand.  Our tests have good coverage :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309220</commentid>
    <comment_count>33</comment_count>
      <attachid>73874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 03:38:47 -0800</bug_when>
    <thetext>Comment on attachment 73874
Patch

Rejecting patch 73874 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, 73874]&quot; exit_code: 2
Last 500 characters of output:
th fuzz 3.
patching file WebCore/html/HTMLAttributeNames.in
Hunk #1 FAILED at 94.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/html/HTMLAttributeNames.in.rej
patching file WebCore/html/HTMLButtonElement.idl
patching file WebCore/html/HTMLInputElement.idl
patching file WebCore/loader/FormSubmission.cpp
patching file WebCore/loader/FormSubmission.h

Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Kent Tamura&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/6002058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309222</commentid>
    <comment_count>34</comment_count>
      <attachid>73882</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-15 03:49:49 -0800</bug_when>
    <thetext>Created attachment 73882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309223</commentid>
    <comment_count>35</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-15 03:50:52 -0800</bug_when>
    <thetext>(In reply to comment #33)
Looks like a conflict... Merged and re-submitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309228</commentid>
    <comment_count>36</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-15 04:06:49 -0800</bug_when>
    <thetext>Kent-san,

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309242</commentid>
    <comment_count>37</comment_count>
      <attachid>73882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 04:43:26 -0800</bug_when>
    <thetext>Comment on attachment 73882
Patch

Clearing flags on attachment: 73882

Committed r72003: &lt;http://trac.webkit.org/changeset/72003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309243</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 04:43:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309256</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-15 05:43:39 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72003 might have broken Qt Linux Release
The following tests are not passing:
fast/forms/formaction-attribute.html
fast/forms/formmethod-attribute-button-html.html
fast/forms/formtarget-attribute-button-html.html
fast/forms/mailto/formenctype-attribute-button-html.html
fast/forms/mailto/formenctype-attribute-input-html.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309426</commentid>
    <comment_count>40</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-11-15 13:38:38 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72003 caused the test &apos;fast/forms/submit-form-attributes.html&apos; to crash DumpRenderTree on the Leopard Intel Debug (Tests) bot. Filed https://bugs.webkit.org/show_bug.cgi?id=49562.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73354</attachid>
            <date>2010-11-09 03:30:43 -0800</date>
            <delta_ts>2010-11-10 21:22:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101109203041.patch</filename>
            <type>text/plain</type>
            <size>33818</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOTljZWQxYzhhMzFmM2Y3MDViZWI3ZTA1N2ZiMTgyYWRhZGRhYmIwLi43MDcyNDJk
MDI2OGQyMmUzZmMyNjVkODZlZWZlYzNmY2YwYzY0ZTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciB0aGUgaW5wdXQgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTI0MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWFjdGlv
bi1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9k
LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9y
bW1ldGhvZC1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0
by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL2Zv
cm10YXJnZXQtYXR0cmlidXRlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKwogMjAxMC0xMS0wNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5
NzNlZTY1Mzc2OGY2OGFjYWRlYjQyZjRmYzI0MWE4MGExZjI2ODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIgQEAKKyAKK1RoaXMgdGVzdDogUEFTU0VEIQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNmZl
NjU5NzY3M2ViMTkwMzA1NzQ4ZGU1NTkxZmZlNjcyY2FmOTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwKQEAgLTAsMCAr
MSwzNCBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CisgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1
bmN0aW9uIHRlc3QodWwpIHsKK3VsLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3VyY2VWaWV3
RGl2JykuaW5uZXJIVE1MPScgVGhpcyB0ZXN0OiBGQUlMRUQgMicKK30KK2Z1bmN0aW9uIHRlc3Qy
KHVsKSB7Cit1bC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc291cmNlVmlld0RpdicpLmlubmVy
SFRNTD0nIFRoaXMgdGVzdDogUEFTU0VEIScKK30KKzwvc2NyaXB0PgorCis8Zm9ybSBhY3Rpb249
ImphdmFzY3JpcHQ6IHRlc3QodGhpcykiIG1ldGhvZD0iZ2V0IiA+CisKKzxzZWxlY3Qgb25DaGFu
Z2U9InN1Ym1pdCgpOyI+CisgIDxvcHRpb24gPkE8L29wdGlvbj4KKyAgPG9wdGlvbiA+Qjwvb3B0
aW9uPgorICA8b3B0aW9uID5DPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxpbnB1dCB0eXBlPSJzdWJt
aXQiIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHRlc3QyKHRoaXMpIiAvPgorCis8ZGl2IGlkPSdz
b3VyY2VWaWV3RGl2Jz5UaGlzIHRlc3Q6IEZBSUxFRCAxPC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIg
eD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKK3guY2xpY2soKTsK
Kzwvc2NyaXB0PgorCis8L2Zvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWQyNmQzM2ExMmE5ZDgxNDA3MjU3NTljOTM4YjI1NGJmMmM3ZTRiMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorCitTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIw
MzM4OGVjZDg5NDg2ZmM4Mjg3NGU0YWU1YWQwNzIwYjJkNTc4MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUuaHRtbApAQCAtMCww
ICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSI/IiBuYW1lPWY+
CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRk
ZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQg
Zm9ybW1ldGhvZD0icG9zdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0icHJlc3MgbWUiIG5hbWU9Zz4K
KyAgICAgICAgICAgICAgICA8L2Zvcm0+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmIChkb2N1bWVu
dC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikgeworCisgICAgaWYgKGRvY3VtZW50LlVS
TC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKworICAgICAgICBkb2N1bWVudC5mLmcuY2xpY2soKTsK
KworICAgIH0gZWxzZSB7CisKKyAgICAgICAgaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoZG9j
dW1lbnQuVVJMLmluZGV4T2YoJz8nKSsxLCBkb2N1bWVudC5VUkwubGVuZ3RoKSA9PSAiIikKKyAg
ICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5TdWNjZXNzPC9wPiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiPHA+RmFpbHVyZTwvcD4iKTsKKworICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworfSBlbHNlIHsKKworICAgIGRvY3Vt
ZW50LndyaXRlKCI8cD5UaGlzIHRlc3QgZG9lc24ndCB3b3JrIGRpcmVjdGx5IGZyb20gYnVnemls
bGEsIHBsZWFzZSBzYXZlIGl0IHRvIGEgbG9jYWwgZmlsZSBmaXJzdC48L3A+Iik7Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bXRhcmdldC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNGFhNmUzYzM5ZjljMjBmYmYyMmVm
ZTE2Y2FiNmJiNzgzZjgwZGQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgICAgICAvLyBOb3QgZHVtcGluZyBhcyB0ZXh0
IHNpbmNlIHRoZSBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBkdW1wIHRoZSB0ZXh0IGNvbnRlbnQg
b2YgY2hpbGQgZnJhbWVzLiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB2YXIgYnV0
dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JsYW5rQnV0dG9uJyk7CisgICAgICAgICAg
ICAgICAgYnV0dG9uLmNsaWNrKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHN1YmZyYW1lTG9hZGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdLmNvbnRlbnREb2N1bWVu
dC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorICAgICAgICA8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4dCIg
bWV0aG9kPSJHRVQiIHRhcmdldD0iZHVtbXlGcmFtZSI+CisgICAgICAgICAgICA8aW5wdXQgdHlw
ZT0ic3VibWl0IiB2YWx1ZT0iZm9ybSIgaWQ9ImJsYW5rQnV0dG9uIiBmb3JtdGFyZ2V0PSJibGFu
a0ZyYW1lIj4KKyAgICAgICAgPC9mb3JtPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgVGFyZ2V0
dGVkIGZyYW1lIHN1Ym1pc3Npb24gd29ya3MuICBJZiB0aGUgdGVzdCBpcyBzdWNjZXNzZnVsLCB0
aGUgdGV4dCAiU1VDQ0VTUyIgc2hvdWxkIGJlIHNob3duIGluIHRoZSBpZnJhbWUgYmVsb3cuPC9k
aXY+CisgICAgICAgIDxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgbmFtZT0iYmxhbmtGcmFtZSIg
b25sb2FkPSJzdWJmcmFtZUxvYWRlZCgpIj48L2lmcmFtZT48aWZyYW1lIHNyYz0iYWJvdXQ6Ymxh
bmsiIG5hbWU9ImR1bW15RnJhbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L2lmcmFtZT4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1w
dCB0byBsb2FkIG1haWx0bzo/Ym9keT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUz
RExpbmUlMjAxJTBEJTBBTGluZSUyMDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQl
MEEgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9t
IEhUTUwgPiAjZG9jdW1lbnQKK0ZpZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQyMTA3NDFlODllOTdhOTAzODA5ZGNkMTgxN2MwYTgwODBjODQ4YjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1h
dHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlw
ZT0idGV4dCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4
YW1wbGUub3JnIj4KK0ZpZWxkIDI6IDx0ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUg
MgorQCZhbXA7PSw7PyIrPC90ZXh0YXJlYT4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJT
ZW5kIiBpZD0ic3VibWl0IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFpbiI+IAorPC9mb3JtPgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN1Ym1pdCIpLmNsaWNrKCk7CisgIH0KK30KKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRy
aWJ1dGUtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9m
b3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1leHBlY3RlZC5jaGVja3N1bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NjNlYzVlMmM3YjMwNTg0ZTE4Yzg5YmI5YzRkNzJhMWMxNWI0YjliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1
dGUtZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorNzgyZTM0YTM5NDQ1MDBiYTllZDg4
ZWUwOTJiOTNjNTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E1ZTAwNjAwMmEwNjZlODY1M2Yy
NDhkODQzZGY0Mjg3ZjRhZDZkMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjE4NjQKemNtZUh2
WElOOFA4em99Rk1pWnJvNnROKHBBV0FXR0ZDdk4qOEAoITBCOUtyKjJAb1EzMSo4fWVyM0hkWShA
WENWCnpubzNoM0FWZmVDMCFrbmRBKyFKP2d1dEJtLUF8YkxIfWh3blhVMmE/JGt9Sl92KX0hYD5z
QFB3Q3BTekNjPXNPTwp6JWYtZFRkK3FBd1RVPWIqck1iQWNFcUN0JUsxdWF8PE9SSCQwcWcxQXhU
ZEVrZVp2UnAwYF9wYDt0SmdNXylmUkcKeig0flh4cypyYklXT2lHLV5PWGlabGV1UDw9Y2ZOdmxg
Vk1CZUxxcEVRdmNjZzMpbEp+cyM3eTNFMyVgO010ZT5WCno+KGdISVkmP188biFCJVBffUUoaSlO
dE9aZCNePiMmZl8zUG1EeFl2Y1pKZjIpbipZO3t9Qz07cEkrc3FoZGFpMgp6K2l0eFAxYmMtMV48
WFdFPio8PzRteX1QSzV2TlUjQDQ2SzMlTTcwUTdRYFFCVzhNX1ozTWRVSU5iUmptPEB1WWYKemBg
c1hRQE8xSTRpMSVLcjFLZCVYQmRfSiFWN29gaS14ajcoQVFPMXRoWUVncXQhNjhrNU03bkNUfWIy
VitxZV5XCnotU0RkeVVvM2d3KG9QJFFjYCtjdDFCU1M/ZWlFb1JlVT8rKElnQHdxYigrYUMtP1JH
ayNaWiY3VmVPQWNLa2dHTgp6KDc5M19oZ3BqNCg7Mjx7QmE2fTtwPjslNVdwVHl2UH1TamdEPUhy
a0l0VW9jelBhTilzSzdnKVQqeCtHRm5yfG8Kej58Kj08eUFPUz51YktgUkt+fUpsSX1zLWJnbztL
MyV5MGdIcWw4P0N6bWpKNDNFVn5KXyQybHAtay17UV5AZjF7CnpqPVJhbEgqX08zND1YOGBgc2Zf
WCthO2I1ZUJTVClnSWRfViVPI2hCUmZue3laZjIxKipINmlLenRGNEx7ZTExeAp6YHN0JDJyc0hz
Q2hpJm1VYkg8QVRiU2llP3lHRn0rTzNoKSgwc0pTanVkI2l8JWRoP2s3NnlzPUBTd1dYPkJCbkgK
ejdELUIhTT1HZGgtKHVHTVMlO1VNTnBpNlZUZ1liZ3BWJEJQdnNPfFkkPyFtR1hwSmcjRF4mRlI3
Q2ViakdlOy02Cnp2TDlTISZIUGlCS3J2JlErQXF6b3gjRjZnTSYqPUZgYlNTM2VVajlvRiNyNzle
fUt6ZmotR0ExKF9jbyZeP0pzeQp6OWBBRT5PcyFpfHc5fk4odGlPV1h6alg3M1NaRDhAQ2sqN3Ip
QXlDcll4dG42Q31QezEkUVVEZkJJNlhkcVIwMTcKekRPa19qLW0/Tylvd0ZnbmgxPz5JSiYzdFZo
PGokfSNrQyFsbnQ4JG53XlRCdT4kVjs3anxgSFdsdU8xWkNnTVExCnpCRnwoYlY1I2wqWmd0KXU+
Zk8zRWFBTHN1eF5QKkYqKiZXTnctbWV0PGo4QiNVeVNCbEwrNkNtcUl0biRjSlZESAp6R3ltM0xz
TEEyfXUldVAhYCNRRyVgQG9uZFR3S3l6KkRoYlc2UyQyPTs7QnxQTHRPbD5YS18+YWE8cSo4M0VA
WD4Kejk7YWprX1pffXx4dW9UaCo2SFI1aXFmKk16RUQoYV5SQVB9LVRzPEJkd09wKUAwfmttajwt
ZX1LRDJNUSVwMihpCno4WnVQMmIzS3c0K144ezg4IzBrVFE0PGk1bzM/LSVPa3Z7RVFiX2x8P0Vr
RiRrWlQrRmpAPCYlej42PyRablc/eAp6Sj5oQGZ7YCZrQUhAQVIxX3dUUTQ8OElscEwlUVh5Xlgx
TCE5JiRDU1p5ODJjWTFfN3xOKU47WUlZYSpFTFRSb04KenpGJjl2JilYWUR4P0h6bnQqPm1rJnUt
b1A/T1dhKzYjNW98QFFFSGQ3dShwTypyPlR0VX1fenNQJj8+PyZSIXdqCnpQY1U4PmREREBDK0E/
dW8jb3sreV9lb2VrWUV0OHheWGdvclBGbU1SYV9rfkxWX24lVVdXR2lKTEReRWpPPlRPPwp6Rm8/
OFZTIUsrPzQlR01oNkZya3VObmFuUSQqaTB8YGdeWCQ3O2R6KCNrcE1fUz5BKXJOIWJZfD5UPm1M
OHF+QjMKeitnSCNsRiZvJWMtWDxBNXJZbGAmV0YpUSVLNiZQT1BkOzxodTthMXVjaSZ9M0x6ME9H
dHNGKjRhbXxVOzk2TCg9Cno5P294Szw1QUw1byp5VXNgd3FIfWFsNmtQZDNaVChwPn45PVBgXnxG
SEZpeitHWXslYnpgWER1S2A/Q05DaXlEdgp6QTFORXxMIztKenV4RTRDOHNfN2A4SG5YO3NGMU5e
XyhVN1hKRGRLWDQjV1JHVUVQUGVOYlk/Kyh0O3RFbGsmUGwKem0mPlM4JERVcCNMTDFvO1RIbH13
eCV1TXgqQyNOK2trdk5pU3tyT2FWKzBpTklhPDFUYjNQQj42QW9IVlFsMzsjCno5R2p1OUd8T3Rv
T1JsYDxwfiYrcEt9Z3NSYlltZDl2Mm1ZYi04cU4maSkoWERjI0ZvPno4QD84c31DQ05MLW1JKAp6
WTYqUzROQkopdlB4b247dEJIK3w0Qk42VjY+YE5seE9fZ0pORStMfENRaDJYMD90a01IJWVsIUdw
TX5UTHMtQT8KenlVJiF8aE5TfGdPUWBZPU92OWl+QyZgM0xsMFdmQmRFYjZiRUxndjB3N3MpU2dP
O3tUYTQmKV9lM3MxPmI9P2RxCnpUfVJLb29ydH5XTCs8bGE0amJ3U1V9NHZJQncjbl8pZyhWMFRR
VnMtMX0jMUl7Sk5zQ2pjMHtmPW8hZUoqQFRTTQp6SjMtQ0lCOyVLZGdKKGxidWtQVCUoVD9LSVpB
aXcwPjJjWit3UlIhM09iNWFrJCh8TWtobEpBNnhoVWlzeGg5e3AKelVOc0whQCFRZ15PSCZHfnZD
dClPOW1qWjhrZV9OJDlGR2xHcCZIXygkeUpTUCZtZiQ7ZVMtRHx2cFpMJGFpdjhMCno+KTVoVkUj
c1o1QUBLfT9uNms7JDt7elE+dSF0akZXYig7bjdIS3c9bihYeFNeTWBoUTV4VzxkPD9gSElVX2dh
ewp6ZDJHdkJOY2B8WlZwU0ckZ01zV3U1JG9IdVg1dCRMRz99TGhBPnxmWUdMdW9+JVpvZSpXaHxy
NWl+cntZfDJraW0KeiFROCZ2cEg7VURHfG1nIXtacl4yPVJVQERvTnRYTmVTRWxXPFRoc0VNZnEk
NERAVVlaP2xETzhpOG0pO0BIWSk0CnpVWWg4ejdoJkpTY3ljbVArVW5pbnMwSD9ATk1ySi1WTXxp
T1YpazBsRm5sNmckbUhWRFp1O3MjcWp2cUl6R0N+Twp6d3MqT2gpSXViQ0R3aUtJc25fSX5pMz17
bnRyczFjMmVrYDMkQ2clRlQ8TXBySTxUMXQtcjZgcU1EaX50cXc+VmkKeiY8Nk8tPmVwUklHVkwt
U21EQz49cSZHdWgmRkFNZWooWTNNZ2NkbiV1bzxSO0E8Y18reyh+b1UrTjtKPCZnN25rCnpUM1Yk
SUFMUVFQZ3lzWVlnY0RgTklJUEtfcGNBTnB0N199XzF9QzIlPmJQdlJRYCt2dD80SUEqQ1NNfH5Y
NH07cgp6YEBBeUBWMkQqNUcmRz9TTkYjUiNheGMhSWpAbEM7cmI8WkxfJFZmTWtKJnNaQjJiQ314
JEdyQ0NOeWYhTTxZdlkKelN0OCg4bWdwI2dLfGZTQlE0VlomVmFSMkgxSjBnd2p8dXZnPE0qQipW
MG5zYkZsZWc0UzY3Zj5hcnVTLSZ4KVd4CnpeT3MjYnAzKHlOZHpmbTFfZDBWVCpTOEJLT1QkaFRH
RER3TEtkSSsreWYrQVdeKDlBJE9qdEI8QVUtXnY3PFYrcwp6cGg1OEs8LXQrPTdwTDR+KXFieCpL
KVFIJjJXNk1FcHJ8YzliLS13I2M2aUIwP1FNMGJjWShXfHlKJW99KmU1cngKejEwT3ppKmV7cERs
NF4lZSZ9dD95YXg/UTYqSF81Q1lWVlNUSk1AI0BgQTJtdEhMenBtWF5ZOWltLUs2RyN9NFYkCnp3
TDB2TzZyOD4rbVlKe0F4SFlzWldRKUhqekhad1Z5NEtMZnFkZ2I0bVExUkNCbHpMY2s7JHFzZ0Y2
TWhgPzBmYAp6I0otJih3JEJRS05tS1VrbVB2NXA5e0R7LUxQcz9EUkAhdmR5Jko7VjRVQnB5Y0tq
P2YxXk5KclU7TGpRbWYqQHAKemxDO1lVeHRZQWBBSDJ8SGg8X1A2VGdYJlhOc0lafSlJPyp0eFhJ
RVlfdTNgPjxLbWBvdHV0UFdrNmwqeHs0UFckCno0LUFtSz51KitgYShkREN6b3hGZVJ9WDRvPzNj
byYpfSNeQlBFczhAaEFZNTR3NThfU1VPcnA0azJfISVgfDgqWAp6R2ZHfntIM1ErbFBKMVJrdmVI
Vk8zMXwhXkFRJlhQdSNMeWZIPSt3JEdze2orSzheUis5OWB4ZEpeWHw9cWh7IVkKemQmayktcXBE
Z0c/YmUhP3F2cStWZFJNMk48Q2JwbXlWWWVqaVYhcSs+T09+K3paNlZpSDNUNV9gbUVvUytgZ3Iz
Cnp4PzRFRDwyd0cycHY3T0s1d2sxSzNtZENOOHxAYlFaXlpCSDtLNUBaMyhTYD9yXzZTTT1FSzlp
RTFZS1E4Q2AxQwp6eiRuWHdBXkYwa3UrNzgwYyZacjJiLT8rRiFpeztmYDF+WXNDMSEtQE52PX4x
Pyp4S3h7JFQhIVIoeTV0YWc2XlYKeldHRXhrKUVnfUhkcl84bFZUWDF+ZGtQWmRDMjlRb0Q+STFI
Sm9hSEFmd2okRkE7YGxZXmdsP3Q3UE9AUnBIVjJiCnotfVkmQUZnYWx9bntWVUJwYFBnZDl1YXQ8
RCtpUSVJV1RpZXE8LUhVPCtvWHd4V2F0NjNtPzhIT0JETTNEOGhkMwp6KyMlZ3AjTGN6MnMyNCY0
fEJyc2h2WDUoUXBtRSlBXiM/IWxWI09qKjM+MTVUMHpyRitIJEo4NCNULXd7LUMkO0gKenFAZEAh
az9adXVjQCRESjlsNmYqb3YxKEVES1BidVErfnxrZjM2bDFyKXQ7IUZ9dHNJVjNoXyVxQilxTCRZ
NWBXCnpCRE9PSzFaOTxuJSYtK29sPTZrLTRfVzhmRGJfRmMhVSo4cDBfOGxJblQ7WUxkWXopeWMm
KzRWXkV1QihSLU9hPAp6SDJYVmAmTF9HcHRWZl52e0pPJkRTcXQpclkzTUAyS191OypgJCV6VG9v
NWk8VWdSQTxBMT5eVFA3S2chbkR1aVIKelJAWl95KSlRRCZtQlhaZzIzezxAVjJ1MyRzJClec2ZO
IXR0Xm9PMX0+RiR8UXYrV2FOI3kwfi1iOWN9bihKPjRvCnp7P05IX3liSWJoYWUydE04I2VobUdE
bXwlSERTXmwqUVhrRGtnT2A/YnBSXmVSeyF6MFApYDUrVzV0bFdTWVRaYAp6ZXlpNSNWbUghJmIm
YmZgWlpYJWljbkd9MUNQITkjez5jUnFJMn1FYld9LVJZeSFoRVBeZ09NZUYpWE0wKU1FVUgKekYq
TjhsdyMlPERWUi0mJkspJHN+ZSpucFRXWmFAYU0mNCpyWFB2Q215SHByWjU5P0hGJVJsJHthfH5q
b055O1JrCnptUHFQN2lTfkY3Ml9jSztzQDQ3QVo0eWhlUVdQMX48YHVGKDF9KiRLKW9kdTExUm1o
KjNzdHFNI3lJSHhjRkUjNQp6KH1tR2ZgWmhmKWc9fUVrO00hcHZFU1N9eVBAQTlyIW45Q3hBcyVK
YTluQGRlPitabEp6PSpfUVJuaVo+ZlU2RzcKemM4ZGtnUztUQkdVVyhsI0g5cCVIJUF6R3t1WUJP
PU9OdFleUlpAaFM5WkpZcDh7P289KmhTaS1lRnw0bUBKXkBSCnpeeDJSSip3Pm98PEs8KSl7TDNZ
dHhRWSlsXmFjKFZSalZEdWBQaiN8M1NzOHtVZ1RzdF9GeDl2M2o1Z0BAX2M+Swp6Yk9WK2drYWpO
QkVIfkxaOV9+YFpkalVQNF5XUi0wd1hKKTskYl5SWHRlRyNzUmpNLWI+XylDUitxbCRMOVlDcW4K
emJVSm88cEBONTt5cHspRGA2c1oxekN6VyYjWWAhIXdVRVVnMU9DKVErRE00JUBvPiltTnQlY3dk
O3Z0aitXP0B+Cnp4VGhGYTRhb2gxVFVTR09JPCRZa3s1N1coWTxHS2JNUSZXYl5DSkJgUV5MRGhG
eDtneyQxbmNtUGJyVzNyVCViQQp6Pn4ralVTcTZMaEU0O3sxREFmQEA3bDMzMDxlODdYRUZea3Y+
a25ZNnJ0Pm5mOHx5Nm9eLTt6M2R3bnI7UGZTRFoKemVldXhiUTRII2RpMnk1PitDTDNkcTxDZ1RK
Vy1yO1FLc3pfN0RHR1I5fk4mP1MyQ3g5anRQU1lkWEJGekxwU15kCnpNa2UkbFohIyg+P2FQLSQm
JD88ZkFsUihONE9YMlpnYnp6cyNZI3ZPQGR0ZWctLVl8WV43PVgoJUJjTyZ6PyN1Owp6R3J7Z31Z
WUVrOHV6Jl49aTRrT2luKD9ee1pZSFA3clJZPGZkY2U8dEpwN1ZOWncrYDs2Syp0dHJ9XylUMFl1
VSoKencpUjE0P1N0M1FkM3dYPnBgdVVZN3VrI1ckY3tGJiF9Pnh9SUh3PElAe2FpbXsmIUY0RS1D
e2wqUXtfaHhmOFQxCnppe0s1X2NkLWFAcWp1akVAMk9oJDUlems0MyZObklAO1BuenlzKjM5Rm5+
Mk4ldVpLfHlkP2ZqPyMxbXd0fVJhQQp6PyF9eTROUW5qMFRkZ01RMGZnK342TWpMcFAoc2t2WiMy
SXhTQkZqWXxOMilFTiFjfktDbXBLJSF9O2cxMCpmYFcKeihTV0deR0xecTNkKlltUlFjcmg2VnYy
SSVBYjZ+WTFJR3czSlQ+bkZrZ2tAI1BTLWB5aGsoUEJfRn45dXNCfXE2CnpwJkEyQ15oPktNUklv
e045LSNGc25BbjY0YGduWHxSdUxaTHJIcEo7ZFN2PVIrZjBNdzxjcFFjaXs/WHpnRnd7YQp6NV5H
T3dJb2NfRi1Ee2che29kcUM2QnNfXzwtezkwJmR7a00kNV81JmFzXklQZjJVfiFzVHUhayVJPUtE
WE18cG4Kek5XeEYkY1dJZSkocC1kXlFTRUYpRnVeJj1abFVrZCV3bCE0QWdOUilVRyZZPGprV0hM
a1pncj04c2k7O3JYYTw3CnpUJitJTCpFNjJHTXteLW14fm4pNnVGP0dSSWk9YUAwcnhZXzJQdHI7
RmpeJjFLfmFQWGl2O3JEJnYkIS1CUWt+Rwp6O2JyS1pLSEBIXzNvYkEleTg9SSM8TERvNDtIa3dv
RVNoJF4xO0hfQDxmOXRDRzklYD04a0pSKm52Pn5sPDZtMyMKemBlflZQaUghP31ZSmpvR0B8cFg8
KGB7NCkoIWl1JSRZX0YoP21MaV8xYXk+RGk7PjhjTk5WczElTmA/KSY7QFIyCnpHMTJqISo0ZzhF
NDExP30xPFhAZjFqbzdlMHowdk9GZSNRRmZJRzFIN0xpPXdEN2VaITNnNkRKZDUqTiZVdUJaUAp6
OGshJiskN2Q8YVctRWFrPyNmdXlTPj8+K3J1aTVLXzJ0Pld0Yk8lJm8wVigmJWlHTF9xe2NNRzFS
YkUmPW9ZNj0KeiopeT1lS3VDMXhUYnh6d1ZyZiRTODVJbGJVT2xQUkZMZmN9WnBMfEpIQGxBenY1
WmQpSWE5Yns1Vk9NcGdJVWF5CnolfmxNWmtJQyRsNEFxe2dDaWVvTWRpMDw/PnFuIyVNc2RQNHVl
KkV8JCFWPlMlcF96QWFjYUJOaVowTHpMdGZTegp6RFpBRCNUKUdiJWtDQVptNzR9RztFeXdiXlBT
Jk0tZVgzTGx4fTV+ZlduZGhYJCtFUVZMYXE4bzdEcC1VP2VSTzsKenA5dXZMRV98V1grMWBiT3hp
ZnNOTChUUV8hbTlVSnlhNUZnVn5ZNUJgfVVCTnBxe1YzYmRsb0M8KkteenYoemhVCnoqcWQwWUY7
c282YTZDblFXMCpZP2taVT4xMk80fCFITzxWWk8kciZaOT5TO3soYkJoYmlofUluSXBYIWM3YDJr
Vwp6bVJxbnJ7Un0/RTZfWmtueFhkSSVxIU5BKCtxdntHNjhieE9vRENYZk9Hcl83M0NuVWhYUipW
XmhRYS0lMnx1O3UKejshZiNsNytLNG4lKko8KEFrdmlgViRxRUJzSEdgKmNkLTMxcE5jRXl3eSZe
JUBebjc5cWhJU2xga21IbUgwOyV5CnokajckZGFtdEx8c2I3Nms5U01+WGtjJGE9NVojU0M2dXFk
cHY3bEhaakJnKC14RUN4ZiE4MjIkSUwlazBeSkVxcgp6KHcyJDE3dih1eUgmYVBjIz4oYnN1bEFy
UWghIVUpKjAtO1ZrMCFla044MExvNHJ4UjxRKmlyP20/RXE9aUdVJlIKemkrPUl5WFV9KF5zay1a
OFFJfUdWc2liI1d5U2pNbFNkXk01bVdAQzwpSTJ3WUB2YUQwO3k3X1lkdyhLSF9IMXBwCnpJNE0t
MmNDQ0ROQnd5OXhFM0RpanApd2YxVHE2R1NWeEZDZElsSlA/Z1FVWShZOTBNVjhhVTBTQXtgVTVA
SHcwXgp6LVNHLV4+YWEyIUxfZFNXc2YxSXd5byNJbkd7KEEoe3wzM08maFV2S1RRNlhncllSU1d6
KzJFLSVpbyo/bEU2LUcKemQ9V2V4VDRmaWAqYWZ+JCsxdlJGUjFGTWEldjA3b291bE81QVlZb2Nh
PXV7Mzg+RnNhVHQjWTU0UFg4TSNNMWs7CnpFNEpwNHU1LU1wVyFKKDM4dENjYXI9VCFCY2ZPfVF4
RFFzQyskVyoqNk8kKCZpWWNxamNqWV5zYEJLbV5JYm8lKAp6RytQZjsoQFZhKGxGJXstVE5rTVJF
aGFxK1gpSHkkUk9UeVlsNm9pTzxoTkFvNEdMR2xtKzYmVklEfXIhSV9gPjYKejBLZU5SZUxeK3Zk
VkVocyZmcFdpUko3PHNLZj59RTEoKXcxeUZCVTc2RlVSKmhCcnZ+bGwlclFtQz5iP0tpRUwzCnom
VXlNOWZwRT9wYigyYEZnMVhFTzEyTUZBZjRFQnxDUHRoajNqc2dgWikpKUtnXjMoZnxDdCRxaylv
NHRKRW58Owp6OUM9Z01AJGdrKE1vM19pYkxZfClJbUFuTmp2YH1AaiRFSFdAfSp3TFlVKGFxJFND
SilSK3E0MnJzflMmJmJPKkgKemN6LSEhI0VWQ3BHayl5OUZzIWBJWGd5Un08TTl2TSUmQnAmemIw
XiNqUWpufDs5KjhpZj00TFA3em8oMXBDbkBeCnpXcDxDPkojJSVFdm54KCpSLTxRVkxNXkg/P2xu
aiQ5KjVwZVVWe19MVXclY0hpXiowQCklaDRDckU+Vk1CO1I7cwp6PThYOGdgWTR+KSg5KiV6e0hk
KDhUfGswfSs9YVhMUTJyM0lKazI4WVRTeWVgQmhXO200R2glc1hTe3dxN1UzSiEKemtmZ1MwdDV5
MUQ+UkdsZWVoVGpXMClnSG1qSTd+QyNeQUxoKU4zN1FHQHpYdTlCTHEhbHZkcUl0VjZFbUFgZEll
CnoqNmt8NntwOTwlP0ReNXI2X19xLVNEODJ+VnN+PUd3MGl3P1htSjAhWE1jY2RkJXdpMHZaWUgj
YExzM14jO1RjSwp6eE87QXVqcWFtI0J0SzAmeUt0Ql5WQHptK3lkfiRLYSZUeEdsOSVxZHFVbFh1
d3duemFfIV9kVSpLV29xPjQjOV8Kej0+QlBLKV50S0Bed0BFLWt3PT1DciludEVjUE9PYTFwVUdf
Nyt3aX10TGIxWHhBTXRBYCp9QTtQNWo1PUo1JDh6Cnoze3ZfXzdqJGJXLTFNfCpmVVJ2UktwSyh2
b0EzOUE3aWdnKyltQjt0c1d9XnQ0PDBATGRMKCVxO150aXorOXslRQp6RTRNZDhib0JYWnpCKGwo
NzNwYnJNV0A/WndlYUJNZk05M1lFXkdHWmpKMGQlPUQmJihlKTxBe0hSSilDSlJNQCYKemo9RiVq
eGx4QGokdUFRblRlakJjeiYyQTJUKllUI2h7fjxGKDtJSHZUcX5UJEBHOTY9bHx0fEE/cyMqVVRz
MDhtCno9bUM4Nz4oWko1SVRmQ3IlOz1Cam8kWDtIalFNY1N4S3NVbHI+a35DazxWcTI2RmQzPiR+
KTdvPn42Yi0kNDhZMAp6KHxKVVUtJH1eI0gzMGFGbTY7d0haU0NRWm09ND5iI0RKSThHSlBIdz4x
I0o8UHdJQmVQS0BoLUJfe21+VipORHgKelg+Kj5EVV9XUnNWfkpxTEJaQzRIYkRqSFpFQXVAR1dy
XnQpdiNOMmJ4TWU/QmRVQkZVP05DMGAxdEJ9U0MmMFYhCno9VzxtZSFzSyt9P2tnSXRTUVU0STta
TjxuU1doaSVRQ1R9RjloJDwob1hILURJcHNick9FJCMmMHlTLUlGMHJ+RAp6cSNtMUNybEQyMiYp
NiY4cGs9IT53bj4lZmt4K0VHU3lkSVgzKmB5JWVLbkhxe0VwJTY4P2ZJcXZgcENFV2YtRDwKekdo
O0k3cGRFK3xnO3sycSNCXlRoQ19xb3RFeGAhdDdvYVJMXz9hQDNCM1ByQT1aNU4oMkMpRUhIO1o+
bkxFS3VyCnoxO21wWW1UbHxMPzd6Rm5RWSprRURNXzVRTDBkNVZkYlIhYUJ3WVBFRGhSVXtUM2wz
QiVmKyltVnhTNCYzRGxDSwp6RzJ6UD54bmdJdWpMVENwLXU4OEF0UCZKTmNwU2FHZ3Y5P0BpSjM3
MFFnb1ktTkdjcCQzR1BIZ20xcDRAJDRIWlQKemhhTEpTQk16Q3lMPm92fT5VbnRGJWJ3eUohMWgt
eGU3TFZzMm50c2xWc2ApSXE9Qj5uRmpyWSgrO3o2I3t0NSlkCnpZMCV4Q3A0eX1lIy19cFd0dXg/
RFFmSi0yKUB3QUk5RTtkfS0xVEsrdHg9dUJpMm8zUERrODc3aWZCaEhFQUAxfAp6MDQyc1NpT3hB
TS0zY29fPEMhdGBgSENmKDkrOHkyUzN8e2xvKyFjU0cyTTN3TCZfcGhTdzg7WVoldzY4VnY4Ym4K
el9tISV3Pk1aZSZtaEFDSzZSez40Q2FRM3xYTzdfYUU2NiQzUG84YnZ7eyhCOE4pPnNjJWZTSVUw
YWQwUWAybT89CnpvVkNBd2VlRjBIQDk5d01zaX5PbXBRMW5FSl5eKGc/PVhSZCgtTEs4V0A5e1Fg
QyQyWEVXP2coaUdDe2Z3TSgmIQp6Km9eRD5CQXlhJiZeRXFIPVZsdjZfYXRRTVJvUTBaRFR0PnUx
REkjcllAbW5mSilQUUsqXlFRVVA9c3ByQyNqcUAKejgoQERBXndeIUBFKUM+MXIrY0Itdkk9R3Yw
fkBjVjMjWWckbGRmZTw2eSVhQnNmOEN9SmFsQm8paldwYDhBU1h0Cnp3NSp7bCh8UGpPS0VJSCF0
RUpHRjtoQSgpRDVmZHw/SytUIU1wZ2x2P1RNJTVeeC1sUUkjXlUzKF5iT3RYLTxgTwp6bzBUVmdI
SVAoP3gtNFJSTERFeSQ2KjgoNiktIVJvPnF7azFDY2Y3VkpEcFgxTnVsZXokemZxKi15WWA0YVY0
PHIKelBfbD8/MGxLNDJaZ3NLY2lkKzh8ODBiMDwtQEplakBVRTJZYGNsT1hvYXBtNSRDZjNzZHIr
WS0/eVhMcSE7VV5SCnphVHVlWVVxWjwla35DeylVMCkoXmZ6MHpIJFZTa1J5OVNOcm98di1zcClO
Y2stTWtQP3VJOyFvTGhfM0d1RXBJZgp6SXtMc01wRnlrTlBoeUl8ckZmb3VGSD0wQiE4VXhsPGV1
IUN4eiMjMylKbWBISG00JWZiI0pMX0pIQzZIJDxMVGwKemYjaDFSZiY5JHFDPTRLIzsleGpZZSU4
Q0ckOC0lOD1xKS14V15KYVBxOE1kNDE/NG1IYSU4c30hd2AlYHFte0dlCnp7bFNadFBycG1najBY
PnFCP0diKF52WmZNRGgxUzVeITdHPzgpNFNWTm5hYDFESCQkczV2JiFGcyZwQTclUyhFQQp6cztp
OyhpemV3b1pAJElocz9JdEtZcCpmQTxua3NOS2tORyMpcH5zZ2kmOUtzX3A8TTs4Z3IqYzV+PVpR
c2w5KGsKelB0dTM7dFNrdDtmMFg1SFkrKVZBPno3djF5VT05PT1fYDhKKi1ATT4qKTByUntnX1I7
YEw7JmhPbW45K1VxbFdzCno/YjEmUzQqSVA1NU5jKntjb0tXYWJxXihiRmg+ZDYwQ3JBUiltQ2x5
Yl96KHRNTjcySD0pbi10NUxmUlNSbWN0JAp6SSpWfUVUIUlLRVV9SGx1NiZeYyt5PFo7ZnN4RmB1
S1ZMUU5LJDxmUmwyUWhxZFlkREFleCYoIWVZUGtWeUBGZWsKel98R1g/OCRFNU5kRj4+SUcwWm5f
X2hqWikmcjR7dy1pfHRORX0hWD1IaXwyKT9aaDBUWmJHWXVYZUdYT2cpbyhYCnpKaEZKMUB2JURQ
U05TUF44YEY9ZGV0KWBOakV5bjY/d18oJFhxP0haJmgoJDhvU3F5SSZDZ3opPTBtNVRtKCEhUgp6
em89ZWkwQm5EaUAjJW49U2F9R3JEX0p4Ml9LUm45Q3ZmRkgwV01aUVg+VnJBZXlXe3FRbDtyOUIw
bFcxZV4lU2wKemRWVzM+PTd2OGtwKT0qWEJpOCM/a3ckWjBmbVVqc0Ngc3h9WXtGcnxgXl5jTlMw
WDMqaGBVWkhveUVySmk7eDRLCnpvNysrfGwqPnQ9cT9DWUw+YV4tX052KCZIcyg/LSV2PlJpUXQz
TzRgKFY2dS1GJEs9NW5PeWVtQGU1S31DWCgxaAp6bkpIJj9lQVMwSHRnSzRTWXpHbmNgZEtHenVl
dHxOYSRoQ30jRSZRTClnOWRAZ3UwKTs5RnJAXlk7KHxQUFBrMncKeldpKGVPM3VoZDJqQjxEc249
OVdlVT5YKUpiPnU8IUc5XkE4KzJlZXdpQFJDQykhUnU9aF93OTspY3JfdXtiSUh2CnpqJHpobVNj
YmxgeGE2UWJUUGElaFE8NCRmeWw4bzhedTFDU20lK24+T1I8Z0wmSUwldztGOVhiUEIyUnpfc3Bz
KAp6ZlpFMEB7UjA4c00hVnZ2bDQrSH4tN2pwLTRwe3xnbzdMaFprO0dSKmU9QDFudF82O0Fjb0Ij
N0JsP3dWKHw/VygKemVlJXk8QnVETikpK2oyYVM0KWwjcTRkPzt2fDc8NUd6TH5LPHl0eThrO1Fx
O201PjNHe2gtd3YxMEN3SkhwYVJBCnoydzAmTSh0UjJsemBVcEAjPC0jWGlvXz9GKSV4Xm9zRE5f
QlRaX083eSl6PlByV3k/X2ZAYS1PTSMwbllyYDRLTAp6akpXMVFaR241TzBgekxIdTRoaV5qdFA8
UEF5RER6bHo/cHVWeDtCb0Y2SmFCTHt5OytFdWhZWjU7eXtaNShZJW8KeiExYn43cX1RemFzTSV8
eEVlO3k2VXJEemxNMiUpT1FlKDk9bE9zNFRFYGduRCZXQis7YUgtSiMwR1VlT2QwNklkCnpMbyh8
S2F7a35PQHVCYSNZSFR7byFEVH1eRlAjWjFaYC1vYCk2SGZxUGQ0bk1SVVgkaVU8YDBYbVkpZGBI
eU9Nbwp6X0xwbCQkOEhhNDlGamZzVyh1TXlTVzNHbWhCeFJDQk1YYS0lOShvS0QrKyFpJDlKNX0+
Wl9rbkVYMjApP15XZUQKenNPZEYoX08wLTtURHlWZnM5QDlkPW1SaXBXQXtZMFF+fE4mcUR5cUhv
aT1OKnlObWVIbkcpd3Jed1N9ZlhmKnBECnojbl82WDc8UWNVajVrSU92I2g0NWBGPHwodzJBWG1p
LXlhQG5eaU9HdVdGSSNyRjAxdURxZWNROGtUWDh1Mjk9Twp6MXApZSh3TWhvbDlJZmJkKmplbD5G
XmVgbGBLdnpiIS1LX0J3P3ttVnNOU3hGYFRxNmJ7Vnp4QV9LKSlIQ087OVAKejM3N154UH1LfmxF
S0khYGpOKGc7K21IXmUmSVd6UW5TT1dVK3JAKVpFVE4yKGRBe0duUDslYV45Z0NPK2B0ZT0zCnpM
d35SQmMleGNCPEw7WWFBOEwzQHZuNityX0FYcFImPTs2WkoyfHl1QWU/ZHJnMylUZmNvcWphWjJh
KD9Vanc5cAp6IylBN251YE9le3drcTUxZ3FHZ1d5IW0jcG5tPzV7RiFhRVV3UHl+IyYoeiE9Vk5e
ZH4hdDAtfmBQPGMzSHlMP1YKemUqZnFiWWJCI1JDIT93VTZQZ0BzU1Y/XlprWWwkZEQjNCpOfDFV
JH43dUAoblchRldgZUNmbmopTFJLMWdQSUZ8CnpVeWR8U0Z0MUVxJFhocXduQlR1JjlRfEp9eipA
TlplQTg4JjhSay0xWDFsM3hiV2pfPEQ3NmU2UEtrZEhMWSo9Iwp6T0d2WH55aFVuc0tBNm9KcH0o
cVdNclV+Uk9eZWNuek5LRjlaSVhTZEthNFlSezR4fXg5WEt4VTAxNzFGRl5MKVoKeiFlQkt2REN4
QVg9OTM1VWUhPHBvZ0dUV1p6R2pBTyF9YTthbHQ0cGNkZj98dlchdWAjUClrKlY3YilralNkcnkh
CnomZmg2bkY7UGFuX2tmPmwwTU9wOzJFdUY1am9SSmB8RiElekN5QiMkSmZsMmFfdD5ifTVrVFdq
OUMqM0gqQnJGTAp6emNJJWo0KSNOPnJNfWxmQ2RxMnUlPmBaVUZhXmdmV3JIamBoJXdpdW9OWj1p
KyE/Xz1GZGxSYkI2ezJmMG1We1YKelNyOV5BaUUqP3R3ck50bVdPQ1Vqa3pPfUAqfjdwb187NWVZ
NDBRPmc0UFpia2RgPUJPQShoWUwzNFoxXlA0ODslCnpZQTFtKElSezc1aT16PVk9fkUrMzNqcmZB
QjFFcjExaD8mT3NFPFdSZkskfTA/bGUjOGc/SGdeWnxeN2hKU34paAp6TX5IMnRDTDlXPDk2Yzh2
aGBxMFFzVDVSbC1jOWxZSXdQJm1FKn5gYW5lfWk1KHozM0MoZTZ1JjU+dUFkIUl0cmsKendCY3Y/
SDBSI2UqflE3KXdre3ZYZ2JvWiVZWGdpUz8/akFST3M2PDg/diM3SkZSc2FRTEhvaW9kajR5IXIz
aE4rCnpJUC1IPHtQMz9yZERUN3NFK0kmTCk+NV8/UV5BZzxiYDtffXJtSyN6dHlvcGIrQjZNdUpY
U0FibSMyMmpiVjRGJgp6QWBZVE1lJlg5UGJEPyZtdjJWeUVIbkVeYShicmhZd1N4QXcle3tHVE5M
bylRZUlmKjFDS2FBaiMyUHdaanVRODkKempnPkd5YSNoOWtLSCs5bCtsdEJjR0duS354PTY4M0lS
MGApNkRaWFV1QGMmZ3t3Q01GWW40TSVPTlpLTksxdXw3CnpgKU5iKl49cDB9X3k8JHhZNG0oJl5y
eFZlbH4mM2JGTFpOSXFyJllDY25hPGB2VWEtOEtVU0c9LXE7O1FOZmBvKQp6SWlZLUQhcTIpVUNv
VXQ9IXVSQylxR1Awb2NMe1lkUG89YzNpbjUxe1R+KzhBN0t9alV5SFpVK15KKl57bE9OIUQKekkx
X0JqMGhSYE1IQHFZdzlrNUdtKUc7WHQqKjc/Sip8P3tWTU5xbm1DcU4je2xWNl4lQThvNGhLYDk4
eXMqWlkzCno7dkA3KSNCdGZhcUlBXyZfMDs5XzliTVBtVlhOaWN4UmZiUElUT0I/T1pSc2lFe3Bp
NC01TnNrRFdrLUpPR2N1Pwp6ckB0WF8jSzwhalg3Zlhjck1RMU1qOStgRWg5XitAMCs/YE94QU9x
PzwjZCVSWkE5MmdrKV51M3MwWjw3YS10QVMKelduXyozVU05dFI+V1hvMkprY3BOOEF8WlIpaFFG
R0MpJFk9Nns9cj89d0tTKytgKXJeOTVxNXBPJnEwNzxNUzJACnopcUdHMExYI3dEU3skWTgldXhh
VT9ONE9lVDg/JGBhI1NAeXp1aDQlez5wZVhmfFYxajhAal89NldSI1Vkb2p6NQp6WThhZFU8IUsw
ZXh2dj9xYjNXUFZtdVElOHlsdmEzVEBSODE3cn5raUl1TzJDREd5a20oe2AxPUokQF9PKFIrOTYK
ek0qRFFjez9fTW9OIS1gOUJCfiYjRTRFcnE1SWNvfCR9TiZZPF9SLUR1TipMI09EUmN7eEI3YTFp
YE02SHBXXyE7CnpwKXgzcGdBMG5NNm0xdzNjLXlBdkc1djxKYi0tZj5sZkByNEQ/VGsrMWp9JXdF
UFNSRWRvdTJzQHlrcztQciZsWQp6YHlzQzUyU0AteiVASjhqcEQlSjtEPmI5ZTdCNX51LXVrXlY/
dE1GQFo+fn1YTURTJnByVGxXZGlBTUdjRXQ8bS0KekhXPm54c0x1ODc1WHVGNzc+e0lmRT1PR3cy
WHFHXk0jMiQ1UEBzTX5oQjlJX1pte3ZVR2dpTkBYXjFMfjBDdClnCno3JDhXaU4lKHZeYGleO20y
d1IoUG85R1RgV1JZJnUtTUBnfElYd2xQbDw8MUw/SCNrQ3ZuTEMyYSNLZmtqTjFvVAp6YV9WVEYo
Mml9YlBoPkk0VHs7X1VZdkZLVXs4e3tYa15AR1BwNF50amZoMUkrakZycGxWZjdyfTJJeWgoOVJe
VFoKemhVS3M+NXtTaGZYMmJKcCkzRmN5cDxXbzNuTH5xflJpeGYhQX5kNnQyJm8tSCRjS0pqLWxi
T2tWSl9mMkJuWGVyCnowbjhsVSlDWWlsQ1RsRzIqcGB7X2ElUTZXXkNxZ2phWSNaWkgyX2U2dmRn
LSlIUFFpVWp0YzAxIUg0KG5xSD82Nwp6UlN1S2s1MTVvLUdjXit3c1hfNkEwSFh+S0Q8QkU1SWgx
UVg2O21aQmd2VG5OX2EkP0A5aHdTe1FhRDZGZmxaWUgKenZWbG1OTmQlO1F7O2J7cF9vNmhWN0dM
cDxHdUFocThxIXtVMlBgamc0UlUlPDZeQGw/ZmR4Z2ZoIztAMS0xe3h7CnpsSml4N0hqfDQyI1Al
QmJleT1lMztnQkV1OTZzNm9CUXhnfjM1QEt8cTtaSD4yZFUtYSRaQFdkK15NMm4+UW5pQAp6aTA8
MWFwYzRWTChlTGsxNjt5VE0qUzBNRGAjJmQmblRGQXx0ZU0oZWNlXlFUPTQ+Nms+cERsNmg/WU1A
a0VsaSsKenI9VkU2ZyNkZF84RHRFKVg0SGwzNUwzRSpqemNUUj5MKFFlLThYOFUxajhIT2hPeDE4
QU5TRF8kS1kyc3dnZypzCnpgPF5vKUpGeyVjSTZlJEpqe2EkMGcqN0FpYzVCZ3JQUSY7fCZ4eHQ4
d0BxbVomcXZ6VztAO2gjMFAjXk5aSkQwMgp6cCYzd3c5bUdMWWtCRmRWNU4jVTZAbE9ISF5PeCo0
OzxTS2EpWDRAa012SWV2byU0VVUoTjwtckZyVGlCbXM9ITkKeiFldHNaMUY4flFhKHlsYEgqbH17
bipBcV5id2NKPEFvYVJLRCN6TlMkPks7KUZrbU9nOFEhejRnfCMhTytZP21fCnpJSU8lSmNTNyht
OVljRXlEKyhzYmRzZyhCZ1VmS0wqTCMreFVXTX0rNTxTWHs4eWZFfmRjVTgpSzI7UmhCSHhQJgp6
VUNqS2tGdVg7T0ZJTF5EOHRpP2NRPVUqMXh8OWR8eEpOY0NGYkA1eDVmSlhPMmtLfTFLdiQjTUQ2
TkByQDttZFEKemthMmw+cmY8Z0YtP0NaTlJlKW42a1J2dVUwRmgzQ3p0SiMqXitodjcwb3hLcSFL
fG42Q29lUW1rS28tVjUhbilACnpVP0tTUk5hKUhCPGBZWG4qa3YhQForOWNkeVBMJCZZVGk9cXVP
bFQ+V2tqUU97dWVKcUxRZF5oJERVRjRWeT0hYwp6cG4+USR4SGBkN3MoYV5+cX1JPjF1I2JBMWUj
JD51OGF1S1NyQXIzKnxESSttYXtDcUFvIzRveFpyVnk8VHJOYWsKemB1LUxwZn1gaVlHbHc0TClC
WlVuQCFNeXhqb2FQTUBrZyszZX58dSp0eWFNYk1RSlc4bVNAKUFuO0I1YGFNKy1sCnp5Sy1OdyFI
Pmcwejw4TW5NTWQ3V1dmMkEle3lBZz18Q01weVVzMyROX3RUWTs9Rj9ZU1hAfjlCLXY2SmcwcG5i
OQp6QFhvQld7K2lZVXp9fD1ESjxgPnpCPm8hKEtvWW1tP1JUaj9iP0VuYCFzMmV9YStUZ3glYEBD
UVlMO2tqP3E/TikKejNXb1o+ZUdgdEUyTCZFX3l1a2YpWWpjd1FJUzt3K2RzZkVXK1B3MUhEWm9s
MD9wKmZJIU9hXn4kTnxlayk4NT9LCnp5aShOPUM/OzExXkd8UU5maFNOc3shZ2QmRWt3b0xrSzxr
NzFSRTlMVUBmcWRaKEAyU2dRdyY5dnskfnYwSTUxVgp6IUJpVz5GJDk3K28qOUU5LWpgUGEkXkpQ
PHlIXig3LV4oYyh1bXRxYmFnbDdoYjxRYmcoVylFKGBPejMzWnkqVWUKekxuKV9uQm91WE9SemR7
NTA/UDNaRUNRfVhDMWpkZUwtTzY+TU9FWFgmREhKQkgqeiVGeyl9Vk1wI3U4ZWdDSE9pCnpCYFd8
Zmg+LThkSUN0QSlKa3F0KHJQdEt+RlZ3Rj5hZ2JhJjYzVClCbWMlVGUqcXFnKGZsV0tJayhAWl5t
PE9eZgp6OFd2dUhab3Q+Kzg1dUdIO08pPD5AQng2IzRUI3xFUXlXXk5mflplYXo+d3hsP0V9dXpJ
aiQ3NTIyMDFgI2s5QWAKenQ8JG1PT28hdnRxKmZGbUpoNWJuKzJublRUPiVYaih0KlVvV0NQYTJi
ZEpYbjJKfEV2b2A0dzZvQ1Z3bz9pazRyCnpPK1pwaHgxVzA/bEVwY1FSRGl5UCtmKTcpR1Ala2pA
KWxUZEpRT0chbG5fOWxFejEyPkpPQmFScXY2cG5tU1VWZAp6bER9fkZKUjxwLStTYSpUPDsrRW9V
clNrd0VZfChXOz5hPXlLKmY8N0xxfVZ0V1NWNGtuNGltbVl8OV54dk9KMFAKekxJNy1aUzQ9bTBt
QCtARWh5K1JhZVo1Sm9DT15JSWloO1lSbFZkTHN1N1R+RDZsMUJBVzR5bl5aNXl9ejBuMHgwCnpt
a2ZYKSQ+I1Y1ckI8WVhMX3A9SjhSfiVnVTM5MG9kY3Z1OWokX25vZEhKbThFKi1hX2NxTFY+LWZs
KkhwdkhzJQp6X159ckg1XjxgO0diNEp2Q1ROUVcwQ0I8VTRzMEluO2AzbzxgKmNUbCVgZ0IlODha
fjYqMnUoeGNFZFR1YFMkMFAKelpofVdSRUhfdnVNezRhbTQ7ODRjbSk0SnYzU30meDFaJHQ8clJQ
KzJHQEhHY3ElM2lnXm9hV2NBZUwmSHJ2QUZnCnpWKlM+ZV87N0JiUCZmQitAalp8QklSeGNHaEZC
dEhHKUI9Um17dV9gTStiYW0tYEI/U0w8UUJOK08pKE5IUWs3WAp6I1h4S0dBPXZ9bG55YExUMylO
Kl4+aGZDRFlvXncyTDZ+PVJYY2Z1N0wjP0pRWmRSI05leCF+SDY1THZiRUVVN2QKellJKkxYSnU5
I0UqcXckUE11fnFzd2kxUUxrKl9UTHFCdDted0szVVQ7dClsWnNaPFpCbllza3oyQWUpTXNqIyVw
CnpYdztHTHw4Xkd+RGRHUmdebUJDSGYlKGglcTctOCE5ekZhYjxLQ2UjOUJZYC1QLW5EODFYP2c0
VWRHWENofiF1UQp6USNARVlDUXZaM3BWZ2RnPEx8USR6TFZBYnZCJnFxNk0xMzVrUHJhUDhnYUNM
SlclcjB5aT0rKCRVaUxfZ0p4dEAKenohQ2N0cy0qIVB5Um5eQUhYNUxOQkAmSnxuMUplWmJKcGdt
Wm9meXNsRV9eVzd4ZT9rbSYqaSZ4NHBqLVJNXzV+Cno8fDx0OHpMPnJRe3ZIbHdJRilhd3FXQHpX
RkJBfU10YX0qbzhAS3s1d0QjPVE0U013USUkQzMrMUpgJjlJYytLNgp6bGg8XilkV0dgdXxBeFQz
MXc9Jno5PiRfWV4/cW0waHF8Vn5icntESipFY19VVWt6bD1wPVF6bCtUNE1nMVJXNH4KenhWU14h
WVJnQmhLclNWcFl+NH5oemElezUlOTZHR3lkX2YzRE0palBzVlF4bGRsJntsX0Y1a2Q2RX5MPTxf
K1pBCno+TCpIRDQmdmYqWClmdj5eVV5JSiNxUWchK2lEIVVYKn0wYEJANExlT3BCa04qYThNXmIt
QiglPyhOXzVUPmQ7Tgp6VjJsMWREbyNaRmk3RjF9YGZ+dCo5UWh8I2Fxe248dzlZWVF8RVlqTG5m
P0N+RUk4OFZaemk8YWRWU2NMQVM9MkIKejBkYS14KyRvSVpfNW49VDNkdzFNVFFIVU1JWGxPTU9C
YWtYSm9hd0U3KDJ7TzliZH4hPU92fVQqeig9Q1I+MDVwCnplNWRqPmV0JEZVQkxLRU9lbE9pKmFj
LTBXbjJGTUY1d01BQDlzfEpZQGRzeXYtKz02dTN4SVFRMXd9S1BYbE80MAp6aFczVmNKcEIhI2Jh
QkFRc1d1THpPfFctUlNtNUVvVH1oaUFlcG82bnZQeEEwY0pvJmJyX00tbyQ/YUZyKnUxKzYKekYh
QlFrIWYldHB5a1E5fUwpNnhQXlg/Q1RrLXJZRHt4c1F+VmxsOWNiSmYkRXROI2ome0h8dUhGTVZe
MGNZJFR4CnpeJX5zbCROeE5fS00mfT87cW1IRTFwUFQ7fDJDNjxhP3FiN3thO0chZjRocFFzSUdx
RTt5Tkl+YE0mX2FoPUQpUgp6XmUzQUJrRTd7TjFwTlZ4ZV5CKipOIX53ZyREaDlKVSU+dlNhc0FX
VHxDaVUke25PZTFwKzVlRlNidztvS2poaGUKel8xSGhgO3ZmMztVdU85YUttQ1dtfDFCVz0tJlEh
KmJvTS0jLSY0Rk1zfUtBS1JqekNMQ1lLQlVhKHdoWjBCZCZjCkFsPmgoJAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9y
bXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgxYzdiMWIxY2E3ZGM1YTkwYTJkMTQ5ZDAxMmRlMmM1Zjk3ZDEwNTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAg
ICAgUmVuZGVyQmxvY2sge0ZPUk19IGF0ICgwLDApIHNpemUgNzg0eDIyCisgICAgICAgIFJlbmRl
ckJ1dHRvbiB7SU5QVVR9IGF0ICgyLDIpIHNpemUgNDJ4MTggW2JnY29sb3I9I0MwQzBDMF0KKyAg
ICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoOCwyKSBzaXplIDI2eDEzCisgICAg
ICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgMjZ4MTMKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMjY6ICJmb3JtIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM4KSBz
aXplIDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NjV4
MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODg6ICJUaGlzIHRlc3RzIFRh
cmdldHRlZCBmcmFtZSBzdWJtaXNzaW9uIHdvcmtzLiAiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDI4OCwwKSB3aWR0aCA0Nzc6ICJJZiB0aGUgdGVzdCBpcyBzdWNjZXNzZnVsLCB0aGUgdGV4dCBc
IlNVQ0NFU1NcIiBzaG91bGQgYmUgc2hvd24gaW4gdGhlIGlmcmFtZSIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxOCkgd2lkdGggNDM6ICJiZWxvdy4iCisgICAgICBSZW5kZXJCbG9jayAoYW5v
bnltb3VzKSBhdCAoMCw3NCkgc2l6ZSA3ODR4MTU0CisgICAgICAgIFJlbmRlclBhcnRPYmplY3Qg
e0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAzMDR4MTU0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAw
MCldCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMzAweDE1MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMzAweDE1MAorICAgICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDI4NHgxMjkKKyAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayB7UFJFfSBhdCAoMCwwKSBzaXpl
IDI4NHgxNQorICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNTZ4MTUKKyAgICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTY6
ICJTVUNDRVNTIgorICAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTYsMCkgd2lkdGgg
MDogIiAiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MGU4
OWFlMzNlODc0MTg4NWZmYTVlMjhiMjUwNmM3MWM5OTNhYzNlLi5kMWRmNjMxZDcwMzgyYmE4Y2Jk
ZWFlMDI2NDI4NTVkN2M1ODYxNmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEwLTExLTA5ICBEYWkgTWlr
dXJ1YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZm9ybWFjdGlvbiwgZm9ybWVuY3R5cGUs
IGZvcm1tZXRob2QgYW5kIGZvcm10YXJnZXQgYXR0cmlidXRlcyBmb3IgdGhlIGlucHV0IHRhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDAKKwor
ICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLmh0bWwKKworICAgICAg
ICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBmb3JtYWN0aW9uLCBmb3JtbWV0
aG9kLCBmb3JtdGFyZ2V0IGFuZCBmb3JtZW5jdHlwZSBhdHRyaWJ1dGVzCisgICAgICAgICogaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmZvcm1BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1D
b250cm9sRWxlbWVudDo6Zm9ybUVuY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1D
b250cm9sRWxlbWVudDo6c2V0Rm9ybUVuY3R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZv
cm1Db250cm9sRWxlbWVudDo6Zm9ybU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Ojpmb3JtVGFyZ2V0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6IE1vZGlm
aWVkIHRvIGNoZWNrIHRoZSBwcmVzc2VkIGJ1dHRvbiBhbmQgaXRzIGF0dHJpYnV0ZXMKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6c3VibWl0KToKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20p
OgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorCiAyMDEwLTExLTA0ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBI
eWF0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGQ5NzU5ZmNkYjBhODI0MDFh
M2YwNWY1OGFhYWJkOWRjMjJjNjQ2ZmYuLjA3YzA1NWViMzdjZDNlMTdjMDU1YWM1MmJkMTcwMDA0
MDA1YmQzZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTQsNyArOTQsMTEg
QEAgZXhwYW5kZWQKIGZhY2UKIGZvY3VzZWQKIGZvcgorZm9ybWFjdGlvbgorZm9ybWVuY3R5cGUK
K2Zvcm1tZXRob2QKIGZvcm1ub3ZhbGlkYXRlCitmb3JtdGFyZ2V0CiBmcmFtZQogZnJhbWVib3Jk
ZXIKIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4
ZmEwMDBmMWIxYzdhMTQwODBmNjdlNGNlOTc3MmYwNWVkODJiYjQ1Li5hZDgxNTFhOWRhNTZlMDk1
ODNiZTUwOTc5YzJlNWVlMDk1MzdkMjdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCkBAIC04NCwxMSArODQsMzYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpkZXRhY2goKQogICAgIEhUTUxFbGVtZW50OjpkZXRhY2goKTsKIH0KIAorU3RyaW5nIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmZvcm1BY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBnZXRB
dHRyaWJ1dGUoZm9ybWFjdGlvbkF0dHIpOworfQorCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Zm9ybUVuY3R5cGUoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoZm9y
bWVuY3R5cGVBdHRyKTsKK30KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRGb3Jt
RW5jdHlwZShjb25zdCBTdHJpbmcgJnZhbHVlKQoreworICAgIHNldEF0dHJpYnV0ZShmb3JtZW5j
dHlwZUF0dHIsIHZhbHVlKTsKK30KKworU3RyaW5nIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZv
cm1NZXRob2QoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoZm9ybW1ldGhvZEF0
dHIpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvcm1Ob1ZhbGlkYXRlKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShmb3Jtbm92YWxpZGF0ZUF0dHIpLmlz
TnVsbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybVRhcmdldCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShmb3JtdGFyZ2V0QXR0cik7Cit9CisK
IFZhbGlkaXR5U3RhdGUqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbGlkaXR5KCkKIHsKICAg
ICBpZiAoIW1fdmFsaWRpdHlTdGF0ZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CmluZGV4IDE5NjBmYzM0ZjI4OGRhMzU2MmVlNmNkMTc5NGFiMzkwN2JlNTkzYTMuLjJjOTkyNTUw
NzJhODM2ZWI5NWJhNWIxMDcwODM4MjY2MGM1NDhjODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaApAQCAtNDQsNyArNDQsMTIgQEAgcHVibGljOgogICAgIEhUTUxGb3JtRWxl
bWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybTsgfQogICAgIFZhbGlkaXR5U3RhdGUq
IHZhbGlkaXR5KCk7CiAKKyAgICBTdHJpbmcgZm9ybUFjdGlvbigpIGNvbnN0OworICAgIFN0cmlu
ZyBmb3JtRW5jdHlwZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3Ry
aW5nJik7CisgICAgU3RyaW5nIGZvcm1NZXRob2QoKSBjb25zdDsKICAgICBib29sIGZvcm1Ob1Zh
bGlkYXRlKCkgY29uc3Q7CisgICAgU3RyaW5nIGZvcm1UYXJnZXQoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCByZXNldCgpIHsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IGRh
Mzg4ZDVjNjUxYjljMzA5M2ZkOTg0MWQyNTI4NzFkMzk2MzU3ZjIuLmE1ZDBkZWQ0NTI4OGJmZjll
NjAwZmU0N2YwOWNhMzAzNDg1NjdmODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0z
MTEsNyArMzExLDI1IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50
LCBib29sIGFjdGl2YXRlU3VibWl0QnV0dG9uLCBib29sIHByb2NlCiAgICAgaWYgKG5lZWRCdXR0
b25BY3RpdmF0aW9uICYmIGZpcnN0U3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbikKICAgICAgICAgZmly
c3RTdWNjZXNzZnVsU3VibWl0QnV0dG9uLT5zZXRBY3RpdmF0ZWRTdWJtaXQodHJ1ZSk7CiAKLSAg
ICBmcmFtZS0+bG9hZGVyKCktPnN1Ym1pdEZvcm0oRm9ybVN1Ym1pc3Npb246OmNyZWF0ZSh0aGlz
LCBtX2F0dHJpYnV0ZXMsIGV2ZW50LCAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBmb3JtU3VibWlz
c2lvblRyaWdnZXIpKTsKKyAgICBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlcyBjb3BpZWRBdHRy
aWJ1dGVzOworICAgIGNvcGllZEF0dHJpYnV0ZXMuY29weUZyb20obV9hdHRyaWJ1dGVzKTsKKwor
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGJ1dHRvbiA9IDA7CisgICAgaWYgKGV2ZW50ICYm
IGV2ZW50LT50YXJnZXQoKSAmJiBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQorICAgICAgICBi
dXR0b24gPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZXZlbnQtPnRhcmdl
dCgpLT50b05vZGUoKSk7CisgICAgaWYgKGJ1dHRvbikgeworICAgICAgICBTdHJpbmcgYXR0cmli
dXRlOworICAgICAgICBpZiAoIShhdHRyaWJ1dGUgPSBidXR0b24tPmZvcm1BY3Rpb24oKSkuaXNO
dWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlQWN0aW9uKGF0dHJpYnV0
ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZSA9IGJ1dHRvbi0+Zm9ybUVuY3R5cGUoKSkuaXNO
dWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlRW5jb2RpbmdUeXBlKGF0
dHJpYnV0ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZSA9IGJ1dHRvbi0+Zm9ybU1ldGhvZCgp
KS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VNZXRob2RUeXBl
KGF0dHJpYnV0ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZSA9IGJ1dHRvbi0+Zm9ybVRhcmdl
dCgpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMuc2V0VGFyZ2V0KGF0
dHJpYnV0ZSk7CisgICAgfQorICAgIAorICAgIGZyYW1lLT5sb2FkZXIoKS0+c3VibWl0Rm9ybShG
b3JtU3VibWlzc2lvbjo6Y3JlYXRlKHRoaXMsIGNvcGllZEF0dHJpYnV0ZXMsIGV2ZW50LCAhcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlLCBmb3JtU3VibWlzc2lvblRyaWdnZXIpKTsKIAogICAgIGlmIChu
ZWVkQnV0dG9uQWN0aXZhdGlvbiAmJiBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24pCiAgICAg
ICAgIGZpcnN0U3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbi0+c2V0QWN0aXZhdGVkU3VibWl0KGZhbHNl
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBiODczODI2ZDE0MzZlNjYyMGIyMDhj
NmE3NGNlYjIyYmFkN2ZmYzI5Li41OWQ3NDA3NjNhMGM4MTE0OTdlMmE4OWFiNWMzMWIzZWNmN2Mx
ZDMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCwxMSBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBkZWZhdWx0VmFsdWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGVja2Vk
XSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TEZvcm1FbGVtZW50IGZvcm07CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01T
dHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xl
YW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGZvcm1UYXJnZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZh
bGlkaXR5OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2NlcHQ7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2Vzc0tleTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcAppbmRleCBmM2YxOWQyODA2YzU4ZDY1MGZhZTViYThmNTM0OThkNWRl
NWMxOTA1Li5jNGVhNDkxNjI3MGU0MTYxOGUxMGQ4NDM1NjJlMTk4NDkzZDI4ZDk0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xMTAsNiArMTEwLDE1IEBAIHZvaWQgRm9ybVN1Ym1p
c3Npb246OkF0dHJpYnV0ZXM6OnBhcnNlTWV0aG9kVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAg
ICAgICAgIG1fbWV0aG9kID0gRm9ybVN1Ym1pc3Npb246OkdldE1ldGhvZDsKIH0KIAordm9pZCBG
b3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20oY29uc3QgQXR0cmlidXRlcyYgb3Ro
ZXIpCit7CisgICAgbV9tZXRob2QgPSBvdGhlci5tX21ldGhvZDsKKyAgICBtX2FjdGlvbiA9IG90
aGVyLm1fYWN0aW9uOworICAgIG1fdGFyZ2V0ID0gb3RoZXIubV90YXJnZXQ7CisgICAgbV9lbmNv
ZGluZ1R5cGUgPSBvdGhlci5tX2VuY29kaW5nVHlwZTsKKyAgICBtX2FjY2VwdENoYXJzZXQgPSBv
dGhlci5tX2FjY2VwdENoYXJzZXQ7Cit9CisKIGlubGluZSBGb3JtU3VibWlzc2lvbjo6Rm9ybVN1
Ym1pc3Npb24oTWV0aG9kIG1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJpbmcm
IHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5
LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICA6IG1fbWV0
aG9kKG1ldGhvZCkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmggYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5o
CmluZGV4IGI5MzU4ODJjNDExNTViOGVlYThkNmI1NTRlYjRhNmFhYzc3MzJmOGEuLmQ3MjQ4MzU3
N2NkMmRlMjQyYmY3Y2I0YmQzZjU5MThlNzkxNmIyZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24u
aApAQCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXB0
Q2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0Q2hhcnNldDsgfQogICAgICAgICB2b2lk
IHNldEFjY2VwdENoYXJzZXQoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2FjY2VwdENoYXJzZXQg
PSB2YWx1ZTsgfQogCisgICAgICAgIHZvaWQgY29weUZyb20oY29uc3QgQXR0cmlidXRlcyYpOwor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgTWV0aG9kIG1fbWV0aG9kOwogICAgICAgICBib29sIG1f
aXNNdWx0aVBhcnRGb3JtOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73579</attachid>
            <date>2010-11-10 21:22:46 -0800</date>
            <delta_ts>2010-11-11 01:20:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101111142245.patch</filename>
            <type>text/plain</type>
            <size>16898</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOTljZWQxYzhhMzFmM2Y3MDViZWI3ZTA1N2ZiMTgyYWRhZGRhYmIwLi43NGFkZjg0
OTAzODYzZGRlNGFlNmE0MGI1ZDQ2YWIyZmI2Nzc5NDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciB0aGUgaW5wdXQgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTI0MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWFjdGlv
bi1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9k
LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9y
bW1ldGhvZC1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTExLTA0ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE2
YzZjODFmNzdhNzkzMjc4YjQ1YTQxZTFjZTY2ZDdmMzFlZDRhYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlu
cHV0IHRhZyB3YXMgdXNlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlv
bi1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRy
aWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWU4OWRlN2E4Nzk4ZDZjOThkOWRiNzA5NTgwMDk2N2Jl
ODAyMWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0
aW9uLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvbmVB
Y3Rpb24gPSBmYWxzZTsKK2Z1bmN0aW9uIHRlc3QxKHVsKQoreworICAgIGRvbmVBY3Rpb24gPSB0
cnVlOworICAgIHRlc3RGYWlsZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgaW5w
dXQgdGFnIHdhcyBpZ25vcmVkJyk7Cit9CitmdW5jdGlvbiB0ZXN0Mih1bCkKK3sKKyAgICBkb25l
QWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUg
aW4gdGhlIGlucHV0IHRhZyB3YXMgdXNlZCcpOworfQorPC9zY3JpcHQ+Cis8Zm9ybSBhY3Rpb249
ImphdmFzY3JpcHQ6IHRlc3QxKHRoaXMpIiBtZXRob2Q9ImdldCI+Cis8c2VsZWN0PjxvcHRpb24+
QTwvb3B0aW9uPjxvcHRpb24+Qjwvb3B0aW9uPjxvcHRpb24+Qzwvb3B0aW9uPjwvc2VsZWN0Pjxp
bnB1dCB0eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHRlc3QyKHRoaXMpIiAv
PgorPC9mb3JtPgorPHNjcmlwdD4KK3ZhciBzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnc2VsZWN0JylbMF07CitzZWxlY3Qub3B0aW9uc1syXS5zZWxlY3RlZCA9IHRydWU7
Cit2YXIgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdOworeC5j
bGljaygpOworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggYWN0aW9uIGFu
ZCBmb3JtYWN0aW9uIGF0dHJpYnV0ZXMgd2VyZSBpZ25vcmVkJyk7CitzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzllMGJlNWE1ZGVmZTU3MjA3MjE4Y2JiODBjY2NhY2I5YjkxNGJi
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBUaGUgZm9ybW1ldGhv
ZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlOTU1OWJjZWYxYWM3MzJl
ZDg1Nzk2YmE1ZjI5MWMzZmY1Yzg1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0
IiBhY3Rpb249Ij8iIG5hbWU9Zj4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRk
ZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiI+CisgICAgPGlucHV0IGZvcm1tZXRob2Q9InBvc3QiIHR5
cGU9InN1Ym1pdCIgdmFsdWU9InByZXNzIG1lIiBuYW1lPWc+Cis8L2Zvcm0+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2lmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikgewor
ICAgIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAgICAgIGRvY3Vt
ZW50LmYuZy5jbGljaygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVudC5VUkwu
c3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwubGVu
Z3RoKSA9PSAiIikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJp
YnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcpOworCisg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfSBlbHNlIHsKKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBkaXJlY3RseSBmcm9tIGJ1Z3ppbGxhLCBw
bGVhc2Ugc2F2ZSBpdCB0byBhIGxvY2FsIGZpbGUgZmlyc3QuIik7Cit9CitzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEyMmI4OWY5YTRlOGM4MThhMTE5Zjg1MmIxNTc0ODc3ZWFk
MDYxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdl
dC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBUaGUgZm9ybXRh
cmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjI5ZDYwMTgx
YzMyOWY1MjM2MTAwZmFlNjViNGU5NmYzZTMyZWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsNTQg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB9CisKKyAgICAvLyBOb3QgZHVtcGluZyBhcyB0ZXh0IHNpbmNlIHRoZSBEdW1wUmVu
ZGVyVHJlZSBkb2VzIG5vdCBkdW1wIHRoZSB0ZXh0IGNvbnRlbnQgb2YgY2hpbGQgZnJhbWVzLiAg
ICAgICAgICAgICAgICAKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xvYWRCdXR0b24nKTsKKyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVuY3Rpb24gcGFzc2lu
Z0ZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3Np
bmcnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVy
bjsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3Nm
dWxseSB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBmYWlsaW5nRnJhbWVMb2FkZWQoKQoreworICAgIGlm
IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbGluZycpLmNvbnRlbnREb2N1bWVudC5VUkwg
PT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBm
b3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgbm90IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQ
YXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4
dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbGluZ0ZyYW1lIj4KKyAgICA8aW5wdXQgdHlwZT0i
c3VibWl0IiB2YWx1ZT0iZm9ybSIgaWQ9ImxvYWRCdXR0b24iIGZvcm10YXJnZXQ9InBhc3NpbmdG
cmFtZSI+Cis8L2Zvcm0+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzaW5nIiBu
YW1lPSJwYXNzaW5nRnJhbWUiIG9ubG9hZD0icGFzc2luZ0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1l
PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0iZmFpbGluZyIgbmFtZT0iZmFpbGluZ0Zy
YW1lIiBvbmxvYWQ9ImZhaWxpbmdGcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxzY3JpcHQ+Citz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVu
Y3R5cGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMxZjA2
MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIG1haWx0bzo/Ym9k
eT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUlMjAxJTBEJTBBTGluZSUy
MDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0aCBuYXZpZ2F0aW9uIHR5
cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwgPiAjZG9jdW1lbnQKK0Zp
ZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NGQ5ZjFiODZm
OTMzYjIxZGNlMDg0YWMxMmE5NWYxMzNmNmZhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUuaHRtbApAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJtYWlsdG86Ij4KK0ZpZWxk
IDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSI0MCIgbmFtZT0idG8i
IHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRleHRhcmVhIG5hbWU9ImJvZHki
PkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVhPgorPGlucHV0IHR5cGU9InN1
Ym1pdCIgdmFsdWU9IlNlbmQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBlPSJ0ZXh0L3BsYWluIj4g
Cis8L2Zvcm0+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxl
Z2F0ZSgpOworICAgIH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0IikuY2xp
Y2soKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkwZTg5YWUzM2U4
NzQxODg1ZmZhNWUyOGIyNTA2YzcxYzk5M2FjM2UuLmQxZGY2MzFkNzAzODJiYThjYmRlYWUwMjY0
Mjg1NWQ3YzU4NjE2ZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAg
PGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtYWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1l
dGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVzIGZvciB0aGUgaW5wdXQgdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0MAorCisgICAgICAg
IFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZGVkIGZvcm1hY3Rpb24sIGZvcm1tZXRob2QsIGZv
cm10YXJnZXQgYW5kIGZvcm1lbmN0eXBlIGF0dHJpYnV0ZXMKKyAgICAgICAgKiBodG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9s
RWxlbWVudDo6Zm9ybUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojpmb3JtRW5jdHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpzZXRGb3JtRW5jdHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojpmb3JtTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OmZvcm1UYXJnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDogTW9kaWZpZWQgdG8g
Y2hlY2sgdGhlIHByZXNzZWQgYnV0dG9uIGFuZCBpdHMgYXR0cmlidXRlcworICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1FbGVtZW50OjpzdWJtaXQpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5pZGw6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzOjpjb3B5RnJvbSk6CisgICAg
ICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmg6CisKIDIwMTAtMTEtMDQgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0Lgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggZDk3NTlmY2RiMGE4MjQwMWEzZjA1ZjU4
YWFhYmQ5ZGMyMmM2NDZmZi4uMDdjMDU1ZWIzN2NkM2UxN2MwNTVhYzUyYmQxNzAwMDQwMDViZDNl
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC05NCw3ICs5NCwxMSBAQCBleHBh
bmRlZAogZmFjZQogZm9jdXNlZAogZm9yCitmb3JtYWN0aW9uCitmb3JtZW5jdHlwZQorZm9ybW1l
dGhvZAogZm9ybW5vdmFsaWRhdGUKK2Zvcm10YXJnZXQKIGZyYW1lCiBmcmFtZWJvcmRlcgogaGVh
ZGVycwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDhmYTAwMGYx
YjFjN2ExNDA4MGY2N2U0Y2U5NzcyZjA1ZWQ4MmJiNDUuLjZlZDdhNzQ1YWMyNDJmZmM3Yzk4ZjYx
ODA3MThlYTFmYzA2ZWNkNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTg0LDYgKzg0LDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGV0YWNo
KCkKICAgICBIVE1MRWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAKK1N0cmluZyBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojpmb3JtRW5jdHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0
ZShmb3JtZW5jdHlwZUF0dHIpOworfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dEZvcm1FbmN0eXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKGZv
cm1lbmN0eXBlQXR0ciwgdmFsdWUpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmZvcm1Ob1ZhbGlkYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShmb3Jt
bm92YWxpZGF0ZUF0dHIpLmlzTnVsbCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmgKaW5kZXggMTk2MGZjMzRmMjg4ZGEzNTYyZWU2Y2QxNzk0YWIzOTA3YmU1OTNhMy4uNTA5NGJl
YzM3MDUwNmM1OTMyNzM2YmM2YzA0ZTkxYjFjODM4YmU3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oCkBAIC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiBtX2Zvcm07IH0KICAgICBWYWxpZGl0eVN0YXRl
KiB2YWxpZGl0eSgpOwogCisgICAgU3RyaW5nIGZvcm1FbmN0eXBlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRGb3JtRW5jdHlwZShjb25zdCBTdHJpbmcmKTsKICAgICBib29sIGZvcm1Ob1ZhbGlkYXRl
KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSB7IH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAKaW5kZXggZGEzODhkNWM2NTFiOWMzMDkzZmQ5ODQxZDI1Mjg3MWQzOTYzNTdmMi4u
MDJiOGU1MjU3ZjhkZmVhZjk0M2QwNmQ1MmMzODQ4MTgyNGY2NjlmNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAKQEAgLTMxMSw3ICszMTEsMjUgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnN1
Ym1pdChFdmVudCogZXZlbnQsIGJvb2wgYWN0aXZhdGVTdWJtaXRCdXR0b24sIGJvb2wgcHJvY2UK
ICAgICBpZiAobmVlZEJ1dHRvbkFjdGl2YXRpb24gJiYgZmlyc3RTdWNjZXNzZnVsU3VibWl0QnV0
dG9uKQogICAgICAgICBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24tPnNldEFjdGl2YXRlZFN1
Ym1pdCh0cnVlKTsKIAotICAgIGZyYW1lLT5sb2FkZXIoKS0+c3VibWl0Rm9ybShGb3JtU3VibWlz
c2lvbjo6Y3JlYXRlKHRoaXMsIG1fYXR0cmlidXRlcywgZXZlbnQsICFwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIGZvcm1TdWJtaXNzaW9uVHJpZ2dlcikpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQqIHN1Ym1pdEJ1dHRvbiA9IDA7CisgICAgaWYgKGV2ZW50ICYmIGV2ZW50LT50YXJnZXQoKSAm
JiBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQorICAgICAgICBzdWJtaXRCdXR0b24gPSBzdGF0
aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZXZlbnQtPnRhcmdldCgpLT50b05vZGUo
KSk7CisKKyAgICBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlcyBjb3BpZWRBdHRyaWJ1dGVzOwor
ICAgIGNvcGllZEF0dHJpYnV0ZXMuY29weUZyb20obV9hdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3Vi
bWl0QnV0dG9uKSB7CisgICAgICAgIFN0cmluZyBhdHRyaWJ1dGU7CisgICAgICAgIGlmICghKGF0
dHJpYnV0ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm1hY3Rpb25BdHRyKSkuaXNO
dWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlQWN0aW9uKGF0dHJpYnV0
ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0cmlidXRl
KGZvcm1lbmN0eXBlQXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmlidXRl
cy5wYXJzZUVuY29kaW5nVHlwZShhdHRyaWJ1dGUpOworICAgICAgICBpZiAoIShhdHRyaWJ1dGUg
PSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtbWV0aG9kQXR0cikpLmlzTnVsbCgpKQor
ICAgICAgICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZU1ldGhvZFR5cGUoYXR0cmlidXRlKTsK
KyAgICAgICAgaWYgKCEoYXR0cmlidXRlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9y
bXRhcmdldEF0dHIpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMuc2V0
VGFyZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorICAgIAorICAgIGZyYW1lLT5sb2FkZXIoKS0+c3Vi
bWl0Rm9ybShGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKHRoaXMsIGNvcGllZEF0dHJpYnV0ZXMsIGV2
ZW50LCAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBmb3JtU3VibWlzc2lvblRyaWdnZXIpKTsKIAog
ICAgIGlmIChuZWVkQnV0dG9uQWN0aXZhdGlvbiAmJiBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0
b24pCiAgICAgICAgIGZpcnN0U3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbi0+c2V0QWN0aXZhdGVkU3Vi
bWl0KGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBiODczODI2ZDE0MzZl
NjYyMGIyMDhjNmE3NGNlYjIyYmFkN2ZmYzI5Li41OWQ3NDA3NjNhMGM4MTE0OTdlMmE4OWFiNWMz
MWIzZWNmN2MxZDMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCwx
MSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dD1jaGVja2VkXSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwg
VVJMXSBET01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGZvcm1UYXJnZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0
eVN0YXRlIHZhbGlkaXR5OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBh
Y2NlcHQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2Vzc0tleTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1dlYkNvcmUv
bG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCBmM2YxOWQyODA2YzU4ZDY1MGZhZTViYThm
NTM0OThkNWRlNWMxOTA1Li5jNGVhNDkxNjI3MGU0MTYxOGUxMGQ4NDM1NjJlMTk4NDkzZDI4ZDk0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xMTAsNiArMTEwLDE1IEBAIHZvaWQg
Rm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OnBhcnNlTWV0aG9kVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpCiAgICAgICAgIG1fbWV0aG9kID0gRm9ybVN1Ym1pc3Npb246OkdldE1ldGhvZDsKIH0K
IAordm9pZCBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20oY29uc3QgQXR0cmli
dXRlcyYgb3RoZXIpCit7CisgICAgbV9tZXRob2QgPSBvdGhlci5tX21ldGhvZDsKKyAgICBtX2Fj
dGlvbiA9IG90aGVyLm1fYWN0aW9uOworICAgIG1fdGFyZ2V0ID0gb3RoZXIubV90YXJnZXQ7Cisg
ICAgbV9lbmNvZGluZ1R5cGUgPSBvdGhlci5tX2VuY29kaW5nVHlwZTsKKyAgICBtX2FjY2VwdENo
YXJzZXQgPSBvdGhlci5tX2FjY2VwdENoYXJzZXQ7Cit9CisKIGlubGluZSBGb3JtU3VibWlzc2lv
bjo6Rm9ybVN1Ym1pc3Npb24oTWV0aG9kIG1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25z
dCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25zdCBTdHJpbmcm
IGJvdW5kYXJ5LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICA6IG1fbWV0aG9kKG1ldGhvZCkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmggYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3Vi
bWlzc2lvbi5oCmluZGV4IGI5MzU4ODJjNDExNTViOGVlYThkNmI1NTRlYjRhNmFhYzc3MzJmOGEu
LmQ3MjQ4MzU3N2NkMmRlMjQyYmY3Y2I0YmQzZjU5MThlNzkxNmIyZTggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uaApAQCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgYWNjZXB0Q2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0Q2hhcnNldDsgfQogICAg
ICAgICB2b2lkIHNldEFjY2VwdENoYXJzZXQoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2FjY2Vw
dENoYXJzZXQgPSB2YWx1ZTsgfQogCisgICAgICAgIHZvaWQgY29weUZyb20oY29uc3QgQXR0cmli
dXRlcyYpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgTWV0aG9kIG1fbWV0aG9kOwogICAgICAg
ICBib29sIG1faXNNdWx0aVBhcnRGb3JtOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73588</attachid>
            <date>2010-11-11 01:20:28 -0800</date>
            <delta_ts>2010-11-11 02:01:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101111182025.patch</filename>
            <type>text/plain</type>
            <size>27071</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOTljZWQxYzhhMzFmM2Y3MDViZWI3ZTA1N2ZiMTgyYWRhZGRhYmIwLi44NmRmNTQ3
NWUyOGRjOTJjMDVjZTk4MmUwOTI0NDJjZjA0M2QzMGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciB0aGUgaW5wdXQgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTI0MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWFjdGlv
bi1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9k
LWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRy
aWJ1dGUtYnV0dG9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdl
dC1hdHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1
dGUtYnV0dG9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1l
bmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC5odG1sOiBBZGRlZC4K
KwogMjAxMC0xMS0wNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNjI3
MzRlZjU2OWMzNzZhZTZjZDFlYWY5ZDVjZDIxYzkxNzVmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IGZvciB0aGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gaW5w
dXQgYW5kIGJ1dHRvbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IHRhZyB3YXMgdXNlZAorUEFT
UyBUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGJ1dHRvbiB0YWcgd2FzIHVzZWQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTEyMTIyNGVjMmY4Yzc2YTI1ZjBmNWYzZjc3ZDM1OTNjNzY2Mjg1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbApA
QCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0OiB0ZXN0MSh0aGlzKSIgbWV0aG9kPSJnZXQiPgor
PHNlbGVjdD48b3B0aW9uPkE8L29wdGlvbj48b3B0aW9uPkI8L29wdGlvbj48b3B0aW9uPkM8L29w
dGlvbj48L3NlbGVjdD48aW5wdXQgdHlwZT0ic3VibWl0IiBmb3JtYWN0aW9uPSJqYXZhc2NyaXB0
OiB0ZXN0Mih0aGlzKSIgLz48YnV0dG9uIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHRlc3QzKHRo
aXMpIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgZm9y
bWFjdGlvbiBhdHRyaWJ1dGUgaW4gaW5wdXQgYW5kIGJ1dHRvbiB0YWdzLiIpOwordmFyIGRvbmVB
Y3Rpb24gPSBmYWxzZTsKKworZnVuY3Rpb24gdGVzdDEodWwpCit7CisgICAgZG9uZUFjdGlvbiA9
IHRydWU7CisgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBp
bnB1dCBvciBidXR0b24gdGFnIHdhcyBpZ25vcmVkJyk7Cit9CitmdW5jdGlvbiB0ZXN0Mih1bCkK
K3sKKyAgICBkb25lQWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybWFjdGlv
biBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IHRhZyB3YXMgdXNlZCcpOworfQorZnVuY3Rpb24gdGVz
dDModWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAgdGVzdFBhc3NlZCgnVGhlIGZv
cm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBidXR0b24gdGFnIHdhcyB1c2VkJyk7Cit9CisKK3Zh
ciBzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07Citz
ZWxlY3Qub3B0aW9uc1syXS5zZWxlY3RlZCA9IHRydWU7CisKK2RvbmVBY3Rpb24gPSBmYWxzZTsK
K3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdOwor
aW5wdXQuY2xpY2soKTsKK2lmICghZG9uZUFjdGlvbikKKyAgICB0ZXN0RmFpbGVkKCdCb3RoIGFj
dGlvbiBhbmQgZm9ybWFjdGlvbiBhdHRyaWJ1dGVzIHdlcmUgaWdub3JlZCcpOworCitkb25lQWN0
aW9uID0gZmFsc2U7Cit2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2J1dHRvbicpWzBdOworYnV0dG9uLmNsaWNrKCk7CitpZiAoIWRvbmVBY3Rpb24pCisgICAgdGVz
dEZhaWxlZCgnQm90aCBhY3Rpb24gYW5kIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGlnbm9y
ZWQnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ3NzQ5ODczMzhkNTRhNGFjOWUwN2ZmM2QyODkwMzQyMDM4MDc1OWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgdGhlIGZvcm1tZXRob2Qg
YXR0cmlidXRlIGluIGJ1dHRvbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWY1ZDhlZDViNjBiM2JmMGY4OGY5YWM0MGJjYWE3NTQxZWZhZDAy
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ij8iIG5h
bWU9Zj4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFt
IGhpZGRlbiI+CisgICAgPGJ1dHRvbiBmb3JtbWV0aG9kPSJwb3N0IiB0eXBlPSJzdWJtaXQiIHZh
bHVlPSJwcmVzcyBtZSIgbmFtZT1nPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3MuIik7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCitpZiAoZG9jdW1lbnQuVVJMLnN1YnN0cmluZygwLCA0KSA9
PSAiZmlsZSIpIHsKKyAgICBpZiAoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSA9PSAtMSkgewor
ICAgICAgICBkb2N1bWVudC5mLmcuY2xpY2soKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
ZG9jdW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpICsgMSwgZG9j
dW1lbnQuVVJMLmxlbmd0aCkgPT0gIiIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdUaGUgZm9y
bW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkJyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgbm90
IHVzZWQnKTsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
bWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M3NjlkODA3
OTEyNTMyN2MzM2RlYjFlMzM4MmEzNmM3ZGFjOTgzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBp
bnB1dCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgZm9y
bW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyOWQ2YmFkODEyOGMxZjc1OTliN2YyMTdjZTAyOWNkMzMzNzg4MDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0Lmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ij8iIG5hbWU9Zj4KKyAgICA8aW5wdXQg
dHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiI+CisgICAgPGlu
cHV0IGZvcm1tZXRob2Q9InBvc3QiIHR5cGU9InN1Ym1pdCIgdmFsdWU9InByZXNzIG1lIiBuYW1l
PWc+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0
aG9kIGF0dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CisgICAgaWYg
KGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKyAgICAgICAgZG9jdW1lbnQuZi5n
LmNsaWNrKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJp
bmcoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSArIDEsIGRvY3VtZW50LlVSTC5sZW5ndGgpID09
ICIiKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdh
cyBzdWNjZXNzZnVsbHkgdXNlZCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCdUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkJyk7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1
dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1OTI4YjgzMjVjNzY2YTFkY2IyNmQ0MTcz
N2FjMzE5MWQ3ZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYSBidXR0b24gdGFnLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgZm9ybXRhcmdldCBhdHRyaWJ1
dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzMwOWQ0ZGZk
ZTI1NWFkYjY0M2EyM2FjMmRiMmE2MGZkOGZiYTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24uaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYSBidXR0b24gdGFnLiIpOworZnVu
Y3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMcyh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQgc2luY2UgdGhlIER1
bXBSZW5kZXJUcmVlIGRvZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBvZiBjaGlsZCBmcmFt
ZXMuICAgICAgICAgICAgICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbG9hZEJ1dHRvbicpOworICAgIGJ1dHRvbi5jbGljaygpOworfQorCitmdW5jdGlvbiBw
YXNzaW5nRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cGFzc2luZycpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAg
cmV0dXJuOworICAgIHRlc3RQYXNzZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3Vj
Y2Vzc2Z1bGx5IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxpbmdGcmFtZUxvYWRlZCgpCit7Cisg
ICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsaW5nJykuY29udGVudERvY3VtZW50
LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdEZhaWxlZCgi
VGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBub3QgdXNlZC4iKTsKKyAgICBpc1N1Y2Nlc3Nm
dWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNj
ZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbGluZ0ZyYW1lIj4KKzxidXR0b24gdHlw
ZT0ic3VibWl0IiB2YWx1ZT0iZm9ybSIgaWQ9ImxvYWRCdXR0b24iIGZvcm10YXJnZXQ9InBhc3Np
bmdGcmFtZSI+Cis8L2Zvcm0+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzaW5n
IiBuYW1lPSJwYXNzaW5nRnJhbWUiIG9ubG9hZD0icGFzc2luZ0ZyYW1lTG9hZGVkKCkiPjwvaWZy
YW1lPgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0iZmFpbGluZyIgbmFtZT0iZmFpbGlu
Z0ZyYW1lIiBvbmxvYWQ9ImZhaWxpbmdGcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1h
dHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUzOWE2YmVi
Y2ZiYjgzMTdhZTQ1NGI4NmIxNDFlYzM2OTU1Nzk4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBh
biBpbnB1dCB0YWcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBm
b3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk0YWIxYWNlNTVhODQ3OTA0MWFjZmZlZTZjNjUzYWUzNzUyYWNiNzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlu
cHV0Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rp
b24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIGluIGFuIGlu
cHV0IHRhZy4iKTsKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWxsb3dV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICAvLyBOb3QgZHVtcGluZyBhcyB0
ZXh0IHNpbmNlIHRoZSBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBkdW1wIHRoZSB0ZXh0IGNvbnRl
bnQgb2YgY2hpbGQgZnJhbWVzLiAgICAgICAgICAgICAgICAKKyAgICB2YXIgYnV0dG9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvYWRCdXR0b24nKTsKKyAgICBidXR0b24uY2xpY2soKTsK
K30KKworZnVuY3Rpb24gcGFzc2luZ0ZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Bhc3NpbmcnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpi
bGFuayIpCisgICAgICAgIHJldHVybjsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBh
dHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBmYWlsaW5nRnJh
bWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbGluZycp
LmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJuOwor
ICAgIHRlc3RGYWlsZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgbm90IHVzZWQuIik7
CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPGZvcm0gYWN0aW9u
PSJyZXNvdXJjZXMvc3VjY2Vzcy50eHQiIG1ldGhvZD0iR0VUIiB0YXJnZXQ9ImZhaWxpbmdGcmFt
ZSI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZm9ybSIgaWQ9ImxvYWRCdXR0b24iIGZv
cm10YXJnZXQ9InBhc3NpbmdGcmFtZSI+Cis8L2Zvcm0+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6Ymxh
bmsiIGlkPSJwYXNzaW5nIiBuYW1lPSJwYXNzaW5nRnJhbWUiIG9ubG9hZD0icGFzc2luZ0ZyYW1l
TG9hZGVkKCkiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0iZmFpbGlu
ZyIgbmFtZT0iZmFpbGluZ0ZyYW1lIiBvbmxvYWQ9ImZhaWxpbmdGcmFtZUxvYWRlZCgpIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMzMWYwNjFjNTUxMDgwYzliZTI1NzNh
M2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRv
L2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBA
QAorUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgbWFpbHRvOj9ib2R5PXRvJTNEb25l
JTQwZXhhbXBsZS5vcmclMEQlMEFib2R5JTNETGluZSUyMDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0
MCUyNiUzRCUyQyUzQiUzRiUyMiUyQiUwRCUwQSB3aXRoIG5hdmlnYXRpb24gdHlwZSAnZm9ybSBz
dWJtaXR0ZWQnIG9yaWdpbmF0aW5nIGZyb20gSFRNTCA+ICNkb2N1bWVudAorRmllbGQgMTogIEZp
ZWxkIDI6ICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1l
bmN0eXBlLWF0dHJpYnV0ZS1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFp
bHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTJiZGJj
OWU0ODllM2E1N2VhYWI4YzU4ZDBhNDI4ZjgzNzMwODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi5o
dG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Im1haWx0bzoiPgorRmllbGQgMTogPGlucHV0IHR5
cGU9InRleHQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFsdWU9Im9uZUBl
eGFtcGxlLm9yZyI+CitGaWVsZCAyOiA8dGV4dGFyZWEgbmFtZT0iYm9keSI+TGluZSAxCitMaW5l
IDIKK0AmYW1wOz0sOz8iKzwvdGV4dGFyZWE+Cis8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdmFsdWU9
IlNlbmQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBlPSJ0ZXh0L3BsYWluIj4gCis8L2Zvcm0+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAg
IH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0IikuY2xpY2soKTsKK30KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMzMWYwNjFjNTUxMDgwYzliZTI1NzNh
M2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRv
L2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBA
CitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCBtYWlsdG86P2JvZHk9dG8lM0RvbmUl
NDBleGFtcGxlLm9yZyUwRCUwQWJvZHklM0RMaW5lJTIwMSUwRCUwQUxpbmUlMjAyJTBEJTBBJTQw
JTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBEJTBBIHdpdGggbmF2aWdhdGlvbiB0eXBlICdmb3JtIHN1
Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJvbSBIVE1MID4gI2RvY3VtZW50CitGaWVsZCAxOiAgRmll
bGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVu
Y3R5cGUtYXR0cmlidXRlLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0
by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWVhYjc2NmY1
NzJkMTljMzJjZTY0YTljNmRhOTlmNWI2NDAzMDBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0Lmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9y
bSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0i
dGV4dCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1w
bGUub3JnIj4KK0ZpZWxkIDI6IDx0ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgor
QCZhbXA7PSw7PyIrPC90ZXh0YXJlYT4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZW5k
IiBpZD0ic3VibWl0IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFpbiI+IAorPC9mb3JtPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0Rm9yUG9saWN5RGVsZWdhdGUoKTsKKyAgICB9Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdCIpLmNsaWNrKCk7Cit9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTBlODlhZTMzZTg3NDE4ODVmZmE1ZTI4YjI1MDZjNzFjOTkz
YWMzZS4uNGMyOTgxZDc3NjY2MWRhODY2ZjFlNTIwMzdiNmEwOTdlMmU0YTI2ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAxMC0xMS0wOSAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IGZvcm1hY3Rpb24sIGZvcm1lbmN0eXBlLCBmb3JtbWV0aG9kIGFuZCBmb3JtdGFyZ2V0IGF0dHJp
YnV0ZXMgZm9yIHRoZSBpbnB1dCB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvZm9ybWFj
dGlvbi1hdHRyaWJ1dGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtbWV0aG9k
LWF0dHJpYnV0ZS1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtbWV0
aG9kLWF0dHJpYnV0ZS1pbnB1dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zvcm10
YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zv
cm10YXJnZXQtYXR0cmlidXRlLWlucHV0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24uaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0Lmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBmb3JtYWN0aW9uLCBmb3Jt
bWV0aG9kLCBmb3JtdGFyZ2V0IGFuZCBmb3JtZW5jdHlwZSBhdHRyaWJ1dGVzCisgICAgICAgICog
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmZvcm1FbmN0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnNldEZvcm1FbmN0eXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6
IE1vZGlmaWVkIHRvIGNoZWNrIHRoZSBwcmVzc2VkIGJ1dHRvbiBhbmQgaXRzIGF0dHJpYnV0ZXMK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6c3VibWl0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29w
eUZyb20pOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorCiAyMDEwLTExLTA0
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4gYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGQ5NzU5ZmNkYjBh
ODI0MDFhM2YwNWY1OGFhYWJkOWRjMjJjNjQ2ZmYuLjA3YzA1NWViMzdjZDNlMTdjMDU1YWM1MmJk
MTcwMDA0MDA1YmQzZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTQsNyAr
OTQsMTEgQEAgZXhwYW5kZWQKIGZhY2UKIGZvY3VzZWQKIGZvcgorZm9ybWFjdGlvbgorZm9ybWVu
Y3R5cGUKK2Zvcm1tZXRob2QKIGZvcm1ub3ZhbGlkYXRlCitmb3JtdGFyZ2V0CiBmcmFtZQogZnJh
bWVib3JkZXIKIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApp
bmRleCA4ZmEwMDBmMWIxYzdhMTQwODBmNjdlNGNlOTc3MmYwNWVkODJiYjQ1Li42ZWQ3YTc0NWFj
MjQyZmZjN2M5OGY2MTgwNzE4ZWExZmMwNmVjZDU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCkBAIC04NCw2ICs4NCwxNiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmRldGFjaCgpCiAgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCitTdHJpbmcg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybUVuY3R5cGUoKSBjb25zdAoreworICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoZm9ybWVuY3R5cGVBdHRyKTsKK30KKwordm9pZCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjpzZXRGb3JtRW5jdHlwZShjb25zdCBTdHJpbmcgJnZhbHVlKQoreworICAgIHNl
dEF0dHJpYnV0ZShmb3JtZW5jdHlwZUF0dHIsIHZhbHVlKTsKK30KKwogYm9vbCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Ojpmb3JtTm9WYWxpZGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFnZXRB
dHRyaWJ1dGUoZm9ybW5vdmFsaWRhdGVBdHRyKS5pc051bGwoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oCmluZGV4IDE5NjBmYzM0ZjI4OGRhMzU2MmVlNmNkMTc5NGFiMzkwN2Jl
NTkzYTMuLjUwOTRiZWMzNzA1MDZjNTkzMjczNmJjNmMwNGU5MWIxYzgzOGJlNzEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAg
ICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtOyB9CiAgICAg
VmFsaWRpdHlTdGF0ZSogdmFsaWRpdHkoKTsKIAorICAgIFN0cmluZyBmb3JtRW5jdHlwZSgpIGNv
bnN0OworICAgIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBm
b3JtTm9WYWxpZGF0ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgeyB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggYjg3MzgyNmQxNDM2ZTY2MjBiMjA4YzZhNzRj
ZWIyMmJhZDdmZmMyOS4uNTlkNzQwNzYzYTBjODExNDk3ZTJhODlhYjVjMzFiM2VjZjdjMWQzMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMjQsNyArMjQsMTEgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgZGVmYXVsdFZhbHVlOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y2hlY2tlZF0gYm9v
bGVhbiBkZWZhdWx0Q2hlY2tlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5n
IGZvcm1BY3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBmb3JtRW5jdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgZm9ybU1ldGhvZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGZv
cm1Ob1ZhbGlkYXRlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3Jt
VGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0
eTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXB0OwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3Vi
bWlzc2lvbi5jcHAKaW5kZXggZjNmMTlkMjgwNmM1OGQ2NTBmYWU1YmE4ZjUzNDk4ZDVkZTVjMTkw
NS4uYWQ0Yzk3MWNjZTI5OTdmMTYzZGU2Zjc5MTMzZjE0Y2E5ZDQwMGU5ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcApAQCAtMTEwLDYgKzExMCwxNSBAQCB2b2lkIEZvcm1TdWJtaXNzaW9u
OjpBdHRyaWJ1dGVzOjpwYXJzZU1ldGhvZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAg
ICBtX21ldGhvZCA9IEZvcm1TdWJtaXNzaW9uOjpHZXRNZXRob2Q7CiB9CiAKK3ZvaWQgRm9ybVN1
Ym1pc3Npb246OkF0dHJpYnV0ZXM6OmNvcHlGcm9tKGNvbnN0IEF0dHJpYnV0ZXMmIG90aGVyKQor
eworICAgIG1fbWV0aG9kID0gb3RoZXIubV9tZXRob2Q7CisgICAgbV9hY3Rpb24gPSBvdGhlci5t
X2FjdGlvbjsKKyAgICBtX3RhcmdldCA9IG90aGVyLm1fdGFyZ2V0OworICAgIG1fZW5jb2RpbmdU
eXBlID0gb3RoZXIubV9lbmNvZGluZ1R5cGU7CisgICAgbV9hY2NlcHRDaGFyc2V0ID0gb3RoZXIu
bV9hY2NlcHRDaGFyc2V0OworfQorCiBpbmxpbmUgRm9ybVN1Ym1pc3Npb246OkZvcm1TdWJtaXNz
aW9uKE1ldGhvZCBtZXRob2QsIGNvbnN0IEtVUkwmIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBzdGF0
ZSwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gZGF0YSwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSwgYm9v
bCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgOiBtX21ldGhvZCht
ZXRob2QpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCkBAIC0xMjYsMjEgKzEzNSw0MCBAQCBpbmxp
bmUgRm9ybVN1Ym1pc3Npb246OkZvcm1TdWJtaXNzaW9uKE1ldGhvZCBtZXRob2QsIGNvbnN0IEtV
UkwmIGFjdGlvbiwgY29uc3QgUwogUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1p
c3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEF0dHJpYnV0ZXMmIGF0
dHJpYnV0ZXMsIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBib29sIGxvY2tIaXN0b3J5LCBGb3Jt
U3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKICAgICBBU1NFUlQoZm9ybSk7CisKKyAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBzdWJtaXRCdXR0b24gPSAwOworICAgIGlmIChldmVudCAm
JiBldmVudC0+dGFyZ2V0KCkgJiYgZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSkKKyAgICAgICAg
c3VibWl0QnV0dG9uID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KGV2ZW50
LT50YXJnZXQoKS0+dG9Ob2RlKCkpOworCisgICAgRm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXMg
Y29waWVkQXR0cmlidXRlczsKKyAgICBjb3BpZWRBdHRyaWJ1dGVzLmNvcHlGcm9tKGF0dHJpYnV0
ZXMpOworICAgIGlmIChzdWJtaXRCdXR0b24pIHsKKyAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZh
bHVlOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0
cmlidXRlKGZvcm1hY3Rpb25BdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRy
aWJ1dGVzLnBhcnNlQWN0aW9uKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEoYXR0cmli
dXRlVmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtZW5jdHlwZUF0dHIpKS5p
c051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VFbmNvZGluZ1R5cGUo
YXR0cmlidXRlVmFsdWUpOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1
dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm1tZXRob2RBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAg
ICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlTWV0aG9kVHlwZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAg
ICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9y
bXRhcmdldEF0dHIpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMuc2V0
VGFyZ2V0KGF0dHJpYnV0ZVZhbHVlKTsKKyAgICB9CisgICAgCiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZm9ybS0+ZG9jdW1lbnQoKTsKLSAgICBLVVJMIGFjdGlvblVSTCA9IGRvY3VtZW50LT5j
b21wbGV0ZVVSTChhdHRyaWJ1dGVzLmFjdGlvbigpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT51cmwo
KS5zdHJpbmcoKSA6IGF0dHJpYnV0ZXMuYWN0aW9uKCkpOworICAgIEtVUkwgYWN0aW9uVVJMID0g
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGNvcGllZEF0dHJpYnV0ZXMuYWN0aW9uKCkuaXNFbXB0eSgp
ID8gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpIDogY29waWVkQXR0cmlidXRlcy5hY3Rpb24oKSk7
CiAgICAgYm9vbCBpc01haWx0b0Zvcm0gPSBhY3Rpb25VUkwucHJvdG9jb2xJcygibWFpbHRvIik7
CiAgICAgYm9vbCBpc011bHRpUGFydEZvcm0gPSBmYWxzZTsKLSAgICBTdHJpbmcgZW5jb2RpbmdU
eXBlID0gYXR0cmlidXRlcy5lbmNvZGluZ1R5cGUoKTsKKyAgICBTdHJpbmcgZW5jb2RpbmdUeXBl
ID0gY29waWVkQXR0cmlidXRlcy5lbmNvZGluZ1R5cGUoKTsKIAotICAgIGlmIChhdHRyaWJ1dGVz
Lm1ldGhvZCgpID09IFBvc3RNZXRob2QpIHsKLSAgICAgICAgaXNNdWx0aVBhcnRGb3JtID0gYXR0
cmlidXRlcy5pc011bHRpUGFydEZvcm0oKTsKKyAgICBpZiAoY29waWVkQXR0cmlidXRlcy5tZXRo
b2QoKSA9PSBQb3N0TWV0aG9kKSB7CisgICAgICAgIGlzTXVsdGlQYXJ0Rm9ybSA9IGNvcGllZEF0
dHJpYnV0ZXMuaXNNdWx0aVBhcnRGb3JtKCk7CiAgICAgICAgIGlmIChpc011bHRpUGFydEZvcm0g
JiYgaXNNYWlsdG9Gb3JtKSB7CiAgICAgICAgICAgICBlbmNvZGluZ1R5cGUgPSAiYXBwbGljYXRp
b24veC13d3ctZm9ybS11cmxlbmNvZGVkIjsKICAgICAgICAgICAgIGlzTXVsdGlQYXJ0Rm9ybSA9
IGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgVGV4dEVuY29kaW5nIGRhdGFFbmNvZGlu
ZyA9IGlzTWFpbHRvRm9ybSA/IFVURjhFbmNvZGluZygpIDogRm9ybURhdGFCdWlsZGVyOjplbmNv
ZGluZ0Zyb21BY2NlcHRDaGFyc2V0KGF0dHJpYnV0ZXMuYWNjZXB0Q2hhcnNldCgpLCBkb2N1bWVu
dCk7CisgICAgVGV4dEVuY29kaW5nIGRhdGFFbmNvZGluZyA9IGlzTWFpbHRvRm9ybSA/IFVURjhF
bmNvZGluZygpIDogRm9ybURhdGFCdWlsZGVyOjplbmNvZGluZ0Zyb21BY2NlcHRDaGFyc2V0KGNv
cGllZEF0dHJpYnV0ZXMuYWNjZXB0Q2hhcnNldCgpLCBkb2N1bWVudCk7CiAgICAgUmVmUHRyPERP
TUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZGF0YUVuY29kaW5n
LmVuY29kaW5nRm9yRm9ybVN1Ym1pc3Npb24oKSk7CiAgICAgVmVjdG9yPHBhaXI8U3RyaW5nLCBT
dHJpbmc+ID4gZm9ybVZhbHVlczsKIApAQCAtMTY2LDcgKzE5NCw3IEBAIFBhc3NSZWZQdHI8Rm9y
bVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3Jt
LCBjb25zdCBBCiAgICAgICAgIGJvdW5kYXJ5ID0gZm9ybURhdGEtPmJvdW5kYXJ5KCkuZGF0YSgp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgqKHN0
YXRpY19jYXN0PEZvcm1EYXRhTGlzdCo+KGRvbUZvcm1EYXRhLmdldCgpKSksIGRvbUZvcm1EYXRh
LT5lbmNvZGluZygpKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMubWV0aG9kKCkgPT0gUG9zdE1l
dGhvZCAmJiBpc01haWx0b0Zvcm0pIHsKKyAgICAgICAgaWYgKGNvcGllZEF0dHJpYnV0ZXMubWV0
aG9kKCkgPT0gUG9zdE1ldGhvZCAmJiBpc01haWx0b0Zvcm0pIHsKICAgICAgICAgICAgIC8vIENv
bnZlcnQgdGhlIGZvcm0gZGF0YSBpbnRvIGEgc3RyaW5nIHRoYXQgd2UgcHV0IGludG8gdGhlIFVS
TC4KICAgICAgICAgICAgIGFwcGVuZE1haWx0b1Bvc3RGb3JtRGF0YVRvVVJMKGFjdGlvblVSTCwg
KmZvcm1EYXRhLCBlbmNvZGluZ1R5cGUpOwogICAgICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0
YTo6Y3JlYXRlKCk7CkBAIC0xNzQsOSArMjAyLDkgQEAgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lv
bj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEEK
ICAgICB9CiAKICAgICBmb3JtRGF0YS0+c2V0SWRlbnRpZmllcihnZW5lcmF0ZUZvcm1EYXRhSWRl
bnRpZmllcigpKTsKLSAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gYXR0cmlidXRlcy50
YXJnZXQoKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+YmFzZVRhcmdldCgpIDogYXR0cmlidXRlcy50
YXJnZXQoKTsKKyAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gY29waWVkQXR0cmlidXRl
cy50YXJnZXQoKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+YmFzZVRhcmdldCgpIDogY29waWVkQXR0
cmlidXRlcy50YXJnZXQoKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBGb3Jt
U3RhdGU6OmNyZWF0ZShmb3JtLCBmb3JtVmFsdWVzLCBkb2N1bWVudC0+ZnJhbWUoKSwgdHJpZ2dl
cik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb3JtU3VibWlzc2lvbihhdHRyaWJ1dGVzLm1l
dGhvZCgpLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgZW5jb2RpbmdUeXBlLCBmb3Jt
U3RhdGUucmVsZWFzZSgpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5LCBsb2NrSGlzdG9y
eSwgZXZlbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1TdWJtaXNzaW9uKGNvcGll
ZEF0dHJpYnV0ZXMubWV0aG9kKCksIGFjdGlvblVSTCwgdGFyZ2V0T3JCYXNlVGFyZ2V0LCBlbmNv
ZGluZ1R5cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZvcm1EYXRhLnJlbGVhc2UoKSwgYm91bmRh
cnksIGxvY2tIaXN0b3J5LCBldmVudCkpOwogfQogCiBLVVJMIEZvcm1TdWJtaXNzaW9uOjpyZXF1
ZXN0VVJMKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmggYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCmluZGV4IGI5MzU4ODJjNDExNTVi
OGVlYThkNmI1NTRlYjRhNmFhYzc3MzJmOGEuLmQ3MjQ4MzU3N2NkMmRlMjQyYmY3Y2I0YmQzZjU5
MThlNzkxNmIyZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaApAQCAtNzIsNiArNzIsOCBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXB0Q2hhcnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWNjZXB0Q2hhcnNldDsgfQogICAgICAgICB2b2lkIHNldEFjY2VwdENoYXJzZXQoY29u
c3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2FjY2VwdENoYXJzZXQgPSB2YWx1ZTsgfQogCisgICAgICAg
IHZvaWQgY29weUZyb20oY29uc3QgQXR0cmlidXRlcyYpOworCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgTWV0aG9kIG1fbWV0aG9kOwogICAgICAgICBib29sIG1faXNNdWx0aVBhcnRGb3JtOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73591</attachid>
            <date>2010-11-11 02:01:14 -0800</date>
            <delta_ts>2010-11-11 23:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101111190113.patch</filename>
            <type>text/plain</type>
            <size>27136</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmM0MGFhZTU5Mjc1YjhlN2I2ZWQ2MWVhM2E2NmYyOGI5OGUyYzVhLi5mZmM1OWJl
ZWY0ZDVhMmFiZDQ1MzE0ODkwOTkzMDE5Njk4YjljYjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUt
YnV0dG9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFy
Z2V0LWF0dHJpYnV0ZS1idXR0b24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBl
LWF0dHJpYnV0ZS1idXR0b24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9tYWls
dG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0Lmh0bWw6
IEFkZGVkLgorCiAyMDEwLTExLTEwICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0aW5nIENocm9taXVtIGV4cGVjdGF0aW9ucy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2MjczNGVmNTY5YzM3NmFlNmNkMWVhZjlkNWNk
MjFjOTE3NWZjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgZm9y
IHRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0
ZSBpbiB0aGUgaW5wdXQgdGFnIHdhcyB1c2VkCitQQVNTIFRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0
ZSBpbiB0aGUgYnV0dG9uIHRhZyB3YXMgdXNlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bWFjdGlvbi1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTIxMjI0ZWMyZjhjNzZhMjVmMGY1
ZjNmNzdkMzU5M2M3NjYyODU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249ImphdmFzY3Jp
cHQ6IHRlc3QxKHRoaXMpIiBtZXRob2Q9ImdldCI+Cis8c2VsZWN0PjxvcHRpb24+QTwvb3B0aW9u
PjxvcHRpb24+Qjwvb3B0aW9uPjxvcHRpb24+Qzwvb3B0aW9uPjwvc2VsZWN0PjxpbnB1dCB0eXBl
PSJzdWJtaXQiIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHRlc3QyKHRoaXMpIiAvPjxidXR0b24g
Zm9ybWFjdGlvbj0iamF2YXNjcmlwdDogdGVzdDModGhpcykiIC8+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiBpbnB1
dCBhbmQgYnV0dG9uIHRhZ3MuIik7Cit2YXIgZG9uZUFjdGlvbiA9IGZhbHNlOworCitmdW5jdGlv
biB0ZXN0MSh1bCkKK3sKKyAgICBkb25lQWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0RmFpbGVkKCdU
aGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IG9yIGJ1dHRvbiB0YWcgd2FzIGln
bm9yZWQnKTsKK30KK2Z1bmN0aW9uIHRlc3QyKHVsKQoreworICAgIGRvbmVBY3Rpb24gPSB0cnVl
OworICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgaW5wdXQg
dGFnIHdhcyB1c2VkJyk7Cit9CitmdW5jdGlvbiB0ZXN0Myh1bCkKK3sKKyAgICBkb25lQWN0aW9u
ID0gdHJ1ZTsKKyAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhl
IGJ1dHRvbiB0YWcgd2FzIHVzZWQnKTsKK30KKwordmFyIHNlbGVjdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXTsKK3NlbGVjdC5vcHRpb25zWzJdLnNlbGVjdGVk
ID0gdHJ1ZTsKKworZG9uZUFjdGlvbiA9IGZhbHNlOwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CitpbnB1dC5jbGljaygpOworaWYgKCFkb25l
QWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggYWN0aW9uIGFuZCBmb3JtYWN0aW9uIGF0dHJp
YnV0ZXMgd2VyZSBpZ25vcmVkJyk7CisKK2RvbmVBY3Rpb24gPSBmYWxzZTsKK3ZhciBidXR0b24g
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF07CitidXR0b24uY2xp
Y2soKTsKK2lmICghZG9uZUFjdGlvbikKKyAgICB0ZXN0RmFpbGVkKCdCb3RoIGFjdGlvbiBhbmQg
Zm9ybWFjdGlvbiBhdHRyaWJ1dGVzIHdlcmUgaWdub3JlZCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmli
dXRlLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc3NDk4NzMzOGQ1NGE0YWM5ZTA3
ZmYzZDI4OTAzNDIwMzgwNzU5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3Mu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjVkOGVk
NWI2MGIzYmYwZjg4ZjlhYzQwYmNhYTc1NDFlZmFkMDIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24uaHRtbApAQCAt
MCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0iPyIgbmFtZT1mPgorICAgIDxpbnB1dCB0eXBlPSJo
aWRkZW4iIG5hbWU9ImhpZGRlbiIgdmFsdWU9IkkgYW0gaGlkZGVuIj4KKyAgICA8YnV0dG9uIGZv
cm1tZXRob2Q9InBvc3QiIHR5cGU9InN1Ym1pdCIgdmFsdWU9InByZXNzIG1lIiBuYW1lPWc+Cis8
L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSBpbiBidXR0b24gdGFncy4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lm
IChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikgeworICAgIGlmIChkb2N1
bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAgICAgIGRvY3VtZW50LmYuZy5jbGlj
aygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGRv
Y3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwubGVuZ3RoKSA9PSAiIikK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3Vj
Y2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgn
VGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcpOworCisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzc2OWQ4MDc5MTI1MzI3YzMzZGViMWUzMzgyYTM2Yzdk
YWM5ODNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0
aG9kLWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBm
b3IgdGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIGluIGlucHV0IHRhZ3MuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3Vj
Y2Vzc2Z1bGx5IHVzZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5ZDZiYWQ4MTI4YzFmNzU5OWI3ZjIx
N2NlMDI5Y2QzMzM3ODgwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gbWV0aG9kPSJnZXQi
IGFjdGlvbj0iPyIgbmFtZT1mPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRl
biIgdmFsdWU9IkkgYW0gaGlkZGVuIj4KKyAgICA8aW5wdXQgZm9ybW1ldGhvZD0icG9zdCIgdHlw
ZT0ic3VibWl0IiB2YWx1ZT0icHJlc3MgbWUiIG5hbWU9Zz4KKzwvZm9ybT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIGluIGlucHV0IHRh
Z3MuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAoZG9jdW1lbnQuVVJMLnN1YnN0
cmluZygwLCA0KSA9PSAiZmlsZSIpIHsKKyAgICBpZiAoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8n
KSA9PSAtMSkgeworICAgICAgICBkb2N1bWVudC5mLmcuY2xpY2soKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZiAoZG9jdW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZign
PycpICsgMSwgZG9jdW1lbnQuVVJMLmxlbmd0aCkgPT0gIiIpCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCdUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkJyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJp
YnV0ZSB3YXMgbm90IHVzZWQnKTsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIH0KK30KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNzU5MjhiODMyNWM3NjZhMWRjYjI2ZDQxNzM3YWMzMTkxZDdmNDgxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0
IGF0dHJpYnV0ZSBpbiBhIGJ1dHRvbiB0YWcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0
dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1
dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MzA5ZDRkZmRlMjU1YWRiNjQzYTIzYWMyZGIyYTYwZmQ4
ZmJhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJn
ZXQtYXR0cmlidXRlLWJ1dHRvbi5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0
dHJpYnV0ZSBpbiBhIGJ1dHRvbiB0YWcuIik7CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgLy8g
Tm90IGR1bXBpbmcgYXMgdGV4dCBzaW5jZSB0aGUgRHVtcFJlbmRlclRyZWUgZG9lcyBub3QgZHVt
cCB0aGUgdGV4dCBjb250ZW50IG9mIGNoaWxkIGZyYW1lcy4gICAgICAgICAgICAgICAgCisgICAg
dmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkQnV0dG9uJyk7CisgICAg
YnV0dG9uLmNsaWNrKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3NpbmdGcmFtZUxvYWRlZCgpCit7Cisg
ICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzaW5nJykuY29udGVudERvY3VtZW50
LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdFBhc3NlZCgi
VGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZC4iKTsKKyAgICBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVu
Y3Rpb24gZmFpbGluZ0ZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZhaWxpbmcnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisg
ICAgICAgIHJldHVybjsKKyAgICB0ZXN0RmFpbGVkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUg
d2FzIG5vdCB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxmb3JtIGFjdGlvbj0icmVzb3VyY2VzL3N1Y2Nlc3MudHh0IiBtZXRob2Q9IkdFVCIgdGFy
Z2V0PSJmYWlsaW5nRnJhbWUiPgorPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJmb3JtIiBp
ZD0ibG9hZEJ1dHRvbiIgZm9ybXRhcmdldD0icGFzc2luZ0ZyYW1lIj4KKzwvZm9ybT4KKzxpZnJh
bWUgc3JjPSJhYm91dDpibGFuayIgaWQ9InBhc3NpbmciIG5hbWU9InBhc3NpbmdGcmFtZSIgb25s
b2FkPSJwYXNzaW5nRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6
YmxhbmsiIGlkPSJmYWlsaW5nIiBuYW1lPSJmYWlsaW5nRnJhbWUiIG9ubG9hZD0iZmFpbGluZ0Zy
YW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTM5YTZiZWJjZmJiODMxN2FlNDU0Yjg2YjE0MWVjMzY5
NTU3OThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFy
Z2V0LWF0dHJpYnV0ZS1pbnB1dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBm
b3IgdGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIGluIGFuIGlucHV0IHRhZy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBz
dWNjZXNzZnVsbHkgdXNlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10
YXJnZXQtYXR0cmlidXRlLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10
YXJnZXQtYXR0cmlidXRlLWlucHV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRhYjFhY2U1NWE4NDc5MDQx
YWNmZmVlNmM2NTNhZTM3NTJhY2I3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQuaHRtbApAQCAtMCwwICsxLDUyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0
aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYW4gaW5wdXQgdGFnLiIpOworZnVuY3Rpb24gcnVu
VGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQgc2luY2UgdGhlIER1bXBSZW5kZXJU
cmVlIGRvZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBvZiBjaGlsZCBmcmFtZXMuICAgICAg
ICAgICAgICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9h
ZEJ1dHRvbicpOworICAgIGJ1dHRvbi5jbGljaygpOworfQorCitmdW5jdGlvbiBwYXNzaW5nRnJh
bWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc2luZycp
LmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJuOwor
ICAgIHRlc3RQYXNzZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5
IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxpbmdGcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsaW5nJykuY29udGVudERvY3VtZW50LlVSTCA9PSAi
YWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdEZhaWxlZCgiVGhlIGZvcm10
YXJnZXQgYXR0cmlidXRlIHdhcyBub3QgdXNlZC4iKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNl
ZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4dCIg
bWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbGluZ0ZyYW1lIj4KKzxpbnB1dCB0eXBlPSJzdWJtaXQi
IHZhbHVlPSJmb3JtIiBpZD0ibG9hZEJ1dHRvbiIgZm9ybXRhcmdldD0icGFzc2luZ0ZyYW1lIj4K
KzwvZm9ybT4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgaWQ9InBhc3NpbmciIG5hbWU9InBh
c3NpbmdGcmFtZSIgb25sb2FkPSJwYXNzaW5nRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8aWZy
YW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJmYWlsaW5nIiBuYW1lPSJmYWlsaW5nRnJhbWUiIG9u
bG9hZD0iZmFpbGluZ0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWJ1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0
by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1
dHRvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVt
cHQgdG8gbG9hZCBtYWlsdG86P2JvZHk9dG8lM0RvbmUlNDBleGFtcGxlLm9yZyUwRCUwQWJvZHkl
M0RMaW5lJTIwMSUwRCUwQUxpbmUlMjAyJTBEJTBBJTQwJTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBE
JTBBIHdpdGggbmF2aWdhdGlvbiB0eXBlICdmb3JtIHN1Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJv
bSBIVE1MID4gI2RvY3VtZW50CitGaWVsZCAxOiAgRmllbGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRl
LWJ1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMmJkYmM5ZTQ4OWUzYTU3ZWFhYjhjNThkMGE0Mjhm
ODM3MzA4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0
by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlv
bj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIG1heGxl
bmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1wbGUub3JnIj4KK0ZpZWxkIDI6IDx0
ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgorQCZhbXA7PSw7PyIrPC90ZXh0YXJl
YT4KKzxidXR0b24gdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VuZCIgaWQ9InN1Ym1pdCIgZm9ybWVu
Y3R5cGU9InRleHQvcGxhaW4iPiAKKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQorICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzdWJtaXQiKS5jbGljaygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1h
dHRyaWJ1dGUtaW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWls
dG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlu
cHV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1w
dCB0byBsb2FkIG1haWx0bzo/Ym9keT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUz
RExpbmUlMjAxJTBEJTBBTGluZSUyMDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQl
MEEgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9t
IEhUTUwgPiAjZG9jdW1lbnQKK0ZpZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1p
bnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZWFiNzY2ZjU3MmQxOWMzMmNlNjRhOWM2ZGE5OWY1YjY0
MDMwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9m
b3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJt
YWlsdG86Ij4KK0ZpZWxkIDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVuZ3Ro
PSI0MCIgbmFtZT0idG8iIHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRleHRh
cmVhIG5hbWU9ImJvZHkiPkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVhPgor
PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlbmQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBl
PSJ0ZXh0L3BsYWluIj4gCis8L2Zvcm0+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAgIH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3VibWl0IikuY2xpY2soKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNWZh
NWJmOWZhY2ZkM2ZkNGIyZGExZWE1MjI3NjY4YWRjODAxMzViLi5lMGU0OThiMzZjOTUxMWRkNDBm
MWEwZjA5MzVhODI2MTA1ZTlhYzRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEwLTExLTA5ICBEYWkgTWlr
dXJ1YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZm9ybWFjdGlvbiwgZm9ybWVuY3R5cGUs
IGZvcm1tZXRob2QgYW5kIGZvcm10YXJnZXQgYXR0cmlidXRlcyBmb3IgaW5wdXQgYW5kIGJ1dHRv
biB0YWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTI0MAorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5w
dXQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1i
dXR0b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0
ZS1pbnB1dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlw
ZS1hdHRyaWJ1dGUtYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvbWFpbHRv
L2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbjogQWRkZWQgZm9ybWFjdGlvbiwgZm9ybW1ldGhvZCwgZm9ybXRhcmdl
dCBhbmQgZm9ybWVuY3R5cGUgYXR0cmlidXRlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Ojpmb3JtRW5jdHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpzZXRGb3JtRW5jdHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOiBNb2RpZmllZCB0byBjaGVj
ayB0aGUgcHJlc3NlZCBidXR0b24gYW5kIGl0cyBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ6OnN1Ym1pdCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OmNvcHlGcm9tKToKKyAgICAgICAg
KiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uaDoKKwogMjAxMC0xMS0xMCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlIGZpeCBJIHNhaWQgSeKAmWQgbWFrZSB0
aGVuIGZvcmdvdCB0byBtYWtlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggZDk3
NTlmY2RiMGE4MjQwMWEzZjA1ZjU4YWFhYmQ5ZGMyMmM2NDZmZi4uMDdjMDU1ZWIzN2NkM2UxN2Mw
NTVhYzUyYmQxNzAwMDQwMDViZDNlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBA
IC05NCw3ICs5NCwxMSBAQCBleHBhbmRlZAogZmFjZQogZm9jdXNlZAogZm9yCitmb3JtYWN0aW9u
Citmb3JtZW5jdHlwZQorZm9ybW1ldGhvZAogZm9ybW5vdmFsaWRhdGUKK2Zvcm10YXJnZXQKIGZy
YW1lCiBmcmFtZWJvcmRlcgogaGVhZGVycwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCmluZGV4IDhmYTAwMGYxYjFjN2ExNDA4MGY2N2U0Y2U5NzcyZjA1ZWQ4MmJiNDUuLjZl
ZDdhNzQ1YWMyNDJmZmM3Yzk4ZjYxODA3MThlYTFmYzA2ZWNkNTYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTg0LDYgKzg0LDE2IEBAIHZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAK
K1N0cmluZyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb3JtRW5jdHlwZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGdldEF0dHJpYnV0ZShmb3JtZW5jdHlwZUF0dHIpOworfQorCit2b2lkIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnNldEZvcm1FbmN0eXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit7
CisgICAgc2V0QXR0cmlidXRlKGZvcm1lbmN0eXBlQXR0ciwgdmFsdWUpOworfQorCiBib29sIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvcm1Ob1ZhbGlkYXRlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gIWdldEF0dHJpYnV0ZShmb3Jtbm92YWxpZGF0ZUF0dHIpLmlzTnVsbCgpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMTk2MGZjMzRmMjg4ZGEzNTYyZWU2Y2QxNzk0
YWIzOTA3YmU1OTNhMy4uNTA5NGJlYzM3MDUwNmM1OTMyNzM2YmM2YzA0ZTkxYjFjODM4YmU3MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC00NCw2ICs0NCw4IEBAIHB1
YmxpYzoKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiBtX2Zvcm07
IH0KICAgICBWYWxpZGl0eVN0YXRlKiB2YWxpZGl0eSgpOwogCisgICAgU3RyaW5nIGZvcm1FbmN0
eXBlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRGb3JtRW5jdHlwZShjb25zdCBTdHJpbmcmKTsKICAg
ICBib29sIGZvcm1Ob1ZhbGlkYXRlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQo
KSB7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBiODczODI2ZDE0MzZlNjYyMGIy
MDhjNmE3NGNlYjIyYmFkN2ZmYzI5Li41OWQ3NDA3NjNhMGM4MTE0OTdlMmE4OWFiNWMzMWIzZWNm
N2MxZDMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCwxMSBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBkZWZhdWx0VmFsdWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGVj
a2VkXSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
SFRNTEZvcm1FbGVtZW50IGZvcm07CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBE
T01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJv
b2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGZvcm1UYXJnZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRl
IHZhbGlkaXR5OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2NlcHQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2Vzc0tleTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCBmM2YxOWQyODA2YzU4ZDY1MGZhZTViYThmNTM0OThk
NWRlNWMxOTA1Li5hZDRjOTcxY2NlMjk5N2YxNjNkZTZmNzkxMzNmMTRjYTlkNDAwZTlmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xMTAsNiArMTEwLDE1IEBAIHZvaWQgRm9ybVN1
Ym1pc3Npb246OkF0dHJpYnV0ZXM6OnBhcnNlTWV0aG9kVHlwZShjb25zdCBTdHJpbmcmIHR5cGUp
CiAgICAgICAgIG1fbWV0aG9kID0gRm9ybVN1Ym1pc3Npb246OkdldE1ldGhvZDsKIH0KIAordm9p
ZCBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20oY29uc3QgQXR0cmlidXRlcyYg
b3RoZXIpCit7CisgICAgbV9tZXRob2QgPSBvdGhlci5tX21ldGhvZDsKKyAgICBtX2FjdGlvbiA9
IG90aGVyLm1fYWN0aW9uOworICAgIG1fdGFyZ2V0ID0gb3RoZXIubV90YXJnZXQ7CisgICAgbV9l
bmNvZGluZ1R5cGUgPSBvdGhlci5tX2VuY29kaW5nVHlwZTsKKyAgICBtX2FjY2VwdENoYXJzZXQg
PSBvdGhlci5tX2FjY2VwdENoYXJzZXQ7Cit9CisKIGlubGluZSBGb3JtU3VibWlzc2lvbjo6Rm9y
bVN1Ym1pc3Npb24oTWV0aG9kIG1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTdHJp
bmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25zdCBTdHJpbmcmIGJvdW5k
YXJ5LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICA6IG1f
bWV0aG9kKG1ldGhvZCkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKQEAgLTEyNiwyMSArMTM1LDQw
IEBAIGlubGluZSBGb3JtU3VibWlzc2lvbjo6Rm9ybVN1Ym1pc3Npb24oTWV0aG9kIG1ldGhvZCwg
Y29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTCiBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBG
b3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQXR0cmli
dXRlcyYgYXR0cmlidXRlcywgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIGJvb2wgbG9ja0hpc3Rv
cnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciB0cmlnZ2VyKQogewogICAgIEFTU0VSVChmb3JtKTsK
KworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIHN1Ym1pdEJ1dHRvbiA9IDA7CisgICAgaWYg
KGV2ZW50ICYmIGV2ZW50LT50YXJnZXQoKSAmJiBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQor
ICAgICAgICBzdWJtaXRCdXR0b24gPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Kj4oZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSk7CisKKyAgICBGb3JtU3VibWlzc2lvbjo6QXR0
cmlidXRlcyBjb3BpZWRBdHRyaWJ1dGVzOworICAgIGNvcGllZEF0dHJpYnV0ZXMuY29weUZyb20o
YXR0cmlidXRlcyk7CisgICAgaWYgKHN1Ym1pdEJ1dHRvbikgeworICAgICAgICBTdHJpbmcgYXR0
cmlidXRlVmFsdWU7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9u
LT5nZXRBdHRyaWJ1dGUoZm9ybWFjdGlvbkF0dHIpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNv
cGllZEF0dHJpYnV0ZXMucGFyc2VBY3Rpb24oYXR0cmlidXRlVmFsdWUpOworICAgICAgICBpZiAo
IShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm1lbmN0eXBl
QXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZUVuY29k
aW5nVHlwZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0g
c3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9ybW1ldGhvZEF0dHIpKS5pc051bGwoKSkKKyAg
ICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VNZXRob2RUeXBlKGF0dHJpYnV0ZVZhbHVl
KTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJp
YnV0ZShmb3JtdGFyZ2V0QXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmli
dXRlcy5zZXRUYXJnZXQoYXR0cmlidXRlVmFsdWUpOworICAgIH0KKyAgICAKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBmb3JtLT5kb2N1bWVudCgpOwotICAgIEtVUkwgYWN0aW9uVVJMID0gZG9j
dW1lbnQtPmNvbXBsZXRlVVJMKGF0dHJpYnV0ZXMuYWN0aW9uKCkuaXNFbXB0eSgpID8gZG9jdW1l
bnQtPnVybCgpLnN0cmluZygpIDogYXR0cmlidXRlcy5hY3Rpb24oKSk7CisgICAgS1VSTCBhY3Rp
b25VUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwoY29waWVkQXR0cmlidXRlcy5hY3Rpb24oKS5p
c0VtcHR5KCkgPyBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgOiBjb3BpZWRBdHRyaWJ1dGVzLmFj
dGlvbigpKTsKICAgICBib29sIGlzTWFpbHRvRm9ybSA9IGFjdGlvblVSTC5wcm90b2NvbElzKCJt
YWlsdG8iKTsKICAgICBib29sIGlzTXVsdGlQYXJ0Rm9ybSA9IGZhbHNlOwotICAgIFN0cmluZyBl
bmNvZGluZ1R5cGUgPSBhdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgpOworICAgIFN0cmluZyBlbmNv
ZGluZ1R5cGUgPSBjb3BpZWRBdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgpOwogCi0gICAgaWYgKGF0
dHJpYnV0ZXMubWV0aG9kKCkgPT0gUG9zdE1ldGhvZCkgewotICAgICAgICBpc011bHRpUGFydEZv
cm0gPSBhdHRyaWJ1dGVzLmlzTXVsdGlQYXJ0Rm9ybSgpOworICAgIGlmIChjb3BpZWRBdHRyaWJ1
dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QpIHsKKyAgICAgICAgaXNNdWx0aVBhcnRGb3JtID0g
Y29waWVkQXR0cmlidXRlcy5pc011bHRpUGFydEZvcm0oKTsKICAgICAgICAgaWYgKGlzTXVsdGlQ
YXJ0Rm9ybSAmJiBpc01haWx0b0Zvcm0pIHsKICAgICAgICAgICAgIGVuY29kaW5nVHlwZSA9ICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOwogICAgICAgICAgICAgaXNNdWx0aVBh
cnRGb3JtID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBUZXh0RW5jb2RpbmcgZGF0
YUVuY29kaW5nID0gaXNNYWlsdG9Gb3JtID8gVVRGOEVuY29kaW5nKCkgOiBGb3JtRGF0YUJ1aWxk
ZXI6OmVuY29kaW5nRnJvbUFjY2VwdENoYXJzZXQoYXR0cmlidXRlcy5hY2NlcHRDaGFyc2V0KCks
IGRvY3VtZW50KTsKKyAgICBUZXh0RW5jb2RpbmcgZGF0YUVuY29kaW5nID0gaXNNYWlsdG9Gb3Jt
ID8gVVRGOEVuY29kaW5nKCkgOiBGb3JtRGF0YUJ1aWxkZXI6OmVuY29kaW5nRnJvbUFjY2VwdENo
YXJzZXQoY29waWVkQXR0cmlidXRlcy5hY2NlcHRDaGFyc2V0KCksIGRvY3VtZW50KTsKICAgICBS
ZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRhID0gRE9NRm9ybURhdGE6OmNyZWF0ZShkYXRh
RW5jb2RpbmcuZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbigpKTsKICAgICBWZWN0b3I8cGFpcjxT
dHJpbmcsIFN0cmluZz4gPiBmb3JtVmFsdWVzOwogCkBAIC0xNjYsNyArMTk0LDcgQEAgUGFzc1Jl
ZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1l
bnQqIGZvcm0sIGNvbnN0IEEKICAgICAgICAgYm91bmRhcnkgPSBmb3JtRGF0YS0+Ym91bmRhcnko
KS5kYXRhKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3Jl
YXRlKCooc3RhdGljX2Nhc3Q8Rm9ybURhdGFMaXN0Kj4oZG9tRm9ybURhdGEuZ2V0KCkpKSwgZG9t
Rm9ybURhdGEtPmVuY29kaW5nKCkpOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5tZXRob2QoKSA9
PSBQb3N0TWV0aG9kICYmIGlzTWFpbHRvRm9ybSkgeworICAgICAgICBpZiAoY29waWVkQXR0cmli
dXRlcy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kICYmIGlzTWFpbHRvRm9ybSkgewogICAgICAgICAg
ICAgLy8gQ29udmVydCB0aGUgZm9ybSBkYXRhIGludG8gYSBzdHJpbmcgdGhhdCB3ZSBwdXQgaW50
byB0aGUgVVJMLgogICAgICAgICAgICAgYXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoYWN0
aW9uVVJMLCAqZm9ybURhdGEsIGVuY29kaW5nVHlwZSk7CiAgICAgICAgICAgICBmb3JtRGF0YSA9
IEZvcm1EYXRhOjpjcmVhdGUoKTsKQEAgLTE3NCw5ICsyMDIsOSBAQCBQYXNzUmVmUHRyPEZvcm1T
dWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwg
Y29uc3QgQQogICAgIH0KIAogICAgIGZvcm1EYXRhLT5zZXRJZGVudGlmaWVyKGdlbmVyYXRlRm9y
bURhdGFJZGVudGlmaWVyKCkpOwotICAgIFN0cmluZyB0YXJnZXRPckJhc2VUYXJnZXQgPSBhdHRy
aWJ1dGVzLnRhcmdldCgpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT5iYXNlVGFyZ2V0KCkgOiBhdHRy
aWJ1dGVzLnRhcmdldCgpOworICAgIFN0cmluZyB0YXJnZXRPckJhc2VUYXJnZXQgPSBjb3BpZWRB
dHRyaWJ1dGVzLnRhcmdldCgpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT5iYXNlVGFyZ2V0KCkgOiBj
b3BpZWRBdHRyaWJ1dGVzLnRhcmdldCgpOwogICAgIFJlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSA9IEZvcm1TdGF0ZTo6Y3JlYXRlKGZvcm0sIGZvcm1WYWx1ZXMsIGRvY3VtZW50LT5mcmFtZSgp
LCB0cmlnZ2VyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1TdWJtaXNzaW9uKGF0dHJp
YnV0ZXMubWV0aG9kKCksIGFjdGlvblVSTCwgdGFyZ2V0T3JCYXNlVGFyZ2V0LCBlbmNvZGluZ1R5
cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZvcm1EYXRhLnJlbGVhc2UoKSwgYm91bmRhcnksIGxv
Y2tIaXN0b3J5LCBldmVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9ybVN1Ym1pc3Np
b24oY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJn
ZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgp
LCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7CiB9CiAKIEtVUkwgRm9ybVN1Ym1pc3Np
b246OnJlcXVlc3RVUkwoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uaCBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKaW5kZXggYjkzNTg4
MmM0MTE1NWI4ZWVhOGQ2YjU1NGViNGE2YWFjNzczMmY4YS4uZDcyNDgzNTc3Y2QyZGUyNDJiZjdj
YjRiZDNmNTkxOGU3OTE2YjJlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1p
c3Npb24uaAorKysgYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCkBAIC03Miw2ICs3
Miw4IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgU3RyaW5nJiBhY2NlcHRDaGFyc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9hY2NlcHRDaGFyc2V0OyB9CiAgICAgICAgIHZvaWQgc2V0QWNjZXB0Q2hh
cnNldChjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fYWNjZXB0Q2hhcnNldCA9IHZhbHVlOyB9CiAK
KyAgICAgICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdHRyaWJ1dGVzJik7CisKICAgICBwcml2YXRl
OgogICAgICAgICBNZXRob2QgbV9tZXRob2Q7CiAgICAgICAgIGJvb2wgbV9pc011bHRpUGFydEZv
cm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73704</attachid>
            <date>2010-11-11 23:33:49 -0800</date>
            <delta_ts>2010-11-12 00:32:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101112163347.patch</filename>
            <type>text/plain</type>
            <size>42296</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmM0MGFhZTU5Mjc1YjhlN2I2ZWQ2MWVhM2E2NmYyOGI5OGUyYzVhLi5hMjVhZDYw
YThiMWFiOGE0MDJjZmNlYjZiZGM0ZWYyODc2YjA0ZjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTAtMTEtMDkgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1q
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtYnV0dG9uLWpzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9y
bW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWpzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJp
YnV0ZS1pbnB1dC1qcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm10YXJn
ZXQtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1qcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1
dGUtYnV0dG9uLWpzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdl
dC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWpzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1p
bnB1dC1qcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5j
dHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmli
dXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tanMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5j
dHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtanMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUt
aW5wdXQtanMuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMTAgIEZ1bWl0b3NoaSBVa2FpICA8dWth
aUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRpbmcgQ2hyb21pdW0g
ZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0
aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1h
Y3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWRlMGViZDA0MDIxMThi
OTY1ZjI4YTg4M2MwZjRjYmEwYWRiNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MyBAQAorVGVzdCBmb3IgZm9ybWFjdGlvbiBhdHRyaWJ1dGVzIGluIGlucHV0IGFuZCBidXR0b24g
dGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm1hY3Rp
b24gYXR0cmlidXRlIGluIHRoZSBpbnB1dCB0YWcgd2FzIHVzZWQuCitQQVNTIFRoZSBmb3JtYWN0
aW9uIGF0dHJpYnV0ZSBpbiB0aGUgYnV0dG9uIHRhZyB3YXMgdXNlZC4KK1BBU1MgVGhlIG1vZGlm
aWVkIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBpbnB1dCB0YWcgd2FzIHVzZWQuCitQQVNT
IFRoZSBtb2RpZmllZCBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgYnV0dG9uIHRhZyB3YXMg
dXNlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmYTQ1N2IzYmY3NDIxMjBkNDhlZWFlYjZlZDg1MzllMDA5ZmNiNjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmli
dXRlLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdDogZmFpbFRlc3QodGhpcykiIG1l
dGhvZD0iZ2V0Ij4KKzxpbnB1dCBpZD0iYnV0dG9uMSIgdHlwZT0ic3VibWl0IiBmb3JtYWN0aW9u
PSJqYXZhc2NyaXB0OiBwYXNzVGVzdDEodGhpcykiIC8+Cis8YnV0dG9uIGlkPSJidXR0b24yIiB0
eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHBhc3NUZXN0Mih0aGlzKSIgLz4K
KzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgZm9ybWFjdGlvbiBhdHRy
aWJ1dGVzIGluIGlucHV0IGFuZCBidXR0b24gdGFncy4iKTsKK3ZhciBkb25lQWN0aW9uID0gZmFs
c2U7Cit2YXIgZG9uZUFjdGlvbjIgPSBmYWxzZTsKKworZnVuY3Rpb24gZmFpbFRlc3QodWwpCit7
CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1hY3Rpb24g
YXR0cmlidXRlIGluIHRoZSBpbnB1dCBvciBidXR0b24gdGFnIHdhcyBpZ25vcmVkLicpOworfQor
ZnVuY3Rpb24gcGFzc1Rlc3QxKHVsKQoreworICAgIGRvbmVBY3Rpb24gPSB0cnVlOworICAgIHRl
c3RQYXNzZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgaW5wdXQgdGFnIHdhcyB1
c2VkLicpOworfQorZnVuY3Rpb24gcGFzc1Rlc3QyKHVsKQoreworICAgIGRvbmVBY3Rpb24gPSB0
cnVlOworICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgYnV0
dG9uIHRhZyB3YXMgdXNlZC4nKTsKK30KK2Z1bmN0aW9uIHBhc3NUZXN0Myh1bCkKK3sKKyAgICBk
b25lQWN0aW9uID0gdHJ1ZTsKKyAgICBkb25lQWN0aW9uMiA9IHRydWU7Cit9CitmdW5jdGlvbiBw
YXNzVGVzdDQodWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAgZG9uZUFjdGlvbjIg
PSB0cnVlOworfQorCitkb25lQWN0aW9uID0gZmFsc2U7Cit2YXIgaW5wdXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYnV0dG9uMScpOworaW5wdXQuY2xpY2soKTsKK2lmICghZG9uZUFjdGlv
bikKKyAgICB0ZXN0RmFpbGVkKCdCb3RoIG9mIHRoZSBhY3Rpb24gYW5kIHRoZSBmb3JtYWN0aW9u
IGF0dHJpYnV0ZXMgd2VyZSBpZ25vcmVkLicpOworCitkb25lQWN0aW9uID0gZmFsc2U7Cit2YXIg
YnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbjInKTsKK2J1dHRvbi5jbGlj
aygpOworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggb2YgdGhlIGFjdGlv
biBhbmQgdGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGlnbm9yZWQuJyk7CisKK2RvbmVB
Y3Rpb24gPSBmYWxzZTsKK2RvbmVBY3Rpb24yID0gZmFsc2U7CitpbnB1dC5mb3JtQWN0aW9uID0g
ImphdmFzY3JpcHQ6IHBhc3NUZXN0Myh0aGlzKSI7CitpbnB1dC5jbGljaygpOworaWYgKCFkb25l
QWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggb2YgdGhlIGFjdGlvbiBhbmQgdGhlIGZvcm1h
Y3Rpb24gYXR0cmlidXRlcyB3ZXJlIGlnbm9yZWQuJyk7CitlbHNlIGlmIChkb25lQWN0aW9uMikK
KyAgICB0ZXN0UGFzc2VkKCdUaGUgbW9kaWZpZWQgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhl
IGlucHV0IHRhZyB3YXMgdXNlZC4nKTsKKworZG9uZUFjdGlvbiA9IGZhbHNlOworYnV0dG9uLmZv
cm1BY3Rpb24gPSAiamF2YXNjcmlwdDogcGFzc1Rlc3Q0KHRoaXMpIjsKK2J1dHRvbi5jbGljaygp
OworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggb2YgdGhlIGFjdGlvbiBh
bmQgdGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGlnbm9yZWQuJyk7CitlbHNlIGlmIChk
b25lQWN0aW9uMikKKyAgICB0ZXN0UGFzc2VkKCdUaGUgbW9kaWZpZWQgZm9ybWFjdGlvbiBhdHRy
aWJ1dGUgaW4gdGhlIGJ1dHRvbiB0YWcgd2FzIHVzZWQuJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
LWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0
dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc3NDk4NzMzOGQ1
NGE0YWM5ZTA3ZmYzZDI4OTAzNDIwMzgwNzU5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBp
biBidXR0b24gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNGVjYjJjZTc3NzBhMTUzMzU1NGVlYTg3NjlmM2RmZTBjMjBlYmE0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0
dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSI/
Ij4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFtIGhp
ZGRlbiIgLz4KKyAgICA8YnV0dG9uIGlkPSJidXR0b24iIGZvcm1tZXRob2Q9InBvc3QiIHR5cGU9
InN1Ym1pdCIgbmFtZT0iYnV0dG9uIiB2YWx1ZT0idmFsdWUiIC8+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBidXR0
b24gdGFncy4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBidXR0b24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CisKK2lmIChkb2N1bWVudC5VUkwuc3Vic3Ry
aW5nKDAsIDQpID09ICJmaWxlIikgeworICAgIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycp
ID09IC0xKSB7CisgICAgICAgIGJ1dHRvbi5jbGljaygpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAx
LCBkb2N1bWVudC5VUkwubGVuZ3RoKSA9PSAiIikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1Ro
ZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdh
cyBub3QgdXNlZCcpOworCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQor
fQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1t
ZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODJlNzA0YjNhN2IwNTYyMDdiNTdlYzNjZjc5Mzk4NTIxYzc5Mjc2YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0
dG9uLWpzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciB0aGUgbmV3bHkg
YWRkZWQgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3MuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3Vj
Y2Vzc2Z1bGx5IHVzZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0
aG9kLWF0dHJpYnV0ZS1idXR0b24tanMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDRhYWU3YTY1YjM4NjQw
N2JhOTI3YTA0ZGVlYTRjZDgxMDYzN2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24tanMuaHRtbApAQCAtMCwwICsx
LDQxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0g
bWV0aG9kPSJnZXQiIGFjdGlvbj0iPyI+CisgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
aGlkZGVuIiB2YWx1ZT0iSSBhbSBoaWRkZW4iIC8+CisgICAgPGJ1dHRvbiBpZD0iYnV0dG9uIiB0
eXBlPSJzdWJtaXQiIG5hbWU9ImJ1dHRvbiIgdmFsdWU9InZhbHVlIiAvPgorPC9mb3JtPgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgbmV3bHkgYWRkZWQgZm9ybW1ldGhvZCBh
dHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3MuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2
YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbicpOworYnV0dG9uLmZv
cm1NZXRob2QgPSAicG9zdCI7CisKK2lmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09
ICJmaWxlIikgeworICAgIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7Cisg
ICAgICAgIGJ1dHRvbi5jbGljaygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5VUkwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5V
UkwubGVuZ3RoKSA9PSAiIikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9k
IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcp
OworCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmli
dXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
bWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzc2
OWQ4MDc5MTI1MzI3YzMzZGViMWUzMzgyYTM2YzdkYWM5ODNkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRy
aWJ1dGUgaW4gaW5wdXQgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZmMDA3NDJmMmJkNDk1YmI4MmM3OTNjMjIwYjAyYmIwNGE0
NDNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhv
ZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9u
PSI/Ij4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFt
IGhpZGRlbiIgLz4KKyAgICA8aW5wdXQgaWQ9ImJ1dHRvbiIgZm9ybW1ldGhvZD0icG9zdCIgdHlw
ZT0ic3VibWl0IiBuYW1lPSJidXR0b24iIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLiIpOwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdidXR0b24nKTsKKworaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0g
ImZpbGUiKSB7CisgICAgaWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKyAg
ICAgICAgYnV0dG9uLmNsaWNrKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50
LlVSTC5zdWJzdHJpbmcoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSArIDEsIGRvY3VtZW50LlVS
TC5sZW5ndGgpID09ICIiKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1tZXRob2Qg
YXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZCcpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkJyk7
CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1
dGUtaW5wdXQtanMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0
aG9kLWF0dHJpYnV0ZS1pbnB1dC1qcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRmNmUwMDQz
YzU3MTlmZmY4NGJmODk3ZTZhYzQ3YTIyNzg5NDRjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtanMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBuZXdseSBhZGRlZCBmb3JtbWV0aG9k
IGF0dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1q
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1
dC1qcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNzE5Zjc2ZWQ3NmRkZmQ5MDFiZGM2Y2EyMDU2M2E4ZTgw
ZGQ0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRo
b2QtYXR0cmlidXRlLWlucHV0LWpzLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249
Ij8iPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRlbiIgdmFsdWU9IkkgYW0g
aGlkZGVuIiAvPgorICAgIDxpbnB1dCBpZD0iYnV0dG9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ1
dHRvbiIgdmFsdWU9InZhbHVlIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0IGZvciB0aGUgbmV3bHkgYWRkZWQgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gaW5wdXQgdGFn
cy4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBidXR0b24gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CitidXR0b24uZm9ybU1ldGhvZCA9ICJwb3N0IjsKKwor
aWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CisgICAgaWYgKGRv
Y3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKyAgICAgICAgYnV0dG9uLmNsaWNrKCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoZG9jdW1l
bnQuVVJMLmluZGV4T2YoJz8nKSArIDEsIGRvY3VtZW50LlVSTC5sZW5ndGgpID09ICIiKQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNz
ZnVsbHkgdXNlZCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdUaGUg
Zm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkJyk7CisKKyAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0
b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1OTI4YjgzMjVjNzY2YTFkY2IyNmQ0
MTczN2FjMzE5MWQ3ZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhIGJ1dHRvbiB0
YWcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0
IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYTNkZjUwNmQyYmQ1NjE0MWU2NmVhZTgwNWU0OGNiZWJjYTk4NzRkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0i
ZmFpbEZyYW1lIj4KKzxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uIiBmb3JtdGFyZ2V0
PSJwYXNzRnJhbWUiPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0
aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYSBidXR0b24gdGFnLiIpOworCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorCisgICAgLy8gTm90IGR1bXBpbmcgYXMgdGV4dCBzaW5jZSB0aGUgRHVtcFJlbmRl
clRyZWUgZG9lcyBub3QgZHVtcCB0aGUgdGV4dCBjb250ZW50IG9mIGNoaWxkIGZyYW1lcy4gICAg
ICAgICAgICAgICAgCisgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdi
dXR0b24nKTsKKyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVuY3Rpb24gcGFzc0ZyYW1lTG9h
ZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3MnKS5jb250ZW50
RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsKKyAgICB0ZXN0
UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLiIp
OworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBmYWlsRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZmFpbCcpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikK
KyAgICAgICAgcmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0
ZSB3YXMgbm90IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzIiBuYW1lPSJwYXNzRnJh
bWUiIG9ubG9hZD0icGFzc0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9ImFi
b3V0OmJsYW5rIiBpZD0iZmFpbCIgbmFtZT0iZmFpbEZyYW1lIiBvbmxvYWQ9ImZhaWxGcmFtZUxv
YWRlZCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWpzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWpz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzU5MjhiODMyNWM3NjZhMWRjYjI2ZDQxNzM3YWMz
MTkxZDdmNDgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24tanMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhIGJ1dHRvbiB0YWcuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0
ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2MWM5
NzI3MWM5ZDJkZDFiMjA5MWJlNDliMTU4NzgxYzc4MGY3YWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1s
CkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249InJl
c291cmNlcy9zdWNjZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbEZyYW1lIj4KKzxi
dXR0b24gdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uIj4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIGluIGEgYnV0dG9uIHRh
Zy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQg
c2luY2UgdGhlIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBv
ZiBjaGlsZCBmcmFtZXMuICAgICAgICAgICAgICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CisgICAgYnV0dG9uLmZvcm1UYXJnZXQgPSAncGFz
c0ZyYW1lJzsKKyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVuY3Rpb24gcGFzc0ZyYW1lTG9h
ZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3MnKS5jb250ZW50
RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsKKyAgICB0ZXN0
UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLiIp
OworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBmYWlsRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZmFpbCcpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikK
KyAgICAgICAgcmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0
ZSB3YXMgbm90IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzIiBuYW1lPSJwYXNzRnJh
bWUiIG9ubG9hZD0icGFzc0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9ImFi
b3V0OmJsYW5rIiBpZD0iZmFpbCIgbmFtZT0iZmFpbEZyYW1lIiBvbmxvYWQ9ImZhaWxGcmFtZUxv
YWRlZCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MzlhNmJlYmNmYmI4MzE3YWU0NTRiODZiMTQx
ZWMzNjk1NTc5OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zv
cm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhbiBpbnB1dCB0YWcuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0IGF0dHJp
YnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zM2NlYjVlMzY2YzgyN2FjMjc4YzEwNDVlZDY4MmFkM2U3OWRhOWZjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rp
b24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGFj
dGlvbj0icmVzb3VyY2VzL3N1Y2Nlc3MudHh0IiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJmYWlsRnJh
bWUiPgorPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImJ1dHRvbiIgZm9ybXRhcmdldD0icGFzc0Zy
YW1lIj4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm10
YXJnZXQgYXR0cmlidXRlIGluIGFuIGlucHV0IHRhZy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVl
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQgc2luY2UgdGhlIER1bXBSZW5kZXJUcmVlIGRv
ZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBvZiBjaGlsZCBmcmFtZXMuICAgICAgICAgICAg
ICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7
CisgICAgYnV0dG9uLmNsaWNrKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3NGcmFtZUxvYWRlZCgpCit7
CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzJykuY29udGVudERvY3VtZW50
LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdFBhc3NlZCgi
VGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZC4iKTsKKyAgICBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVu
Y3Rpb24gZmFpbEZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ZhaWwnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAg
IHJldHVybjsKKyAgICB0ZXN0RmFpbGVkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIG5v
dCB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0icGFzcyIgbmFtZT0icGFzc0ZyYW1lIiBvbmxv
YWQ9InBhc3NGcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFu
ayIgaWQ9ImZhaWwiIG5hbWU9ImZhaWxGcmFtZSIgb25sb2FkPSJmYWlsRnJhbWVMb2FkZWQoKSI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWpzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtanMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk1MzlhNmJlYmNmYmI4MzE3YWU0NTRiODZiMTQxZWMzNjk1NTc5OGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0
cmlidXRlLWlucHV0LWpzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciB0
aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYW4gaW5wdXQgdGFnLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nl
c3NmdWxseSB1c2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdl
dC1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRh
cmdldC1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2NhNGEzYTFjOWJmZDEw
YzliNDE0NDRmMTc2ZjBlMjg0ZmEyZDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1qcy5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNj
ZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbEZyYW1lIj4KKzxpbnB1dCB0eXBlPSJz
dWJtaXQiIGlkPSJidXR0b24iPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYW4gaW5wdXQgdGFnLiIpOworCitmdW5j
dGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorCisgICAgLy8gTm90IGR1bXBpbmcgYXMgdGV4dCBzaW5jZSB0aGUgRHVt
cFJlbmRlclRyZWUgZG9lcyBub3QgZHVtcCB0aGUgdGV4dCBjb250ZW50IG9mIGNoaWxkIGZyYW1l
cy4gICAgICAgICAgICAgICAgCisgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdidXR0b24nKTsKKyAgICBidXR0b24uZm9ybVRhcmdldCA9ICdwYXNzRnJhbWUnOworICAg
IGJ1dHRvbi5jbGljaygpOworfQorCitmdW5jdGlvbiBwYXNzRnJhbWVMb2FkZWQoKQoreworICAg
IGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzcycpLmNvbnRlbnREb2N1bWVudC5VUkwg
PT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJuOworICAgIHRlc3RQYXNzZWQoIlRoZSBm
b3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuIik7CisgICAgaXNTdWNj
ZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IGZhaWxGcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm
YWlsJykuY29udGVudERvY3VtZW50LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1
cm47CisgICAgdGVzdEZhaWxlZCgiVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBub3QgdXNl
ZC4iKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxpZnJh
bWUgc3JjPSJhYm91dDpibGFuayIgaWQ9InBhc3MiIG5hbWU9InBhc3NGcmFtZSIgb25sb2FkPSJw
YXNzRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlk
PSJmYWlsIiBuYW1lPSJmYWlsRnJhbWUiIG9ubG9hZD0iZmFpbEZyYW1lTG9hZGVkKCkiPjwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0
b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMzMWYwNjFjNTUxMDgw
YzliZTI1NzNhM2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCBtYWlsdG86
P2JvZHk9dG8lM0RvbmUlNDBleGFtcGxlLm9yZyUwRCUwQWJvZHklM0RMaW5lJTIwMSUwRCUwQUxp
bmUlMjAyJTBEJTBBJTQwJTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBEJTBBIHdpdGggbmF2aWdhdGlv
biB0eXBlICdmb3JtIHN1Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJvbSBIVE1MID4gI2RvY3VtZW50
CitGaWVsZCAxOiAgRmllbGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OTI5Yjk1NWRjOTdlYThkODc5NDI1ZjViNjEwMzFjYmE1YWQ0MGNl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVu
Y3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0i
bWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIG1heGxlbmd0
aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1wbGUub3JnIj4KK0ZpZWxkIDI6IDx0ZXh0
YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgorQCZhbXA7PSw7PyIrPC90ZXh0YXJlYT4K
KzxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFp
biIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdEZvclBvbGlj
eURlbGVnYXRlKCk7CisgICAgfQorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQi
KS5jbGljaygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9u
LWpzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0
eXBlLWF0dHJpYnV0ZS1idXR0b24tanMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OWIwNjA2
MjJjMzFmMDYxYzU1MTA4MGM5YmUyNTczYTNhNmZjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWpz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0
byBsb2FkIG1haWx0bzo/Ym9keT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExp
bmUlMjAxJTBEJTBBTGluZSUyMDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEg
d2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhU
TUwgPiAjZG9jdW1lbnQKK0ZpZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWpzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUt
YnV0dG9uLWpzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjNGFlNjY2ZmEyMzUyNmI0M2U3ODRlNDMyODg1
MThiM2JmOWU0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFp
bHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tanMuaHRtbApAQCAtMCwwICsxLDI4IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIg
YWN0aW9uPSJtYWlsdG86Ij4KK0ZpZWxkIDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIg
bWF4bGVuZ3RoPSI0MCIgbmFtZT0idG8iIHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQg
MjogPHRleHRhcmVhIG5hbWU9ImJvZHkiPkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3Rl
eHRhcmVhPgorPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIC8+Cis8L2Zvcm0+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAg
IH0KKyAgICB2YXIgc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdCIpOwor
ICAgIHN1Ym1pdC5mb3JtRW5jdHlwZSA9ICJ0ZXh0L3BsYWluIjsKKyAgICBzdWJtaXQuY2xpY2so
KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OWIwNjA2MjJjMzFm
MDYxYzU1MTA4MGM5YmUyNTczYTNhNmZjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9h
ZCBtYWlsdG86P2JvZHk9dG8lM0RvbmUlNDBleGFtcGxlLm9yZyUwRCUwQWJvZHklM0RMaW5lJTIw
MSUwRCUwQUxpbmUlMjAyJTBEJTBBJTQwJTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBEJTBBIHdpdGgg
bmF2aWdhdGlvbiB0eXBlICdmb3JtIHN1Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJvbSBIVE1MID4g
I2RvY3VtZW50CitGaWVsZCAxOiAgRmllbGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1
dC1odG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFmNzcxOTY0Y2FhYWZjNTllYzY0N2FkYzcwN2I2YmRl
NzQxN2FjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRv
L2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKQEAgLTAsMCArMSwyNiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9InBvc3QiIGFj
dGlvbj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIG1h
eGxlbmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1wbGUub3JnIj4KK0ZpZWxkIDI6
IDx0ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgorQCZhbXA7PSw7PyIrPC90ZXh0
YXJlYT4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBlPSJ0ZXh0
L3BsYWluIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0Rm9y
UG9saWN5RGVsZWdhdGUoKTsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1
Ym1pdCIpLmNsaWNrKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1p
bnB1dC1qcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtanMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OWIw
NjA2MjJjMzFmMDYxYzU1MTA4MGM5YmUyNTczYTNhNmZjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQt
anMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0
IHRvIGxvYWQgbWFpbHRvOj9ib2R5PXRvJTNEb25lJTQwZXhhbXBsZS5vcmclMEQlMEFib2R5JTNE
TGluZSUyMDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0MCUyNiUzRCUyQyUzQiUzRiUyMiUyQiUwRCUw
QSB3aXRoIG5hdmlnYXRpb24gdHlwZSAnZm9ybSBzdWJtaXR0ZWQnIG9yaWdpbmF0aW5nIGZyb20g
SFRNTCA+ICNkb2N1bWVudAorRmllbGQgMTogIEZpZWxkIDI6ICAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1qcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRl
LWlucHV0LWpzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwNTQ3ZTg2NzgyNDA0Yjg4MGI4NGYwZWMwYzE5
NGY2NWVjOWYzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFp
bHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1qcy5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gbWV0aG9kPSJwb3N0IiBh
Y3Rpb249Im1haWx0bzoiPgorRmllbGQgMTogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEwIiBt
YXhsZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFsdWU9Im9uZUBleGFtcGxlLm9yZyI+CitGaWVsZCAy
OiA8dGV4dGFyZWEgbmFtZT0iYm9keSI+TGluZSAxCitMaW5lIDIKK0AmYW1wOz0sOz8iKzwvdGV4
dGFyZWE+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0IiAvPgorPC9mb3JtPgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0Rm9yUG9saWN5RGVsZWdhdGUoKTsKKyAgICB9
CisgICAgdmFyIHN1Ym1pdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKTsKKyAg
ICBzdWJtaXQuZm9ybUVuY3R5cGUgPSAidGV4dC9wbGFpbiI7CisgICAgc3VibWl0LmNsaWNrKCk7
Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmYTViZjlmYWNmZDNmZDRiMmRhMWVh
NTIyNzY2OGFkYzgwMTM1Yi4uMmUwYWEyM2QyM2Q4ZmRlYmU0ZjI5MTM4ODdjZTQyMWU2ZDJjZTky
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0wOSAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGZvcm1hY3Rpb24sIGZvcm1lbmN0eXBlLCBmb3JtbWV0aG9kIGFuZCBmb3Jt
dGFyZ2V0IGF0dHJpYnV0ZXMgZm9yIGlucHV0IGFuZCBidXR0b24gdGFncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDAKKworICAgICAgICBUZXN0
czogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWpzLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0
LWpzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUt
YnV0dG9uLWh0bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0
dHJpYnV0ZS1idXR0b24tanMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtdGFy
Z2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9m
b3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24t
anMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8v
Zm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWpzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBmb3JtYWN0aW9uLCBmb3JtbWV0aG9kLCBmb3JtdGFy
Z2V0IGFuZCBmb3JtZW5jdHlwZSBhdHRyaWJ1dGVzCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOiBNb2RpZmllZCB0byBjaGVjayB0aGUgcHJl
c3NlZCBidXR0b24gYW5kIGl0cyBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJDb3JlOjpGb3JtU3Vi
bWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1
Ym1pc3Npb246OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmg6CisK
IDIwMTAtMTEtMTAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBT
dHlsZSBmaXggSSBzYWlkIEnigJlkIG1ha2UgdGhlbiBmb3Jnb3QgdG8gbWFrZS4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGQ5NzU5ZmNkYjBhODI0MDFhM2YwNWY1OGFhYWJkOWRj
MjJjNjQ2ZmYuLjA3YzA1NWViMzdjZDNlMTdjMDU1YWM1MmJkMTcwMDA0MDA1YmQzZWYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTQsNyArOTQsMTEgQEAgZXhwYW5kZWQKIGZh
Y2UKIGZvY3VzZWQKIGZvcgorZm9ybWFjdGlvbgorZm9ybWVuY3R5cGUKK2Zvcm1tZXRob2QKIGZv
cm1ub3ZhbGlkYXRlCitmb3JtdGFyZ2V0CiBmcmFtZQogZnJhbWVib3JkZXIKIGhlYWRlcnMKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDI3OWU4NTg2Y2VmNTA1NzM2MjVhMDBkZWY1
ODMzNjZjOGJhNzM4MGIuLjJmYmJhNDFmM2Y3NjYwM2NmYzJiZGNiZjUyZjZiYTllMmQ1OWE5YzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMjMsNyArMjMsMTEgQEAgbW9kdWxl
IGh0bWwgewogICAgIGludGVyZmFjZSBIVE1MQnV0dG9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogCisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybUVuY3R5cGU7CisgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CiAgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgZm9ybVRhcmdldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgYWNjZXNzS2V5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGI4NzM4
MjZkMTQzNmU2NjIwYjIwOGM2YTc0Y2ViMjJiYWQ3ZmZjMjkuLmZjNmQxMTEyMjlkNjQ0NDFiYmFm
NTNkOWQ1MDM4MWYzYTk0ODYzNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTI0
LDcgKzI0LDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVsdENoZWNrZWQ7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBmb3JtRW5jdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgZm9ybU1ldGhvZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29s
ZWFuIGZvcm1Ob1ZhbGlkYXRlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBmb3JtVGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2
YWxpZGl0eTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXB0Owog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgYi9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAKaW5kZXggZjNmMTlkMjgwNmM1OGQ2NTBmYWU1YmE4ZjUzNDk4ZDVk
ZTVjMTkwNS4uYWQ0Yzk3MWNjZTI5OTdmMTYzZGU2Zjc5MTMzZjE0Y2E5ZDQwMGU5ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMTEwLDYgKzExMCwxNSBAQCB2b2lkIEZvcm1TdWJt
aXNzaW9uOjpBdHRyaWJ1dGVzOjpwYXJzZU1ldGhvZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQog
ICAgICAgICBtX21ldGhvZCA9IEZvcm1TdWJtaXNzaW9uOjpHZXRNZXRob2Q7CiB9CiAKK3ZvaWQg
Rm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OmNvcHlGcm9tKGNvbnN0IEF0dHJpYnV0ZXMmIG90
aGVyKQoreworICAgIG1fbWV0aG9kID0gb3RoZXIubV9tZXRob2Q7CisgICAgbV9hY3Rpb24gPSBv
dGhlci5tX2FjdGlvbjsKKyAgICBtX3RhcmdldCA9IG90aGVyLm1fdGFyZ2V0OworICAgIG1fZW5j
b2RpbmdUeXBlID0gb3RoZXIubV9lbmNvZGluZ1R5cGU7CisgICAgbV9hY2NlcHRDaGFyc2V0ID0g
b3RoZXIubV9hY2NlcHRDaGFyc2V0OworfQorCiBpbmxpbmUgRm9ybVN1Ym1pc3Npb246OkZvcm1T
dWJtaXNzaW9uKE1ldGhvZCBtZXRob2QsIGNvbnN0IEtVUkwmIGFjdGlvbiwgY29uc3QgU3RyaW5n
JiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
PiBzdGF0ZSwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gZGF0YSwgY29uc3QgU3RyaW5nJiBib3VuZGFy
eSwgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgOiBtX21l
dGhvZChtZXRob2QpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCkBAIC0xMjYsMjEgKzEzNSw0MCBA
QCBpbmxpbmUgRm9ybVN1Ym1pc3Npb246OkZvcm1TdWJtaXNzaW9uKE1ldGhvZCBtZXRob2QsIGNv
bnN0IEtVUkwmIGFjdGlvbiwgY29uc3QgUwogUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9y
bVN1Ym1pc3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEF0dHJpYnV0
ZXMmIGF0dHJpYnV0ZXMsIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBib29sIGxvY2tIaXN0b3J5
LCBGb3JtU3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKICAgICBBU1NFUlQoZm9ybSk7CisK
KyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBzdWJtaXRCdXR0b24gPSAwOworICAgIGlmIChl
dmVudCAmJiBldmVudC0+dGFyZ2V0KCkgJiYgZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSkKKyAg
ICAgICAgc3VibWl0QnV0dG9uID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+
KGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkpOworCisgICAgRm9ybVN1Ym1pc3Npb246OkF0dHJp
YnV0ZXMgY29waWVkQXR0cmlidXRlczsKKyAgICBjb3BpZWRBdHRyaWJ1dGVzLmNvcHlGcm9tKGF0
dHJpYnV0ZXMpOworICAgIGlmIChzdWJtaXRCdXR0b24pIHsKKyAgICAgICAgU3RyaW5nIGF0dHJp
YnV0ZVZhbHVlOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+
Z2V0QXR0cmlidXRlKGZvcm1hY3Rpb25BdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3Bp
ZWRBdHRyaWJ1dGVzLnBhcnNlQWN0aW9uKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEo
YXR0cmlidXRlVmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtZW5jdHlwZUF0
dHIpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VFbmNvZGlu
Z1R5cGUoYXR0cmlidXRlVmFsdWUpOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1
Ym1pdEJ1dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm1tZXRob2RBdHRyKSkuaXNOdWxsKCkpCisgICAg
ICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlTWV0aG9kVHlwZShhdHRyaWJ1dGVWYWx1ZSk7
CisgICAgICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1
dGUoZm9ybXRhcmdldEF0dHIpKS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0
ZXMuc2V0VGFyZ2V0KGF0dHJpYnV0ZVZhbHVlKTsKKyAgICB9CisgICAgCiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZm9ybS0+ZG9jdW1lbnQoKTsKLSAgICBLVVJMIGFjdGlvblVSTCA9IGRvY3Vt
ZW50LT5jb21wbGV0ZVVSTChhdHRyaWJ1dGVzLmFjdGlvbigpLmlzRW1wdHkoKSA/IGRvY3VtZW50
LT51cmwoKS5zdHJpbmcoKSA6IGF0dHJpYnV0ZXMuYWN0aW9uKCkpOworICAgIEtVUkwgYWN0aW9u
VVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGNvcGllZEF0dHJpYnV0ZXMuYWN0aW9uKCkuaXNF
bXB0eSgpID8gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpIDogY29waWVkQXR0cmlidXRlcy5hY3Rp
b24oKSk7CiAgICAgYm9vbCBpc01haWx0b0Zvcm0gPSBhY3Rpb25VUkwucHJvdG9jb2xJcygibWFp
bHRvIik7CiAgICAgYm9vbCBpc011bHRpUGFydEZvcm0gPSBmYWxzZTsKLSAgICBTdHJpbmcgZW5j
b2RpbmdUeXBlID0gYXR0cmlidXRlcy5lbmNvZGluZ1R5cGUoKTsKKyAgICBTdHJpbmcgZW5jb2Rp
bmdUeXBlID0gY29waWVkQXR0cmlidXRlcy5lbmNvZGluZ1R5cGUoKTsKIAotICAgIGlmIChhdHRy
aWJ1dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QpIHsKLSAgICAgICAgaXNNdWx0aVBhcnRGb3Jt
ID0gYXR0cmlidXRlcy5pc011bHRpUGFydEZvcm0oKTsKKyAgICBpZiAoY29waWVkQXR0cmlidXRl
cy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kKSB7CisgICAgICAgIGlzTXVsdGlQYXJ0Rm9ybSA9IGNv
cGllZEF0dHJpYnV0ZXMuaXNNdWx0aVBhcnRGb3JtKCk7CiAgICAgICAgIGlmIChpc011bHRpUGFy
dEZvcm0gJiYgaXNNYWlsdG9Gb3JtKSB7CiAgICAgICAgICAgICBlbmNvZGluZ1R5cGUgPSAiYXBw
bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIjsKICAgICAgICAgICAgIGlzTXVsdGlQYXJ0
Rm9ybSA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgVGV4dEVuY29kaW5nIGRhdGFF
bmNvZGluZyA9IGlzTWFpbHRvRm9ybSA/IFVURjhFbmNvZGluZygpIDogRm9ybURhdGFCdWlsZGVy
OjplbmNvZGluZ0Zyb21BY2NlcHRDaGFyc2V0KGF0dHJpYnV0ZXMuYWNjZXB0Q2hhcnNldCgpLCBk
b2N1bWVudCk7CisgICAgVGV4dEVuY29kaW5nIGRhdGFFbmNvZGluZyA9IGlzTWFpbHRvRm9ybSA/
IFVURjhFbmNvZGluZygpIDogRm9ybURhdGFCdWlsZGVyOjplbmNvZGluZ0Zyb21BY2NlcHRDaGFy
c2V0KGNvcGllZEF0dHJpYnV0ZXMuYWNjZXB0Q2hhcnNldCgpLCBkb2N1bWVudCk7CiAgICAgUmVm
UHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZGF0YUVu
Y29kaW5nLmVuY29kaW5nRm9yRm9ybVN1Ym1pc3Npb24oKSk7CiAgICAgVmVjdG9yPHBhaXI8U3Ry
aW5nLCBTdHJpbmc+ID4gZm9ybVZhbHVlczsKIApAQCAtMTY2LDcgKzE5NCw3IEBAIFBhc3NSZWZQ
dHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50
KiBmb3JtLCBjb25zdCBBCiAgICAgICAgIGJvdW5kYXJ5ID0gZm9ybURhdGEtPmJvdW5kYXJ5KCku
ZGF0YSgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0
ZSgqKHN0YXRpY19jYXN0PEZvcm1EYXRhTGlzdCo+KGRvbUZvcm1EYXRhLmdldCgpKSksIGRvbUZv
cm1EYXRhLT5lbmNvZGluZygpKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMubWV0aG9kKCkgPT0g
UG9zdE1ldGhvZCAmJiBpc01haWx0b0Zvcm0pIHsKKyAgICAgICAgaWYgKGNvcGllZEF0dHJpYnV0
ZXMubWV0aG9kKCkgPT0gUG9zdE1ldGhvZCAmJiBpc01haWx0b0Zvcm0pIHsKICAgICAgICAgICAg
IC8vIENvbnZlcnQgdGhlIGZvcm0gZGF0YSBpbnRvIGEgc3RyaW5nIHRoYXQgd2UgcHV0IGludG8g
dGhlIFVSTC4KICAgICAgICAgICAgIGFwcGVuZE1haWx0b1Bvc3RGb3JtRGF0YVRvVVJMKGFjdGlv
blVSTCwgKmZvcm1EYXRhLCBlbmNvZGluZ1R5cGUpOwogICAgICAgICAgICAgZm9ybURhdGEgPSBG
b3JtRGF0YTo6Y3JlYXRlKCk7CkBAIC0xNzQsOSArMjAyLDkgQEAgUGFzc1JlZlB0cjxGb3JtU3Vi
bWlzc2lvbj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNv
bnN0IEEKICAgICB9CiAKICAgICBmb3JtRGF0YS0+c2V0SWRlbnRpZmllcihnZW5lcmF0ZUZvcm1E
YXRhSWRlbnRpZmllcigpKTsKLSAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gYXR0cmli
dXRlcy50YXJnZXQoKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+YmFzZVRhcmdldCgpIDogYXR0cmli
dXRlcy50YXJnZXQoKTsKKyAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gY29waWVkQXR0
cmlidXRlcy50YXJnZXQoKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+YmFzZVRhcmdldCgpIDogY29w
aWVkQXR0cmlidXRlcy50YXJnZXQoKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUg
PSBGb3JtU3RhdGU6OmNyZWF0ZShmb3JtLCBmb3JtVmFsdWVzLCBkb2N1bWVudC0+ZnJhbWUoKSwg
dHJpZ2dlcik7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb3JtU3VibWlzc2lvbihhdHRyaWJ1
dGVzLm1ldGhvZCgpLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgZW5jb2RpbmdUeXBl
LCBmb3JtU3RhdGUucmVsZWFzZSgpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5LCBsb2Nr
SGlzdG9yeSwgZXZlbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1TdWJtaXNzaW9u
KGNvcGllZEF0dHJpYnV0ZXMubWV0aG9kKCksIGFjdGlvblVSTCwgdGFyZ2V0T3JCYXNlVGFyZ2V0
LCBlbmNvZGluZ1R5cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZvcm1EYXRhLnJlbGVhc2UoKSwg
Ym91bmRhcnksIGxvY2tIaXN0b3J5LCBldmVudCkpOwogfQogCiBLVVJMIEZvcm1TdWJtaXNzaW9u
OjpyZXF1ZXN0VVJMKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJt
aXNzaW9uLmggYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCmluZGV4IGI5MzU4ODJj
NDExNTViOGVlYThkNmI1NTRlYjRhNmFhYzc3MzJmOGEuLmQ3MjQ4MzU3N2NkMmRlMjQyYmY3Y2I0
YmQzZjU5MThlNzkxNmIyZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaApAQCAtNzIsNiArNzIs
OCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFN0cmluZyYgYWNjZXB0Q2hhcnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fYWNjZXB0Q2hhcnNldDsgfQogICAgICAgICB2b2lkIHNldEFjY2VwdENoYXJz
ZXQoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2FjY2VwdENoYXJzZXQgPSB2YWx1ZTsgfQogCisg
ICAgICAgIHZvaWQgY29weUZyb20oY29uc3QgQXR0cmlidXRlcyYpOworCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgTWV0aG9kIG1fbWV0aG9kOwogICAgICAgICBib29sIG1faXNNdWx0aVBhcnRGb3Jt
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73712</attachid>
            <date>2010-11-12 00:32:19 -0800</date>
            <delta_ts>2010-11-12 01:40:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101112173217.patch</filename>
            <type>text/plain</type>
            <size>43567</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmM0MGFhZTU5Mjc1YjhlN2I2ZWQ2MWVhM2E2NmYyOGI5OGUyYzVhLi41NDUyYmM3
NTVmOTRkOWJhYzIzZTljYjgzZjM5NmMxMjIwYmRhNjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMTIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0
bWw6IEFkZGVkLgorCiAyMDEwLTExLTEwICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0aW5nIENocm9taXVtIGV4cGVjdGF0aW9u
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUyMDI1M2JjYzYxMWJlZDMxNjlkMTI4YzVi
NTMyYjY0NjUzYzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
Zm9yIGZvcm1hY3Rpb24gYXR0cmlidXRlcyBpbiBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0
ZSBpbiB0aGUgaW5wdXQgdGFnIHdhcyB1c2VkLgorUEFTUyBUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1
dGUgaW4gdGhlIGJ1dHRvbiB0YWcgd2FzIHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTA3YzZmMzM0YzY0NjUwNDM2
NmQ1MzJmZTY0ZjAyNGM2MjVlZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249ImphdmFz
Y3JpcHQ6IGZhaWxUZXN0KHRoaXMpIiBtZXRob2Q9ImdldCI+Cis8aW5wdXQgaWQ9ImJ1dHRvbjEi
IHR5cGU9InN1Ym1pdCIgZm9ybWFjdGlvbj0iamF2YXNjcmlwdDogcGFzc1Rlc3QxKHRoaXMpIiAv
PgorPGJ1dHRvbiBpZD0iYnV0dG9uMiIgdHlwZT0ic3VibWl0IiBmb3JtYWN0aW9uPSJqYXZhc2Ny
aXB0OiBwYXNzVGVzdDIodGhpcykiIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgZm9yIGZvcm1hY3Rpb24gYXR0cmlidXRlcyBpbiBpbnB1dCBhbmQgYnV0dG9uIHRhZ3Mu
Iik7Cit2YXIgZG9uZUFjdGlvbiA9IGZhbHNlOwordmFyIGRvbmVBY3Rpb24yID0gZmFsc2U7CisK
K2Z1bmN0aW9uIGZhaWxUZXN0KHVsKQoreworICAgIGRvbmVBY3Rpb24gPSB0cnVlOworICAgIHRl
c3RGYWlsZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0aGUgaW5wdXQgb3IgYnV0dG9u
IHRhZyB3YXMgaWdub3JlZC4nKTsKK30KK2Z1bmN0aW9uIHBhc3NUZXN0MSh1bCkKK3sKKyAgICBk
b25lQWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1
dGUgaW4gdGhlIGlucHV0IHRhZyB3YXMgdXNlZC4nKTsKK30KK2Z1bmN0aW9uIHBhc3NUZXN0Mih1
bCkKK3sKKyAgICBkb25lQWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybWFj
dGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGJ1dHRvbiB0YWcgd2FzIHVzZWQuJyk7Cit9CisKK2RvbmVB
Y3Rpb24gPSBmYWxzZTsKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidXR0
b24xJyk7CitpbnB1dC5jbGljaygpOworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQo
J0JvdGggb2YgdGhlIGFjdGlvbiBhbmQgdGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGln
bm9yZWQuJyk7CisKK2RvbmVBY3Rpb24gPSBmYWxzZTsKK3ZhciBidXR0b24gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYnV0dG9uMicpOworYnV0dG9uLmNsaWNrKCk7CitpZiAoIWRvbmVBY3Rp
b24pCisgICAgdGVzdEZhaWxlZCgnQm90aCBvZiB0aGUgYWN0aW9uIGFuZCB0aGUgZm9ybWFjdGlv
biBhdHRyaWJ1dGVzIHdlcmUgaWdub3JlZC4nKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRl
LWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzc0OTg3MzM4ZDU0YTRhYzll
MDdmZjNkMjg5MDM0MjAzODA3NTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdCBmb3IgdGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIGluIGJ1dHRv
biB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgZm9ybW1l
dGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0ZWNiMmNlNzc3MGExNTMzNTU0ZWVhODc2OWYzZGZlMGMyMGViYTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRl
LWJ1dHRvbi1odG1sLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ij8iPgorICAg
IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRlbiIgdmFsdWU9IkkgYW0gaGlkZGVuIiAv
PgorICAgIDxidXR0b24gaWQ9ImJ1dHRvbiIgZm9ybW1ldGhvZD0icG9zdCIgdHlwZT0ic3VibWl0
IiBuYW1lPSJidXR0b24iIHZhbHVlPSJ2YWx1ZSIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIGluIGJ1dHRvbiB0YWdz
LiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGJ1dHRvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdidXR0b24nKTsKKworaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwg
NCkgPT0gImZpbGUiKSB7CisgICAgaWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEp
IHsKKyAgICAgICAgYnV0dG9uLmNsaWNrKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LlVSTC5zdWJzdHJpbmcoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSArIDEsIGRvY3Vt
ZW50LlVSTC5sZW5ndGgpID09ICIiKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1t
ZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZCcpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCdUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIG5vdCB1
c2VkJyk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNjNzY5ZDgwNzkxMjUzMjdjMzNkZWIxZTMzODJhMzZjN2RhYzk4M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtbWV0aG9k
IGF0dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlu
cHV0LWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmYwMDc0MmYyYmQ0OTViYjgyYzc5M2MyMjBiMDJi
YjA0YTQ0M2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
bWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBh
Y3Rpb249Ij8iPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRlbiIgdmFsdWU9
IkkgYW0gaGlkZGVuIiAvPgorICAgIDxpbnB1dCBpZD0iYnV0dG9uIiBmb3JtbWV0aG9kPSJwb3N0
IiB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ1dHRvbiIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIGluIGlucHV0IHRhZ3Mu
Iik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2J1dHRvbicpOworCitpZiAoZG9jdW1lbnQuVVJMLnN1YnN0cmluZygwLCA0
KSA9PSAiZmlsZSIpIHsKKyAgICBpZiAoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSA9PSAtMSkg
eworICAgICAgICBidXR0b24uY2xpY2soKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZG9j
dW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpICsgMSwgZG9jdW1l
bnQuVVJMLmxlbmd0aCkgPT0gIiIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybW1l
dGhvZCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkJyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgbm90IHVz
ZWQnKTsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0
dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNzU5MjhiODMyNWM3NjZhMWRjYjI2ZDQxNzM3YWMzMTkxZDdmNDgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24t
aHRtbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgdGhlIGZvcm10YXJn
ZXQgYXR0cmlidXRlIGluIGEgYnV0dG9uIHRhZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNl
ZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJp
YnV0ZS1idXR0b24taHRtbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhM2RmNTA2ZDJiZDU2MTQxZTY2ZWFl
ODA1ZTQ4Y2JlYmNhOTg3NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKQEAgLTAsMCArMSw1NCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGFjdGlvbj0icmVzb3VyY2VzL3N1Y2Nlc3Mu
dHh0IiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJmYWlsRnJhbWUiPgorPGJ1dHRvbiB0eXBlPSJzdWJt
aXQiIGlkPSJidXR0b24iIGZvcm10YXJnZXQ9InBhc3NGcmFtZSI+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhIGJ1
dHRvbiB0YWcuIik7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWxs
b3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICAvLyBOb3QgZHVtcGluZyBh
cyB0ZXh0IHNpbmNlIHRoZSBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBkdW1wIHRoZSB0ZXh0IGNv
bnRlbnQgb2YgY2hpbGQgZnJhbWVzLiAgICAgICAgICAgICAgICAKKyAgICB2YXIgYnV0dG9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbicpOworICAgIGJ1dHRvbi5jbGljaygpOwor
fQorCitmdW5jdGlvbiBwYXNzRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncGFzcycpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikK
KyAgICAgICAgcmV0dXJuOworICAgIHRlc3RQYXNzZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0
ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxGcmFtZUxvYWRlZCgp
Cit7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsJykuY29udGVudERvY3Vt
ZW50LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdEZhaWxl
ZCgiVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBub3QgdXNlZC4iKTsKKyAgICBpc1N1Y2Nl
c3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFu
ayIgaWQ9InBhc3MiIG5hbWU9InBhc3NGcmFtZSIgb25sb2FkPSJwYXNzRnJhbWVMb2FkZWQoKSI+
PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJmYWlsIiBuYW1lPSJmYWls
RnJhbWUiIG9ubG9hZD0iZmFpbEZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJp
YnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUz
OWE2YmViY2ZiYjgzMTdhZTQ1NGI4NmIxNDFlYzM2OTU1Nzk4YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBmb3IgdGhlIGZvcm10YXJnZXQgYXR0
cmlidXRlIGluIGFuIGlucHV0IHRhZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0
LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUt
aW5wdXQtaHRtbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzY2ViNWUzNjZjODI3YWMyNzhjMTA0NWVkNjgy
YWQzZTc5ZGE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zv
cm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gYWN0aW9uPSJyZXNvdXJjZXMvc3VjY2Vzcy50eHQiIG1l
dGhvZD0iR0VUIiB0YXJnZXQ9ImZhaWxGcmFtZSI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0i
YnV0dG9uIiBmb3JtdGFyZ2V0PSJwYXNzRnJhbWUiPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYW4gaW5wdXQgdGFn
LiIpOworCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgLy8gTm90IGR1bXBpbmcgYXMgdGV4dCBz
aW5jZSB0aGUgRHVtcFJlbmRlclRyZWUgZG9lcyBub3QgZHVtcCB0aGUgdGV4dCBjb250ZW50IG9m
IGNoaWxkIGZyYW1lcy4gICAgICAgICAgICAgICAgCisgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdidXR0b24nKTsKKyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVu
Y3Rpb24gcGFzc0ZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Bhc3MnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAg
IHJldHVybjsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1
Y2Nlc3NmdWxseSB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBmYWlsRnJhbWVMb2FkZWQoKQoreworICAg
IGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbCcpLmNvbnRlbnREb2N1bWVudC5VUkwg
PT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBm
b3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgbm90IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQ
YXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJw
YXNzIiBuYW1lPSJwYXNzRnJhbWUiIG9ubG9hZD0icGFzc0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1l
PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0iZmFpbCIgbmFtZT0iZmFpbEZyYW1lIiBv
bmxvYWQ9ImZhaWxGcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJp
YnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4OWIwNjA2MjJjMzFmMDYxYzU1MTA4MGM5YmUyNTczYTNhNmZjYjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRy
aWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUG9saWN5IGRl
bGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgbWFpbHRvOj9ib2R5PXRvJTNEb25lJTQwZXhhbXBsZS5v
cmclMEQlMEFib2R5JTNETGluZSUyMDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0MCUyNiUzRCUyQyUz
QiUzRiUyMiUyQiUwRCUwQSB3aXRoIG5hdmlnYXRpb24gdHlwZSAnZm9ybSBzdWJtaXR0ZWQnIG9y
aWdpbmF0aW5nIGZyb20gSFRNTCA+ICNkb2N1bWVudAorRmllbGQgMTogIEZpZWxkIDI6ICAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJp
YnV0ZS1idXR0b24taHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9y
bWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyOWI5NTVk
Yzk3ZWE4ZDg3OTQyNWY1YjYxMDMxY2JhNWFkNDBjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRt
bC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Im1haWx0bzoiPgorRmllbGQgMTogPGlucHV0
IHR5cGU9InRleHQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFsdWU9Im9u
ZUBleGFtcGxlLm9yZyI+CitGaWVsZCAyOiA8dGV4dGFyZWEgbmFtZT0iYm9keSI+TGluZSAxCitM
aW5lIDIKK0AmYW1wOz0sOz8iKzwvdGV4dGFyZWE+Cis8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9
InN1Ym1pdCIgZm9ybWVuY3R5cGU9InRleHQvcGxhaW4iIC8+Cis8L2Zvcm0+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAgIH0KKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0IikuY2xpY2soKTsKK30KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWls
dG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWpzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2Ez
YTZmY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8v
Zm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCBtYWlsdG86P2JvZHk9dG8lM0Rv
bmUlNDBleGFtcGxlLm9yZyUwRCUwQWJvZHklM0RMaW5lJTIwMSUwRCUwQUxpbmUlMjAyJTBEJTBB
JTQwJTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBEJTBBIHdpdGggbmF2aWdhdGlvbiB0eXBlICdmb3Jt
IHN1Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJvbSBIVE1MID4gI2RvY3VtZW50CitGaWVsZCAxOiAg
RmllbGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9y
bWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwYzRhZTY2NmZhMjM1MjZiNDNlNzg0ZTQzMjg4NTE4YjNiZjllNDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUt
YnV0dG9uLWpzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ibWFpbHRvOiI+CitGaWVsZCAx
OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iNDAiIG5hbWU9InRvIiB2
YWx1ZT0ib25lQGV4YW1wbGUub3JnIj4KK0ZpZWxkIDI6IDx0ZXh0YXJlYSBuYW1lPSJib2R5Ij5M
aW5lIDEKK0xpbmUgMgorQCZhbXA7PSw7PyIrPC90ZXh0YXJlYT4KKzxidXR0b24gdHlwZT0ic3Vi
bWl0IiBpZD0ic3VibWl0IiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0Rm9yUG9saWN5RGVsZWdhdGUoKTsKKyAgICB9CisgICAgdmFyIHN1Ym1pdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKTsKKyAgICBzdWJtaXQuZm9ybUVuY3R5cGUgPSAi
dGV4dC9wbGFpbiI7CisgICAgc3VibWl0LmNsaWNrKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1l
bmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVu
Y3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAor
UG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgbWFpbHRvOj9ib2R5PXRvJTNEb25lJTQw
ZXhhbXBsZS5vcmclMEQlMEFib2R5JTNETGluZSUyMDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0MCUy
NiUzRCUyQyUzQiUzRiUyMiUyQiUwRCUwQSB3aXRoIG5hdmlnYXRpb24gdHlwZSAnZm9ybSBzdWJt
aXR0ZWQnIG9yaWdpbmF0aW5nIGZyb20gSFRNTCA+ICNkb2N1bWVudAorRmllbGQgMTogIEZpZWxk
IDI6ICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0
eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
Zjc3MTk2NGNhYWFmYzU5ZWM2NDdhZGM3MDdiNmJkZTc0MTdhYzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5w
dXQtaHRtbC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Im1haWx0bzoiPgorRmllbGQgMTog
PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFs
dWU9Im9uZUBleGFtcGxlLm9yZyI+CitGaWVsZCAyOiA8dGV4dGFyZWEgbmFtZT0iYm9keSI+TGlu
ZSAxCitMaW5lIDIKK0AmYW1wOz0sOz8iKzwvdGV4dGFyZWE+Cis8aW5wdXQgdHlwZT0ic3VibWl0
IiBpZD0ic3VibWl0IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFpbiIgLz4KKzwvZm9ybT4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKS5jbGljaygpOworfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtanMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWpz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3
M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWls
dG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWpzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIG1haWx0bzo/Ym9keT10byUz
RG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUlMjAxJTBEJTBBTGluZSUyMDIlMEQl
MEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zv
cm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwgPiAjZG9jdW1lbnQKK0ZpZWxkIDE6
ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9m
b3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1qcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMyMDU0N2U4Njc4MjQwNGI4ODBiODRmMGVjMGMxOTRmNjVlYzlmM2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUt
aW5wdXQtanMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJtYWlsdG86Ij4KK0ZpZWxkIDE6
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSI0MCIgbmFtZT0idG8iIHZh
bHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRleHRhcmVhIG5hbWU9ImJvZHkiPkxp
bmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVhPgorPGlucHV0IHR5cGU9InN1Ym1p
dCIgaWQ9InN1Ym1pdCIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQorICAgIHZhciBzdWJtaXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3VibWl0Iik7CisgICAgc3VibWl0LmZvcm1FbmN0eXBlID0gInRl
eHQvcGxhaW4iOworICAgIHN1Ym1pdC5jbGljaygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9z
dWJtaXQtZm9ybS1hdHRyaWJ1dGVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzBiNDljZTc5MTJm
YzdjMmZlZDZlOTJjMDE4YTM4ODJlNTIzNDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcwpAQCAt
MCwwICsxLDE5MSBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAuZm9ybWFj
dGlvbiwgLmZvcm1lbmN0eXBlLCAuZm9ybW1ldGhvZCBhbmQgLmZvcm10YXJnZXQgb2YgSFRNTElu
cHV0RWxlbWVudCBhbmQgSFRNTEJ1dHRvbkVsZW1lbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2RlYnVnKCdPcmRpbmFyeSB2YWx1ZXMgZm9y
IGlucHV0OicpOworaW5wdXQudHlwZT0ic3VibWl0IjsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0
aW9uJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIiInKTsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdl
dCcsICciIicpOworCitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1BY3Rpb24nLCAnaHR0cDovL2xv
Y2FsaG9zdCcpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1BY3Rpb24nLCAnImh0dHA6Ly9sb2NhbGhv
c3QvIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtQWN0aW9uJywgJ2h0dHA6Ly9sb2NhbGhv
c3QvJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUFjdGlvbicsICciaHR0cDovL2xvY2FsaG9zdC8i
Jyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0eXBlJywgJ3RleHQvcGxhaW4nKTsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcidGV4dC9wbGFpbiInKTsKK2lucHV0LnNldEF0
dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAnbmEnKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlw
ZScsICcibmEiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCAnR0VUJyk7Citz
aG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICciR0VUIicpOworaW5wdXQuc2V0QXR0cmlidXRl
KCdmb3JtTWV0aG9kJywgJ25pJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibmki
Jyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAnX2JsYW5rJyk7CitzaG91bGRC
ZSgnaW5wdXQuZm9ybVRhcmdldCcsICciX2JsYW5rIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdm
b3JtVGFyZ2V0JywgJ251Jyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICcibnUiJyk7
CisKK2lucHV0LmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdp
bnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworaW5wdXQuZm9ybUFj
dGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9u
JywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworaW5wdXQuZm9ybUVuY3R5cGUgPSAndGV4dC9w
bGFpbic7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnInRleHQvcGxhaW4iJyk7Citp
bnB1dC5mb3JtRW5jdHlwZSA9ICdub3RhJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScs
ICcibm90YSInKTsKK2lucHV0LmZvcm1NZXRob2QgPSAnUE9TVCc7CitzaG91bGRCZSgnaW5wdXQu
Zm9ybU1ldGhvZCcsICciUE9TVCInKTsKK2lucHV0LmZvcm1NZXRob2QgPSAnbmV0YSc7CitzaG91
bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibmV0YSInKTsKK2lucHV0LmZvcm1UYXJnZXQgPSAn
aHR0cDovL2V4YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJodHRw
Oi8vZXhhbXBsZS5jb20iJyk7CitpbnB1dC5mb3JtVGFyZ2V0ID0gJ250YSc7CitzaG91bGRCZSgn
aW5wdXQuZm9ybVRhcmdldCcsICcibnRhIicpOworCitkZWJ1ZygnU2V0dGluZyBudWxsIGZvciBp
bnB1dDonKTsKK2lucHV0LmZvcm1FbmN0eXBlID0gbnVsbDsKK3Nob3VsZEJlKCdpbnB1dC5mb3Jt
RW5jdHlwZScsICciIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5
cGUiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0eXBlJywgbnVsbCk7
CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIm51bGwiJyk7CitpbnB1dC5mb3JtTWV0
aG9kID0gbnVsbDsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRC
ZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIiknLCAnbnVsbCcpOworaW5wdXQuc2V0
QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgbnVsbCk7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhv
ZCcsICcibnVsbCInKTsKK2lucHV0LmZvcm1UYXJnZXQgPSBudWxsOworc2hvdWxkQmUoJ2lucHV0
LmZvcm1UYXJnZXQnLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1U
YXJnZXQiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCBudWxs
KTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJudWxsIicpOworCitkZWJ1ZygnU2V0
dGluZyB1bmRlZmluZWQgZm9yIGlucHV0OicpOworaW5wdXQuZm9ybUVuY3R5cGUgPSB1bmRlZmlu
ZWQ7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnInVuZGVmaW5lZCInKTsKK3Nob3Vs
ZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnInVuZGVmaW5lZCInKTsK
K2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
J2lucHV0LmZvcm1FbmN0eXBlJywgJyJ1bmRlZmluZWQiJyk7CitpbnB1dC5mb3JtTWV0aG9kID0g
dW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnInVuZGVmaW5lZCInKTsK
K3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICcidW5kZWZpbmVk
IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgdW5kZWZpbmVkKTsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyJ1bmRlZmluZWQiJyk7CitpbnB1dC5mb3JtVGFyZ2V0
ID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnInVuZGVmaW5lZCIn
KTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICcidW5kZWZp
bmVkIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgdW5kZWZpbmVkKTsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJ1bmRlZmluZWQiJyk7CisKK2RlYnVnKCdTZXR0
aW5nIG5vbi1zdHJpbmcgZm9yIGlucHV0OicpOworaW5wdXQuZm9ybUVuY3R5cGUgPSAyNTY7Citz
aG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5n
ZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnIjI1NiInKTsKK2lucHV0LnNldEF0dHJpYnV0
ZSgnZm9ybUVuY3R5cGUnLCAyNTYpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1FbmN0eXBlJywgJyIy
NTYiJyk7CitpbnB1dC5mb3JtTWV0aG9kID0gMjU2Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRo
b2QnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2Qi
KScsICciMjU2IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgMjU2KTsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIyNTYiJyk7CitpbnB1dC5mb3JtVGFyZ2V0ID0g
MjU2Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdp
bnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICciMjU2IicpOworaW5wdXQuc2V0QXR0
cmlidXRlKCdmb3JtVGFyZ2V0JywgMjU2KTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0Jywg
JyIyNTYiJyk7CisKK3ZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24n
KTsKKworZGVidWcoJ09yZGluYXJ5IHZhbHVlcyBmb3IgYnV0dG9uOicpOworYnV0dG9uLnR5cGU9
InN1Ym1pdCI7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1BY3Rpb24nLCAnIiInKTsKK3Nob3VsZEJl
KCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhv
ZCcsICciIicpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyIiJyk7CisKK2J1dHRv
bi5zZXRBdHRyaWJ1dGUoJ2Zvcm1BY3Rpb24nLCAnaHR0cDovL2xvY2FsaG9zdCcpOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8vbG9jYWxob3N0LyInKTsKK2J1dHRvbi5z
ZXRBdHRyaWJ1dGUoJ2Zvcm1BY3Rpb24nLCAnaHR0cDovL2xvY2FsaG9zdC8nKTsKK3Nob3VsZEJl
KCdidXR0b24uZm9ybUFjdGlvbicsICciaHR0cDovL2xvY2FsaG9zdC8iJyk7CitidXR0b24uc2V0
QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsICd0ZXh0L3BsYWluJyk7CitzaG91bGRCZSgnYnV0dG9u
LmZvcm1FbmN0eXBlJywgJyJ0ZXh0L3BsYWluIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9y
bUVuY3R5cGUnLCAnbmEnKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIm5hIicp
OworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsICdHRVQnKTsKK3Nob3VsZEJlKCdi
dXR0b24uZm9ybU1ldGhvZCcsICciR0VUIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1l
dGhvZCcsICduYScpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJuYSInKTsKK2J1
dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAnX2JsYW5rJyk7CitzaG91bGRCZSgnYnV0
dG9uLmZvcm1UYXJnZXQnLCAnIl9ibGFuayInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1U
YXJnZXQnLCAnbmEnKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICcibmEiJyk7CisK
K2J1dHRvbi5mb3JtQWN0aW9uID0gJ2h0dHA6Ly9leGFtcGxlLmNvbSc7CitzaG91bGRCZSgnYnV0
dG9uLmZvcm1BY3Rpb24nLCAnImh0dHA6Ly9leGFtcGxlLmNvbS8iJyk7CitidXR0b24uZm9ybUFj
dGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUFjdGlv
bicsICciaHR0cDovL2V4YW1wbGUuY29tLyInKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9ICd0ZXh0
L3BsYWluJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnInRleHQvcGxhaW4iJyk7
CitidXR0b24uZm9ybUVuY3R5cGUgPSAnbm90YSc7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0
eXBlJywgJyJub3RhIicpOworYnV0dG9uLmZvcm1NZXRob2QgPSAnUE9TVCc7CitzaG91bGRCZSgn
YnV0dG9uLmZvcm1NZXRob2QnLCAnIlBPU1QiJyk7CitidXR0b24uZm9ybU1ldGhvZCA9ICdub3Rh
JzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICcibm90YSInKTsKK2J1dHRvbi5mb3Jt
VGFyZ2V0ID0gJ2h0dHA6Ly9leGFtcGxlLmNvbSc7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJn
ZXQnLCAnImh0dHA6Ly9leGFtcGxlLmNvbSInKTsKK2J1dHRvbi5mb3JtVGFyZ2V0ID0gJ25vdGEn
Oworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJub3RhIicpOworCitkZWJ1ZygnU2V0
dGluZyBudWxsIGZvciBidXR0b246Jyk7CitidXR0b24uZm9ybUVuY3R5cGUgPSBudWxsOworc2hv
dWxkQmUoJ2J1dHRvbi5mb3JtRW5jdHlwZScsICciIicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRB
dHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnbnVsbCcpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgn
Zm9ybUVuY3R5cGUnLCBudWxsKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIm51
bGwiJyk7CitidXR0b24uZm9ybU1ldGhvZCA9IG51bGw7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1N
ZXRob2QnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9k
IiknLCAnbnVsbCcpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsIG51bGwpOwor
c2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJudWxsIicpOworYnV0dG9uLmZvcm1UYXJn
ZXQgPSBudWxsOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyIiJyk7CitzaG91bGRC
ZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpJywgJ251bGwnKTsKK2J1dHRvbi5z
ZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCBudWxsKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRh
cmdldCcsICcibnVsbCInKTsKKworZGVidWcoJ1NldHRpbmcgdW5kZWZpbmVkIGZvciBidXR0b246
Jyk7CitidXR0b24uZm9ybUVuY3R5cGUgPSB1bmRlZmluZWQ7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1FbmN0eXBlJywgJyJ1bmRlZmluZWQiJyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0
ZSgiZm9ybUVuY3R5cGUiKScsICcidW5kZWZpbmVkIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgn
Zm9ybUVuY3R5cGUnLCB1bmRlZmluZWQpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtRW5jdHlwZScs
ICcidW5kZWZpbmVkIicpOworYnV0dG9uLmZvcm1NZXRob2QgPSB1bmRlZmluZWQ7CitzaG91bGRC
ZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdidXR0b24u
Z2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIiknLCAnInVuZGVmaW5lZCInKTsKK2J1dHRvbi5zZXRB
dHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCB1bmRlZmluZWQpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3Jt
TWV0aG9kJywgJyJ1bmRlZmluZWQiJyk7CitidXR0b24uZm9ybVRhcmdldCA9IHVuZGVmaW5lZDsK
K3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICcidW5kZWZpbmVkIicpOworc2hvdWxkQmUo
J2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICcidW5kZWZpbmVkIicpOworYnV0
dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsIHVuZGVmaW5lZCk7CitzaG91bGRCZSgnYnV0
dG9uLmZvcm1UYXJnZXQnLCAnInVuZGVmaW5lZCInKTsKKworZGVidWcoJ1NldHRpbmcgbm9uLXN0
cmluZyBmb3IgYnV0dG9uOicpOworYnV0dG9uLmZvcm1FbmN0eXBlID0gMjU2Oworc2hvdWxkQmUo
J2J1dHRvbi5mb3JtRW5jdHlwZScsICciMjU2IicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRBdHRy
aWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnIjI1NiInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zv
cm1FbmN0eXBlJywgNTEyKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIjUxMiIn
KTsKK2J1dHRvbi5mb3JtTWV0aG9kID0gMTI4Oworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9k
JywgJyIxMjgiJyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybU1ldGhvZCIp
JywgJyIxMjgiJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgMTcpOworc2hv
dWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyIxNyInKTsKK2J1dHRvbi5mb3JtVGFyZ2V0ID0g
MTAwOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyIxMDAiJyk7CitzaG91bGRCZSgn
YnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpJywgJyIxMDAiJyk7CitidXR0b24uc2V0
QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgMjgxKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdl
dCcsICciMjgxIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMGU1M2U1NTRhMTM1YTkxNzY0YzA3ZjgzZDExNmViMzIy
NTU2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1m
b3JtLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTExIEBACitUZXN0cyB0aGUg
YmVoYXZpb3Igb2YgLmZvcm1hY3Rpb24sIC5mb3JtZW5jdHlwZSwgLmZvcm1tZXRob2QgYW5kIC5m
b3JtdGFyZ2V0IG9mIEhUTUxJbnB1dEVsZW1lbnQgYW5kIEhUTUxCdXR0b25FbGVtZW50LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworT3JkaW5hcnkgdmFsdWVzIGZvciBpbnB1dDoK
K1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiIgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAi
IgorUEFTUyBpbnB1dC5mb3JtTWV0aG9kIGlzICIiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMg
IiIKK1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiaHR0cDovL2xvY2FsaG9zdC8iCitQQVNTIGlu
cHV0LmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9sb2NhbGhvc3QvIgorUEFTUyBpbnB1dC5mb3JtRW5j
dHlwZSBpcyAidGV4dC9wbGFpbiIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgIm5hIgorUEFT
UyBpbnB1dC5mb3JtTWV0aG9kIGlzICJHRVQiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIm5p
IgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICJfYmxhbmsiCitQQVNTIGlucHV0LmZvcm1UYXJn
ZXQgaXMgIm51IgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICJodHRwOi8vZXhhbXBsZS5jb20v
IgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICJodHRwOi8vZXhhbXBsZS5jb20vIgorUEFTUyBp
bnB1dC5mb3JtRW5jdHlwZSBpcyAidGV4dC9wbGFpbiIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUg
aXMgIm5vdGEiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIlBPU1QiCitQQVNTIGlucHV0LmZv
cm1NZXRob2QgaXMgIm5ldGEiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgImh0dHA6Ly9leGFt
cGxlLmNvbSIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAibnRhIgorU2V0dGluZyBudWxsIGZv
ciBpbnB1dDoKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgIiIKK1BBU1MgaW5wdXQuZ2V0QXR0
cmlidXRlKCJmb3JtRW5jdHlwZSIpIGlzIG51bGwKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMg
Im51bGwiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIiIKK1BBU1MgaW5wdXQuZ2V0QXR0cmli
dXRlKCJmb3JtTWV0aG9kIikgaXMgbnVsbAorUEFTUyBpbnB1dC5mb3JtTWV0aG9kIGlzICJudWxs
IgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICIiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgi
Zm9ybVRhcmdldCIpIGlzIG51bGwKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAibnVsbCIKK1Nl
dHRpbmcgdW5kZWZpbmVkIGZvciBpbnB1dDoKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgInVu
ZGVmaW5lZCIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpIGlzICJ1bmRl
ZmluZWQiCitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0
LmZvcm1NZXRob2QgaXMgInVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3Jt
TWV0aG9kIikgaXMgInVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAidW5kZWZp
bmVkIgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0Lmdl
dEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmZvcm1U
YXJnZXQgaXMgInVuZGVmaW5lZCIKK1NldHRpbmcgbm9uLXN0cmluZyBmb3IgaW5wdXQ6CitQQVNT
IGlucHV0LmZvcm1FbmN0eXBlIGlzICIyNTYiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgiZm9y
bUVuY3R5cGUiKSBpcyAiMjU2IgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAiMjU2IgorUEFT
UyBpbnB1dC5mb3JtTWV0aG9kIGlzICIyNTYiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgiZm9y
bU1ldGhvZCIpIGlzICIyNTYiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIjI1NiIKK1BBU1Mg
aW5wdXQuZm9ybVRhcmdldCBpcyAiMjU2IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1U
YXJnZXQiKSBpcyAiMjU2IgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICIyNTYiCitPcmRpbmFy
eSB2YWx1ZXMgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1BY3Rpb24gaXMgIiIKK1BBU1Mg
YnV0dG9uLmZvcm1FbmN0eXBlIGlzICIiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICIiCitQ
QVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICIiCitQQVNTIGJ1dHRvbi5mb3JtQWN0aW9uIGlzICJo
dHRwOi8vbG9jYWxob3N0LyIKK1BBU1MgYnV0dG9uLmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9sb2Nh
bGhvc3QvIgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgInRleHQvcGxhaW4iCitQQVNTIGJ1
dHRvbi5mb3JtRW5jdHlwZSBpcyAibmEiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJHRVQi
CitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJuYSIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQg
aXMgIl9ibGFuayIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIm5hIgorUEFTUyBidXR0b24u
Zm9ybUFjdGlvbiBpcyAiaHR0cDovL2V4YW1wbGUuY29tLyIKK1BBU1MgYnV0dG9uLmZvcm1BY3Rp
b24gaXMgImh0dHA6Ly9leGFtcGxlLmNvbS8iCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAi
dGV4dC9wbGFpbiIKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJub3RhIgorUEFTUyBidXR0
b24uZm9ybU1ldGhvZCBpcyAiUE9TVCIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIm5vdGEi
CitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJodHRwOi8vZXhhbXBsZS5jb20iCitQQVNTIGJ1
dHRvbi5mb3JtVGFyZ2V0IGlzICJub3RhIgorU2V0dGluZyBudWxsIGZvciBidXR0b246CitQQVNT
IGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAiIgorUEFTUyBidXR0b24uZ2V0QXR0cmlidXRlKCJmb3Jt
RW5jdHlwZSIpIGlzIG51bGwKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJudWxsIgorUEFT
UyBidXR0b24uZm9ybU1ldGhvZCBpcyAiIgorUEFTUyBidXR0b24uZ2V0QXR0cmlidXRlKCJmb3Jt
TWV0aG9kIikgaXMgbnVsbAorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAibnVsbCIKK1BBU1Mg
YnV0dG9uLmZvcm1UYXJnZXQgaXMgIiIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRh
cmdldCIpIGlzIG51bGwKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIm51bGwiCitTZXR0aW5n
IHVuZGVmaW5lZCBmb3IgYnV0dG9uOgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgInVuZGVm
aW5lZCIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKSBpcyAidW5kZWZp
bmVkIgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9u
LmZvcm1NZXRob2QgaXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9y
bU1ldGhvZCIpIGlzICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJ1bmRl
ZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRv
bi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKSBpcyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24u
Zm9ybVRhcmdldCBpcyAidW5kZWZpbmVkIgorU2V0dGluZyBub24tc3RyaW5nIGZvciBidXR0b246
CitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAiMjU2IgorUEFTUyBidXR0b24uZ2V0QXR0cmli
dXRlKCJmb3JtRW5jdHlwZSIpIGlzICIyNTYiCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAi
NTEyIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAiMTI4IgorUEFTUyBidXR0b24uZ2V0QXR0
cmlidXRlKCJmb3JtTWV0aG9kIikgaXMgIjEyOCIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMg
IjE3IgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiMTAwIgorUEFTUyBidXR0b24uZ2V0QXR0
cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgIjEwMCIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMg
IjI4MSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1mb3JtLWF0dHJpYnV0
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE3Njg2YTc4ZDFjMGIxNmI2MGEwMDFkMjZjYzRiYTM5ZTc2MTM3ZWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1mb3JtLWF0
dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdWJtaXQtZm9ybS1h
dHRyaWJ1dGVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNWZhNWJm
OWZhY2ZkM2ZkNGIyZGExZWE1MjI3NjY4YWRjODAxMzViLi5hMWNlZGVkMDUxNTFmMzc3ZWQ4MTVh
ZGUyZWE4YTlmOWVmMGRjNmRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTExLTEyICBEYWkgTWlrdXJ1
YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZm9ybWFjdGlvbiwgZm9ybWVuY3R5cGUsIGZv
cm1tZXRob2QgYW5kIGZvcm10YXJnZXQgYXR0cmlidXRlcyBmb3IgaW5wdXQgYW5kIGJ1dHRvbiB0
YWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0
MAorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0
bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1i
dXR0b24tanMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJp
YnV0ZS1pbnB1dC1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhv
ZC1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1qcy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9u
LWh0bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUt
YXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL21haWx0
by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtanMuaHRtbAorCisg
ICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZGVkIGZvcm1hY3Rpb24sIGZv
cm1tZXRob2QsIGZvcm10YXJnZXQgYW5kIGZvcm1lbmN0eXBlIGF0dHJpYnV0ZXMKKyAgICAgICAg
KiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6IE1vZGlmaWVk
IHRvIGNoZWNrIHRoZSBwcmVzc2VkIGJ1dHRvbiBhbmQgaXRzIGF0dHJpYnV0ZXMKKyAgICAgICAg
KFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzOjpjb3B5RnJvbSk6CisgICAgICAg
IChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvRm9y
bVN1Ym1pc3Npb24uaDoKKwogMjAxMC0xMS0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0eWxlIGZpeCBJIHNhaWQgSeKAmWQgbWFrZSB0aGVuIGZvcmdvdCB0
byBtYWtlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBi
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggZDk3NTlmY2RiMGE4MjQw
MWEzZjA1ZjU4YWFhYmQ5ZGMyMmM2NDZmZi4uMDdjMDU1ZWIzN2NkM2UxN2MwNTVhYzUyYmQxNzAw
MDQwMDViZDNlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC05NCw3ICs5NCwx
MSBAQCBleHBhbmRlZAogZmFjZQogZm9jdXNlZAogZm9yCitmb3JtYWN0aW9uCitmb3JtZW5jdHlw
ZQorZm9ybW1ldGhvZAogZm9ybW5vdmFsaWRhdGUKK2Zvcm10YXJnZXQKIGZyYW1lCiBmcmFtZWJv
cmRlcgogaGVhZGVycwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggMjc5ZTg1ODZj
ZWY1MDU3MzYyNWEwMGRlZjU4MzM2NmM4YmE3MzgwYi4uMmZiYmE0MWYzZjc2NjAzY2ZjMmJkY2Jm
NTJmNmJhOWUyZDU5YTljMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0yMyw3
ICsyMywxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIEhUTUxCdXR0b25FbGVtZW50
IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVt
ZW50IGZvcm07CiAKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBm
b3JtQWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtRW5j
dHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybU1ldGhvZDsK
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGZvcm1Ob1ZhbGlkYXRlOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtVGFyZ2V0OwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKIAogICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwKaW5kZXggYjg3MzgyNmQxNDM2ZTY2MjBiMjA4YzZhNzRjZWIyMmJhZDdmZmMyOS4uZmM2
ZDExMTIyOWQ2NDQ0MWJiYWY1M2Q5ZDUwMzgxZjNhOTQ4NjM2NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbApAQCAtMjQsNyArMjQsMTEgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOwog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y2hlY2tlZF0gYm9vbGVhbiBkZWZhdWx0Q2hlY2tl
ZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1UYXJnZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBhY2NlcHQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFj
Y2Vzc0tleTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCBmM2YxOWQyODA2YzU4ZDY1
MGZhZTViYThmNTM0OThkNWRlNWMxOTA1Li5hZDRjOTcxY2NlMjk5N2YxNjNkZTZmNzkxMzNmMTRj
YTlkNDAwZTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0xMTAsNiArMTEwLDE1
IEBAIHZvaWQgRm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OnBhcnNlTWV0aG9kVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUpCiAgICAgICAgIG1fbWV0aG9kID0gRm9ybVN1Ym1pc3Npb246OkdldE1l
dGhvZDsKIH0KIAordm9pZCBGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZyb20oY29u
c3QgQXR0cmlidXRlcyYgb3RoZXIpCit7CisgICAgbV9tZXRob2QgPSBvdGhlci5tX21ldGhvZDsK
KyAgICBtX2FjdGlvbiA9IG90aGVyLm1fYWN0aW9uOworICAgIG1fdGFyZ2V0ID0gb3RoZXIubV90
YXJnZXQ7CisgICAgbV9lbmNvZGluZ1R5cGUgPSBvdGhlci5tX2VuY29kaW5nVHlwZTsKKyAgICBt
X2FjY2VwdENoYXJzZXQgPSBvdGhlci5tX2FjY2VwdENoYXJzZXQ7Cit9CisKIGlubGluZSBGb3Jt
U3VibWlzc2lvbjo6Rm9ybVN1Ym1pc3Npb24oTWV0aG9kIG1ldGhvZCwgY29uc3QgS1VSTCYgYWN0
aW9uLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+IHN0YXRlLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiBkYXRhLCBjb25z
dCBTdHJpbmcmIGJvdW5kYXJ5LCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKQEAg
LTEyNiwyMSArMTM1LDQwIEBAIGlubGluZSBGb3JtU3VibWlzc2lvbjo6Rm9ybVN1Ym1pc3Npb24o
TWV0aG9kIG1ldGhvZCwgY29uc3QgS1VSTCYgYWN0aW9uLCBjb25zdCBTCiBQYXNzUmVmUHRyPEZv
cm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9y
bSwgY29uc3QgQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQs
IGJvb2wgbG9ja0hpc3RvcnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciB0cmlnZ2VyKQogewogICAg
IEFTU0VSVChmb3JtKTsKKworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIHN1Ym1pdEJ1dHRv
biA9IDA7CisgICAgaWYgKGV2ZW50ICYmIGV2ZW50LT50YXJnZXQoKSAmJiBldmVudC0+dGFyZ2V0
KCktPnRvTm9kZSgpKQorICAgICAgICBzdWJtaXRCdXR0b24gPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4oZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSk7CisKKyAgICBGb3Jt
U3VibWlzc2lvbjo6QXR0cmlidXRlcyBjb3BpZWRBdHRyaWJ1dGVzOworICAgIGNvcGllZEF0dHJp
YnV0ZXMuY29weUZyb20oYXR0cmlidXRlcyk7CisgICAgaWYgKHN1Ym1pdEJ1dHRvbikgeworICAg
ICAgICBTdHJpbmcgYXR0cmlidXRlVmFsdWU7CisgICAgICAgIGlmICghKGF0dHJpYnV0ZVZhbHVl
ID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9ybWFjdGlvbkF0dHIpKS5pc051bGwoKSkK
KyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VBY3Rpb24oYXR0cmlidXRlVmFsdWUp
OworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0cmli
dXRlKGZvcm1lbmN0eXBlQXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmli
dXRlcy5wYXJzZUVuY29kaW5nVHlwZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgIGlmICghKGF0
dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9ybW1ldGhvZEF0dHIp
KS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvcGllZEF0dHJpYnV0ZXMucGFyc2VNZXRob2RUeXBl
KGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUgPSBzdWJtaXRC
dXR0b24tPmdldEF0dHJpYnV0ZShmb3JtdGFyZ2V0QXR0cikpLmlzTnVsbCgpKQorICAgICAgICAg
ICAgY29waWVkQXR0cmlidXRlcy5zZXRUYXJnZXQoYXR0cmlidXRlVmFsdWUpOworICAgIH0KKyAg
ICAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmb3JtLT5kb2N1bWVudCgpOwotICAgIEtVUkwg
YWN0aW9uVVJMID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGF0dHJpYnV0ZXMuYWN0aW9uKCkuaXNF
bXB0eSgpID8gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpIDogYXR0cmlidXRlcy5hY3Rpb24oKSk7
CisgICAgS1VSTCBhY3Rpb25VUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwoY29waWVkQXR0cmli
dXRlcy5hY3Rpb24oKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgOiBjb3Bp
ZWRBdHRyaWJ1dGVzLmFjdGlvbigpKTsKICAgICBib29sIGlzTWFpbHRvRm9ybSA9IGFjdGlvblVS
TC5wcm90b2NvbElzKCJtYWlsdG8iKTsKICAgICBib29sIGlzTXVsdGlQYXJ0Rm9ybSA9IGZhbHNl
OwotICAgIFN0cmluZyBlbmNvZGluZ1R5cGUgPSBhdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgpOwor
ICAgIFN0cmluZyBlbmNvZGluZ1R5cGUgPSBjb3BpZWRBdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgp
OwogCi0gICAgaWYgKGF0dHJpYnV0ZXMubWV0aG9kKCkgPT0gUG9zdE1ldGhvZCkgewotICAgICAg
ICBpc011bHRpUGFydEZvcm0gPSBhdHRyaWJ1dGVzLmlzTXVsdGlQYXJ0Rm9ybSgpOworICAgIGlm
IChjb3BpZWRBdHRyaWJ1dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QpIHsKKyAgICAgICAgaXNN
dWx0aVBhcnRGb3JtID0gY29waWVkQXR0cmlidXRlcy5pc011bHRpUGFydEZvcm0oKTsKICAgICAg
ICAgaWYgKGlzTXVsdGlQYXJ0Rm9ybSAmJiBpc01haWx0b0Zvcm0pIHsKICAgICAgICAgICAgIGVu
Y29kaW5nVHlwZSA9ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOwogICAgICAg
ICAgICAgaXNNdWx0aVBhcnRGb3JtID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBU
ZXh0RW5jb2RpbmcgZGF0YUVuY29kaW5nID0gaXNNYWlsdG9Gb3JtID8gVVRGOEVuY29kaW5nKCkg
OiBGb3JtRGF0YUJ1aWxkZXI6OmVuY29kaW5nRnJvbUFjY2VwdENoYXJzZXQoYXR0cmlidXRlcy5h
Y2NlcHRDaGFyc2V0KCksIGRvY3VtZW50KTsKKyAgICBUZXh0RW5jb2RpbmcgZGF0YUVuY29kaW5n
ID0gaXNNYWlsdG9Gb3JtID8gVVRGOEVuY29kaW5nKCkgOiBGb3JtRGF0YUJ1aWxkZXI6OmVuY29k
aW5nRnJvbUFjY2VwdENoYXJzZXQoY29waWVkQXR0cmlidXRlcy5hY2NlcHRDaGFyc2V0KCksIGRv
Y3VtZW50KTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRhID0gRE9NRm9ybURh
dGE6OmNyZWF0ZShkYXRhRW5jb2RpbmcuZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbigpKTsKICAg
ICBWZWN0b3I8cGFpcjxTdHJpbmcsIFN0cmluZz4gPiBmb3JtVmFsdWVzOwogCkBAIC0xNjYsNyAr
MTk0LDcgQEAgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9ybVN1Ym1pc3Npb246OmNyZWF0
ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEEKICAgICAgICAgYm91bmRhcnkgPSBmb3Jt
RGF0YS0+Ym91bmRhcnkoKS5kYXRhKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9ybURhdGEg
PSBGb3JtRGF0YTo6Y3JlYXRlKCooc3RhdGljX2Nhc3Q8Rm9ybURhdGFMaXN0Kj4oZG9tRm9ybURh
dGEuZ2V0KCkpKSwgZG9tRm9ybURhdGEtPmVuY29kaW5nKCkpOwotICAgICAgICBpZiAoYXR0cmli
dXRlcy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kICYmIGlzTWFpbHRvRm9ybSkgeworICAgICAgICBp
ZiAoY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kICYmIGlzTWFpbHRvRm9y
bSkgewogICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgZm9ybSBkYXRhIGludG8gYSBzdHJpbmcg
dGhhdCB3ZSBwdXQgaW50byB0aGUgVVJMLgogICAgICAgICAgICAgYXBwZW5kTWFpbHRvUG9zdEZv
cm1EYXRhVG9VUkwoYWN0aW9uVVJMLCAqZm9ybURhdGEsIGVuY29kaW5nVHlwZSk7CiAgICAgICAg
ICAgICBmb3JtRGF0YSA9IEZvcm1EYXRhOjpjcmVhdGUoKTsKQEAgLTE3NCw5ICsyMDIsOSBAQCBQ
YXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3Jt
RWxlbWVudCogZm9ybSwgY29uc3QgQQogICAgIH0KIAogICAgIGZvcm1EYXRhLT5zZXRJZGVudGlm
aWVyKGdlbmVyYXRlRm9ybURhdGFJZGVudGlmaWVyKCkpOwotICAgIFN0cmluZyB0YXJnZXRPckJh
c2VUYXJnZXQgPSBhdHRyaWJ1dGVzLnRhcmdldCgpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT5iYXNl
VGFyZ2V0KCkgOiBhdHRyaWJ1dGVzLnRhcmdldCgpOworICAgIFN0cmluZyB0YXJnZXRPckJhc2VU
YXJnZXQgPSBjb3BpZWRBdHRyaWJ1dGVzLnRhcmdldCgpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT5i
YXNlVGFyZ2V0KCkgOiBjb3BpZWRBdHRyaWJ1dGVzLnRhcmdldCgpOwogICAgIFJlZlB0cjxGb3Jt
U3RhdGU+IGZvcm1TdGF0ZSA9IEZvcm1TdGF0ZTo6Y3JlYXRlKGZvcm0sIGZvcm1WYWx1ZXMsIGRv
Y3VtZW50LT5mcmFtZSgpLCB0cmlnZ2VyKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1T
dWJtaXNzaW9uKGF0dHJpYnV0ZXMubWV0aG9kKCksIGFjdGlvblVSTCwgdGFyZ2V0T3JCYXNlVGFy
Z2V0LCBlbmNvZGluZ1R5cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZvcm1EYXRhLnJlbGVhc2Uo
KSwgYm91bmRhcnksIGxvY2tIaXN0b3J5LCBldmVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRm9ybVN1Ym1pc3Npb24oY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0
YXJnZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9y
bURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7CiB9CiAKIEtV
UkwgRm9ybVN1Ym1pc3Npb246OnJlcXVlc3RVUkwoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaCBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmgKaW5kZXggYjkzNTg4MmM0MTE1NWI4ZWVhOGQ2YjU1NGViNGE2YWFjNzczMmY4YS4uZDcyNDgz
NTc3Y2QyZGUyNDJiZjdjYjRiZDNmNTkxOGU3OTE2YjJlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRm9ybVN1Ym1pc3Npb24uaAorKysgYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lv
bi5oCkBAIC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgU3RyaW5nJiBhY2Nl
cHRDaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlcHRDaGFyc2V0OyB9CiAgICAgICAgIHZv
aWQgc2V0QWNjZXB0Q2hhcnNldChjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fYWNjZXB0Q2hhcnNl
dCA9IHZhbHVlOyB9CiAKKyAgICAgICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdHRyaWJ1dGVzJik7
CisKICAgICBwcml2YXRlOgogICAgICAgICBNZXRob2QgbV9tZXRob2Q7CiAgICAgICAgIGJvb2wg
bV9pc011bHRpUGFydEZvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73715</attachid>
            <date>2010-11-12 01:40:10 -0800</date>
            <delta_ts>2010-11-14 21:10:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101112184008.patch</filename>
            <type>text/plain</type>
            <size>43428</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmM0MGFhZTU5Mjc1YjhlN2I2ZWQ2MWVhM2E2NmYyOGI5OGUyYzVhLi43YzEzNzAz
YzhjMzNiNmNlNWVmNmY5NTM3NjY3YmViNWJhODNkYzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMTEtMTIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3Jt
LWF0dHJpYnV0ZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3VibWl0LWZvcm0t
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3Vi
bWl0LWZvcm0tYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xMCAgRnVtaXRvc2hp
IFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGlu
ZyBDaHJvbWl1bSBleHBlY3RhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MjAy
NTNiY2M2MTFiZWQzMTY5ZDEyOGM1YjUzMmI2NDY1M2M3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IGZvciBmb3JtYWN0aW9uIGF0dHJpYnV0ZXMgaW4gaW5wdXQg
YW5kIGJ1dHRvbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBU
aGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IHRhZyB3YXMgdXNlZC4KK1BBU1Mg
VGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBidXR0b24gdGFnIHdhcyB1c2VkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTkwN2M2ZjMzNGM2NDY1MDQzNjZkNTMyZmU2NGYwMjRjNjI1ZWU1NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbApA
QCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0OiBmYWlsVGVzdCh0aGlzKSIgbWV0aG9kPSJnZXQi
PgorPGlucHV0IGlkPSJidXR0b24xIiB0eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249ImphdmFzY3Jp
cHQ6IHBhc3NUZXN0MSh0aGlzKSIgLz4KKzxidXR0b24gaWQ9ImJ1dHRvbjIiIHR5cGU9InN1Ym1p
dCIgZm9ybWFjdGlvbj0iamF2YXNjcmlwdDogcGFzc1Rlc3QyKHRoaXMpIiAvPgorPC9mb3JtPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBmb3JtYWN0aW9uIGF0dHJpYnV0ZXMgaW4g
aW5wdXQgYW5kIGJ1dHRvbiB0YWdzLiIpOwordmFyIGRvbmVBY3Rpb24gPSBmYWxzZTsKK3ZhciBk
b25lQWN0aW9uMiA9IGZhbHNlOworCitmdW5jdGlvbiBmYWlsVGVzdCh1bCkKK3sKKyAgICBkb25l
QWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0RmFpbGVkKCdUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUg
aW4gdGhlIGlucHV0IG9yIGJ1dHRvbiB0YWcgd2FzIGlnbm9yZWQuJyk7Cit9CitmdW5jdGlvbiBw
YXNzVGVzdDEodWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAgdGVzdFBhc3NlZCgn
VGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBpbnB1dCB0YWcgd2FzIHVzZWQuJyk7Cit9
CitmdW5jdGlvbiBwYXNzVGVzdDIodWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAg
dGVzdFBhc3NlZCgnVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBidXR0b24gdGFnIHdh
cyB1c2VkLicpOworfQorCitkb25lQWN0aW9uID0gZmFsc2U7Cit2YXIgaW5wdXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uMScpOworaW5wdXQuY2xpY2soKTsKK2lmICghZG9uZUFj
dGlvbikKKyAgICB0ZXN0RmFpbGVkKCdCb3RoIG9mIHRoZSBhY3Rpb24gYW5kIHRoZSBmb3JtYWN0
aW9uIGF0dHJpYnV0ZXMgd2VyZSBpZ25vcmVkLicpOworCitkb25lQWN0aW9uID0gZmFsc2U7Cit2
YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbjInKTsKK2J1dHRvbi5j
bGljaygpOworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQoJ0JvdGggb2YgdGhlIGFj
dGlvbiBhbmQgdGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGlnbm9yZWQuJyk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDc3NDk4NzMzOGQ1NGE0YWM5ZTA3ZmYzZDI4OTAzNDIwMzgwNzU5ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtbWV0
aG9kIGF0dHJpYnV0ZSBpbiBidXR0b24gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNl
ZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0
dG9uLWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1
dGUtYnV0dG9uLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGVjYjJjZTc3NzBhMTUzMzU1NGVlYTg3
NjlmM2RmZTBjMjBlYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9
ImdldCIgYWN0aW9uPSI/Ij4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4i
IHZhbHVlPSJJIGFtIGhpZGRlbiIgLz4KKyAgICA8YnV0dG9uIGlkPSJidXR0b24iIGZvcm1tZXRo
b2Q9InBvc3QiIHR5cGU9InN1Ym1pdCIgbmFtZT0iYnV0dG9uIiB2YWx1ZT0idmFsdWUiIC8+Cis8
L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSBpbiBidXR0b24gdGFncy4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3Zh
ciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CisKK2lmIChkb2N1
bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikgeworICAgIGlmIChkb2N1bWVudC5V
UkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAgICAgIGJ1dHRvbi5jbGljaygpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5p
bmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwubGVuZ3RoKSA9PSAiIikKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVz
ZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1tZXRo
b2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcpOworCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfQorfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzc2OWQ4MDc5MTI1MzI3YzMzZGViMWUzMzgyYTM2Yzdk
YWM5ODNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0
aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gaW5wdXQgdGFncy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdh
cyBzdWNjZXNzZnVsbHkgdXNlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1l
dGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZmMDA3NDJm
MmJkNDk1YmI4MmM3OTNjMjIwYjAyYmIwNGE0NDNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCkBA
IC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSI/Ij4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVu
IiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiIgLz4KKyAgICA8aW5wdXQgaWQ9ImJ1
dHRvbiIgZm9ybW1ldGhvZD0icG9zdCIgdHlwZT0ic3VibWl0IiBuYW1lPSJidXR0b24iIC8+Cis8
L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFy
IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidXR0b24nKTsKKworaWYgKGRvY3Vt
ZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CisgICAgaWYgKGRvY3VtZW50LlVS
TC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKyAgICAgICAgYnV0dG9uLmNsaWNrKCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoZG9jdW1lbnQuVVJMLmlu
ZGV4T2YoJz8nKSArIDEsIGRvY3VtZW50LlVSTC5sZW5ndGgpID09ICIiKQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNl
ZCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdUaGUgZm9ybW1ldGhv
ZCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkJyk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1OTI4YjgzMjVjNzY2YTFkY2IyNmQ0MTczN2FjMzE5
MWQ3ZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRh
cmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhIGJ1dHRvbiB0YWcuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0
ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YTNkZjUwNmQyYmQ1NjE0MWU2NmVhZTgwNWU0OGNiZWJjYTk4NzRkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRt
bC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBhY3Rp
b249InJlc291cmNlcy9zdWNjZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRhcmdldD0iZmFpbEZyYW1l
Ij4KKzxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uIiBmb3JtdGFyZ2V0PSJwYXNzRnJh
bWUiPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgZm9ybXRh
cmdldCBhdHRyaWJ1dGUgaW4gYSBidXR0b24gdGFnLiIpOworCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQor
CisgICAgLy8gTm90IGR1bXBpbmcgYXMgdGV4dCBzaW5jZSB0aGUgRHVtcFJlbmRlclRyZWUgZG9l
cyBub3QgZHVtcCB0aGUgdGV4dCBjb250ZW50IG9mIGNoaWxkIGZyYW1lcy4gICAgICAgICAgICAg
ICAgCisgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidXR0b24nKTsK
KyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVuY3Rpb24gcGFzc0ZyYW1lTG9hZGVkKCkKK3sK
KyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3MnKS5jb250ZW50RG9jdW1lbnQu
VVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsKKyAgICB0ZXN0UGFzc2VkKCJU
aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLiIpOworICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiBmYWlsRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZmFpbCcpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAg
cmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgbm90
IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzIiBuYW1lPSJwYXNzRnJhbWUiIG9ubG9h
ZD0icGFzc0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5r
IiBpZD0iZmFpbCIgbmFtZT0iZmFpbEZyYW1lIiBvbmxvYWQ9ImZhaWxGcmFtZUxvYWRlZCgpIj48
L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk1MzlhNmJlYmNmYmI4MzE3YWU0NTRiODZiMTQxZWMzNjk1NTc5
OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQt
YXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
Zm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhbiBpbnB1dCB0YWcuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMg
c3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
dGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2NlYjVl
MzY2YzgyN2FjMjc4YzEwNDVlZDY4MmFkM2U3OWRhOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGFjdGlvbj0icmVz
b3VyY2VzL3N1Y2Nlc3MudHh0IiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJmYWlsRnJhbWUiPgorPGlu
cHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImJ1dHRvbiIgZm9ybXRhcmdldD0icGFzc0ZyYW1lIj4KKzwv
Zm9ybT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm10YXJnZXQgYXR0
cmlidXRlIGluIGFuIGlucHV0IHRhZy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIC8v
IE5vdCBkdW1waW5nIGFzIHRleHQgc2luY2UgdGhlIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IGR1
bXAgdGhlIHRleHQgY29udGVudCBvZiBjaGlsZCBmcmFtZXMuICAgICAgICAgICAgICAgIAorICAg
IHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CisgICAgYnV0
dG9uLmNsaWNrKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3NGcmFtZUxvYWRlZCgpCit7CisgICAgaWYg
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzJykuY29udGVudERvY3VtZW50LlVSTCA9PSAi
YWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdFBhc3NlZCgiVGhlIGZvcm10
YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZC4iKTsKKyAgICBpc1N1Y2Nlc3Nm
dWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZmFp
bEZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhaWwn
KS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsK
KyAgICB0ZXN0RmFpbGVkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkLiIp
OworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPGlmcmFtZSBz
cmM9ImFib3V0OmJsYW5rIiBpZD0icGFzcyIgbmFtZT0icGFzc0ZyYW1lIiBvbmxvYWQ9InBhc3NG
cmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgaWQ9ImZh
aWwiIG5hbWU9ImZhaWxGcmFtZSIgb25sb2FkPSJmYWlsRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1o
dG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJl
MjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9t
YWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIG1haWx0bzo/Ym9k
eT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUlMjAxJTBEJTBBTGluZSUy
MDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0aCBuYXZpZ2F0aW9uIHR5
cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwgPiAjZG9jdW1lbnQKK0Zp
ZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc5MjliOTU1ZGM5N2VhOGQ4Nzk0MjVmNWI2MTAzMWNiYTVhZDQwY2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlw
ZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJtYWls
dG86Ij4KK0ZpZWxkIDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSI0
MCIgbmFtZT0idG8iIHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRleHRhcmVh
IG5hbWU9ImJvZHkiPkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVhPgorPGJ1
dHRvbiB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBlPSJ0ZXh0L3BsYWluIiAv
PgorPC9mb3JtPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0Rm9yUG9saWN5RGVs
ZWdhdGUoKTsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdCIpLmNs
aWNrKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tanMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUt
YXR0cmlidXRlLWJ1dHRvbi1qcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMz
MWYwNjFjNTUxMDgwYzliZTI1NzNhM2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tanMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxv
YWQgbWFpbHRvOj9ib2R5PXRvJTNEb25lJTQwZXhhbXBsZS5vcmclMEQlMEFib2R5JTNETGluZSUy
MDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0MCUyNiUzRCUyQyUzQiUzRiUyMiUyQiUwRCUwQSB3aXRo
IG5hdmlnYXRpb24gdHlwZSAnZm9ybSBzdWJtaXR0ZWQnIG9yaWdpbmF0aW5nIGZyb20gSFRNTCA+
ICNkb2N1bWVudAorRmllbGQgMTogIEZpZWxkIDI6ICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24tanMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0
b24tanMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGM0YWU2NjZmYTIzNTI2YjQzZTc4NGU0MzI4ODUxOGIz
YmY5ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8v
Zm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1qcy5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rp
b249Im1haWx0bzoiPgorRmllbGQgMTogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjEwIiBtYXhs
ZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFsdWU9Im9uZUBleGFtcGxlLm9yZyI+CitGaWVsZCAyOiA8
dGV4dGFyZWEgbmFtZT0iYm9keSI+TGluZSAxCitMaW5lIDIKK0AmYW1wOz0sOz8iKzwvdGV4dGFy
ZWE+Cis8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9InN1Ym1pdCIgLz4KKzwvZm9ybT4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQor
ICAgIHZhciBzdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0Iik7CisgICAg
c3VibWl0LmZvcm1FbmN0eXBlID0gInRleHQvcGxhaW4iOworICAgIHN1Ym1pdC5jbGljaygpOwor
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1
dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMzMWYwNjFj
NTUxMDgwYzliZTI1NzNhM2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIG1h
aWx0bzo/Ym9keT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUlMjAxJTBE
JTBBTGluZSUyMDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0aCBuYXZp
Z2F0aW9uIHR5cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwgPiAjZG9j
dW1lbnQKK0ZpZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0
bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MWY3NzE5NjRjYWFhZmM1OWVjNjQ3YWRjNzA3YjZiZGU3NDE3
YWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9y
bWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9u
PSJtYWlsdG86Ij4KK0ZpZWxkIDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVu
Z3RoPSI0MCIgbmFtZT0idG8iIHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRl
eHRhcmVhIG5hbWU9ImJvZHkiPkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVh
PgorPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9InN1Ym1pdCIgZm9ybWVuY3R5cGU9InRleHQvcGxh
aW4iIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSgpOworICAgIH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0
IikuY2xpY2soKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0
LWpzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0
eXBlLWF0dHJpYnV0ZS1pbnB1dC1qcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYy
MmMzMWYwNjFjNTUxMDgwYzliZTI1NzNhM2E2ZmNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1qcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8g
bG9hZCBtYWlsdG86P2JvZHk9dG8lM0RvbmUlNDBleGFtcGxlLm9yZyUwRCUwQWJvZHklM0RMaW5l
JTIwMSUwRCUwQUxpbmUlMjAyJTBEJTBBJTQwJTI2JTNEJTJDJTNCJTNGJTIyJTJCJTBEJTBBIHdp
dGggbmF2aWdhdGlvbiB0eXBlICdmb3JtIHN1Ym1pdHRlZCcgb3JpZ2luYXRpbmcgZnJvbSBIVE1M
ID4gI2RvY3VtZW50CitGaWVsZCAxOiAgRmllbGQgMjogIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWpzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5w
dXQtanMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjA1NDdlODY3ODI0MDRiODgwYjg0ZjBlYzBjMTk0ZjY1
ZWM5ZjNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8v
Zm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWpzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlv
bj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTAiIG1heGxl
bmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1wbGUub3JnIj4KK0ZpZWxkIDI6IDx0
ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgorQCZhbXA7PSw7PyIrPC90ZXh0YXJl
YT4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIC8+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAgIH0KKyAg
ICB2YXIgc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdCIpOworICAgIHN1
Ym1pdC5mb3JtRW5jdHlwZSA9ICJ0ZXh0L3BsYWluIjsKKyAgICBzdWJtaXQuY2xpY2soKTsKK30K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTkyYzA4NjY5NzlkMjNhZTEzODFkNTBjNDQyNDNiNjE3MTVlNmQ1NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1m
b3JtLWF0dHJpYnV0ZXMuanMKQEAgLTAsMCArMSwxOTEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0
aGUgYmVoYXZpb3Igb2YgLmZvcm1hY3Rpb24sIC5mb3JtZW5jdHlwZSwgLmZvcm1tZXRob2QgYW5k
IC5mb3JtdGFyZ2V0IG9mIEhUTUxJbnB1dEVsZW1lbnQgYW5kIEhUTUxCdXR0b25FbGVtZW50Licp
OworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitkZWJ1
ZygnT3JkaW5hcnkgdmFsdWVzIGZvciBpbnB1dDonKTsKK2lucHV0LnR5cGUgPSAic3VibWl0IjsK
K3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZm9y
bUVuY3R5cGUnLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIiJyk7Citz
aG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICciIicpOworCitpbnB1dC5zZXRBdHRyaWJ1dGUo
J2Zvcm1BY3Rpb24nLCAnaHR0cDovL2xvY2FsaG9zdCcpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1B
Y3Rpb24nLCAnImh0dHA6Ly9sb2NhbGhvc3QvIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3Jt
QWN0aW9uJywgJ2h0dHA6Ly9sb2NhbGhvc3QvJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUFjdGlv
bicsICciaHR0cDovL2xvY2FsaG9zdC8iJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0
eXBlJywgJ3RleHQvcGxhaW4nKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcidGV4
dC9wbGFpbiInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAnbmEnKTsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcibmEiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUo
J2Zvcm1NZXRob2QnLCAnR0VUJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICciR0VU
IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgJ25pJyk7CitzaG91bGRCZSgn
aW5wdXQuZm9ybU1ldGhvZCcsICcibmkiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJn
ZXQnLCAnX2JsYW5rJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICciX2JsYW5rIicp
OworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgJ251Jyk7CitzaG91bGRCZSgnaW5w
dXQuZm9ybVRhcmdldCcsICcibnUiJyk7CisKK2lucHV0LmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4
YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBs
ZS5jb20vIicpOworaW5wdXQuZm9ybUFjdGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworaW5w
dXQuZm9ybUVuY3R5cGUgPSAndGV4dC9wbGFpbic7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5
cGUnLCAnInRleHQvcGxhaW4iJyk7CitpbnB1dC5mb3JtRW5jdHlwZSA9ICdub3RhJzsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcibm90YSInKTsKK2lucHV0LmZvcm1NZXRob2QgPSAn
UE9TVCc7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICciUE9TVCInKTsKK2lucHV0LmZv
cm1NZXRob2QgPSAnbmV0YSc7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibmV0YSIn
KTsKK2lucHV0LmZvcm1UYXJnZXQgPSAnaHR0cDovL2V4YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdp
bnB1dC5mb3JtVGFyZ2V0JywgJyJodHRwOi8vZXhhbXBsZS5jb20iJyk7CitpbnB1dC5mb3JtVGFy
Z2V0ID0gJ250YSc7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICcibnRhIicpOworCitk
ZWJ1ZygnU2V0dGluZyBudWxsIGZvciBpbnB1dDonKTsKK2lucHV0LmZvcm1FbmN0eXBlID0gbnVs
bDsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICciIicpOworc2hvdWxkQmUoJ2lucHV0
LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRyaWJ1
dGUoJ2Zvcm1FbmN0eXBlJywgbnVsbCk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAn
Im51bGwiJyk7CitpbnB1dC5mb3JtTWV0aG9kID0gbnVsbDsKK3Nob3VsZEJlKCdpbnB1dC5mb3Jt
TWV0aG9kJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9k
IiknLCAnbnVsbCcpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgbnVsbCk7Citz
aG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibnVsbCInKTsKK2lucHV0LmZvcm1UYXJnZXQg
PSBudWxsOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnIiInKTsKK3Nob3VsZEJlKCdp
bnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRy
aWJ1dGUoJ2Zvcm1UYXJnZXQnLCBudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0Jywg
JyJudWxsIicpOworCitkZWJ1ZygnU2V0dGluZyB1bmRlZmluZWQgZm9yIGlucHV0OicpOworaW5w
dXQuZm9ybUVuY3R5cGUgPSB1bmRlZmluZWQ7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUn
LCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0
eXBlIiknLCAnInVuZGVmaW5lZCInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUn
LCB1bmRlZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1FbmN0eXBlJywgJyJ1bmRlZmluZWQi
Jyk7CitpbnB1dC5mb3JtTWV0aG9kID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZvcm1N
ZXRob2QnLCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZv
cm1NZXRob2QiKScsICcidW5kZWZpbmVkIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0
aG9kJywgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyJ1bmRlZmlu
ZWQiJyk7CitpbnB1dC5mb3JtVGFyZ2V0ID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZv
cm1UYXJnZXQnLCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUo
ImZvcm1UYXJnZXQiKScsICcidW5kZWZpbmVkIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3Jt
VGFyZ2V0JywgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJ1bmRl
ZmluZWQiJyk7CisKK2RlYnVnKCdTZXR0aW5nIG5vbi1zdHJpbmcgZm9yIGlucHV0OicpOworaW5w
dXQuZm9ybUVuY3R5cGUgPSAyNTY7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIjI1
NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnIjI1
NiInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAyNTYpOworc2hvdWxkQmUo
J2lucHV0LmZvcm1FbmN0eXBlJywgJyIyNTYiJyk7CitpbnB1dC5mb3JtTWV0aG9kID0gMjU2Owor
c2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5n
ZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICciMjU2IicpOworaW5wdXQuc2V0QXR0cmlidXRl
KCdmb3JtTWV0aG9kJywgMjU2KTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIyNTYi
Jyk7CitpbnB1dC5mb3JtVGFyZ2V0ID0gMjU2Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQn
LCAnIjI1NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScs
ICciMjU2IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgMjU2KTsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyIyNTYiJyk7CisKK3ZhciBidXR0b24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKworZGVidWcoJ09yZGluYXJ5IHZhbHVlcyBmb3Ig
YnV0dG9uOicpOworYnV0dG9uLnR5cGUgPSAic3VibWl0IjsKK3Nob3VsZEJlKCdidXR0b24uZm9y
bUFjdGlvbicsICciIicpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtRW5jdHlwZScsICciIicpOwor
c2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1UYXJnZXQnLCAnIiInKTsKKworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUFjdGlvbicsICdo
dHRwOi8vbG9jYWxob3N0Jyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1BY3Rpb24nLCAnImh0dHA6
Ly9sb2NhbGhvc3QvIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUFjdGlvbicsICdodHRw
Oi8vbG9jYWxob3N0LycpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8v
bG9jYWxob3N0LyInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0eXBlJywgJ3RleHQv
cGxhaW4nKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnInRleHQvcGxhaW4iJyk7
CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsICduYScpOworc2hvdWxkQmUoJ2J1
dHRvbi5mb3JtRW5jdHlwZScsICcibmEiJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtTWV0
aG9kJywgJ0dFVCcpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJHRVQiJyk7Citi
dXR0b24uc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgJ25hJyk7CitzaG91bGRCZSgnYnV0dG9u
LmZvcm1NZXRob2QnLCAnIm5hIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcs
ICdfYmxhbmsnKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciX2JsYW5rIicpOwor
YnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsICduYScpOworc2hvdWxkQmUoJ2J1dHRv
bi5mb3JtVGFyZ2V0JywgJyJuYSInKTsKKworYnV0dG9uLmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4
YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUFjdGlvbicsICciaHR0cDovL2V4YW1w
bGUuY29tLyInKTsKK2J1dHRvbi5mb3JtQWN0aW9uID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOwor
c2hvdWxkQmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOwor
YnV0dG9uLmZvcm1FbmN0eXBlID0gJ3RleHQvcGxhaW4nOworc2hvdWxkQmUoJ2J1dHRvbi5mb3Jt
RW5jdHlwZScsICcidGV4dC9wbGFpbiInKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9ICdub3RhJzsK
K3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIm5vdGEiJyk7CitidXR0b24uZm9ybU1l
dGhvZCA9ICdQT1NUJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICciUE9TVCInKTsK
K2J1dHRvbi5mb3JtTWV0aG9kID0gJ25vdGEnOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9k
JywgJyJub3RhIicpOworYnV0dG9uLmZvcm1UYXJnZXQgPSAnaHR0cDovL2V4YW1wbGUuY29tJzsK
K3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciaHR0cDovL2V4YW1wbGUuY29tIicpOwor
YnV0dG9uLmZvcm1UYXJnZXQgPSAnbm90YSc7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJnZXQn
LCAnIm5vdGEiJyk7CisKK2RlYnVnKCdTZXR0aW5nIG51bGwgZm9yIGJ1dHRvbjonKTsKK2J1dHRv
bi5mb3JtRW5jdHlwZSA9IG51bGw7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyIi
Jyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICdudWxs
Jyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsIG51bGwpOworc2hvdWxkQmUo
J2J1dHRvbi5mb3JtRW5jdHlwZScsICcibnVsbCInKTsKK2J1dHRvbi5mb3JtTWV0aG9kID0gbnVs
bDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICciIicpOworc2hvdWxkQmUoJ2J1dHRv
bi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICdudWxsJyk7CitidXR0b24uc2V0QXR0cmli
dXRlKCdmb3JtTWV0aG9kJywgbnVsbCk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAn
Im51bGwiJyk7CitidXR0b24uZm9ybVRhcmdldCA9IG51bGw7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1UYXJnZXQnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFy
Z2V0IiknLCAnbnVsbCcpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsIG51bGwp
Oworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJudWxsIicpOworCitkZWJ1ZygnU2V0
dGluZyB1bmRlZmluZWQgZm9yIGJ1dHRvbjonKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9IHVuZGVm
aW5lZDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnInVuZGVmaW5lZCInKTsKK3No
b3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpJywgJyJ1bmRlZmluZWQi
Jyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsIHVuZGVmaW5lZCk7CitzaG91
bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyJ1bmRlZmluZWQiJyk7CitidXR0b24uZm9ybU1l
dGhvZCA9IHVuZGVmaW5lZDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICcidW5kZWZp
bmVkIicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICci
dW5kZWZpbmVkIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsIHVuZGVmaW5l
ZCk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnInVuZGVmaW5lZCInKTsKK2J1dHRv
bi5mb3JtVGFyZ2V0ID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0Jywg
JyJ1bmRlZmluZWQiJyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdl
dCIpJywgJyJ1bmRlZmluZWQiJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0Jywg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICcidW5kZWZpbmVkIicp
OworCitkZWJ1ZygnU2V0dGluZyBub24tc3RyaW5nIGZvciBidXR0b246Jyk7CitidXR0b24uZm9y
bUVuY3R5cGUgPSAyNTY7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyIyNTYiJyk7
CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICciMjU2Iicp
OworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCA1MTIpOworc2hvdWxkQmUoJ2J1
dHRvbi5mb3JtRW5jdHlwZScsICciNTEyIicpOworYnV0dG9uLmZvcm1NZXRob2QgPSAxMjg7Citz
aG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIjEyOCInKTsKK3Nob3VsZEJlKCdidXR0b24u
Z2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIiknLCAnIjEyOCInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1
dGUoJ2Zvcm1NZXRob2QnLCAxNyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIjE3
IicpOworYnV0dG9uLmZvcm1UYXJnZXQgPSAxMDA7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJn
ZXQnLCAnIjEwMCInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0
IiknLCAnIjEwMCInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAyODEpOwor
c2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyIyODEiJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJt
aXQtZm9ybS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c3VibWl0LWZvcm0tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMwZTUzZTU1
NGExMzVhOTE3NjRjMDdmODNkMTE2ZWIzMjI1NTY3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMTEgQEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAuZm9ybWFjdGlvbiwgLmZvcm1l
bmN0eXBlLCAuZm9ybW1ldGhvZCBhbmQgLmZvcm10YXJnZXQgb2YgSFRNTElucHV0RWxlbWVudCBh
bmQgSFRNTEJ1dHRvbkVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitP
cmRpbmFyeSB2YWx1ZXMgZm9yIGlucHV0OgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICIiCitQ
QVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICIiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIiIK
K1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAiIgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICJo
dHRwOi8vbG9jYWxob3N0LyIKK1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiaHR0cDovL2xvY2Fs
aG9zdC8iCitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgorUEFTUyBpbnB1
dC5mb3JtRW5jdHlwZSBpcyAibmEiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIkdFVCIKK1BB
U1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAibmkiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIl9i
bGFuayIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAibnUiCitQQVNTIGlucHV0LmZvcm1BY3Rp
b24gaXMgImh0dHA6Ly9leGFtcGxlLmNvbS8iCitQQVNTIGlucHV0LmZvcm1BY3Rpb24gaXMgImh0
dHA6Ly9leGFtcGxlLmNvbS8iCitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWlu
IgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAibm90YSIKK1BBU1MgaW5wdXQuZm9ybU1ldGhv
ZCBpcyAiUE9TVCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAibmV0YSIKK1BBU1MgaW5wdXQu
Zm9ybVRhcmdldCBpcyAiaHR0cDovL2V4YW1wbGUuY29tIgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0
IGlzICJudGEiCitTZXR0aW5nIG51bGwgZm9yIGlucHV0OgorUEFTUyBpbnB1dC5mb3JtRW5jdHlw
ZSBpcyAiIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgbnVsbAor
UEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAibnVsbCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBp
cyAiIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyBudWxsCitQQVNT
IGlucHV0LmZvcm1NZXRob2QgaXMgIm51bGwiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIiIK
K1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgbnVsbAorUEFTUyBpbnB1
dC5mb3JtVGFyZ2V0IGlzICJudWxsIgorU2V0dGluZyB1bmRlZmluZWQgZm9yIGlucHV0OgorUEFT
UyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAidW5kZWZpbmVkIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1
dGUoImZvcm1FbmN0eXBlIikgaXMgInVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUg
aXMgInVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAidW5kZWZpbmVkIgorUEFT
UyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyAidW5kZWZpbmVkIgorUEFTUyBp
bnB1dC5mb3JtTWV0aG9kIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMg
InVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgInVu
ZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAidW5kZWZpbmVkIgorU2V0dGluZyBu
b24tc3RyaW5nIGZvciBpbnB1dDoKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgIjI1NiIKK1BB
U1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpIGlzICIyNTYiCitQQVNTIGlucHV0
LmZvcm1FbmN0eXBlIGlzICIyNTYiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIjI1NiIKK1BB
U1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIikgaXMgIjI1NiIKK1BBU1MgaW5wdXQu
Zm9ybU1ldGhvZCBpcyAiMjU2IgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICIyNTYiCitQQVNT
IGlucHV0LmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlzICIyNTYiCitQQVNTIGlucHV0LmZv
cm1UYXJnZXQgaXMgIjI1NiIKK09yZGluYXJ5IHZhbHVlcyBmb3IgYnV0dG9uOgorUEFTUyBidXR0
b24uZm9ybUFjdGlvbiBpcyAiIgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgIiIKK1BBU1Mg
YnV0dG9uLmZvcm1NZXRob2QgaXMgIiIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIiIKK1BB
U1MgYnV0dG9uLmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9sb2NhbGhvc3QvIgorUEFTUyBidXR0b24u
Zm9ybUFjdGlvbiBpcyAiaHR0cDovL2xvY2FsaG9zdC8iCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlw
ZSBpcyAidGV4dC9wbGFpbiIKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJuYSIKK1BBU1Mg
YnV0dG9uLmZvcm1NZXRob2QgaXMgIkdFVCIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIm5h
IgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiX2JsYW5rIgorUEFTUyBidXR0b24uZm9ybVRh
cmdldCBpcyAibmEiCitQQVNTIGJ1dHRvbi5mb3JtQWN0aW9uIGlzICJodHRwOi8vZXhhbXBsZS5j
b20vIgorUEFTUyBidXR0b24uZm9ybUFjdGlvbiBpcyAiaHR0cDovL2V4YW1wbGUuY29tLyIKK1BB
U1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgorUEFTUyBidXR0b24uZm9ybUVu
Y3R5cGUgaXMgIm5vdGEiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJQT1NUIgorUEFTUyBi
dXR0b24uZm9ybU1ldGhvZCBpcyAibm90YSIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgImh0
dHA6Ly9leGFtcGxlLmNvbSIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIm5vdGEiCitTZXR0
aW5nIG51bGwgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICIiCitQQVNT
IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgbnVsbAorUEFTUyBidXR0b24u
Zm9ybUVuY3R5cGUgaXMgIm51bGwiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICIiCitQQVNT
IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyBudWxsCitQQVNTIGJ1dHRvbi5m
b3JtTWV0aG9kIGlzICJudWxsIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiIgorUEFTUyBi
dXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgbnVsbAorUEFTUyBidXR0b24uZm9y
bVRhcmdldCBpcyAibnVsbCIKK1NldHRpbmcgdW5kZWZpbmVkIGZvciBidXR0b246CitQQVNTIGJ1
dHRvbi5mb3JtRW5jdHlwZSBpcyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24uZ2V0QXR0cmlidXRl
KCJmb3JtRW5jdHlwZSIpIGlzICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBp
cyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAidW5kZWZpbmVkIgorUEFT
UyBidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIikgaXMgInVuZGVmaW5lZCIKK1BBU1Mg
YnV0dG9uLmZvcm1NZXRob2QgaXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQg
aXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlz
ICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJ1bmRlZmluZWQiCitTZXR0
aW5nIG5vbi1zdHJpbmcgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICIy
NTYiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgIjI1NiIKK1BB
U1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICI1MTIiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlz
ICIxMjgiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyAiMTI4Igor
UEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAiMTciCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlz
ICIxMDAiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKSBpcyAiMTAwIgor
UEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiMjgxIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zdWJtaXQtZm9ybS1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc2ODZhNzhkMWMwYjE2
YjYwYTAwMWQyNmNjNGJhMzllNzYxMzdlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGQ1ZmE1YmY5ZmFjZmQzZmQ0YjJkYTFlYTUyMjc2NjhhZGM4MDEz
NWIuLmU5MjFlMzFlYjFhNTMzYzEwNmUyZmY4NjE1ZWJhYjcwNTkyNzJhZmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTAtMTEtMTIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBm
b3JtYWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1
dGVzIGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMv
Zm9ybWFjdGlvbi1hdHRyaWJ1dGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3Jt
bWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1
dHRvbi1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0
eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
c3VibWl0LWZvcm0tYXR0cmlidXRlcy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbjogQWRkZWQgZm9ybWFjdGlvbiwgZm9ybW1ldGhvZCwgZm9ybXRhcmdldCBhbmQg
Zm9ybWVuY3R5cGUgYXR0cmlidXRlcworICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAgICAgICogbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcDogTW9kaWZpZWQgdG8gY2hlY2sgdGhlIHByZXNzZWQgYnV0
dG9uIGFuZCBpdHMgYXR0cmlidXRlcworICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246
OkF0dHJpYnV0ZXM6OmNvcHlGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9u
OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorCiAyMDEwLTEx
LTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgU3R5bGUgZml4
IEkgc2FpZCBJ4oCZZCBtYWtlIHRoZW4gZm9yZ290IHRvIG1ha2UuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgppbmRleCBkOTc1OWZjZGIwYTgyNDAxYTNmMDVmNThhYWFiZDlkYzIyYzY0NmZm
Li4wN2MwNTVlYjM3Y2QzZTE3YzA1NWFjNTJiZDE3MDAwNDAwNWJkM2VmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KQEAgLTk0LDcgKzk0LDExIEBAIGV4cGFuZGVkCiBmYWNlCiBmb2N1
c2VkCiBmb3IKK2Zvcm1hY3Rpb24KK2Zvcm1lbmN0eXBlCitmb3JtbWV0aG9kCiBmb3Jtbm92YWxp
ZGF0ZQorZm9ybXRhcmdldAogZnJhbWUKIGZyYW1lYm9yZGVyCiBoZWFkZXJzCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxC
dXR0b25FbGVtZW50LmlkbAppbmRleCAyNzllODU4NmNlZjUwNTczNjI1YTAwZGVmNTgzMzY2Yzhi
YTczODBiLi4yZmJiYTQxZjNmNzY2MDNjZmMyYmRjYmY1MmY2YmE5ZTJkNTlhOWMxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKQEAgLTIzLDcgKzIzLDExIEBAIG1vZHVsZSBodG1sIHsK
ICAgICBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKIAorICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGZvcm1UYXJnZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0
eVN0YXRlIHZhbGlkaXR5OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBiODczODI2ZDE0MzZl
NjYyMGIyMDhjNmE3NGNlYjIyYmFkN2ZmYzI5Li5mYzZkMTExMjI5ZDY0NDQxYmJhZjUzZDlkNTAz
ODFmM2E5NDg2MzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCwx
MSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dD1jaGVja2VkXSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwg
VVJMXSBET01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgZm9ybUVuY3R5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGZvcm1NZXRob2Q7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3Jt
Tm9WYWxpZGF0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybVRh
cmdldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2VwdDsKICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1p
c3Npb24uY3BwCmluZGV4IGYzZjE5ZDI4MDZjNThkNjUwZmFlNWJhOGY1MzQ5OGQ1ZGU1YzE5MDUu
LmFkNGM5NzFjY2UyOTk3ZjE2M2RlNmY3OTEzM2YxNGNhOWQ0MDBlOWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Gb3Jt
U3VibWlzc2lvbi5jcHAKQEAgLTExMCw2ICsxMTAsMTUgQEAgdm9pZCBGb3JtU3VibWlzc2lvbjo6
QXR0cmlidXRlczo6cGFyc2VNZXRob2RUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAg
bV9tZXRob2QgPSBGb3JtU3VibWlzc2lvbjo6R2V0TWV0aG9kOwogfQogCit2b2lkIEZvcm1TdWJt
aXNzaW9uOjpBdHRyaWJ1dGVzOjpjb3B5RnJvbShjb25zdCBBdHRyaWJ1dGVzJiBvdGhlcikKK3sK
KyAgICBtX21ldGhvZCA9IG90aGVyLm1fbWV0aG9kOworICAgIG1fYWN0aW9uID0gb3RoZXIubV9h
Y3Rpb247CisgICAgbV90YXJnZXQgPSBvdGhlci5tX3RhcmdldDsKKyAgICBtX2VuY29kaW5nVHlw
ZSA9IG90aGVyLm1fZW5jb2RpbmdUeXBlOworICAgIG1fYWNjZXB0Q2hhcnNldCA9IG90aGVyLm1f
YWNjZXB0Q2hhcnNldDsKK30KKwogaW5saW5lIEZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lv
bihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gc3RhdGUs
IFBhc3NSZWZQdHI8Rm9ybURhdGE+IGRhdGEsIGNvbnN0IFN0cmluZyYgYm91bmRhcnksIGJvb2wg
bG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIDogbV9tZXRob2QobWV0
aG9kKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQpAQCAtMTI2LDIxICsxMzUsNDAgQEAgaW5saW5l
IEZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJM
JiBhY3Rpb24sIGNvbnN0IFMKIFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNz
aW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgYm9vbCBsb2NrSGlzdG9yeSwgRm9ybVN1
Ym1pc3Npb25UcmlnZ2VyIHRyaWdnZXIpCiB7CiAgICAgQVNTRVJUKGZvcm0pOworCisgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudCogc3VibWl0QnV0dG9uID0gMDsKKyAgICBpZiAoZXZlbnQgJiYg
ZXZlbnQtPnRhcmdldCgpICYmIGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkpCisgICAgICAgIHN1
Ym1pdEJ1dHRvbiA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihldmVudC0+
dGFyZ2V0KCktPnRvTm9kZSgpKTsKKworICAgIEZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzIGNv
cGllZEF0dHJpYnV0ZXM7CisgICAgY29waWVkQXR0cmlidXRlcy5jb3B5RnJvbShhdHRyaWJ1dGVz
KTsKKyAgICBpZiAoc3VibWl0QnV0dG9uKSB7CisgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1
ZTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJp
YnV0ZShmb3JtYWN0aW9uQXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmli
dXRlcy5wYXJzZUFjdGlvbihhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgIGlmICghKGF0dHJpYnV0
ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9ybWVuY3R5cGVBdHRyKSkuaXNO
dWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBhcnNlRW5jb2RpbmdUeXBlKGF0
dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUgPSBzdWJtaXRCdXR0
b24tPmdldEF0dHJpYnV0ZShmb3JtbWV0aG9kQXR0cikpLmlzTnVsbCgpKQorICAgICAgICAgICAg
Y29waWVkQXR0cmlidXRlcy5wYXJzZU1ldGhvZFR5cGUoYXR0cmlidXRlVmFsdWUpOworICAgICAg
ICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm10
YXJnZXRBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnNldFRh
cmdldChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IGZvcm0tPmRvY3VtZW50KCk7Ci0gICAgS1VSTCBhY3Rpb25VUkwgPSBkb2N1bWVudC0+Y29t
cGxldGVVUkwoYXR0cmlidXRlcy5hY3Rpb24oKS5pc0VtcHR5KCkgPyBkb2N1bWVudC0+dXJsKCku
c3RyaW5nKCkgOiBhdHRyaWJ1dGVzLmFjdGlvbigpKTsKKyAgICBLVVJMIGFjdGlvblVSTCA9IGRv
Y3VtZW50LT5jb21wbGV0ZVVSTChjb3BpZWRBdHRyaWJ1dGVzLmFjdGlvbigpLmlzRW1wdHkoKSA/
IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSA6IGNvcGllZEF0dHJpYnV0ZXMuYWN0aW9uKCkpOwog
ICAgIGJvb2wgaXNNYWlsdG9Gb3JtID0gYWN0aW9uVVJMLnByb3RvY29sSXMoIm1haWx0byIpOwog
ICAgIGJvb2wgaXNNdWx0aVBhcnRGb3JtID0gZmFsc2U7Ci0gICAgU3RyaW5nIGVuY29kaW5nVHlw
ZSA9IGF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7CisgICAgU3RyaW5nIGVuY29kaW5nVHlwZSA9
IGNvcGllZEF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7CiAKLSAgICBpZiAoYXR0cmlidXRlcy5t
ZXRob2QoKSA9PSBQb3N0TWV0aG9kKSB7Ci0gICAgICAgIGlzTXVsdGlQYXJ0Rm9ybSA9IGF0dHJp
YnV0ZXMuaXNNdWx0aVBhcnRGb3JtKCk7CisgICAgaWYgKGNvcGllZEF0dHJpYnV0ZXMubWV0aG9k
KCkgPT0gUG9zdE1ldGhvZCkgeworICAgICAgICBpc011bHRpUGFydEZvcm0gPSBjb3BpZWRBdHRy
aWJ1dGVzLmlzTXVsdGlQYXJ0Rm9ybSgpOwogICAgICAgICBpZiAoaXNNdWx0aVBhcnRGb3JtICYm
IGlzTWFpbHRvRm9ybSkgewogICAgICAgICAgICAgZW5jb2RpbmdUeXBlID0gImFwcGxpY2F0aW9u
L3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI7CiAgICAgICAgICAgICBpc011bHRpUGFydEZvcm0gPSBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFRleHRFbmNvZGluZyBkYXRhRW5jb2Rpbmcg
PSBpc01haWx0b0Zvcm0gPyBVVEY4RW5jb2RpbmcoKSA6IEZvcm1EYXRhQnVpbGRlcjo6ZW5jb2Rp
bmdGcm9tQWNjZXB0Q2hhcnNldChhdHRyaWJ1dGVzLmFjY2VwdENoYXJzZXQoKSwgZG9jdW1lbnQp
OworICAgIFRleHRFbmNvZGluZyBkYXRhRW5jb2RpbmcgPSBpc01haWx0b0Zvcm0gPyBVVEY4RW5j
b2RpbmcoKSA6IEZvcm1EYXRhQnVpbGRlcjo6ZW5jb2RpbmdGcm9tQWNjZXB0Q2hhcnNldChjb3Bp
ZWRBdHRyaWJ1dGVzLmFjY2VwdENoYXJzZXQoKSwgZG9jdW1lbnQpOwogICAgIFJlZlB0cjxET01G
b3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGRhdGFFbmNvZGluZy5l
bmNvZGluZ0ZvckZvcm1TdWJtaXNzaW9uKCkpOwogICAgIFZlY3RvcjxwYWlyPFN0cmluZywgU3Ry
aW5nPiA+IGZvcm1WYWx1ZXM7CiAKQEAgLTE2Niw3ICsxOTQsNyBAQCBQYXNzUmVmUHRyPEZvcm1T
dWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwg
Y29uc3QgQQogICAgICAgICBib3VuZGFyeSA9IGZvcm1EYXRhLT5ib3VuZGFyeSgpLmRhdGEoKTsK
ICAgICB9IGVsc2UgewogICAgICAgICBmb3JtRGF0YSA9IEZvcm1EYXRhOjpjcmVhdGUoKihzdGF0
aWNfY2FzdDxGb3JtRGF0YUxpc3QqPihkb21Gb3JtRGF0YS5nZXQoKSkpLCBkb21Gb3JtRGF0YS0+
ZW5jb2RpbmcoKSk7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVzLm1ldGhvZCgpID09IFBvc3RNZXRo
b2QgJiYgaXNNYWlsdG9Gb3JtKSB7CisgICAgICAgIGlmIChjb3BpZWRBdHRyaWJ1dGVzLm1ldGhv
ZCgpID09IFBvc3RNZXRob2QgJiYgaXNNYWlsdG9Gb3JtKSB7CiAgICAgICAgICAgICAvLyBDb252
ZXJ0IHRoZSBmb3JtIGRhdGEgaW50byBhIHN0cmluZyB0aGF0IHdlIHB1dCBpbnRvIHRoZSBVUkwu
CiAgICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFUb1VSTChhY3Rpb25VUkwsICpm
b3JtRGF0YSwgZW5jb2RpbmdUeXBlKTsKICAgICAgICAgICAgIGZvcm1EYXRhID0gRm9ybURhdGE6
OmNyZWF0ZSgpOwpAQCAtMTc0LDkgKzIwMiw5IEBAIFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+
IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBBCiAg
ICAgfQogCiAgICAgZm9ybURhdGEtPnNldElkZW50aWZpZXIoZ2VuZXJhdGVGb3JtRGF0YUlkZW50
aWZpZXIoKSk7Ci0gICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9IGF0dHJpYnV0ZXMudGFy
Z2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJhc2VUYXJnZXQoKSA6IGF0dHJpYnV0ZXMudGFy
Z2V0KCk7CisgICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9IGNvcGllZEF0dHJpYnV0ZXMu
dGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJhc2VUYXJnZXQoKSA6IGNvcGllZEF0dHJp
YnV0ZXMudGFyZ2V0KCk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gRm9ybVN0
YXRlOjpjcmVhdGUoZm9ybSwgZm9ybVZhbHVlcywgZG9jdW1lbnQtPmZyYW1lKCksIHRyaWdnZXIp
OwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9ybVN1Ym1pc3Npb24oYXR0cmlidXRlcy5tZXRo
b2QoKSwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0
YXRlLnJlbGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hpc3Rvcnks
IGV2ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb3JtU3VibWlzc2lvbihjb3BpZWRB
dHRyaWJ1dGVzLm1ldGhvZCgpLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgZW5jb2Rp
bmdUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5
LCBsb2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAogS1VSTCBGb3JtU3VibWlzc2lvbjo6cmVxdWVz
dFVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5o
IGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaAppbmRleCBiOTM1ODgyYzQxMTU1Yjhl
ZWE4ZDZiNTU0ZWI0YTZhYWM3NzMyZjhhLi5kNzI0ODM1NzdjZDJkZTI0MmJmN2NiNGJkM2Y1OTE4
ZTc5MTZiMmU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKQEAgLTcyLDYgKzcyLDggQEAgcHVi
bGljOgogICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2VwdENoYXJzZXQoKSBjb25zdCB7IHJldHVy
biBtX2FjY2VwdENoYXJzZXQ7IH0KICAgICAgICAgdm9pZCBzZXRBY2NlcHRDaGFyc2V0KGNvbnN0
IFN0cmluZyYgdmFsdWUpIHsgbV9hY2NlcHRDaGFyc2V0ID0gdmFsdWU7IH0KIAorICAgICAgICB2
b2lkIGNvcHlGcm9tKGNvbnN0IEF0dHJpYnV0ZXMmKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAg
IE1ldGhvZCBtX21ldGhvZDsKICAgICAgICAgYm9vbCBtX2lzTXVsdGlQYXJ0Rm9ybTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73874</attachid>
            <date>2010-11-14 21:10:30 -0800</date>
            <delta_ts>2010-11-15 03:49:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101115141028.patch</filename>
            <type>text/plain</type>
            <size>40083</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NWUyNjc1ZjBhNTYwYjUwZmY1OWNlNmI2MjAzOWIzOWQwNTljM2Q5Li5lNDEwOTFm
ZDkzOTc1NDJiNzUxZGI2NGViYWY0MDk2NDBiM2ExMjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMTEtMTUgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3Jt
LWF0dHJpYnV0ZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3VibWl0LWZvcm0t
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3Vi
bWl0LWZvcm0tYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xNCAgTWloYWkgUGFy
cGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9t
aXVtIHJlYmFzZWxpbmUgYW5kIGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY1MjAyNTNiY2M2MTFiZWQzMTY5ZDEyOGM1YjUzMmI2NDY1M2M3MjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciBmb3JtYWN0aW9uIGF0dHJp
YnV0ZXMgaW4gaW5wdXQgYW5kIGJ1dHRvbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBUaGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IHRhZyB3
YXMgdXNlZC4KK1BBU1MgVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBidXR0b24gdGFn
IHdhcyB1c2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0
cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTkwN2M2ZjMzNGM2NDY1MDQzNjZkNTMyZmU2NGYwMjRjNjI1ZWU1
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWFjdGlvbi1h
dHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0OiBmYWlsVGVzdCh0aGlz
KSIgbWV0aG9kPSJnZXQiPgorPGlucHV0IGlkPSJidXR0b24xIiB0eXBlPSJzdWJtaXQiIGZvcm1h
Y3Rpb249ImphdmFzY3JpcHQ6IHBhc3NUZXN0MSh0aGlzKSIgLz4KKzxidXR0b24gaWQ9ImJ1dHRv
bjIiIHR5cGU9InN1Ym1pdCIgZm9ybWFjdGlvbj0iamF2YXNjcmlwdDogcGFzc1Rlc3QyKHRoaXMp
IiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBmb3JtYWN0aW9u
IGF0dHJpYnV0ZXMgaW4gaW5wdXQgYW5kIGJ1dHRvbiB0YWdzLiIpOwordmFyIGRvbmVBY3Rpb24g
PSBmYWxzZTsKK3ZhciBkb25lQWN0aW9uMiA9IGZhbHNlOworCitmdW5jdGlvbiBmYWlsVGVzdCh1
bCkKK3sKKyAgICBkb25lQWN0aW9uID0gdHJ1ZTsKKyAgICB0ZXN0RmFpbGVkKCdUaGUgZm9ybWFj
dGlvbiBhdHRyaWJ1dGUgaW4gdGhlIGlucHV0IG9yIGJ1dHRvbiB0YWcgd2FzIGlnbm9yZWQuJyk7
Cit9CitmdW5jdGlvbiBwYXNzVGVzdDEodWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7Cisg
ICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBpbnB1dCB0YWcg
d2FzIHVzZWQuJyk7Cit9CitmdW5jdGlvbiBwYXNzVGVzdDIodWwpCit7CisgICAgZG9uZUFjdGlv
biA9IHRydWU7CisgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRo
ZSBidXR0b24gdGFnIHdhcyB1c2VkLicpOworfQorCitkb25lQWN0aW9uID0gZmFsc2U7Cit2YXIg
aW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uMScpOworaW5wdXQuY2xpY2so
KTsKK2lmICghZG9uZUFjdGlvbikKKyAgICB0ZXN0RmFpbGVkKCdCb3RoIG9mIHRoZSBhY3Rpb24g
YW5kIHRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZXMgd2VyZSBpZ25vcmVkLicpOworCitkb25lQWN0
aW9uID0gZmFsc2U7Cit2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRv
bjInKTsKK2J1dHRvbi5jbGljaygpOworaWYgKCFkb25lQWN0aW9uKQorICAgIHRlc3RGYWlsZWQo
J0JvdGggb2YgdGhlIGFjdGlvbiBhbmQgdGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlcyB3ZXJlIGln
bm9yZWQuJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDc3NDk4NzMzOGQ1NGE0YWM5ZTA3ZmYzZDI4OTAzNDIwMzgwNzU5
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1h
dHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qg
Zm9yIHRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBidXR0b24gdGFncy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBz
dWNjZXNzZnVsbHkgdXNlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhv
ZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGVjYjJjZTc3
NzBhMTUzMzU1NGVlYTg3NjlmM2RmZTBjMjBlYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCkBA
IC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSI/Ij4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVu
IiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiIgLz4KKyAgICA8YnV0dG9uIGlkPSJi
dXR0b24iIGZvcm1tZXRob2Q9InBvc3QiIHR5cGU9InN1Ym1pdCIgbmFtZT0iYnV0dG9uIiB2YWx1
ZT0idmFsdWUiIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRo
ZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBidXR0b24gdGFncy4iKTsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK3ZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0dG9u
Jyk7CisKK2lmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikgeworICAg
IGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAgICAgIGJ1dHRvbi5j
bGljaygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5n
KGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwubGVuZ3RoKSA9PSAi
IikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMg
c3VjY2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcpOworCisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0
ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzc2OWQ4MDc5MTI1MzI3YzMz
ZGViMWUzMzgyYTM2YzdkYWM5ODNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gaW5wdXQg
dGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm1tZXRo
b2QgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzZmMDA3NDJmMmJkNDk1YmI4MmM3OTNjMjIwYjAyYmIwNGE0NDNlZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5w
dXQtaHRtbC5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSI/Ij4KKyAgICA8aW5w
dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW4iIHZhbHVlPSJJIGFtIGhpZGRlbiIgLz4KKyAg
ICA8aW5wdXQgaWQ9ImJ1dHRvbiIgZm9ybW1ldGhvZD0icG9zdCIgdHlwZT0ic3VibWl0IiBuYW1l
PSJidXR0b24iIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRo
ZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSBpbiBpbnB1dCB0YWdzLiIpOworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKK30KKwordmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidXR0b24n
KTsKKworaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CisgICAg
aWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKKyAgICAgICAgYnV0dG9uLmNs
aWNrKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmco
ZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSArIDEsIGRvY3VtZW50LlVSTC5sZW5ndGgpID09ICIi
KQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBz
dWNjZXNzZnVsbHkgdXNlZCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdUaGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkJyk7CisKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0
ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc1OTI4YjgzMjVjNzY2YTFk
Y2IyNmQ0MTczN2FjMzE5MWQ3ZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhIGJ1
dHRvbiB0YWcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3Jt
dGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYTNkZjUwNmQyYmQ1NjE0MWU2NmVhZTgwNWU0OGNiZWJjYTk4NzRkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJp
YnV0ZS1idXR0b24taHRtbC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4dCIgbWV0aG9kPSJHRVQiIHRh
cmdldD0iZmFpbEZyYW1lIj4KKzxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uIiBmb3Jt
dGFyZ2V0PSJwYXNzRnJhbWUiPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgaW4gYSBidXR0b24gdGFnLiIpOworCitmdW5j
dGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorCisgICAgLy8gTm90IGR1bXBpbmcgYXMgdGV4dCBzaW5jZSB0aGUgRHVt
cFJlbmRlclRyZWUgZG9lcyBub3QgZHVtcCB0aGUgdGV4dCBjb250ZW50IG9mIGNoaWxkIGZyYW1l
cy4gICAgICAgICAgICAgICAgCisgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdidXR0b24nKTsKKyAgICBidXR0b24uY2xpY2soKTsKK30KKworZnVuY3Rpb24gcGFzc0Zy
YW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3MnKS5j
b250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsKKyAg
ICB0ZXN0UGFzc2VkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1
c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworfQorCitmdW5jdGlvbiBmYWlsRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZmFpbCcpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJs
YW5rIikKKyAgICAgICAgcmV0dXJuOworICAgIHRlc3RGYWlsZWQoIlRoZSBmb3JtdGFyZ2V0IGF0
dHJpYnV0ZSB3YXMgbm90IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJwYXNzIiBuYW1lPSJw
YXNzRnJhbWUiIG9ubG9hZD0icGFzc0ZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPGlmcmFtZSBz
cmM9ImFib3V0OmJsYW5rIiBpZD0iZmFpbCIgbmFtZT0iZmFpbEZyYW1lIiBvbmxvYWQ9ImZhaWxG
cmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlu
cHV0LWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MzlhNmJlYmNmYmI4MzE3YWU0NTRi
ODZiMTQxZWMzNjk1NTc5OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1Rlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhbiBpbnB1dCB0
YWcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtdGFyZ2V0
IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zM2NlYjVlMzY2YzgyN2FjMjc4YzEwNDVlZDY4MmFkM2U3OWRhOWZjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1p
bnB1dC1odG1sLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qt
ZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxm
b3JtIGFjdGlvbj0icmVzb3VyY2VzL3N1Y2Nlc3MudHh0IiBtZXRob2Q9IkdFVCIgdGFyZ2V0PSJm
YWlsRnJhbWUiPgorPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImJ1dHRvbiIgZm9ybXRhcmdldD0i
cGFzc0ZyYW1lIj4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhl
IGZvcm10YXJnZXQgYXR0cmlidXRlIGluIGFuIGlucHV0IHRhZy4iKTsKKworZnVuY3Rpb24gcnVu
VGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQgc2luY2UgdGhlIER1bXBSZW5kZXJU
cmVlIGRvZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBvZiBjaGlsZCBmcmFtZXMuICAgICAg
ICAgICAgICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnV0
dG9uJyk7CisgICAgYnV0dG9uLmNsaWNrKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3NGcmFtZUxvYWRl
ZCgpCit7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzJykuY29udGVudERv
Y3VtZW50LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdFBh
c3NlZCgiVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBzdWNjZXNzZnVsbHkgdXNlZC4iKTsK
KyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gZmFpbEZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZhaWwnKS5jb250ZW50RG9jdW1lbnQuVVJMID09ICJhYm91dDpibGFuayIpCisg
ICAgICAgIHJldHVybjsKKyAgICB0ZXN0RmFpbGVkKCJUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUg
d2FzIG5vdCB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0icGFzcyIgbmFtZT0icGFzc0ZyYW1l
IiBvbmxvYWQ9InBhc3NGcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJhYm91
dDpibGFuayIgaWQ9ImZhaWwiIG5hbWU9ImZhaWxGcmFtZSIgb25sb2FkPSJmYWlsRnJhbWVMb2Fk
ZWQoKSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODliMDYwNjIyYzMx
ZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBs
b2FkIG1haWx0bzo/Ym9keT10byUzRG9uZSU0MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUl
MjAxJTBEJTBBTGluZSUyMDIlMEQlMEElNDAlMjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0
aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zvcm0gc3VibWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwg
PiAjZG9jdW1lbnQKK0ZpZWxkIDE6ICBGaWVsZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MjliOTU1ZGM5N2VhOGQ4Nzk0MjVmNWI2MTAz
MWNiYTVhZDQwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21h
aWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApAQCAtMCwwICsxLDI2
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9z
dCIgYWN0aW9uPSJtYWlsdG86Ij4KK0ZpZWxkIDE6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIx
MCIgbWF4bGVuZ3RoPSI0MCIgbmFtZT0idG8iIHZhbHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmll
bGQgMjogPHRleHRhcmVhIG5hbWU9ImJvZHkiPkxpbmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8
L3RleHRhcmVhPgorPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIGZvcm1lbmN0eXBl
PSJ0ZXh0L3BsYWluIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0Rm9yUG9saWN5RGVsZWdhdGUoKTsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN1Ym1pdCIpLmNsaWNrKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJp
YnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFp
bHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zODliMDYwNjIyYzMxZjA2MWM1NTEwODBjOWJlMjU3M2EzYTZmY2I1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmli
dXRlLWlucHV0LWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUG9saWN5IGRlbGVn
YXRlOiBhdHRlbXB0IHRvIGxvYWQgbWFpbHRvOj9ib2R5PXRvJTNEb25lJTQwZXhhbXBsZS5vcmcl
MEQlMEFib2R5JTNETGluZSUyMDElMEQlMEFMaW5lJTIwMiUwRCUwQSU0MCUyNiUzRCUyQyUzQiUz
RiUyMiUyQiUwRCUwQSB3aXRoIG5hdmlnYXRpb24gdHlwZSAnZm9ybSBzdWJtaXR0ZWQnIG9yaWdp
bmF0aW5nIGZyb20gSFRNTCA+ICNkb2N1bWVudAorRmllbGQgMTogIEZpZWxkIDI6ICAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0
ZS1pbnB1dC1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5j
dHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZjc3MTk2NGNhYWFm
YzU5ZWM2NDdhZGM3MDdiNmJkZTc0MTdhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1s
CkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZv
cm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Im1haWx0bzoiPgorRmllbGQgMTogPGlucHV0IHR5cGU9
InRleHQiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjQwIiBuYW1lPSJ0byIgdmFsdWU9Im9uZUBleGFt
cGxlLm9yZyI+CitGaWVsZCAyOiA8dGV4dGFyZWEgbmFtZT0iYm9keSI+TGluZSAxCitMaW5lIDIK
K0AmYW1wOz0sOz8iKzwvdGV4dGFyZWE+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0
IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFpbiIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQorICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKS5jbGljaygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9zdWJtaXQtZm9ybS1hdHRyaWJ1dGVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTJjMDg2Njk3
OWQyM2FlMTM4MWQ1MGM0NDI0M2I2MTcxNWU2ZDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcwpA
QCAtMCwwICsxLDE5MSBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAuZm9y
bWFjdGlvbiwgLmZvcm1lbmN0eXBlLCAuZm9ybW1ldGhvZCBhbmQgLmZvcm10YXJnZXQgb2YgSFRN
TElucHV0RWxlbWVudCBhbmQgSFRNTEJ1dHRvbkVsZW1lbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2RlYnVnKCdPcmRpbmFyeSB2YWx1ZXMg
Zm9yIGlucHV0OicpOworaW5wdXQudHlwZSA9ICJzdWJtaXQiOworc2hvdWxkQmUoJ2lucHV0LmZv
cm1BY3Rpb24nLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICciIicpOwor
c2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3Jt
VGFyZ2V0JywgJyIiJyk7CisKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUFjdGlvbicsICdodHRw
Oi8vbG9jYWxob3N0Jyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUFjdGlvbicsICciaHR0cDovL2xv
Y2FsaG9zdC8iJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1BY3Rpb24nLCAnaHR0cDovL2xv
Y2FsaG9zdC8nKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vbG9jYWxo
b3N0LyInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAndGV4dC9wbGFpbicp
Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1FbmN0eXBlJywgJyJ0ZXh0L3BsYWluIicpOworaW5wdXQu
c2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsICduYScpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1F
bmN0eXBlJywgJyJuYSInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsICdHRVQn
KTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyJHRVQiJyk7CitpbnB1dC5zZXRBdHRy
aWJ1dGUoJ2Zvcm1NZXRob2QnLCAnbmknKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywg
JyJuaSInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsICdfYmxhbmsnKTsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJfYmxhbmsiJyk7CitpbnB1dC5zZXRBdHRyaWJ1
dGUoJ2Zvcm1UYXJnZXQnLCAnbnUnKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJu
dSInKTsKKworaW5wdXQuZm9ybUFjdGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20nOworc2hvdWxk
QmUoJ2lucHV0LmZvcm1BY3Rpb24nLCAnImh0dHA6Ly9leGFtcGxlLmNvbS8iJyk7CitpbnB1dC5m
b3JtQWN0aW9uID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOworc2hvdWxkQmUoJ2lucHV0LmZvcm1B
Y3Rpb24nLCAnImh0dHA6Ly9leGFtcGxlLmNvbS8iJyk7CitpbnB1dC5mb3JtRW5jdHlwZSA9ICd0
ZXh0L3BsYWluJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcidGV4dC9wbGFpbiIn
KTsKK2lucHV0LmZvcm1FbmN0eXBlID0gJ25vdGEnOworc2hvdWxkQmUoJ2lucHV0LmZvcm1FbmN0
eXBlJywgJyJub3RhIicpOworaW5wdXQuZm9ybU1ldGhvZCA9ICdQT1NUJzsKK3Nob3VsZEJlKCdp
bnB1dC5mb3JtTWV0aG9kJywgJyJQT1NUIicpOworaW5wdXQuZm9ybU1ldGhvZCA9ICduZXRhJzsK
K3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyJuZXRhIicpOworaW5wdXQuZm9ybVRhcmdl
dCA9ICdodHRwOi8vZXhhbXBsZS5jb20nOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAn
Imh0dHA6Ly9leGFtcGxlLmNvbSInKTsKK2lucHV0LmZvcm1UYXJnZXQgPSAnbnRhJzsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJudGEiJyk7CisKK2RlYnVnKCdTZXR0aW5nIG51bGwg
Zm9yIGlucHV0OicpOworaW5wdXQuZm9ybUVuY3R5cGUgPSBudWxsOworc2hvdWxkQmUoJ2lucHV0
LmZvcm1FbmN0eXBlJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3Jt
RW5jdHlwZSIpJywgJ251bGwnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCBu
dWxsKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcibnVsbCInKTsKK2lucHV0LmZv
cm1NZXRob2QgPSBudWxsOworc2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnIiInKTsKK3No
b3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICdudWxsJyk7CitpbnB1
dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCBudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3Jt
TWV0aG9kJywgJyJudWxsIicpOworaW5wdXQuZm9ybVRhcmdldCA9IG51bGw7CitzaG91bGRCZSgn
aW5wdXQuZm9ybVRhcmdldCcsICciIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgi
Zm9ybVRhcmdldCIpJywgJ251bGwnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcs
IG51bGwpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnIm51bGwiJyk7CisKK2RlYnVn
KCdTZXR0aW5nIHVuZGVmaW5lZCBmb3IgaW5wdXQ6Jyk7CitpbnB1dC5mb3JtRW5jdHlwZSA9IHVu
ZGVmaW5lZDsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcidW5kZWZpbmVkIicpOwor
c2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICcidW5kZWZpbmVk
IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsIHVuZGVmaW5lZCk7CitzaG91
bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnInVuZGVmaW5lZCInKTsKK2lucHV0LmZvcm1NZXRo
b2QgPSB1bmRlZmluZWQ7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcidW5kZWZpbmVk
IicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybU1ldGhvZCIpJywgJyJ1bmRl
ZmluZWQiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCB1bmRlZmluZWQpOwor
c2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnInVuZGVmaW5lZCInKTsKK2lucHV0LmZvcm1U
YXJnZXQgPSB1bmRlZmluZWQ7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICcidW5kZWZp
bmVkIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpJywgJyJ1
bmRlZmluZWQiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnInVuZGVmaW5lZCInKTsKKworZGVidWco
J1NldHRpbmcgbm9uLXN0cmluZyBmb3IgaW5wdXQ6Jyk7CitpbnB1dC5mb3JtRW5jdHlwZSA9IDI1
NjsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICciMjU2IicpOworc2hvdWxkQmUoJ2lu
cHV0LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICciMjU2IicpOworaW5wdXQuc2V0QXR0
cmlidXRlKCdmb3JtRW5jdHlwZScsIDI1Nik7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUn
LCAnIjI1NiInKTsKK2lucHV0LmZvcm1NZXRob2QgPSAyNTY7CitzaG91bGRCZSgnaW5wdXQuZm9y
bU1ldGhvZCcsICciMjU2IicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybU1l
dGhvZCIpJywgJyIyNTYiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCAyNTYp
Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnIjI1NiInKTsKK2lucHV0LmZvcm1UYXJn
ZXQgPSAyNTY7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICciMjU2IicpOworc2hvdWxk
QmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpJywgJyIyNTYiJyk7CitpbnB1dC5z
ZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAyNTYpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJn
ZXQnLCAnIjI1NiInKTsKKwordmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1
dHRvbicpOworCitkZWJ1ZygnT3JkaW5hcnkgdmFsdWVzIGZvciBidXR0b246Jyk7CitidXR0b24u
dHlwZSA9ICJzdWJtaXQiOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyIiJyk7Citz
aG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyIiJyk7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1NZXRob2QnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciIicpOwor
CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtQWN0aW9uJywgJ2h0dHA6Ly9sb2NhbGhvc3QnKTsK
K3Nob3VsZEJlKCdidXR0b24uZm9ybUFjdGlvbicsICciaHR0cDovL2xvY2FsaG9zdC8iJyk7Citi
dXR0b24uc2V0QXR0cmlidXRlKCdmb3JtQWN0aW9uJywgJ2h0dHA6Ly9sb2NhbGhvc3QvJyk7Citz
aG91bGRCZSgnYnV0dG9uLmZvcm1BY3Rpb24nLCAnImh0dHA6Ly9sb2NhbGhvc3QvIicpOworYnV0
dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAndGV4dC9wbGFpbicpOworc2hvdWxkQmUo
J2J1dHRvbi5mb3JtRW5jdHlwZScsICcidGV4dC9wbGFpbiInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1
dGUoJ2Zvcm1FbmN0eXBlJywgJ25hJyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywg
JyJuYSInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCAnR0VUJyk7CitzaG91
bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIkdFVCInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUo
J2Zvcm1NZXRob2QnLCAnbmEnKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICcibmEi
Jyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgJ19ibGFuaycpOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJfYmxhbmsiJyk7CitidXR0b24uc2V0QXR0cmlidXRl
KCdmb3JtVGFyZ2V0JywgJ25hJyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJnZXQnLCAnIm5h
IicpOworCitidXR0b24uZm9ybUFjdGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20nOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworYnV0dG9u
LmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4YW1wbGUuY29tLyc7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1BY3Rpb24nLCAnImh0dHA6Ly9leGFtcGxlLmNvbS8iJyk7CitidXR0b24uZm9ybUVuY3R5cGUg
PSAndGV4dC9wbGFpbic7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyJ0ZXh0L3Bs
YWluIicpOworYnV0dG9uLmZvcm1FbmN0eXBlID0gJ25vdGEnOworc2hvdWxkQmUoJ2J1dHRvbi5m
b3JtRW5jdHlwZScsICcibm90YSInKTsKK2J1dHRvbi5mb3JtTWV0aG9kID0gJ1BPU1QnOworc2hv
dWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJQT1NUIicpOworYnV0dG9uLmZvcm1NZXRob2Qg
PSAnbm90YSc7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIm5vdGEiJyk7CitidXR0
b24uZm9ybVRhcmdldCA9ICdodHRwOi8vZXhhbXBsZS5jb20nOworc2hvdWxkQmUoJ2J1dHRvbi5m
b3JtVGFyZ2V0JywgJyJodHRwOi8vZXhhbXBsZS5jb20iJyk7CitidXR0b24uZm9ybVRhcmdldCA9
ICdub3RhJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICcibm90YSInKTsKKworZGVi
dWcoJ1NldHRpbmcgbnVsbCBmb3IgYnV0dG9uOicpOworYnV0dG9uLmZvcm1FbmN0eXBlID0gbnVs
bDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0
b24uZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpJywgJ251bGwnKTsKK2J1dHRvbi5zZXRBdHRy
aWJ1dGUoJ2Zvcm1FbmN0eXBlJywgbnVsbCk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBl
JywgJyJudWxsIicpOworYnV0dG9uLmZvcm1NZXRob2QgPSBudWxsOworc2hvdWxkQmUoJ2J1dHRv
bi5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9y
bU1ldGhvZCIpJywgJ251bGwnKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1NZXRob2QnLCBu
dWxsKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICcibnVsbCInKTsKK2J1dHRvbi5m
b3JtVGFyZ2V0ID0gbnVsbDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciIicpOwor
c2hvdWxkQmUoJ2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICdudWxsJyk7Citi
dXR0b24uc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgbnVsbCk7CitzaG91bGRCZSgnYnV0dG9u
LmZvcm1UYXJnZXQnLCAnIm51bGwiJyk7CisKK2RlYnVnKCdTZXR0aW5nIHVuZGVmaW5lZCBmb3Ig
YnV0dG9uOicpOworYnV0dG9uLmZvcm1FbmN0eXBlID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2J1
dHRvbi5mb3JtRW5jdHlwZScsICcidW5kZWZpbmVkIicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRB
dHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnInVuZGVmaW5lZCInKTsKK2J1dHRvbi5zZXRBdHRy
aWJ1dGUoJ2Zvcm1FbmN0eXBlJywgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVu
Y3R5cGUnLCAnInVuZGVmaW5lZCInKTsKK2J1dHRvbi5mb3JtTWV0aG9kID0gdW5kZWZpbmVkOwor
c2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJ1bmRlZmluZWQiJyk7CitzaG91bGRCZSgn
YnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybU1ldGhvZCIpJywgJyJ1bmRlZmluZWQiJyk7CitidXR0
b24uc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdidXR0
b24uZm9ybU1ldGhvZCcsICcidW5kZWZpbmVkIicpOworYnV0dG9uLmZvcm1UYXJnZXQgPSB1bmRl
ZmluZWQ7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJnZXQnLCAnInVuZGVmaW5lZCInKTsKK3No
b3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IiknLCAnInVuZGVmaW5lZCIn
KTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJ1bmRlZmluZWQiJyk7CisKK2RlYnVnKCdTZXR0aW5n
IG5vbi1zdHJpbmcgZm9yIGJ1dHRvbjonKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9IDI1NjsKK3No
b3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdidXR0b24u
Z2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpJywgJyIyNTYiJyk7CitidXR0b24uc2V0QXR0cmli
dXRlKCdmb3JtRW5jdHlwZScsIDUxMik7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywg
JyI1MTIiJyk7CitidXR0b24uZm9ybU1ldGhvZCA9IDEyODsKK3Nob3VsZEJlKCdidXR0b24uZm9y
bU1ldGhvZCcsICciMTI4IicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1N
ZXRob2QiKScsICciMTI4IicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsIDE3
KTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICciMTciJyk7CitidXR0b24uZm9ybVRh
cmdldCA9IDEwMDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciMTAwIicpOworc2hv
dWxkQmUoJ2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICciMTAwIicpOworYnV0
dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsIDI4MSk7CitzaG91bGRCZSgnYnV0dG9uLmZv
cm1UYXJnZXQnLCAnIjI4MSInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJtaXQtZm9ybS1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzBlNTNlNTU0YTEzNWE5MTc2NGMwN2Y4M2Qx
MTZlYjMyMjU1NjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
dWJtaXQtZm9ybS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExMSBAQAorVGVz
dHMgdGhlIGJlaGF2aW9yIG9mIC5mb3JtYWN0aW9uLCAuZm9ybWVuY3R5cGUsIC5mb3JtbWV0aG9k
IGFuZCAuZm9ybXRhcmdldCBvZiBIVE1MSW5wdXRFbGVtZW50IGFuZCBIVE1MQnV0dG9uRWxlbWVu
dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK09yZGluYXJ5IHZhbHVlcyBmb3Ig
aW5wdXQ6CitQQVNTIGlucHV0LmZvcm1BY3Rpb24gaXMgIiIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5
cGUgaXMgIiIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAiIgorUEFTUyBpbnB1dC5mb3JtVGFy
Z2V0IGlzICIiCitQQVNTIGlucHV0LmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9sb2NhbGhvc3QvIgor
UEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICJodHRwOi8vbG9jYWxob3N0LyIKK1BBU1MgaW5wdXQu
Zm9ybUVuY3R5cGUgaXMgInRleHQvcGxhaW4iCitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJu
YSIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAiR0VUIgorUEFTUyBpbnB1dC5mb3JtTWV0aG9k
IGlzICJuaSIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAiX2JsYW5rIgorUEFTUyBpbnB1dC5m
b3JtVGFyZ2V0IGlzICJudSIKK1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiaHR0cDovL2V4YW1w
bGUuY29tLyIKK1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiaHR0cDovL2V4YW1wbGUuY29tLyIK
K1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgInRleHQvcGxhaW4iCitQQVNTIGlucHV0LmZvcm1F
bmN0eXBlIGlzICJub3RhIgorUEFTUyBpbnB1dC5mb3JtTWV0aG9kIGlzICJQT1NUIgorUEFTUyBp
bnB1dC5mb3JtTWV0aG9kIGlzICJuZXRhIgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICJodHRw
Oi8vZXhhbXBsZS5jb20iCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIm50YSIKK1NldHRpbmcg
bnVsbCBmb3IgaW5wdXQ6CitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICIiCitQQVNTIGlucHV0
LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKSBpcyBudWxsCitQQVNTIGlucHV0LmZvcm1FbmN0
eXBlIGlzICJudWxsIgorUEFTUyBpbnB1dC5mb3JtTWV0aG9kIGlzICIiCitQQVNTIGlucHV0Lmdl
dEF0dHJpYnV0ZSgiZm9ybU1ldGhvZCIpIGlzIG51bGwKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBp
cyAibnVsbCIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAiIgorUEFTUyBpbnB1dC5nZXRBdHRy
aWJ1dGUoImZvcm1UYXJnZXQiKSBpcyBudWxsCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIm51
bGwiCitTZXR0aW5nIHVuZGVmaW5lZCBmb3IgaW5wdXQ6CitQQVNTIGlucHV0LmZvcm1FbmN0eXBl
IGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKSBp
cyAidW5kZWZpbmVkIgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAidW5kZWZpbmVkIgorUEFT
UyBpbnB1dC5mb3JtTWV0aG9kIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0
ZSgiZm9ybU1ldGhvZCIpIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMg
InVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAidW5kZWZpbmVkIgorUEFTUyBp
bnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKSBpcyAidW5kZWZpbmVkIgorUEFTUyBpbnB1
dC5mb3JtVGFyZ2V0IGlzICJ1bmRlZmluZWQiCitTZXR0aW5nIG5vbi1zdHJpbmcgZm9yIGlucHV0
OgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAiMjU2IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1
dGUoImZvcm1FbmN0eXBlIikgaXMgIjI1NiIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgIjI1
NiIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAiMjU2IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1
dGUoImZvcm1NZXRob2QiKSBpcyAiMjU2IgorUEFTUyBpbnB1dC5mb3JtTWV0aG9kIGlzICIyNTYi
CitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIjI1NiIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRl
KCJmb3JtVGFyZ2V0IikgaXMgIjI1NiIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAiMjU2Igor
T3JkaW5hcnkgdmFsdWVzIGZvciBidXR0b246CitQQVNTIGJ1dHRvbi5mb3JtQWN0aW9uIGlzICIi
CitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAiIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBp
cyAiIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiIgorUEFTUyBidXR0b24uZm9ybUFjdGlv
biBpcyAiaHR0cDovL2xvY2FsaG9zdC8iCitQQVNTIGJ1dHRvbi5mb3JtQWN0aW9uIGlzICJodHRw
Oi8vbG9jYWxob3N0LyIKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgor
UEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgIm5hIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBp
cyAiR0VUIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAibmEiCitQQVNTIGJ1dHRvbi5mb3Jt
VGFyZ2V0IGlzICJfYmxhbmsiCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJuYSIKK1BBU1Mg
YnV0dG9uLmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9leGFtcGxlLmNvbS8iCitQQVNTIGJ1dHRvbi5m
b3JtQWN0aW9uIGlzICJodHRwOi8vZXhhbXBsZS5jb20vIgorUEFTUyBidXR0b24uZm9ybUVuY3R5
cGUgaXMgInRleHQvcGxhaW4iCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAibm90YSIKK1BB
U1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIlBPU1QiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlz
ICJub3RhIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiaHR0cDovL2V4YW1wbGUuY29tIgor
UEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAibm90YSIKK1NldHRpbmcgbnVsbCBmb3IgYnV0dG9u
OgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgIiIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0
ZSgiZm9ybUVuY3R5cGUiKSBpcyBudWxsCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAibnVs
bCIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIiIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0
ZSgiZm9ybU1ldGhvZCIpIGlzIG51bGwKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIm51bGwi
CitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICIiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUo
ImZvcm1UYXJnZXQiKSBpcyBudWxsCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJudWxsIgor
U2V0dGluZyB1bmRlZmluZWQgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlz
ICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMg
InVuZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJ1bmRlZmluZWQiCitQQVNT
IGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1
dGUoImZvcm1NZXRob2QiKSBpcyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBp
cyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAidW5kZWZpbmVkIgorUEFT
UyBidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgInVuZGVmaW5lZCIKK1BBU1Mg
YnV0dG9uLmZvcm1UYXJnZXQgaXMgInVuZGVmaW5lZCIKK1NldHRpbmcgbm9uLXN0cmluZyBmb3Ig
YnV0dG9uOgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgIjI1NiIKK1BBU1MgYnV0dG9uLmdl
dEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKSBpcyAiMjU2IgorUEFTUyBidXR0b24uZm9ybUVuY3R5
cGUgaXMgIjUxMiIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIjEyOCIKK1BBU1MgYnV0dG9u
LmdldEF0dHJpYnV0ZSgiZm9ybU1ldGhvZCIpIGlzICIxMjgiCitQQVNTIGJ1dHRvbi5mb3JtTWV0
aG9kIGlzICIxNyIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIjEwMCIKK1BBU1MgYnV0dG9u
LmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlzICIxMDAiCitQQVNTIGJ1dHRvbi5mb3JtVGFy
Z2V0IGlzICIyODEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJtaXQtZm9ybS1h
dHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N1Ym1pdC1mb3JtLWF0dHJp
YnV0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzY4NmE3OGQxYzBiMTZiNjBhMDAxZDI2Y2M0YmEzOWU3
NjEzN2VhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJtaXQt
Zm9ybS1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3VibWl0
LWZvcm0tYXR0cmlidXRlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmZhMGVkZDc5M2UyZDEwMWU3ZDE0ZGM5OTRmNDRhYzY3ZTQwOTA0Yi4uZmM1Mzg0NDJhNTNhZjcx
YzkzYmRjOGQ2NzM4NWJmNjNkNTAxNDY1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMS0xNSAgRGFp
IE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGZvcm1hY3Rpb24sIGZvcm1lbmN0
eXBlLCBmb3JtbWV0aG9kIGFuZCBmb3JtdGFyZ2V0IGF0dHJpYnV0ZXMgZm9yIGlucHV0IGFuZCBi
dXR0b24gdGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDkyNDAKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0
ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1
dHRvbi1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRy
aWJ1dGUtaW5wdXQtaHRtbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zvcm10YXJn
ZXQtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
Zm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0
LWh0bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9zdWJtaXQtZm9ybS1hdHRyaWJ1
dGVzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBm
b3JtYWN0aW9uLCBmb3JtbWV0aG9kLCBmb3JtdGFyZ2V0IGFuZCBmb3JtZW5jdHlwZSBhdHRyaWJ1
dGVzCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24u
Y3BwOiBNb2RpZmllZCB0byBjaGVjayB0aGUgcHJlc3NlZCBidXR0b24gYW5kIGl0cyBhdHRyaWJ1
dGVzCisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6QXR0cmlidXRlczo6Y29weUZy
b20pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OmNyZWF0ZSk6CisgICAgICAg
ICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmg6CisKIDIwMTAtMTEtMTQgIFJ5dWFuIENob2kgIDxy
eXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGQ5NzU5ZmNkYjBhODI0MDFh
M2YwNWY1OGFhYWJkOWRjMjJjNjQ2ZmYuLjA3YzA1NWViMzdjZDNlMTdjMDU1YWM1MmJkMTcwMDA0
MDA1YmQzZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTQsNyArOTQsMTEg
QEAgZXhwYW5kZWQKIGZhY2UKIGZvY3VzZWQKIGZvcgorZm9ybWFjdGlvbgorZm9ybWVuY3R5cGUK
K2Zvcm1tZXRob2QKIGZvcm1ub3ZhbGlkYXRlCitmb3JtdGFyZ2V0CiBmcmFtZQogZnJhbWVib3Jk
ZXIKIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5p
ZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDI3OWU4NTg2Y2Vm
NTA1NzM2MjVhMDBkZWY1ODMzNjZjOGJhNzM4MGIuLjJmYmJhNDFmM2Y3NjYwM2NmYzJiZGNiZjUy
ZjZiYTllMmQ1OWE5YzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMjMsNyAr
MjMsMTEgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBIVE1MQnV0dG9uRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVu
dCBmb3JtOwogCisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgZm9y
bUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybUVuY3R5
cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybVRhcmdldDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCmluZGV4IDE1Nzk4OWU3MjdiZTgwNWM1YTU2YjE3OTRlNzg0YzMyZDdkNDkyNjEuLjM0MmU5
YjgxOWM5NDBkM2ZkYTdkNWJlMTI3Njk5MDgxYTAxNmFkZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwKQEAgLTI0LDcgKzI0LDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKICAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVsdENoZWNrZWQ7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtRW5jdHlwZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybU1ldGhvZDsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBib29sZWFuIGZvcm1Ob1ZhbGlkYXRlOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBmb3JtVGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
VmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgYWNjZXB0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nl
c3NLZXk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggZjNmMTlkMjgwNmM1OGQ2NTBm
YWU1YmE4ZjUzNDk4ZDVkZTVjMTkwNS4uYTlmMjY4MDNmMDJkZjQ4ODI2YWE4ODc3NzM2ZmRiZjE5
MmZmZWViYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMTEwLDYgKzExMCwxNyBA
QCB2b2lkIEZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzOjpwYXJzZU1ldGhvZFR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgICAgICBtX21ldGhvZCA9IEZvcm1TdWJtaXNzaW9uOjpHZXRNZXRo
b2Q7CiB9CiAKK3ZvaWQgRm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OmNvcHlGcm9tKGNvbnN0
IEF0dHJpYnV0ZXMmIG90aGVyKQoreworICAgIG1fbWV0aG9kID0gb3RoZXIubV9tZXRob2Q7Cisg
ICAgbV9pc011bHRpUGFydEZvcm0gPSBvdGhlci5tX2lzTXVsdGlQYXJ0Rm9ybTsKKworICAgIG1f
YWN0aW9uID0gb3RoZXIubV9hY3Rpb247CisgICAgbV90YXJnZXQgPSBvdGhlci5tX3RhcmdldDsK
KyAgICBtX2VuY29kaW5nVHlwZSA9IG90aGVyLm1fZW5jb2RpbmdUeXBlOworICAgIG1fYWNjZXB0
Q2hhcnNldCA9IG90aGVyLm1fYWNjZXB0Q2hhcnNldDsKK30KKwogaW5saW5lIEZvcm1TdWJtaXNz
aW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rpb24sIGNv
bnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBQYXNzUmVmUHRy
PEZvcm1TdGF0ZT4gc3RhdGUsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGRhdGEsIGNvbnN0IFN0cmlu
ZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
ICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQpAQCAtMTI2LDIx
ICsxMzcsNDAgQEAgaW5saW5lIEZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2Qg
bWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rpb24sIGNvbnN0IFMKIFBhc3NSZWZQdHI8Rm9ybVN1Ym1p
c3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25z
dCBBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgYm9vbCBs
b2NrSGlzdG9yeSwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIHRyaWdnZXIpCiB7CiAgICAgQVNTRVJU
KGZvcm0pOworCisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogc3VibWl0QnV0dG9uID0gMDsK
KyAgICBpZiAoZXZlbnQgJiYgZXZlbnQtPnRhcmdldCgpICYmIGV2ZW50LT50YXJnZXQoKS0+dG9O
b2RlKCkpCisgICAgICAgIHN1Ym1pdEJ1dHRvbiA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqPihldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKTsKKworICAgIEZvcm1TdWJtaXNz
aW9uOjpBdHRyaWJ1dGVzIGNvcGllZEF0dHJpYnV0ZXM7CisgICAgY29waWVkQXR0cmlidXRlcy5j
b3B5RnJvbShhdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3VibWl0QnV0dG9uKSB7CisgICAgICAgIFN0
cmluZyBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUgPSBzdWJt
aXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtYWN0aW9uQXR0cikpLmlzTnVsbCgpKQorICAgICAg
ICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZUFjdGlvbihhdHRyaWJ1dGVWYWx1ZSk7CisgICAg
ICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1dGUoZm9y
bWVuY3R5cGVBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1dGVzLnBh
cnNlRW5jb2RpbmdUeXBlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRl
VmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtbWV0aG9kQXR0cikpLmlzTnVs
bCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZU1ldGhvZFR5cGUoYXR0cmli
dXRlVmFsdWUpOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1dHRvbi0+
Z2V0QXR0cmlidXRlKGZvcm10YXJnZXRBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3Bp
ZWRBdHRyaWJ1dGVzLnNldFRhcmdldChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorICAgIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGZvcm0tPmRvY3VtZW50KCk7Ci0gICAgS1VSTCBhY3Rpb25V
UkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwoYXR0cmlidXRlcy5hY3Rpb24oKS5pc0VtcHR5KCkg
PyBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgOiBhdHRyaWJ1dGVzLmFjdGlvbigpKTsKKyAgICBL
VVJMIGFjdGlvblVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChjb3BpZWRBdHRyaWJ1dGVzLmFj
dGlvbigpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSA6IGNvcGllZEF0dHJp
YnV0ZXMuYWN0aW9uKCkpOwogICAgIGJvb2wgaXNNYWlsdG9Gb3JtID0gYWN0aW9uVVJMLnByb3Rv
Y29sSXMoIm1haWx0byIpOwogICAgIGJvb2wgaXNNdWx0aVBhcnRGb3JtID0gZmFsc2U7Ci0gICAg
U3RyaW5nIGVuY29kaW5nVHlwZSA9IGF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7CisgICAgU3Ry
aW5nIGVuY29kaW5nVHlwZSA9IGNvcGllZEF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7CiAKLSAg
ICBpZiAoYXR0cmlidXRlcy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kKSB7Ci0gICAgICAgIGlzTXVs
dGlQYXJ0Rm9ybSA9IGF0dHJpYnV0ZXMuaXNNdWx0aVBhcnRGb3JtKCk7CisgICAgaWYgKGNvcGll
ZEF0dHJpYnV0ZXMubWV0aG9kKCkgPT0gUG9zdE1ldGhvZCkgeworICAgICAgICBpc011bHRpUGFy
dEZvcm0gPSBjb3BpZWRBdHRyaWJ1dGVzLmlzTXVsdGlQYXJ0Rm9ybSgpOwogICAgICAgICBpZiAo
aXNNdWx0aVBhcnRGb3JtICYmIGlzTWFpbHRvRm9ybSkgewogICAgICAgICAgICAgZW5jb2RpbmdU
eXBlID0gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI7CiAgICAgICAgICAgICBp
c011bHRpUGFydEZvcm0gPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFRleHRFbmNv
ZGluZyBkYXRhRW5jb2RpbmcgPSBpc01haWx0b0Zvcm0gPyBVVEY4RW5jb2RpbmcoKSA6IEZvcm1E
YXRhQnVpbGRlcjo6ZW5jb2RpbmdGcm9tQWNjZXB0Q2hhcnNldChhdHRyaWJ1dGVzLmFjY2VwdENo
YXJzZXQoKSwgZG9jdW1lbnQpOworICAgIFRleHRFbmNvZGluZyBkYXRhRW5jb2RpbmcgPSBpc01h
aWx0b0Zvcm0gPyBVVEY4RW5jb2RpbmcoKSA6IEZvcm1EYXRhQnVpbGRlcjo6ZW5jb2RpbmdGcm9t
QWNjZXB0Q2hhcnNldChjb3BpZWRBdHRyaWJ1dGVzLmFjY2VwdENoYXJzZXQoKSwgZG9jdW1lbnQp
OwogICAgIFJlZlB0cjxET01Gb3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3Jl
YXRlKGRhdGFFbmNvZGluZy5lbmNvZGluZ0ZvckZvcm1TdWJtaXNzaW9uKCkpOwogICAgIFZlY3Rv
cjxwYWlyPFN0cmluZywgU3RyaW5nPiA+IGZvcm1WYWx1ZXM7CiAKQEAgLTE2Niw3ICsxOTYsNyBA
QCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxG
b3JtRWxlbWVudCogZm9ybSwgY29uc3QgQQogICAgICAgICBib3VuZGFyeSA9IGZvcm1EYXRhLT5i
b3VuZGFyeSgpLmRhdGEoKTsKICAgICB9IGVsc2UgewogICAgICAgICBmb3JtRGF0YSA9IEZvcm1E
YXRhOjpjcmVhdGUoKihzdGF0aWNfY2FzdDxGb3JtRGF0YUxpc3QqPihkb21Gb3JtRGF0YS5nZXQo
KSkpLCBkb21Gb3JtRGF0YS0+ZW5jb2RpbmcoKSk7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVzLm1l
dGhvZCgpID09IFBvc3RNZXRob2QgJiYgaXNNYWlsdG9Gb3JtKSB7CisgICAgICAgIGlmIChjb3Bp
ZWRBdHRyaWJ1dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QgJiYgaXNNYWlsdG9Gb3JtKSB7CiAg
ICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmb3JtIGRhdGEgaW50byBhIHN0cmluZyB0aGF0IHdl
IHB1dCBpbnRvIHRoZSBVUkwuCiAgICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFU
b1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwgZW5jb2RpbmdUeXBlKTsKICAgICAgICAgICAgIGZv
cm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgpOwpAQCAtMTc0LDkgKzIwNCw5IEBAIFBhc3NSZWZQ
dHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50
KiBmb3JtLCBjb25zdCBBCiAgICAgfQogCiAgICAgZm9ybURhdGEtPnNldElkZW50aWZpZXIoZ2Vu
ZXJhdGVGb3JtRGF0YUlkZW50aWZpZXIoKSk7Ci0gICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdl
dCA9IGF0dHJpYnV0ZXMudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJhc2VUYXJnZXQo
KSA6IGF0dHJpYnV0ZXMudGFyZ2V0KCk7CisgICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9
IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJhc2VUYXJn
ZXQoKSA6IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0KCk7CiAgICAgUmVmUHRyPEZvcm1TdGF0ZT4g
Zm9ybVN0YXRlID0gRm9ybVN0YXRlOjpjcmVhdGUoZm9ybSwgZm9ybVZhbHVlcywgZG9jdW1lbnQt
PmZyYW1lKCksIHRyaWdnZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9ybVN1Ym1pc3Np
b24oYXR0cmlidXRlcy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIGVu
Y29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3Vu
ZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb3Jt
U3VibWlzc2lvbihjb3BpZWRBdHRyaWJ1dGVzLm1ldGhvZCgpLCBhY3Rpb25VUkwsIHRhcmdldE9y
QmFzZVRhcmdldCwgZW5jb2RpbmdUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpLCBmb3JtRGF0YS5y
ZWxlYXNlKCksIGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAogS1VSTCBGb3Jt
U3VibWlzc2lvbjo6cmVxdWVzdFVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9Gb3JtU3VibWlzc2lvbi5oIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaAppbmRl
eCBiOTM1ODgyYzQxMTU1YjhlZWE4ZDZiNTU0ZWI0YTZhYWM3NzMyZjhhLi5kNzI0ODM1NzdjZDJk
ZTI0MmJmN2NiNGJkM2Y1OTE4ZTc5MTZiMmU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKQEAg
LTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2VwdENoYXJz
ZXQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VwdENoYXJzZXQ7IH0KICAgICAgICAgdm9pZCBzZXRB
Y2NlcHRDaGFyc2V0KGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9hY2NlcHRDaGFyc2V0ID0gdmFs
dWU7IH0KIAorICAgICAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF0dHJpYnV0ZXMmKTsKKwogICAg
IHByaXZhdGU6CiAgICAgICAgIE1ldGhvZCBtX21ldGhvZDsKICAgICAgICAgYm9vbCBtX2lzTXVs
dGlQYXJ0Rm9ybTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73882</attachid>
            <date>2010-11-15 03:49:49 -0800</date>
            <delta_ts>2010-11-15 04:43:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49240-20101115204947.patch</filename>
            <type>text/plain</type>
            <size>40032</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjg1NTI5Mjk2YzJjNDk5MmRiMmRlZDAzOWU1NjU3OTE5YTk0NTZmLi5lMjA4YTk1
ZWMyNWFiOWNiNGIyZTY4YWIwYWRlYTI4MDIzMWZjNTZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMTEtMTUgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3Jt
YWN0aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVz
IGZvciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1hY3Rp
b24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0
bWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9m
b3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
bWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3Jt
LWF0dHJpYnV0ZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3VibWl0LWZvcm0t
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc3Vi
bWl0LWZvcm0tYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xNSAgQWxlamFuZHJv
IEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0aW9uLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1hY3Rpb24tYXR0cmlidXRlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIwMjUzYmNjNjExYmVkMzE2OWQxMjhjNWI1MzJiNjQ2
NTNjNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0
aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBmb3IgZm9y
bWFjdGlvbiBhdHRyaWJ1dGVzIGluIGlucHV0IGFuZCBidXR0b24gdGFncy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRo
ZSBpbnB1dCB0YWcgd2FzIHVzZWQuCitQQVNTIFRoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0
aGUgYnV0dG9uIHRhZyB3YXMgdXNlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtYWN0aW9uLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtYWN0
aW9uLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5MDdjNmYzMzRjNjQ2NTA0MzY2ZDUzMmZl
NjRmMDI0YzYyNWVlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm1hY3Rpb24tYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtIGFjdGlvbj0iamF2YXNjcmlwdDog
ZmFpbFRlc3QodGhpcykiIG1ldGhvZD0iZ2V0Ij4KKzxpbnB1dCBpZD0iYnV0dG9uMSIgdHlwZT0i
c3VibWl0IiBmb3JtYWN0aW9uPSJqYXZhc2NyaXB0OiBwYXNzVGVzdDEodGhpcykiIC8+Cis8YnV0
dG9uIGlkPSJidXR0b24yIiB0eXBlPSJzdWJtaXQiIGZvcm1hY3Rpb249ImphdmFzY3JpcHQ6IHBh
c3NUZXN0Mih0aGlzKSIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBm
b3IgZm9ybWFjdGlvbiBhdHRyaWJ1dGVzIGluIGlucHV0IGFuZCBidXR0b24gdGFncy4iKTsKK3Zh
ciBkb25lQWN0aW9uID0gZmFsc2U7Cit2YXIgZG9uZUFjdGlvbjIgPSBmYWxzZTsKKworZnVuY3Rp
b24gZmFpbFRlc3QodWwpCit7CisgICAgZG9uZUFjdGlvbiA9IHRydWU7CisgICAgdGVzdEZhaWxl
ZCgnVGhlIGZvcm1hY3Rpb24gYXR0cmlidXRlIGluIHRoZSBpbnB1dCBvciBidXR0b24gdGFnIHdh
cyBpZ25vcmVkLicpOworfQorZnVuY3Rpb24gcGFzc1Rlc3QxKHVsKQoreworICAgIGRvbmVBY3Rp
b24gPSB0cnVlOworICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtYWN0aW9uIGF0dHJpYnV0ZSBpbiB0
aGUgaW5wdXQgdGFnIHdhcyB1c2VkLicpOworfQorZnVuY3Rpb24gcGFzc1Rlc3QyKHVsKQorewor
ICAgIGRvbmVBY3Rpb24gPSB0cnVlOworICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtYWN0aW9uIGF0
dHJpYnV0ZSBpbiB0aGUgYnV0dG9uIHRhZyB3YXMgdXNlZC4nKTsKK30KKworZG9uZUFjdGlvbiA9
IGZhbHNlOwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1dHRvbjEnKTsK
K2lucHV0LmNsaWNrKCk7CitpZiAoIWRvbmVBY3Rpb24pCisgICAgdGVzdEZhaWxlZCgnQm90aCBv
ZiB0aGUgYWN0aW9uIGFuZCB0aGUgZm9ybWFjdGlvbiBhdHRyaWJ1dGVzIHdlcmUgaWdub3JlZC4n
KTsKKworZG9uZUFjdGlvbiA9IGZhbHNlOwordmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdidXR0b24yJyk7CitidXR0b24uY2xpY2soKTsKK2lmICghZG9uZUFjdGlvbikKKyAg
ICB0ZXN0RmFpbGVkKCdCb3RoIG9mIHRoZSBhY3Rpb24gYW5kIHRoZSBmb3JtYWN0aW9uIGF0dHJp
YnV0ZXMgd2VyZSBpZ25vcmVkLicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
LWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NzQ5ODczMzhkNTRhNGFjOWUwN2ZmM2Qy
ODkwMzQyMDM4MDc1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3Mu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTRlY2IyY2U3NzcwYTE1MzM1NTRlZWE4NzY5ZjNkZmUwYzIwZWJhNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtYnV0dG9u
LWh0bWwuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0iPyI+CisgICAgPGlucHV0
IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGlkZGVuIiB2YWx1ZT0iSSBhbSBoaWRkZW4iIC8+CisgICAg
PGJ1dHRvbiBpZD0iYnV0dG9uIiBmb3JtbWV0aG9kPSJwb3N0IiB0eXBlPSJzdWJtaXQiIG5hbWU9
ImJ1dHRvbiIgdmFsdWU9InZhbHVlIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gYnV0dG9uIHRhZ3MuIik7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2J1dHRvbicpOworCitpZiAoZG9jdW1lbnQuVVJMLnN1YnN0cmluZygwLCA0KSA9PSAi
ZmlsZSIpIHsKKyAgICBpZiAoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSA9PSAtMSkgeworICAg
ICAgICBidXR0b24uY2xpY2soKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZG9jdW1lbnQu
VVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpICsgMSwgZG9jdW1lbnQuVVJM
Lmxlbmd0aCkgPT0gIiIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybW1ldGhvZCBh
dHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkJyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ1RoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgbm90IHVzZWQnKTsK
KworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtbWV0aG9kLWF0dHJpYnV0
ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1l
dGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M3Njlk
ODA3OTEyNTMyN2MzM2RlYjFlMzM4MmEzNmM3ZGFjOTgzZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgdGhlIGZvcm1tZXRob2QgYXR0cmli
dXRlIGluIGlucHV0IHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFRoZSBmb3JtbWV0aG9kIGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybW1ldGhvZC1hdHRyaWJ1dGUtaW5wdXQtaHRt
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc2ZjAwNzQyZjJiZDQ5NWJiODJjNzkzYzIyMGIwMmJiMDRhNDQz
ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1tZXRob2Qt
YXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0i
PyI+CisgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGlkZGVuIiB2YWx1ZT0iSSBhbSBo
aWRkZW4iIC8+CisgICAgPGlucHV0IGlkPSJidXR0b24iIGZvcm1tZXRob2Q9InBvc3QiIHR5cGU9
InN1Ym1pdCIgbmFtZT0iYnV0dG9uIiAvPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0IGZvciB0aGUgZm9ybW1ldGhvZCBhdHRyaWJ1dGUgaW4gaW5wdXQgdGFncy4iKTsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYnV0dG9uJyk7CisKK2lmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJm
aWxlIikgeworICAgIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAg
ICAgIGJ1dHRvbi5jbGljaygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChkb2N1bWVudC5V
Ukwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwu
bGVuZ3RoKSA9PSAiIikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtbWV0aG9kIGF0
dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1bGx5IHVzZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgnVGhlIGZvcm1tZXRob2QgYXR0cmlidXRlIHdhcyBub3QgdXNlZCcpOwor
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRl
LWJ1dHRvbi1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRh
cmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3NTky
OGI4MzI1Yzc2NmExZGNiMjZkNDE3MzdhYzMxOTFkN2Y0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1odG1sLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciB0aGUgZm9ybXRhcmdldCBhdHRy
aWJ1dGUgaW4gYSBidXR0b24gdGFnLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBUaGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1dHRvbi1o
dG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWJ1
dHRvbi1odG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EzZGY1MDZkMmJkNTYxNDFlNjZlYWU4MDVlNDhj
YmViY2E5ODc0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9y
bXRhcmdldC1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gYWN0aW9uPSJyZXNvdXJjZXMvc3VjY2Vzcy50eHQiIG1l
dGhvZD0iR0VUIiB0YXJnZXQ9ImZhaWxGcmFtZSI+Cis8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9
ImJ1dHRvbiIgZm9ybXRhcmdldD0icGFzc0ZyYW1lIj4KKzwvZm9ybT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBmb3IgdGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIGluIGEgYnV0dG9uIHRh
Zy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIC8vIE5vdCBkdW1waW5nIGFzIHRleHQg
c2luY2UgdGhlIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IGR1bXAgdGhlIHRleHQgY29udGVudCBv
ZiBjaGlsZCBmcmFtZXMuICAgICAgICAgICAgICAgIAorICAgIHZhciBidXR0b24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYnV0dG9uJyk7CisgICAgYnV0dG9uLmNsaWNrKCk7Cit9CisKK2Z1
bmN0aW9uIHBhc3NGcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXNzJykuY29udGVudERvY3VtZW50LlVSTCA9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAg
ICByZXR1cm47CisgICAgdGVzdFBhc3NlZCgiVGhlIGZvcm10YXJnZXQgYXR0cmlidXRlIHdhcyBz
dWNjZXNzZnVsbHkgdXNlZC4iKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZmFpbEZyYW1lTG9hZGVkKCkKK3sKKyAg
ICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhaWwnKS5jb250ZW50RG9jdW1lbnQuVVJM
ID09ICJhYm91dDpibGFuayIpCisgICAgICAgIHJldHVybjsKKyAgICB0ZXN0RmFpbGVkKCJUaGUg
Zm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIG5vdCB1c2VkLiIpOworICAgIGlzU3VjY2Vzc2Z1bGx5
UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiBpZD0i
cGFzcyIgbmFtZT0icGFzc0ZyYW1lIiBvbmxvYWQ9InBhc3NGcmFtZUxvYWRlZCgpIj48L2lmcmFt
ZT4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgaWQ9ImZhaWwiIG5hbWU9ImZhaWxGcmFtZSIg
b25sb2FkPSJmYWlsRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlu
cHV0LWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0
LWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTM5YTZiZWJj
ZmJiODMxN2FlNDU0Yjg2YjE0MWVjMzY5NTU3OThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciB0aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUg
aW4gYW4gaW5wdXQgdGFnLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBU
aGUgZm9ybXRhcmdldCBhdHRyaWJ1dGUgd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKyAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdldC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1pbnB1dC1o
dG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNjZWI1ZTM2NmM4MjdhYzI3OGMxMDQ1ZWQ2ODJhZDNlNzlk
YTlmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybXRhcmdl
dC1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8Zm9ybSBhY3Rpb249InJlc291cmNlcy9zdWNjZXNzLnR4dCIgbWV0aG9kPSJH
RVQiIHRhcmdldD0iZmFpbEZyYW1lIj4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJidXR0b24i
IGZvcm10YXJnZXQ9InBhc3NGcmFtZSI+Cis8L2Zvcm0+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgZm9yIHRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSBpbiBhbiBpbnB1dCB0YWcuIik7CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHModHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisKKyAgICAvLyBOb3QgZHVtcGluZyBhcyB0ZXh0IHNpbmNlIHRo
ZSBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBkdW1wIHRoZSB0ZXh0IGNvbnRlbnQgb2YgY2hpbGQg
ZnJhbWVzLiAgICAgICAgICAgICAgICAKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2J1dHRvbicpOworICAgIGJ1dHRvbi5jbGljaygpOworfQorCitmdW5jdGlvbiBw
YXNzRnJhbWVMb2FkZWQoKQoreworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFz
cycpLmNvbnRlbnREb2N1bWVudC5VUkwgPT0gImFib3V0OmJsYW5rIikKKyAgICAgICAgcmV0dXJu
OworICAgIHRlc3RQYXNzZWQoIlRoZSBmb3JtdGFyZ2V0IGF0dHJpYnV0ZSB3YXMgc3VjY2Vzc2Z1
bGx5IHVzZWQuIik7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxGcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsJykuY29udGVudERvY3VtZW50LlVSTCA9PSAiYWJv
dXQ6YmxhbmsiKQorICAgICAgICByZXR1cm47CisgICAgdGVzdEZhaWxlZCgiVGhlIGZvcm10YXJn
ZXQgYXR0cmlidXRlIHdhcyBub3QgdXNlZC4iKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgp
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgaWQ9InBhc3MiIG5h
bWU9InBhc3NGcmFtZSIgb25sb2FkPSJwYXNzRnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8aWZy
YW1lIHNyYz0iYWJvdXQ6YmxhbmsiIGlkPSJmYWlsIiBuYW1lPSJmYWlsRnJhbWUiIG9ubG9hZD0i
ZmFpbEZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1
dHRvbi1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zv
cm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg5YjA2MDYyMmMzMWYwNjFjNTUxMDgwYzliZTI1NzNhM2E2ZmNiNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1i
dXR0b24taHRtbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQb2xpY3kgZGVsZWdhdGU6
IGF0dGVtcHQgdG8gbG9hZCBtYWlsdG86P2JvZHk9dG8lM0RvbmUlNDBleGFtcGxlLm9yZyUwRCUw
QWJvZHklM0RMaW5lJTIwMSUwRCUwQUxpbmUlMjAyJTBEJTBBJTQwJTI2JTNEJTJDJTNCJTNGJTIy
JTJCJTBEJTBBIHdpdGggbmF2aWdhdGlvbiB0eXBlICdmb3JtIHN1Ym1pdHRlZCcgb3JpZ2luYXRp
bmcgZnJvbSBIVE1MID4gI2RvY3VtZW50CitGaWVsZCAxOiAgRmllbGQgMjogIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1
dHRvbi1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlw
ZS1hdHRyaWJ1dGUtYnV0dG9uLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTI5Yjk1NWRjOTdlYThk
ODc5NDI1ZjViNjEwMzFjYmE1YWQ0MGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1odG1sLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9y
bSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ibWFpbHRvOiI+CitGaWVsZCAxOiA8aW5wdXQgdHlwZT0i
dGV4dCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iNDAiIG5hbWU9InRvIiB2YWx1ZT0ib25lQGV4YW1w
bGUub3JnIj4KK0ZpZWxkIDI6IDx0ZXh0YXJlYSBuYW1lPSJib2R5Ij5MaW5lIDEKK0xpbmUgMgor
QCZhbXA7PSw7PyIrPC90ZXh0YXJlYT4KKzxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0
IiBmb3JtZW5jdHlwZT0idGV4dC9wbGFpbiIgLz4KKzwvZm9ybT4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisgICAgfQorICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKS5jbGljaygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3Jt
ZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL21haWx0by9mb3JtZW5jdHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzg5YjA2MDYyMmMzMWYwNjFjNTUxMDgwYzliZTI1NzNhM2E2ZmNi
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbWFpbHRvL2Zvcm1l
bmN0eXBlLWF0dHJpYnV0ZS1pbnB1dC1odG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAK
K1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIG1haWx0bzo/Ym9keT10byUzRG9uZSU0
MGV4YW1wbGUub3JnJTBEJTBBYm9keSUzRExpbmUlMjAxJTBEJTBBTGluZSUyMDIlMEQlMEElNDAl
MjYlM0QlMkMlM0IlM0YlMjIlMkIlMEQlMEEgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ2Zvcm0gc3Vi
bWl0dGVkJyBvcmlnaW5hdGluZyBmcm9tIEhUTUwgPiAjZG9jdW1lbnQKK0ZpZWxkIDE6ICBGaWVs
ZCAyOiAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21haWx0by9mb3JtZW5j
dHlwZS1hdHRyaWJ1dGUtaW5wdXQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9t
YWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MWY3NzE5NjRjYWFhZmM1OWVjNjQ3YWRjNzA3YjZiZGU3NDE3YWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlu
cHV0LWh0bWwuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJtYWlsdG86Ij4KK0ZpZWxkIDE6
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSI0MCIgbmFtZT0idG8iIHZh
bHVlPSJvbmVAZXhhbXBsZS5vcmciPgorRmllbGQgMjogPHRleHRhcmVhIG5hbWU9ImJvZHkiPkxp
bmUgMQorTGluZSAyCitAJmFtcDs9LDs/Iis8L3RleHRhcmVhPgorPGlucHV0IHR5cGU9InN1Ym1p
dCIgaWQ9InN1Ym1pdCIgZm9ybWVuY3R5cGU9InRleHQvcGxhaW4iIC8+Cis8L2Zvcm0+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOworICAgIH0K
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0IikuY2xpY2soKTsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTkyYzA4NjY5NzlkMjNhZTEzODFkNTBjNDQyNDNiNjE3MTVlNmQ1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3N1Ym1pdC1mb3JtLWF0
dHJpYnV0ZXMuanMKQEAgLTAsMCArMSwxOTEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGUgYmVo
YXZpb3Igb2YgLmZvcm1hY3Rpb24sIC5mb3JtZW5jdHlwZSwgLmZvcm1tZXRob2QgYW5kIC5mb3Jt
dGFyZ2V0IG9mIEhUTUxJbnB1dEVsZW1lbnQgYW5kIEhUTUxCdXR0b25FbGVtZW50LicpOworCit2
YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitkZWJ1ZygnT3Jk
aW5hcnkgdmFsdWVzIGZvciBpbnB1dDonKTsKK2lucHV0LnR5cGUgPSAic3VibWl0IjsKK3Nob3Vs
ZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5
cGUnLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRC
ZSgnaW5wdXQuZm9ybVRhcmdldCcsICciIicpOworCitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1B
Y3Rpb24nLCAnaHR0cDovL2xvY2FsaG9zdCcpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1BY3Rpb24n
LCAnImh0dHA6Ly9sb2NhbGhvc3QvIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtQWN0aW9u
JywgJ2h0dHA6Ly9sb2NhbGhvc3QvJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUFjdGlvbicsICci
aHR0cDovL2xvY2FsaG9zdC8iJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0eXBlJywg
J3RleHQvcGxhaW4nKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICcidGV4dC9wbGFp
biInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAnbmEnKTsKK3Nob3VsZEJl
KCdpbnB1dC5mb3JtRW5jdHlwZScsICcibmEiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1N
ZXRob2QnLCAnR0VUJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICciR0VUIicpOwor
aW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgJ25pJyk7CitzaG91bGRCZSgnaW5wdXQu
Zm9ybU1ldGhvZCcsICcibmkiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAn
X2JsYW5rJyk7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICciX2JsYW5rIicpOworaW5w
dXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgJ251Jyk7CitzaG91bGRCZSgnaW5wdXQuZm9y
bVRhcmdldCcsICcibnUiJyk7CisKK2lucHV0LmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4YW1wbGUu
Y29tJzsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20v
IicpOworaW5wdXQuZm9ybUFjdGlvbiA9ICdodHRwOi8vZXhhbXBsZS5jb20vJzsKK3Nob3VsZEJl
KCdpbnB1dC5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworaW5wdXQuZm9y
bUVuY3R5cGUgPSAndGV4dC9wbGFpbic7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAn
InRleHQvcGxhaW4iJyk7CitpbnB1dC5mb3JtRW5jdHlwZSA9ICdub3RhJzsKK3Nob3VsZEJlKCdp
bnB1dC5mb3JtRW5jdHlwZScsICcibm90YSInKTsKK2lucHV0LmZvcm1NZXRob2QgPSAnUE9TVCc7
CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICciUE9TVCInKTsKK2lucHV0LmZvcm1NZXRo
b2QgPSAnbmV0YSc7CitzaG91bGRCZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibmV0YSInKTsKK2lu
cHV0LmZvcm1UYXJnZXQgPSAnaHR0cDovL2V4YW1wbGUuY29tJzsKK3Nob3VsZEJlKCdpbnB1dC5m
b3JtVGFyZ2V0JywgJyJodHRwOi8vZXhhbXBsZS5jb20iJyk7CitpbnB1dC5mb3JtVGFyZ2V0ID0g
J250YSc7CitzaG91bGRCZSgnaW5wdXQuZm9ybVRhcmdldCcsICcibnRhIicpOworCitkZWJ1Zygn
U2V0dGluZyBudWxsIGZvciBpbnB1dDonKTsKK2lucHV0LmZvcm1FbmN0eXBlID0gbnVsbDsKK3No
b3VsZEJlKCdpbnB1dC5mb3JtRW5jdHlwZScsICciIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0
dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ2Zv
cm1FbmN0eXBlJywgbnVsbCk7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIm51bGwi
Jyk7CitpbnB1dC5mb3JtTWV0aG9kID0gbnVsbDsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9k
JywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIiknLCAn
bnVsbCcpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgbnVsbCk7CitzaG91bGRC
ZSgnaW5wdXQuZm9ybU1ldGhvZCcsICcibnVsbCInKTsKK2lucHV0LmZvcm1UYXJnZXQgPSBudWxs
Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5n
ZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICdudWxsJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUo
J2Zvcm1UYXJnZXQnLCBudWxsKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJudWxs
IicpOworCitkZWJ1ZygnU2V0dGluZyB1bmRlZmluZWQgZm9yIGlucHV0OicpOworaW5wdXQuZm9y
bUVuY3R5cGUgPSB1bmRlZmluZWQ7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnInVu
ZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikn
LCAnInVuZGVmaW5lZCInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoJ2lucHV0LmZvcm1FbmN0eXBlJywgJyJ1bmRlZmluZWQiJyk7Citp
bnB1dC5mb3JtTWV0aG9kID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZvcm1NZXRob2Qn
LCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRo
b2QiKScsICcidW5kZWZpbmVkIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyJ1bmRlZmluZWQiJyk7
CitpbnB1dC5mb3JtVGFyZ2V0ID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJn
ZXQnLCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1U
YXJnZXQiKScsICcidW5kZWZpbmVkIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0
JywgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtVGFyZ2V0JywgJyJ1bmRlZmluZWQi
Jyk7CisKK2RlYnVnKCdTZXR0aW5nIG5vbi1zdHJpbmcgZm9yIGlucHV0OicpOworaW5wdXQuZm9y
bUVuY3R5cGUgPSAyNTY7CitzaG91bGRCZSgnaW5wdXQuZm9ybUVuY3R5cGUnLCAnIjI1NiInKTsK
K3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIiknLCAnIjI1NiInKTsK
K2lucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCAyNTYpOworc2hvdWxkQmUoJ2lucHV0
LmZvcm1FbmN0eXBlJywgJyIyNTYiJyk7CitpbnB1dC5mb3JtTWV0aG9kID0gMjU2Oworc2hvdWxk
QmUoJ2lucHV0LmZvcm1NZXRob2QnLCAnIjI1NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRy
aWJ1dGUoImZvcm1NZXRob2QiKScsICciMjU2IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3Jt
TWV0aG9kJywgMjU2KTsKK3Nob3VsZEJlKCdpbnB1dC5mb3JtTWV0aG9kJywgJyIyNTYiJyk7Citp
bnB1dC5mb3JtVGFyZ2V0ID0gMjU2Oworc2hvdWxkQmUoJ2lucHV0LmZvcm1UYXJnZXQnLCAnIjI1
NiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKScsICciMjU2
IicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgMjU2KTsKK3Nob3VsZEJlKCdp
bnB1dC5mb3JtVGFyZ2V0JywgJyIyNTYiJyk7CisKK3ZhciBidXR0b24gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdidXR0b24nKTsKKworZGVidWcoJ09yZGluYXJ5IHZhbHVlcyBmb3IgYnV0dG9u
OicpOworYnV0dG9uLnR5cGUgPSAic3VibWl0IjsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUFjdGlv
bicsICciIicpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtRW5jdHlwZScsICciIicpOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyIiJyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJn
ZXQnLCAnIiInKTsKKworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUFjdGlvbicsICdodHRwOi8v
bG9jYWxob3N0Jyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1BY3Rpb24nLCAnImh0dHA6Ly9sb2Nh
bGhvc3QvIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUFjdGlvbicsICdodHRwOi8vbG9j
YWxob3N0LycpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8vbG9jYWxo
b3N0LyInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1FbmN0eXBlJywgJ3RleHQvcGxhaW4n
KTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnInRleHQvcGxhaW4iJyk7CitidXR0
b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsICduYScpOworc2hvdWxkQmUoJ2J1dHRvbi5m
b3JtRW5jdHlwZScsICcibmEiJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywg
J0dFVCcpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJHRVQiJyk7CitidXR0b24u
c2V0QXR0cmlidXRlKCdmb3JtTWV0aG9kJywgJ25hJyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1N
ZXRob2QnLCAnIm5hIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsICdfYmxh
bmsnKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciX2JsYW5rIicpOworYnV0dG9u
LnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsICduYScpOworc2hvdWxkQmUoJ2J1dHRvbi5mb3Jt
VGFyZ2V0JywgJyJuYSInKTsKKworYnV0dG9uLmZvcm1BY3Rpb24gPSAnaHR0cDovL2V4YW1wbGUu
Y29tJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybUFjdGlvbicsICciaHR0cDovL2V4YW1wbGUuY29t
LyInKTsKK2J1dHRvbi5mb3JtQWN0aW9uID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtQWN0aW9uJywgJyJodHRwOi8vZXhhbXBsZS5jb20vIicpOworYnV0dG9u
LmZvcm1FbmN0eXBlID0gJ3RleHQvcGxhaW4nOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtRW5jdHlw
ZScsICcidGV4dC9wbGFpbiInKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9ICdub3RhJzsKK3Nob3Vs
ZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnIm5vdGEiJyk7CitidXR0b24uZm9ybU1ldGhvZCA9
ICdQT1NUJzsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICciUE9TVCInKTsKK2J1dHRv
bi5mb3JtTWV0aG9kID0gJ25vdGEnOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtTWV0aG9kJywgJyJu
b3RhIicpOworYnV0dG9uLmZvcm1UYXJnZXQgPSAnaHR0cDovL2V4YW1wbGUuY29tJzsKK3Nob3Vs
ZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICciaHR0cDovL2V4YW1wbGUuY29tIicpOworYnV0dG9u
LmZvcm1UYXJnZXQgPSAnbm90YSc7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJnZXQnLCAnIm5v
dGEiJyk7CisKK2RlYnVnKCdTZXR0aW5nIG51bGwgZm9yIGJ1dHRvbjonKTsKK2J1dHRvbi5mb3Jt
RW5jdHlwZSA9IG51bGw7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyIiJyk7Citz
aG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICdudWxsJyk7Citi
dXR0b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsIG51bGwpOworc2hvdWxkQmUoJ2J1dHRv
bi5mb3JtRW5jdHlwZScsICcibnVsbCInKTsKK2J1dHRvbi5mb3JtTWV0aG9kID0gbnVsbDsKK3No
b3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICciIicpOworc2hvdWxkQmUoJ2J1dHRvbi5nZXRB
dHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICdudWxsJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdm
b3JtTWV0aG9kJywgbnVsbCk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIm51bGwi
Jyk7CitidXR0b24uZm9ybVRhcmdldCA9IG51bGw7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJn
ZXQnLCAnIiInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0Iikn
LCAnbnVsbCcpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybVRhcmdldCcsIG51bGwpOworc2hv
dWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJudWxsIicpOworCitkZWJ1ZygnU2V0dGluZyB1
bmRlZmluZWQgZm9yIGJ1dHRvbjonKTsKK2J1dHRvbi5mb3JtRW5jdHlwZSA9IHVuZGVmaW5lZDsK
K3Nob3VsZEJlKCdidXR0b24uZm9ybUVuY3R5cGUnLCAnInVuZGVmaW5lZCInKTsKK3Nob3VsZEJl
KCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpJywgJyJ1bmRlZmluZWQiJyk7Citi
dXR0b24uc2V0QXR0cmlidXRlKCdmb3JtRW5jdHlwZScsIHVuZGVmaW5lZCk7CitzaG91bGRCZSgn
YnV0dG9uLmZvcm1FbmN0eXBlJywgJyJ1bmRlZmluZWQiJyk7CitidXR0b24uZm9ybU1ldGhvZCA9
IHVuZGVmaW5lZDsKK3Nob3VsZEJlKCdidXR0b24uZm9ybU1ldGhvZCcsICcidW5kZWZpbmVkIicp
Oworc2hvdWxkQmUoJ2J1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKScsICcidW5kZWZp
bmVkIicpOworYnV0dG9uLnNldEF0dHJpYnV0ZSgnZm9ybU1ldGhvZCcsIHVuZGVmaW5lZCk7Citz
aG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnInVuZGVmaW5lZCInKTsKK2J1dHRvbi5mb3Jt
VGFyZ2V0ID0gdW5kZWZpbmVkOworc2hvdWxkQmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyJ1bmRl
ZmluZWQiJyk7CitzaG91bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpJywg
JyJ1bmRlZmluZWQiJyk7CitidXR0b24uc2V0QXR0cmlidXRlKCdmb3JtVGFyZ2V0JywgdW5kZWZp
bmVkKTsKK3Nob3VsZEJlKCdidXR0b24uZm9ybVRhcmdldCcsICcidW5kZWZpbmVkIicpOworCitk
ZWJ1ZygnU2V0dGluZyBub24tc3RyaW5nIGZvciBidXR0b246Jyk7CitidXR0b24uZm9ybUVuY3R5
cGUgPSAyNTY7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1FbmN0eXBlJywgJyIyNTYiJyk7CitzaG91
bGRCZSgnYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybUVuY3R5cGUiKScsICciMjU2IicpOworYnV0
dG9uLnNldEF0dHJpYnV0ZSgnZm9ybUVuY3R5cGUnLCA1MTIpOworc2hvdWxkQmUoJ2J1dHRvbi5m
b3JtRW5jdHlwZScsICciNTEyIicpOworYnV0dG9uLmZvcm1NZXRob2QgPSAxMjg7CitzaG91bGRC
ZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIjEyOCInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0
cmlidXRlKCJmb3JtTWV0aG9kIiknLCAnIjEyOCInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zv
cm1NZXRob2QnLCAxNyk7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1NZXRob2QnLCAnIjE3IicpOwor
YnV0dG9uLmZvcm1UYXJnZXQgPSAxMDA7CitzaG91bGRCZSgnYnV0dG9uLmZvcm1UYXJnZXQnLCAn
IjEwMCInKTsKK3Nob3VsZEJlKCdidXR0b24uZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IiknLCAn
IjEwMCInKTsKK2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2Zvcm1UYXJnZXQnLCAyODEpOworc2hvdWxk
QmUoJ2J1dHRvbi5mb3JtVGFyZ2V0JywgJyIyODEiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJtaXQtZm9y
bS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc3VibWl0
LWZvcm0tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMwZTUzZTU1NGExMzVh
OTE3NjRjMDdmODNkMTE2ZWIzMjI1NTY3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMTEgQEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAuZm9ybWFjdGlvbiwgLmZvcm1lbmN0eXBl
LCAuZm9ybW1ldGhvZCBhbmQgLmZvcm10YXJnZXQgb2YgSFRNTElucHV0RWxlbWVudCBhbmQgSFRN
TEJ1dHRvbkVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitPcmRpbmFy
eSB2YWx1ZXMgZm9yIGlucHV0OgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICIiCitQQVNTIGlu
cHV0LmZvcm1FbmN0eXBlIGlzICIiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIiIKK1BBU1Mg
aW5wdXQuZm9ybVRhcmdldCBpcyAiIgorUEFTUyBpbnB1dC5mb3JtQWN0aW9uIGlzICJodHRwOi8v
bG9jYWxob3N0LyIKK1BBU1MgaW5wdXQuZm9ybUFjdGlvbiBpcyAiaHR0cDovL2xvY2FsaG9zdC8i
CitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgorUEFTUyBpbnB1dC5mb3Jt
RW5jdHlwZSBpcyAibmEiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIkdFVCIKK1BBU1MgaW5w
dXQuZm9ybU1ldGhvZCBpcyAibmkiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIl9ibGFuayIK
K1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAibnUiCitQQVNTIGlucHV0LmZvcm1BY3Rpb24gaXMg
Imh0dHA6Ly9leGFtcGxlLmNvbS8iCitQQVNTIGlucHV0LmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9l
eGFtcGxlLmNvbS8iCitQQVNTIGlucHV0LmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgorUEFT
UyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAibm90YSIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAi
UE9TVCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAibmV0YSIKK1BBU1MgaW5wdXQuZm9ybVRh
cmdldCBpcyAiaHR0cDovL2V4YW1wbGUuY29tIgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICJu
dGEiCitTZXR0aW5nIG51bGwgZm9yIGlucHV0OgorUEFTUyBpbnB1dC5mb3JtRW5jdHlwZSBpcyAi
IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgbnVsbAorUEFTUyBp
bnB1dC5mb3JtRW5jdHlwZSBpcyAibnVsbCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAiIgor
UEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyBudWxsCitQQVNTIGlucHV0
LmZvcm1NZXRob2QgaXMgIm51bGwiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgIiIKK1BBU1Mg
aW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgbnVsbAorUEFTUyBpbnB1dC5mb3Jt
VGFyZ2V0IGlzICJudWxsIgorU2V0dGluZyB1bmRlZmluZWQgZm9yIGlucHV0OgorUEFTUyBpbnB1
dC5mb3JtRW5jdHlwZSBpcyAidW5kZWZpbmVkIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoImZv
cm1FbmN0eXBlIikgaXMgInVuZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgInVu
ZGVmaW5lZCIKK1BBU1MgaW5wdXQuZm9ybU1ldGhvZCBpcyAidW5kZWZpbmVkIgorUEFTUyBpbnB1
dC5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyAidW5kZWZpbmVkIgorUEFTUyBpbnB1dC5m
b3JtTWV0aG9kIGlzICJ1bmRlZmluZWQiCitQQVNTIGlucHV0LmZvcm1UYXJnZXQgaXMgInVuZGVm
aW5lZCIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgInVuZGVmaW5l
ZCIKK1BBU1MgaW5wdXQuZm9ybVRhcmdldCBpcyAidW5kZWZpbmVkIgorU2V0dGluZyBub24tc3Ry
aW5nIGZvciBpbnB1dDoKK1BBU1MgaW5wdXQuZm9ybUVuY3R5cGUgaXMgIjI1NiIKK1BBU1MgaW5w
dXQuZ2V0QXR0cmlidXRlKCJmb3JtRW5jdHlwZSIpIGlzICIyNTYiCitQQVNTIGlucHV0LmZvcm1F
bmN0eXBlIGlzICIyNTYiCitQQVNTIGlucHV0LmZvcm1NZXRob2QgaXMgIjI1NiIKK1BBU1MgaW5w
dXQuZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIikgaXMgIjI1NiIKK1BBU1MgaW5wdXQuZm9ybU1l
dGhvZCBpcyAiMjU2IgorUEFTUyBpbnB1dC5mb3JtVGFyZ2V0IGlzICIyNTYiCitQQVNTIGlucHV0
LmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlzICIyNTYiCitQQVNTIGlucHV0LmZvcm1UYXJn
ZXQgaXMgIjI1NiIKK09yZGluYXJ5IHZhbHVlcyBmb3IgYnV0dG9uOgorUEFTUyBidXR0b24uZm9y
bUFjdGlvbiBpcyAiIgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUgaXMgIiIKK1BBU1MgYnV0dG9u
LmZvcm1NZXRob2QgaXMgIiIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIiIKK1BBU1MgYnV0
dG9uLmZvcm1BY3Rpb24gaXMgImh0dHA6Ly9sb2NhbGhvc3QvIgorUEFTUyBidXR0b24uZm9ybUFj
dGlvbiBpcyAiaHR0cDovL2xvY2FsaG9zdC8iCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAi
dGV4dC9wbGFpbiIKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICJuYSIKK1BBU1MgYnV0dG9u
LmZvcm1NZXRob2QgaXMgIkdFVCIKK1BBU1MgYnV0dG9uLmZvcm1NZXRob2QgaXMgIm5hIgorUEFT
UyBidXR0b24uZm9ybVRhcmdldCBpcyAiX2JsYW5rIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBp
cyAibmEiCitQQVNTIGJ1dHRvbi5mb3JtQWN0aW9uIGlzICJodHRwOi8vZXhhbXBsZS5jb20vIgor
UEFTUyBidXR0b24uZm9ybUFjdGlvbiBpcyAiaHR0cDovL2V4YW1wbGUuY29tLyIKK1BBU1MgYnV0
dG9uLmZvcm1FbmN0eXBlIGlzICJ0ZXh0L3BsYWluIgorUEFTUyBidXR0b24uZm9ybUVuY3R5cGUg
aXMgIm5vdGEiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICJQT1NUIgorUEFTUyBidXR0b24u
Zm9ybU1ldGhvZCBpcyAibm90YSIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgImh0dHA6Ly9l
eGFtcGxlLmNvbSIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgIm5vdGEiCitTZXR0aW5nIG51
bGwgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICIiCitQQVNTIGJ1dHRv
bi5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgbnVsbAorUEFTUyBidXR0b24uZm9ybUVu
Y3R5cGUgaXMgIm51bGwiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICIiCitQQVNTIGJ1dHRv
bi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyBudWxsCitQQVNTIGJ1dHRvbi5mb3JtTWV0
aG9kIGlzICJudWxsIgorUEFTUyBidXR0b24uZm9ybVRhcmdldCBpcyAiIgorUEFTUyBidXR0b24u
Z2V0QXR0cmlidXRlKCJmb3JtVGFyZ2V0IikgaXMgbnVsbAorUEFTUyBidXR0b24uZm9ybVRhcmdl
dCBpcyAibnVsbCIKK1NldHRpbmcgdW5kZWZpbmVkIGZvciBidXR0b246CitQQVNTIGJ1dHRvbi5m
b3JtRW5jdHlwZSBpcyAidW5kZWZpbmVkIgorUEFTUyBidXR0b24uZ2V0QXR0cmlidXRlKCJmb3Jt
RW5jdHlwZSIpIGlzICJ1bmRlZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtRW5jdHlwZSBpcyAidW5k
ZWZpbmVkIgorUEFTUyBidXR0b24uZm9ybU1ldGhvZCBpcyAidW5kZWZpbmVkIgorUEFTUyBidXR0
b24uZ2V0QXR0cmlidXRlKCJmb3JtTWV0aG9kIikgaXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9u
LmZvcm1NZXRob2QgaXMgInVuZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmZvcm1UYXJnZXQgaXMgInVu
ZGVmaW5lZCIKK1BBU1MgYnV0dG9uLmdldEF0dHJpYnV0ZSgiZm9ybVRhcmdldCIpIGlzICJ1bmRl
ZmluZWQiCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICJ1bmRlZmluZWQiCitTZXR0aW5nIG5v
bi1zdHJpbmcgZm9yIGJ1dHRvbjoKK1BBU1MgYnV0dG9uLmZvcm1FbmN0eXBlIGlzICIyNTYiCitQ
QVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1FbmN0eXBlIikgaXMgIjI1NiIKK1BBU1MgYnV0
dG9uLmZvcm1FbmN0eXBlIGlzICI1MTIiCitQQVNTIGJ1dHRvbi5mb3JtTWV0aG9kIGlzICIxMjgi
CitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1NZXRob2QiKSBpcyAiMTI4IgorUEFTUyBi
dXR0b24uZm9ybU1ldGhvZCBpcyAiMTciCitQQVNTIGJ1dHRvbi5mb3JtVGFyZ2V0IGlzICIxMDAi
CitQQVNTIGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImZvcm1UYXJnZXQiKSBpcyAiMTAwIgorUEFTUyBi
dXR0b24uZm9ybVRhcmdldCBpcyAiMjgxIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c3VibWl0LWZvcm0tYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdWJt
aXQtZm9ybS1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc2ODZhNzhkMWMwYjE2YjYwYTAw
MWQyNmNjNGJhMzllNzYxMzdlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc3VibWl0LWZvcm0tYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3N1Ym1pdC1mb3JtLWF0dHJpYnV0ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDc2YTRmNWJmODlmN2M0NmU0MmMzYzhhMjNlODViMGRiNTE3N2RhZGQuLjI0
YmM0N2Q5ZGMxOGU0ZWQ0YmVlOGIyYjI4ZTBjMmRiOTE0NjUyYTIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTAtMTEtMTUgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtYWN0
aW9uLCBmb3JtZW5jdHlwZSwgZm9ybW1ldGhvZCBhbmQgZm9ybXRhcmdldCBhdHRyaWJ1dGVzIGZv
ciBpbnB1dCBhbmQgYnV0dG9uIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MjQwCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvZm9ybWFj
dGlvbi1hdHRyaWJ1dGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtbWV0aG9k
LWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zv
cm1tZXRob2QtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9m
b3Jtcy9mb3JtdGFyZ2V0LWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2Zvcm1zL2Zvcm10YXJnZXQtYXR0cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWJ1dHRvbi1o
dG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0
dHJpYnV0ZS1pbnB1dC1odG1sLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvc3VibWl0
LWZvcm0tYXR0cmlidXRlcy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbjogQWRkZWQgZm9ybWFjdGlvbiwgZm9ybW1ldGhvZCwgZm9ybXRhcmdldCBhbmQgZm9ybWVu
Y3R5cGUgYXR0cmlidXRlcworICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAgICAgICogbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcDogTW9kaWZpZWQgdG8gY2hlY2sgdGhlIHByZXNzZWQgYnV0dG9uIGFu
ZCBpdHMgYXR0cmlidXRlcworICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Npb246OkF0dHJp
YnV0ZXM6OmNvcHlGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1TdWJtaXNzaW9uOjpjcmVh
dGUpOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5oOgorCiAyMDEwLTExLTE1ICBJ
bHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCAxODgxYjZm
YmEyMjhkZThiNDJhNzkzN2UwZWNkMTI0ZTZlMzNkMTEwLi5jNjc5MmY4ZDNmMzJmNTFiYmYyMGRi
ZjEwYTFhNmU5ZTFmMzEzMTQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTk1
LDcgKzk1LDExIEBAIGZhY2UKIGZvY3VzZWQKIGZvcgogZm9ybQorZm9ybWFjdGlvbgorZm9ybWVu
Y3R5cGUKK2Zvcm1tZXRob2QKIGZvcm1ub3ZhbGlkYXRlCitmb3JtdGFyZ2V0CiBmcmFtZQogZnJh
bWVib3JkZXIKIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDI3OWU4
NTg2Y2VmNTA1NzM2MjVhMDBkZWY1ODMzNjZjOGJhNzM4MGIuLjJmYmJhNDFmM2Y3NjYwM2NmYzJi
ZGNiZjUyZjZiYTllMmQ1OWE5YzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAt
MjMsNyArMjMsMTEgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBIVE1MQnV0dG9uRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOwogCisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJp
bmcgZm9ybUFjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9y
bUVuY3R5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1NZXRo
b2Q7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybVRhcmdldDsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAKICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsCmluZGV4IDE1Nzk4OWU3MjdiZTgwNWM1YTU2YjE3OTRlNzg0YzMyZDdkNDkyNjEu
LjM0MmU5YjgxOWM5NDBkM2ZkYTdkNWJlMTI3Njk5MDgxYTAxNmFkZjIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKQEAgLTI0LDcgKzI0LDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1
ZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVsdENo
ZWNrZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOwor
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtRW5jdHlwZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybU1ldGhvZDsKICAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGZvcm1Ob1ZhbGlkYXRlOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtVGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgYWNjZXB0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBhY2Nlc3NLZXk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5j
cHAgYi9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggZjNmMTlkMjgwNmM1
OGQ2NTBmYWU1YmE4ZjUzNDk4ZDVkZTVjMTkwNS4uYTlmMjY4MDNmMDJkZjQ4ODI2YWE4ODc3NzM2
ZmRiZjE5MmZmZWViYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24u
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMTEwLDYgKzEx
MCwxNyBAQCB2b2lkIEZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzOjpwYXJzZU1ldGhvZFR5cGUo
Y29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICBtX21ldGhvZCA9IEZvcm1TdWJtaXNzaW9uOjpH
ZXRNZXRob2Q7CiB9CiAKK3ZvaWQgRm9ybVN1Ym1pc3Npb246OkF0dHJpYnV0ZXM6OmNvcHlGcm9t
KGNvbnN0IEF0dHJpYnV0ZXMmIG90aGVyKQoreworICAgIG1fbWV0aG9kID0gb3RoZXIubV9tZXRo
b2Q7CisgICAgbV9pc011bHRpUGFydEZvcm0gPSBvdGhlci5tX2lzTXVsdGlQYXJ0Rm9ybTsKKwor
ICAgIG1fYWN0aW9uID0gb3RoZXIubV9hY3Rpb247CisgICAgbV90YXJnZXQgPSBvdGhlci5tX3Rh
cmdldDsKKyAgICBtX2VuY29kaW5nVHlwZSA9IG90aGVyLm1fZW5jb2RpbmdUeXBlOworICAgIG1f
YWNjZXB0Q2hhcnNldCA9IG90aGVyLm1fYWNjZXB0Q2hhcnNldDsKK30KKwogaW5saW5lIEZvcm1T
dWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihNZXRob2QgbWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rp
b24sIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4gc3RhdGUsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGRhdGEsIGNvbnN0
IFN0cmluZyYgYm91bmRhcnksIGJvb2wgbG9ja0hpc3RvcnksIFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQpAQCAt
MTI2LDIxICsxMzcsNDAgQEAgaW5saW5lIEZvcm1TdWJtaXNzaW9uOjpGb3JtU3VibWlzc2lvbihN
ZXRob2QgbWV0aG9kLCBjb25zdCBLVVJMJiBhY3Rpb24sIGNvbnN0IFMKIFBhc3NSZWZQdHI8Rm9y
bVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3Jt
LCBjb25zdCBBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwg
Ym9vbCBsb2NrSGlzdG9yeSwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIHRyaWdnZXIpCiB7CiAgICAg
QVNTRVJUKGZvcm0pOworCisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogc3VibWl0QnV0dG9u
ID0gMDsKKyAgICBpZiAoZXZlbnQgJiYgZXZlbnQtPnRhcmdldCgpICYmIGV2ZW50LT50YXJnZXQo
KS0+dG9Ob2RlKCkpCisgICAgICAgIHN1Ym1pdEJ1dHRvbiA9IHN0YXRpY19jYXN0PEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqPihldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKTsKKworICAgIEZvcm1T
dWJtaXNzaW9uOjpBdHRyaWJ1dGVzIGNvcGllZEF0dHJpYnV0ZXM7CisgICAgY29waWVkQXR0cmli
dXRlcy5jb3B5RnJvbShhdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3VibWl0QnV0dG9uKSB7CisgICAg
ICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgaWYgKCEoYXR0cmlidXRlVmFsdWUg
PSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtYWN0aW9uQXR0cikpLmlzTnVsbCgpKQor
ICAgICAgICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZUFjdGlvbihhdHRyaWJ1dGVWYWx1ZSk7
CisgICAgICAgIGlmICghKGF0dHJpYnV0ZVZhbHVlID0gc3VibWl0QnV0dG9uLT5nZXRBdHRyaWJ1
dGUoZm9ybWVuY3R5cGVBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAgICBjb3BpZWRBdHRyaWJ1
dGVzLnBhcnNlRW5jb2RpbmdUeXBlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgaWYgKCEoYXR0
cmlidXRlVmFsdWUgPSBzdWJtaXRCdXR0b24tPmdldEF0dHJpYnV0ZShmb3JtbWV0aG9kQXR0cikp
LmlzTnVsbCgpKQorICAgICAgICAgICAgY29waWVkQXR0cmlidXRlcy5wYXJzZU1ldGhvZFR5cGUo
YXR0cmlidXRlVmFsdWUpOworICAgICAgICBpZiAoIShhdHRyaWJ1dGVWYWx1ZSA9IHN1Ym1pdEJ1
dHRvbi0+Z2V0QXR0cmlidXRlKGZvcm10YXJnZXRBdHRyKSkuaXNOdWxsKCkpCisgICAgICAgICAg
ICBjb3BpZWRBdHRyaWJ1dGVzLnNldFRhcmdldChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorICAg
IAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZvcm0tPmRvY3VtZW50KCk7Ci0gICAgS1VSTCBh
Y3Rpb25VUkwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwoYXR0cmlidXRlcy5hY3Rpb24oKS5pc0Vt
cHR5KCkgPyBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgOiBhdHRyaWJ1dGVzLmFjdGlvbigpKTsK
KyAgICBLVVJMIGFjdGlvblVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChjb3BpZWRBdHRyaWJ1
dGVzLmFjdGlvbigpLmlzRW1wdHkoKSA/IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSA6IGNvcGll
ZEF0dHJpYnV0ZXMuYWN0aW9uKCkpOwogICAgIGJvb2wgaXNNYWlsdG9Gb3JtID0gYWN0aW9uVVJM
LnByb3RvY29sSXMoIm1haWx0byIpOwogICAgIGJvb2wgaXNNdWx0aVBhcnRGb3JtID0gZmFsc2U7
Ci0gICAgU3RyaW5nIGVuY29kaW5nVHlwZSA9IGF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7Cisg
ICAgU3RyaW5nIGVuY29kaW5nVHlwZSA9IGNvcGllZEF0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7
CiAKLSAgICBpZiAoYXR0cmlidXRlcy5tZXRob2QoKSA9PSBQb3N0TWV0aG9kKSB7Ci0gICAgICAg
IGlzTXVsdGlQYXJ0Rm9ybSA9IGF0dHJpYnV0ZXMuaXNNdWx0aVBhcnRGb3JtKCk7CisgICAgaWYg
KGNvcGllZEF0dHJpYnV0ZXMubWV0aG9kKCkgPT0gUG9zdE1ldGhvZCkgeworICAgICAgICBpc011
bHRpUGFydEZvcm0gPSBjb3BpZWRBdHRyaWJ1dGVzLmlzTXVsdGlQYXJ0Rm9ybSgpOwogICAgICAg
ICBpZiAoaXNNdWx0aVBhcnRGb3JtICYmIGlzTWFpbHRvRm9ybSkgewogICAgICAgICAgICAgZW5j
b2RpbmdUeXBlID0gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI7CiAgICAgICAg
ICAgICBpc011bHRpUGFydEZvcm0gPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFRl
eHRFbmNvZGluZyBkYXRhRW5jb2RpbmcgPSBpc01haWx0b0Zvcm0gPyBVVEY4RW5jb2RpbmcoKSA6
IEZvcm1EYXRhQnVpbGRlcjo6ZW5jb2RpbmdGcm9tQWNjZXB0Q2hhcnNldChhdHRyaWJ1dGVzLmFj
Y2VwdENoYXJzZXQoKSwgZG9jdW1lbnQpOworICAgIFRleHRFbmNvZGluZyBkYXRhRW5jb2Rpbmcg
PSBpc01haWx0b0Zvcm0gPyBVVEY4RW5jb2RpbmcoKSA6IEZvcm1EYXRhQnVpbGRlcjo6ZW5jb2Rp
bmdGcm9tQWNjZXB0Q2hhcnNldChjb3BpZWRBdHRyaWJ1dGVzLmFjY2VwdENoYXJzZXQoKSwgZG9j
dW1lbnQpOwogICAgIFJlZlB0cjxET01Gb3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0
YTo6Y3JlYXRlKGRhdGFFbmNvZGluZy5lbmNvZGluZ0ZvckZvcm1TdWJtaXNzaW9uKCkpOwogICAg
IFZlY3RvcjxwYWlyPFN0cmluZywgU3RyaW5nPiA+IGZvcm1WYWx1ZXM7CiAKQEAgLTE2Niw3ICsx
OTYsNyBAQCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lvbjo6Y3JlYXRl
KEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQQogICAgICAgICBib3VuZGFyeSA9IGZvcm1E
YXRhLT5ib3VuZGFyeSgpLmRhdGEoKTsKICAgICB9IGVsc2UgewogICAgICAgICBmb3JtRGF0YSA9
IEZvcm1EYXRhOjpjcmVhdGUoKihzdGF0aWNfY2FzdDxGb3JtRGF0YUxpc3QqPihkb21Gb3JtRGF0
YS5nZXQoKSkpLCBkb21Gb3JtRGF0YS0+ZW5jb2RpbmcoKSk7Ci0gICAgICAgIGlmIChhdHRyaWJ1
dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QgJiYgaXNNYWlsdG9Gb3JtKSB7CisgICAgICAgIGlm
IChjb3BpZWRBdHRyaWJ1dGVzLm1ldGhvZCgpID09IFBvc3RNZXRob2QgJiYgaXNNYWlsdG9Gb3Jt
KSB7CiAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmb3JtIGRhdGEgaW50byBhIHN0cmluZyB0
aGF0IHdlIHB1dCBpbnRvIHRoZSBVUkwuCiAgICAgICAgICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9y
bURhdGFUb1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwgZW5jb2RpbmdUeXBlKTsKICAgICAgICAg
ICAgIGZvcm1EYXRhID0gRm9ybURhdGE6OmNyZWF0ZSgpOwpAQCAtMTc0LDkgKzIwNCw5IEBAIFBh
c3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1F
bGVtZW50KiBmb3JtLCBjb25zdCBBCiAgICAgfQogCiAgICAgZm9ybURhdGEtPnNldElkZW50aWZp
ZXIoZ2VuZXJhdGVGb3JtRGF0YUlkZW50aWZpZXIoKSk7Ci0gICAgU3RyaW5nIHRhcmdldE9yQmFz
ZVRhcmdldCA9IGF0dHJpYnV0ZXMudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJhc2VU
YXJnZXQoKSA6IGF0dHJpYnV0ZXMudGFyZ2V0KCk7CisgICAgU3RyaW5nIHRhcmdldE9yQmFzZVRh
cmdldCA9IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQtPmJh
c2VUYXJnZXQoKSA6IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0KCk7CiAgICAgUmVmUHRyPEZvcm1T
dGF0ZT4gZm9ybVN0YXRlID0gRm9ybVN0YXRlOjpjcmVhdGUoZm9ybSwgZm9ybVZhbHVlcywgZG9j
dW1lbnQtPmZyYW1lKCksIHRyaWdnZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9ybVN1
Ym1pc3Npb24oYXR0cmlidXRlcy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJn
ZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgp
LCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBGb3JtU3VibWlzc2lvbihjb3BpZWRBdHRyaWJ1dGVzLm1ldGhvZCgpLCBhY3Rpb25VUkwsIHRh
cmdldE9yQmFzZVRhcmdldCwgZW5jb2RpbmdUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpLCBmb3Jt
RGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAogS1VS
TCBGb3JtU3VibWlzc2lvbjo6cmVxdWVzdFVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oIGIvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24u
aAppbmRleCBiOTM1ODgyYzQxMTU1YjhlZWE4ZDZiNTU0ZWI0YTZhYWM3NzMyZjhhLi5kNzI0ODM1
NzdjZDJkZTI0MmJmN2NiNGJkM2Y1OTE4ZTc5MTZiMmU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9Gb3JtU3VibWlzc2lvbi5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmgKQEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgICAgICBjb25zdCBTdHJpbmcmIGFjY2Vw
dENoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VwdENoYXJzZXQ7IH0KICAgICAgICAgdm9p
ZCBzZXRBY2NlcHRDaGFyc2V0KGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9hY2NlcHRDaGFyc2V0
ID0gdmFsdWU7IH0KIAorICAgICAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF0dHJpYnV0ZXMmKTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIE1ldGhvZCBtX21ldGhvZDsKICAgICAgICAgYm9vbCBt
X2lzTXVsdGlQYXJ0Rm9ybTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>