<?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>26141</bug_id>
          
          <creation_ts>2009-06-02 10:45:41 -0700</creation_ts>
          <short_desc>Implement onformchange and onforminput event handlers</short_desc>
          <delta_ts>2011-03-04 02:04:43 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55755</dependson>
          <blocked>19264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>amwebdk</cc>
    
    <cc>arv</cc>
    
    <cc>bugs</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmikurube</cc>
    
    <cc>eric</cc>
    
    <cc>michelangelo</cc>
    
    <cc>peter</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>124015</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-02 10:45:41 -0700</bug_when>
    <thetext>We should implement onformchange, onforminput, and oninvalid event handlers from HTML5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208268</commentid>
    <comment_count>1</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2010-04-03 02:56:35 -0700</bug_when>
    <thetext>oninvalid landed in r47649 (bug #27452). Updating bug details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298081</commentid>
    <comment_count>2</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-22 11:09:18 -0700</bug_when>
    <thetext>*** Bug 26551 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310737</commentid>
    <comment_count>3</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-18 00:46:42 -0800</bug_when>
    <thetext>I&apos;m working on this bug. formchange events look like working. But facing difficulties in handling forminput events. Could someone give me a few pointers?

Briefly, I cannot find exactly all sites to dispatch forminput events.

I found many sites dispatching input  and TextInput events where I need to also dispatch forminput events.

One option for them is to dispatch forminput events at all of sites dispatching input and TextInput events I found. But it looks not good since it looses maintainability and I can miss some sites.

Another option is to modify dispatchEvent() to catch all of input and TextInput events. But specializing for input events at dispatchEvent() looks not good.

For formchange events, I could focus on HTMLFormControlElement::dispatchFormControlChangeEvent() to find sites dispatching change events. 

I&apos;m wondering if you could tell me some appropriate methods to hook all sites dispatching input events accurately.


I attach the current patch. (It doesn&apos;t work for forminput events.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310738</commentid>
    <comment_count>4</comment_count>
      <attachid>74212</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-18 00:46:56 -0800</bug_when>
    <thetext>Created attachment 74212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310890</commentid>
    <comment_count>5</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-11-18 09:34:01 -0800</bug_when>
    <thetext>onformchange, onforminut and the dispatch methods are to be removed from HTML5 because they are not useful enough.

See http://www.w3.org/Bugs/Public/show_bug.cgi?id=11129

Sorry, for not updating this bug earlier.

Sam, since you opened this I&apos;ll let you make the call to close it or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310891</commentid>
    <comment_count>6</comment_count>
      <attachid>74212</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-11-18 09:34:31 -0800</bug_when>
    <thetext>Comment on attachment 74212
Patch

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

&gt; WebCore/html/HTMLFormElement.cpp:583
&gt; +    for (unsigned i = 0; i &lt; m_associatedElements.size(); ++i) {

These are not the right elements to dispatch to. Check the spec (it hasn&apos;t been removed yet).

&gt; WebCore/html/HTMLInputElement.cpp:1989
&gt;          dispatchEvent(Event::create(eventNames().inputEvent, true, false));

I think it would be cleaner to have a dispatchInputEvent that handled the forminput too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311260</commentid>
    <comment_count>7</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-11-18 20:02:04 -0800</bug_when>
    <thetext>Hi Erik,

Thanks for letting me know and your comments. Ok, I stop the work on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329031</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-04 09:54:05 -0800</bug_when>
    <thetext>forminput and formchange are now resolved to not be removed. This means that patches are welcome again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332878</commentid>
    <comment_count>9</comment_count>
      <attachid>78643</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-11 20:02:11 -0800</bug_when>
    <thetext>Created attachment 78643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332879</commentid>
    <comment_count>10</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-11 20:03:08 -0800</bug_when>
    <thetext>(In reply to comment #8)
Hi Erik,

Thank you for the information. I&apos;ve attached a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333173</commentid>
    <comment_count>11</comment_count>
      <attachid>78643</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-12 11:07:35 -0800</bug_when>
    <thetext>Comment on attachment 78643
Patch

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

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:3
&gt; +function sendKey(element, keyName) {

You should probably use eventSender here instead.

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:52
&gt; +shouldBe(&quot;result1.innerHTML&quot;, &apos;&quot;none&quot;&apos;);

You can use shouldBeEqualToString

&gt; Source/WebCore/html/HTMLElement.cpp:828
&gt; +    dispatchEvent(Event::create(eventNames().inputEvent, true, false));

Node::dispatchInputEvents();

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:181
&gt; +void HTMLFormControlElement::dispatchFormControlInputEvent()

Why is this needed? I think you can remove dispatchFormControlInputEvent and simply use dispatchInputEvents?

If you really don&apos;t want to do the extra work that HTMLElement::dispatchInputEvents does you could make HTMLFormControlElement override dispatchFormInputs

&gt; Source/WebCore/html/HTMLFormElement.cpp:595
&gt; +    for (unsigned i = 0; i &lt; m_associatedElements.size(); ++i) {

This should be the &quot;resettable elements&quot; and not the &quot;associated elements&quot;

http://dev.w3.org/html5/spec/Overview.html#broadcast-forminput-events
http://dev.w3.org/html5/spec/Overview.html#category-reset
http://dev.w3.org/html5/spec/Overview.html#form-associated-element

&gt; Source/WebCore/html/HTMLFormElement.cpp:607
&gt; +    for (unsigned i = 0; i &lt; m_associatedElements.size(); ++i) {

same here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333563</commentid>
    <comment_count>12</comment_count>
      <attachid>78643</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-12 23:24:30 -0800</bug_when>
    <thetext>Comment on attachment 78643
Patch

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

Please see HTMLFormElement::collectUnhandledInvalidControls() for how to fix the following dispatchEvent() issues.

&gt;&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:3
&gt;&gt; +function sendKey(element, keyName) {
&gt; 
&gt; You should probably use eventSender here instead.

I like avoiding eventSender in order to make the test workable on browsers.

&gt;&gt; Source/WebCore/html/HTMLElement.cpp:828
&gt;&gt; +    dispatchEvent(Event::create(eventNames().inputEvent, true, false));
&gt; 
&gt; Node::dispatchInputEvents();

Because dispatchEvent() may call JavaScript event handlers, &quot;this&quot; object can be deleted in the event handlers.

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:183
&gt; +    dispatchEvent(Event::create(eventNames().inputEvent, true, false));

ditto.
&quot;this&quot; might be deleted in dispatchEvent().  We can&apos;t call any methods of this.

&gt; Source/WebCore/html/HTMLFormElement.cpp:600
&gt; +        if (!formElement-&gt;dispatchEvent(Event::create(eventNames().forminputEvent, false, false)))

ditto.
dispatchEvent() calls JavaScript code.  &quot;this&quot; can be deleted and m_associatedElements can be updated.

&gt; Source/WebCore/html/HTMLFormElement.cpp:612
&gt; +        if (!formElement-&gt;dispatchEvent(Event::create(eventNames().formchangeEvent, false, false)))

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334140</commentid>
    <comment_count>13</comment_count>
      <attachid>78643</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-13 23:57:42 -0800</bug_when>
    <thetext>Comment on attachment 78643
Patch

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

&gt;&gt;&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:3
&gt;&gt;&gt; +function sendKey(element, keyName) {
&gt;&gt; 
&gt;&gt; You should probably use eventSender here instead.
&gt; 
&gt; I like avoiding eventSender in order to make the test workable on browsers.

I decided to use these methods for the reason which Kent-san said. (FYI: I&apos;m using eventSender in forminput-event.js to fire input events.)

&gt;&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:52
&gt;&gt; +shouldBe(&quot;result1.innerHTML&quot;, &apos;&quot;none&quot;&apos;);
&gt; 
&gt; You can use shouldBeEqualToString

Thanks. Replaced to shouldBeEqualToString.

&gt;&gt;&gt; Source/WebCore/html/HTMLElement.cpp:828

&gt;&gt; 
&gt;&gt; Node::dispatchInputEvents();
&gt; 
&gt; Because dispatchEvent() may call JavaScript event handlers, &quot;this&quot; object can be deleted in the event handlers.

Erik&gt; Replaced to Node::dispatchInputEvents();
Kent-san&gt; Modified it by reference to HTMLFormElement::collectUnhandledInvalidControls().

&gt;&gt; Source/WebCore/html/HTMLFormControlElement.cpp:181

&gt; 
&gt; Why is this needed? I think you can remove dispatchFormControlInputEvent and simply use dispatchInputEvents?
&gt; 
&gt; If you really don&apos;t want to do the extra work that HTMLElement::dispatchInputEvents does you could make HTMLFormControlElement override dispatchFormInputs

Changed HTMLFormControlElement::dispatchFormControlInputEvent() just to call HTMLElement::dispatchChangeEvents().

However dispatchFormControlInputEvent() cannot be removed since dispatchInputEvent() and dispatchFormControlInputEvent have difference behaviors in case of non-HTML elements. dispatchInputEvent() fires an &quot;input&quot; event, and dispatchFormControlInputEvent() fires nothing for non-HTML elements.

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:595

&gt; 
&gt; This should be the &quot;resettable elements&quot; and not the &quot;associated elements&quot;
&gt; 
&gt; http://dev.w3.org/html5/spec/Overview.html#broadcast-forminput-events
&gt; http://dev.w3.org/html5/spec/Overview.html#category-reset
&gt; http://dev.w3.org/html5/spec/Overview.html#form-associated-element

Introduced isResettable() into FormAssociatedElement, and checked with it.

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:600
&gt;&gt; +        if (!formElement-&gt;dispatchEvent(Event::create(eventNames().forminputEvent, false, false)))
&gt; 
&gt; ditto.
&gt; dispatchEvent() calls JavaScript code.  &quot;this&quot; can be deleted and m_associatedElements can be updated.

Modified it by reference to HTMLFormElement::collectUnhandledInvalidControls().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334198</commentid>
    <comment_count>14</comment_count>
      <attachid>78913</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-14 02:02:43 -0800</bug_when>
    <thetext>Created attachment 78913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335594</commentid>
    <comment_count>15</comment_count>
      <attachid>78913</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-17 17:25:48 -0800</bug_when>
    <thetext>Comment on attachment 78913
Patch

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

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:25
&gt; +var results = document.createElement(&apos;ul&apos;);
&gt; +document.body.appendChild(results);
&gt; +var result1 = document.createElement(&apos;li&apos;);
&gt; +result1.setAttribute(&apos;id&apos;, &apos;result1&apos;);
&gt; +results.appendChild(result1);
&gt; +var result2 = document.createElement(&apos;li&apos;);
&gt; +result2.setAttribute(&apos;id&apos;, &apos;result2&apos;);
&gt; +results.appendChild(result2);
&gt; +var result3 = document.createElement(&apos;li&apos;);
&gt; +result3.setAttribute(&apos;id&apos;, &apos;result3&apos;);
&gt; +results.appendChild(result3);

I don&apos;t think we need to use a DOM tree to represent these results.
Three global variables, or one object with three properties should be enough.

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:29
&gt; +form.innerHTML = &quot;&lt;ul&gt;&lt;li id=&apos;li1&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li2&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li3&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li4&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li5&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li6&apos;&gt;&lt;/li&gt;&lt;li id=&apos;li7&apos;&gt;&lt;/li&gt;&lt;/ul&gt;&quot;;

Do we need these &lt;li&gt; elements?  Why don&apos;t you build these and the following input element by just one .innerHTML?

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:33
&gt; +document.getElementById(&apos;li1&apos;).innerHTML = &apos;&lt;input type=&quot;number&quot; id=&quot;input1&quot; value=&quot;28&quot; onformchange=&quot;document.getElementById(\&apos;result1\&apos;).innerText=\&apos;foo\&apos;&quot; /&gt;&apos;;
&gt; +document.getElementById(&apos;li2&apos;).innerHTML = &apos;&lt;input type=&quot;number&quot; id=&quot;input2&quot; value=&quot;12&quot; /&gt;&apos;;
&gt; +document.getElementById(&apos;li3&apos;).innerHTML = &apos;&lt;input type=&quot;text&quot; id=&quot;input3&quot; value=&quot;some&quot; onformchange=&quot;document.getElementById(\&apos;result3\&apos;).innerText=\&apos;bar\&apos;&quot; /&gt;&apos;;

Please set meaningful strings instead of &quot;foo&quot; &quot;bar&quot;.
For example, innerText = &apos;input1-formchange-called&apos;.

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:44
&gt; +var input52 = document.getElementById(&apos;input52&apos;);

nit: If you call document.getElmentById() many times, you may define a function like
function $(id) { return document.getElementById(id); }
It helps to make the code cleaner.

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:168
&gt; +var successfullyParsed = true;

We need more tests:
 - Remove an associated element in an event handler
 - Remove the form element from the DOM tree in an event handler

&gt; LayoutTests/fast/forms/script-tests/forminput-event.js:1
&gt; +description(&apos;Test for forminput events.&apos;);

Same comments as formchange-event.js

&gt; Source/WebCore/html/HTMLElement.cpp:879
&gt; +    RefPtr&lt;HTMLFormElement&gt; ownerForm;
&gt; +    Node* ancestorNode = shadowAncestorNode();
&gt; +    if (ancestorNode) {
&gt; +        if (!ancestorNode-&gt;isHTMLElement())
&gt; +            return;
&gt; +        HTMLElement* ancestorHTML = static_cast&lt;HTMLElement*&gt;(ancestorNode);
&gt; +        if (!ancestorHTML)
&gt; +            return;
&gt; +        ownerForm = ancestorHTML-&gt;form();
&gt; +    } else
&gt; +        ownerForm = form();

This part is identical to dispatchChangeEvents().  We had better introduce a new function for the common part.

&gt; Source/WebCore/html/HTMLFormElement.cpp:604
&gt; +        RefPtr&lt;FormAssociatedElement&gt; formAssociatedElement = elements[i];

We don&apos;t need to use RefPtr&lt;&gt; and a raw pointer is enough because elements[i] holds a reference count.

&gt; Source/WebCore/html/HTMLFormElement.cpp:607
&gt; +        RefPtr&lt;HTMLFormControlElement&gt; formElement = static_pointer_cast&lt;HTMLFormControlElement&gt;(formAssociatedElement);

ditto.  RefPtr&lt;&gt; is not needed.

&gt; Source/WebCore/html/HTMLFormElement.cpp:628
&gt; +        if (!formElement-&gt;dispatchEvent(Event::create(eventNames().formchangeEvent, false, false)))

The difference from dispatchFormInput() is only the event name.  We had better have a new function like broadcastFormEvent(const AtomicString&amp; eventName).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335598</commentid>
    <comment_count>16</comment_count>
      <attachid>78913</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-17 17:30:47 -0800</bug_when>
    <thetext>Comment on attachment 78913
Patch

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

&gt;&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:168
&gt;&gt; +var successfullyParsed = true;
&gt; 
&gt; We need more tests:
&gt;  - Remove an associated element in an event handler
&gt;  - Remove the form element from the DOM tree in an event handler

Also, we should have tests for &lt;keygen&gt;, &lt;object&gt;, &lt;output&gt;, &lt;select&gt;, and &lt;textarea&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335753</commentid>
    <comment_count>17</comment_count>
      <attachid>79261</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 04:34:07 -0800</bug_when>
    <thetext>Created attachment 79261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335758</commentid>
    <comment_count>18</comment_count>
      <attachid>78913</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 04:36:40 -0800</bug_when>
    <thetext>Comment on attachment 78913
Patch

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

Changed two tests (formchange-event and forminput-event) totally.

&gt;&gt; Source/WebCore/html/HTMLElement.cpp:879
&gt;&gt; +        ownerForm = form();
&gt; 
&gt; This part is identical to dispatchChangeEvents().  We had better introduce a new function for the common part.

Done. Thanks.

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:604
&gt;&gt; +        RefPtr&lt;FormAssociatedElement&gt; formAssociatedElement = elements[i];
&gt; 
&gt; We don&apos;t need to use RefPtr&lt;&gt; and a raw pointer is enough because elements[i] holds a reference count.

Stopped to use RefPtr here. Thank you.

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:628
&gt;&gt; +        if (!formElement-&gt;dispatchEvent(Event::create(eventNames().formchangeEvent, false, false)))
&gt; 
&gt; The difference from dispatchFormInput() is only the event name.  We had better have a new function like broadcastFormEvent(const AtomicString&amp; eventName).

Created a new function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336020</commentid>
    <comment_count>19</comment_count>
      <attachid>79261</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-18 12:53:17 -0800</bug_when>
    <thetext>Comment on attachment 79261
Patch

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

&gt; Source/WebCore/html/HTMLFormElement.cpp:598
&gt; +    Vector&lt;RefPtr&lt;FormAssociatedElement&gt; &gt; elements;

Would it make sense to add an accessor for Resettable Elements?

I think these collections come up a lot in forms handling and I think it would be better to expose these better.

http://www.w3.org/TR/html5/forms.html#categories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336202</commentid>
    <comment_count>20</comment_count>
      <attachid>79261</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-18 16:39:04 -0800</bug_when>
    <thetext>Comment on attachment 79261
Patch

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

There are minor comments.

&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:64
&gt; +    result_removing_input = &apos;Delivered&apos;;

We don&apos;t use &apos;_&apos; for variable names even in JavaScript.  it should be resultRemovingInput.

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:598
&gt;&gt; +    Vector&lt;RefPtr&lt;FormAssociatedElement&gt; &gt; elements;
&gt; 
&gt; Would it make sense to add an accessor for Resettable Elements?
&gt; 
&gt; I think these collections come up a lot in forms handling and I think it would be better to expose these better.
&gt; 
&gt; http://www.w3.org/TR/html5/forms.html#categories

I don&apos;t think the resettable element collection is needed by other classes.

&gt; Source/WebCore/html/HTMLFormElement.cpp:601
&gt; +    for (unsigned i = 0; i &lt; m_associatedElements.size(); ++i)
&gt; +        elements.append(m_associatedElements[i]);

We can avoid to append non-resettable elements by checking isResettable() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336224</commentid>
    <comment_count>21</comment_count>
      <attachid>79358</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 17:09:23 -0800</bug_when>
    <thetext>Created attachment 79358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336228</commentid>
    <comment_count>22</comment_count>
      <attachid>79261</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 17:14:47 -0800</bug_when>
    <thetext>Comment on attachment 79261
Patch

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

&gt;&gt; LayoutTests/fast/forms/script-tests/formchange-event.js:64
&gt;&gt; +    result_removing_input = &apos;Delivered&apos;;
&gt; 
&gt; We don&apos;t use &apos;_&apos; for variable names even in JavaScript.  it should be resultRemovingInput.

Thank you. Done.

&gt;&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:598
&gt;&gt;&gt; +    Vector&lt;RefPtr&lt;FormAssociatedElement&gt; &gt; elements;
&gt;&gt; 
&gt;&gt; Would it make sense to add an accessor for Resettable Elements?
&gt;&gt; 
&gt;&gt; I think these collections come up a lot in forms handling and I think it would be better to expose these better.
&gt;&gt; 
&gt;&gt; http://www.w3.org/TR/html5/forms.html#categories
&gt; 
&gt; I don&apos;t think the resettable element collection is needed by other classes.

Erik :
Thank you for the comments.
Does it mean the current handling may be slow for a lot of elements in forms? Or another way to expose resettable properties would be better  for other purpose?

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:601
&gt;&gt; +        elements.append(m_associatedElements[i]);
&gt; 
&gt; We can avoid to append non-resettable elements by checking isResettable() here.

Kent-san:
Thanks. Moved the checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336242</commentid>
    <comment_count>23</comment_count>
      <attachid>79358</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-18 17:27:24 -0800</bug_when>
    <thetext>Comment on attachment 79358
Patch

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

&gt; Source/WebCore/html/HTMLFormElement.cpp:601
&gt; +        if (!m_associatedElements[i]-&gt;isFormControlElement() || !m_associatedElements[i]-&gt;isResettable())

You shouldn&apos;t check isFormControlElement() here.  We might have resettable non-HTMLFormControlElement classes in the future.

&gt; Source/WebCore/html/HTMLFormElement.cpp:607
&gt; +        HTMLFormControlElement* formElement = static_cast&lt;HTMLFormControlElement*&gt;(elements[i].get());

Yes, we can cast elements[i] to HTMLFormControlElement unconditionally because a resettable control is always HTMLFormControlElement for now.  But please add ASSERT(elements[i]-&gt;isFormControlElement()) before this line and add a comment about a reason why we don&apos;t need to handle non-HTMLFormControlElement case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336256</commentid>
    <comment_count>24</comment_count>
      <attachid>79371</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 17:50:03 -0800</bug_when>
    <thetext>Created attachment 79371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336341</commentid>
    <comment_count>25</comment_count>
      <attachid>79371</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-18 22:27:45 -0800</bug_when>
    <thetext>Comment on attachment 79371
Patch

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

&gt; Source/WebCore/html/HTMLFormElement.cpp:607
&gt; +        // We can assume a resettable control is always a HTMLFormControlElement as of Jan 19, 2011.

A comment with a date looks very strange.  Please remove &quot;as of Jan 19, 2011&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336342</commentid>
    <comment_count>26</comment_count>
      <attachid>79389</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 22:30:32 -0800</bug_when>
    <thetext>Created attachment 79389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336344</commentid>
    <comment_count>27</comment_count>
      <attachid>79371</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 22:31:00 -0800</bug_when>
    <thetext>Comment on attachment 79371
Patch

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

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:607
&gt;&gt; +        // We can assume a resettable control is always a HTMLFormControlElement as of Jan 19, 2011.
&gt; 
&gt; A comment with a date looks very strange.  Please remove &quot;as of Jan 19, 2011&quot;.

Ok, removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336348</commentid>
    <comment_count>28</comment_count>
      <attachid>79389</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-18 22:39:03 -0800</bug_when>
    <thetext>Comment on attachment 79389
Patch

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336349</commentid>
    <comment_count>29</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-18 22:40:06 -0800</bug_when>
    <thetext>(In reply to comment #28)
Kent-san, thank you for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336432</commentid>
    <comment_count>30</comment_count>
      <attachid>79389</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-19 04:56:36 -0800</bug_when>
    <thetext>Comment on attachment 79389
Patch

Clearing flags on attachment: 79389

Committed r76115: &lt;http://trac.webkit.org/changeset/76115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336433</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-19 04:56:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336464</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-19 06:09:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76115 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/Window/window-properties.html
fast/dom/Window/window-property-descriptors.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336725</commentid>
    <comment_count>33</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2011-01-19 12:47:50 -0800</bug_when>
    <thetext>Anyone else seeing fast/forms/forminput-event.html crash on TOT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336726</commentid>
    <comment_count>34</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2011-01-19 12:48:50 -0800</bug_when>
    <thetext>This is the stderr output:

ASSERTION FAILED: this
(/OpenSource/Source/WebCore/dom/Node.h:348 WebCore::Document* WebCore::Node::document() const)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337011</commentid>
    <comment_count>35</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-19 18:12:24 -0800</bug_when>
    <thetext>(In reply to comment #34)
Hi Adele,
Thank you for the information.
Umm, the current HEAD (pulled) passed the tests in my environment (Mac, Snow Leopard)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337063</commentid>
    <comment_count>36</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2011-01-19 19:27:32 -0800</bug_when>
    <thetext>(In reply to comment #32)
Checked the following tests in QtLinux WebKit,
&gt; fast/dom/Window/window-properties.html
&gt; fast/dom/Window/window-property-descriptors.html

I found the error points were not from this patch.

The errors were

for fast/dom/Window/window-properties.html:
- 2301  window.onorientationchange [null]
- 2335  window.orientation [number]

for fast/dom/Window/window-property-descriptors.html:
- 44  PASS typeof Object.getOwnPropertyDescriptor(window, &apos;DeviceMotionEvent&apos;) is &apos;object&apos;
- 45  PASS typeof Object.getOwnPropertyDescriptor(window, &apos;DeviceOrientationEvent&apos;) is &apos;object&apos;
- 371  PASS typeof Object.getOwnPropertyDescriptor(window, &apos;ondevicemotion&apos;) is &apos;object&apos;
- 405  PASS typeof Object.getOwnPropertyDescriptor(window, &apos;onorientationchange&apos;) is &apos;object&apos;
- 437  PASS typeof Object.getOwnPropertyDescriptor(window, &apos;orientation&apos;) is &apos;object&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337762</commentid>
    <comment_count>37</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-20 17:42:30 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Anyone else seeing fast/forms/forminput-event.html crash on TOT?

(In reply to comment #34)
&gt; This is the stderr output:
&gt; 
&gt; ASSERTION FAILED: this
&gt; (/OpenSource/Source/WebCore/dom/Node.h:348 WebCore::Document* WebCore::Node::document() const)

Adele, I couldn&apos;t reproduce this assertion failure with r76315 Debug on Snow Leopard.
I tried &quot;run-webkit-tests --debug fast/forms/&quot; and &quot;run-webkit-tests --debug fast/forms/forminput-event.html&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339126</commentid>
    <comment_count>38</comment_count>
    <who name="Olli Pettay (:smaug)">bugs</who>
    <bug_when>2011-01-24 11:31:41 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; forminput and formchange are now resolved to not be removed. This means that patches are welcome again.

Just FYI,
the bug to remove forminput and formchange has been re-opened
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11129</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340789</commentid>
    <comment_count>39</comment_count>
    <who name="Olli Pettay (:smaug)">bugs</who>
    <bug_when>2011-01-27 02:08:40 -0800</bug_when>
    <thetext>Since the code was just committed to webkit, would you be willing
to back it out if forminput/change will be removed from HTML?

So far I haven&apos;t seen *any* real use cases for forminput/change
which couldn&apos;t be trivially achieved using just the old
input/change events.

We shouldn&apos;t be polluting web platform with rather useless features.

(If someone comes up with a good and reasonable use case for these events, 
 I would change my mind immediately.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74212</attachid>
            <date>2010-11-18 00:46:56 -0800</date>
            <delta_ts>2011-01-11 20:01:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20101118174654.patch</filename>
            <type>text/plain</type>
            <size>35375</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjg1NTI5Mjk2YzJjNDk5MmRiMmRlZDAzOWU1NjU3OTE5YTk0NTZmLi5iYzk0NzZh
MTEwZTE5NzlhZmQwMjFmYmQ4YWY5ZDMyNWQyOWJjYzEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMTEtMTggIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgIChEZXNjcmlw
dGlvbnMgdG8gYmUgYWRkZWQuKQorCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtY2hhbmdl
LWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZl
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWNo
YW5nZS1ldmVudC5qczogQWRkZWQuCisgICAgICAgIChzZW5kS2V5KToKKyAgICAgICAgKHNlbmRU
ZXh0KToKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQu
anM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAgIChzZW5kVGV4dCk6CisKIDIw
MTAtMTEtMTUgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNo
YW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFu
Z2UtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYmI5ZDM3ODg0YzQwMGRhOGFmMjZk
YTZkMjRhYTlmNzc0ODU1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2Zvcm1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3Qg
Zm9yIGZvcm1jaGFuZ2UgZXZlbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TnVtYmVyIHR5cGUgd2l0aCBvbmZvcm1jaGFuZ2UKK0JlZm9yZSBzdGVwVXAKK1BBU1MgcmVzdWx0
MS5pbm5lckhUTUwgaXMgIm5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQ
QVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJudWxsIgorQWZ0ZXIgc3RlcFVwCitQQVNTIHJlc3Vs
dDEuaW5uZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQ
QVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK051bWJlciB0eXBlIHdpdGhvdXQgb25m
b3JtY2hhbmdlCitCZWZvcmUgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJub25l
LWFnYWluIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlu
bmVySFRNTCBpcyAibnVsbC1hZ2FpbiIKK0FmdGVyIHN0ZXBVcAorUEFTUyByZXN1bHQxLmlubmVy
SFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1
bHQzLmlubmVySFRNTCBpcyAiYmFyIgorCitUZXh0IHR5cGUgd2l0aCBvbmZvcm1jaGFuZ2UKK0Jl
Zm9yZSBpbnB1dCBhIHRleHQKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgInN0aWxsLW5vbmUi
CitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1M
IGlzICJzdGlsbC1udWxsIgorQWZ0ZXIgc2VuZGluZyBhIHRleHQKK1BBU1MgcmVzdWx0MS5pbm5l
ckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVz
dWx0My5pbm5lckhUTUwgaXMgImJhciIKKworVGV4dGFyZWEKK0JlZm9yZSBpbnB1dCBhIHRleHQK
K1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImJvcmluZy1ub25lIgorUEFTUyByZXN1bHQyLmlu
bmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAiYm9yaW5nLW51bGwi
CitBZnRlciBzZW5kaW5nIGEgdGV4dAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiZm9vIgor
UEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBp
cyAiYmFyIgorCitSYWRpbyBidXR0b24KK0JlZm9yZSBjaGVja2luZworUEFTUyByZXN1bHQxLmlu
bmVySFRNTCBpcyAic3RpY2t5LW5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwi
CitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJzdGlja3ktbnVsbCIKK0FmdGVyIGNoZWNraW5n
CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1M
IGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK0NoZWNrYm94CitC
ZWZvcmUgY2hlY2tpbmcKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImludHJlcGlkLW5vbmUi
CitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1M
IGlzICJpbnRyZXBpZC1udWxsIgorQWZ0ZXIgY2hlY2tpbmcKK1BBU1MgcmVzdWx0MS5pbm5lckhU
TUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0
My5pbm5lckhUTUwgaXMgImJhciIKKworZm9ybS5kaXNwYXRjaEZvcm1DaGFuZ2UoKQorQmVmb3Jl
IGRpc3BhdGNoCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJuZXZlci1naXZlLXVwLW5vbmUi
CitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1M
IGlzICJuZXZlci1naXZlLXVwLW51bGwiCitBZnRlciBkaXNwYXRjaAorUEFTUyByZXN1bHQxLmlu
bmVySFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyBy
ZXN1bHQzLmlubmVySFRNTCBpcyAiYmFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdl
LWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI2YmJhYzA4ZDkyZmYyZjU2OWM5MmU1OGMxMzJhMDE2
YTdhYWIzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNo
YW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZm9ybWNoYW5nZS1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlu
cHV0LWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0
LWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTdiMGY3NTMzZjE3NDE4MjZhM2ExNmM1
ODNmZDFjMThmYjJhYTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtaW5wdXQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QgZm9y
IGZvcm1pbnB1dCBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitOdW1i
ZXIgdHlwZSB3aXRoIG9uZm9ybWlucHV0CitCZWZvcmUgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5u
ZXJIVE1MIGlzICJub25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyBy
ZXN1bHQzLmlubmVySFRNTCBpcyAibnVsbCIKK0FmdGVyIHN0ZXBVcAorUEFTUyByZXN1bHQxLmlu
bmVySFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyBy
ZXN1bHQzLmlubmVySFRNTCBpcyAiYmFyIgorCitOdW1iZXIgdHlwZSB3aXRob3V0IG9uZm9ybWlu
cHV0CitCZWZvcmUgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJub25lLWFnYWlu
IgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRN
TCBpcyAibnVsbC1hZ2FpbiIKK0FmdGVyIHN0ZXBVcAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBp
cyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlu
bmVySFRNTCBpcyAiYmFyIgorCitUZXh0IHR5cGUgd2l0aCBvbmZvcm1pbnB1dAorQmVmb3JlIGlu
cHV0IGEgdGV4dAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAic3RpbGwtbm9uZSIKK1BBU1Mg
cmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgInN0
aWxsLW51bGwiCitBZnRlciBzZW5kaW5nIGEgdGV4dAorRkFJTCByZXN1bHQxLmlubmVySFRNTCBz
aG91bGQgYmUgZm9vLiBXYXMgc3RpbGwtbm9uZS4KK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMg
Im5pbCIKK0ZBSUwgcmVzdWx0My5pbm5lckhUTUwgc2hvdWxkIGJlIGJhci4gV2FzIHN0aWxsLW51
bGwuCisKK1RleHRhcmVhCitCZWZvcmUgaW5wdXQgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJI
VE1MIGlzICJib3Jpbmctbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BB
U1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJvcmluZy1udWxsIgorQWZ0ZXIgc2VuZGluZyBhIHRl
eHQKK0ZBSUwgcmVzdWx0MS5pbm5lckhUTUwgc2hvdWxkIGJlIGZvby4gV2FzIGJvcmluZy1ub25l
LgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorRkFJTCByZXN1bHQzLmlubmVySFRN
TCBzaG91bGQgYmUgYmFyLiBXYXMgYm9yaW5nLW51bGwuCisKK1JhZGlvIGJ1dHRvbgorQmVmb3Jl
IGNoZWNraW5nCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJzdGlja3ktbm9uZSIKK1BBU1Mg
cmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgInN0
aWNreS1udWxsIgorQWZ0ZXIgY2hlY2tpbmcKK0ZBSUwgcmVzdWx0MS5pbm5lckhUTUwgc2hvdWxk
IGJlIGZvby4gV2FzIHN0aWNreS1ub25lLgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmls
IgorRkFJTCByZXN1bHQzLmlubmVySFRNTCBzaG91bGQgYmUgYmFyLiBXYXMgc3RpY2t5LW51bGwu
CisKK0NoZWNrYm94CitCZWZvcmUgY2hlY2tpbmcKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMg
ImludHJlcGlkLW5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJl
c3VsdDMuaW5uZXJIVE1MIGlzICJpbnRyZXBpZC1udWxsIgorQWZ0ZXIgY2hlY2tpbmcKK0ZBSUwg
cmVzdWx0MS5pbm5lckhUTUwgc2hvdWxkIGJlIGZvby4gV2FzIGludHJlcGlkLW5vbmUuCitQQVNT
IHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitGQUlMIHJlc3VsdDMuaW5uZXJIVE1MIHNob3Vs
ZCBiZSBiYXIuIFdhcyBpbnRyZXBpZC1udWxsLgorCitmb3JtLmRpc3BhdGNoRm9ybUNoYW5nZSgp
CitCZWZvcmUgZGlzcGF0Y2gKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgIm5ldmVyLWdpdmUt
dXAtbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5p
bm5lckhUTUwgaXMgIm5ldmVyLWdpdmUtdXAtbnVsbCIKK0FmdGVyIGRpc3BhdGNoCitGQUlMIHJl
c3VsdDEuaW5uZXJIVE1MIHNob3VsZCBiZSBmb28uIFdhcyBuZXZlci1naXZlLXVwLW5vbmUuCitQ
QVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitGQUlMIHJlc3VsdDMuaW5uZXJIVE1MIHNo
b3VsZCBiZSBiYXIuIFdhcyBuZXZlci1naXZlLXVwLW51bGwuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Zm9ybWlucHV0LWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI3YTkyMDIwMjdlMTAzYjZiODU0MjIz
ZjViNGFjZmQ3YmEzZDczOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybWlucHV0LWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvZm9ybWNoYW5nZS1ldmVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTQzZmQ2MWE3
MDk4NWI4ZWU0ZjIyYWE3NTYzYTUxMjYzNTdiMGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWNoYW5nZS1ldmVudC5qcwpAQCAtMCww
ICsxLDE2MiBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGZvcm1jaGFuZ2UgZXZlbnRzLicpOwor
CitmdW5jdGlvbiBzZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2YXIgZXZlbnQgPSBk
b2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2ZW50LmluaXRLZXli
b2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIGtl
eU5hbWUpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK2Z1bmN0aW9u
IHNlbmRUZXh0KGVsZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVh
dGVFdmVudCgnVGV4dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVudCgndGV4dElucHV0
JywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOworICAgIGVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK3ZhciByZXN1bHRzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndWwnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdWx0cyk7Cit2YXIg
cmVzdWx0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CityZXN1bHQxLnNldEF0dHJp
YnV0ZSgnaWQnLCAncmVzdWx0MScpOworcmVzdWx0cy5hcHBlbmRDaGlsZChyZXN1bHQxKTsKK3Zh
ciByZXN1bHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK3Jlc3VsdDIuc2V0QXR0
cmlidXRlKCdpZCcsICdyZXN1bHQyJyk7CityZXN1bHRzLmFwcGVuZENoaWxkKHJlc3VsdDIpOwor
dmFyIHJlc3VsdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworcmVzdWx0My5zZXRB
dHRyaWJ1dGUoJ2lkJywgJ3Jlc3VsdDMnKTsKK3Jlc3VsdHMuYXBwZW5kQ2hpbGQocmVzdWx0Myk7
CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9ybS5zZXRB
dHRyaWJ1dGUoJ2lkJywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0gIjx1bD48bGkgaWQ9J2xp
MSc+PC9saT48bGkgaWQ9J2xpMic+PC9saT48bGkgaWQ9J2xpMyc+PC9saT48bGkgaWQ9J2xpNCc+
PC9saT48bGkgaWQ9J2xpNSc+PC9saT48bGkgaWQ9J2xpNic+PC9saT48bGkgaWQ9J2xpNyc+PC9s
aT48L3VsPiI7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xpMScpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0i
aW5wdXQxIiB2YWx1ZT0iMjgiIG9uZm9ybWNoYW5nZT0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
XCdyZXN1bHQxXCcpLmlubmVyVGV4dD1cJ2Zvb1wnIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbGkyJykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnB1dDIi
IHZhbHVlPSIxMiIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpMycpLmlubmVySFRN
TCA9ICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0MyIgdmFsdWU9InNvbWUiIG9uZm9ybWNo
YW5nZT0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdyZXN1bHQzXCcpLmlubmVyVGV4dD1cJ2Jh
clwnIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk0JykuaW5uZXJIVE1MID0gJzx0
ZXh0YXJlYSBpZD0iaW5wdXQ0IiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk1Jyku
aW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1
MSIgdmFsdWU9IjEiIGNoZWNrZWQvPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBp
ZD0iaW5wdXQ1MiIgdmFsdWU9IjIiIC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTYn
KS5pbm5lckhUTUwgPSAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJp
bnB1dDYxIiB2YWx1ZT0iMSIgY2hlY2tlZC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJp
bnB1dDYiIGlkPSJpbnB1dDYyIiB2YWx1ZT0iMiIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xpNycpLmlubmVySFRNTCA9ICc8cCBpZD0iZHVtbXl0ZXh0IiBvbmZvcm1jaGFuZ2U9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MlwnKS5pbm5lckhUTUw9XCdiYXpcJyI+SGkh
PC9wPic7CisKK3ZhciBpbnB1dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQxJyk7
Cit2YXIgaW5wdXQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MicpOwordmFyIGlu
cHV0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDMnKTsKK3ZhciBpbnB1dDQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQ0Jyk7Cit2YXIgaW5wdXQ1MSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpbnB1dDUxJyk7Cit2YXIgaW5wdXQ1MiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbnB1dDUyJyk7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gIm5vbmUiOworcmVz
dWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gIm51bGwiOworCitk
ZWJ1ZygnTnVtYmVyIHR5cGUgd2l0aCBvbmZvcm1jaGFuZ2UnKTsKK2RlYnVnKCdCZWZvcmUgc3Rl
cFVwJyk7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnIm5vbmUiJyk7CitzaG91bGRC
ZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVy
SFRNTCIsICcibnVsbCInKTsKK2lucHV0MS5mb2N1cygpOworc2VuZEtleShpbnB1dDEsICdVcCcp
OworaW5wdXQyLmZvY3VzKCk7CitkZWJ1ZygnQWZ0ZXIgc3RlcFVwJyk7CitzaG91bGRCZSgicmVz
dWx0MS5pbm5lckhUTUwiLCAnImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIs
ICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7CisKK3Jl
c3VsdDEuaW5uZXJIVE1MID0gIm5vbmUtYWdhaW4iOworcmVzdWx0My5pbm5lckhUTUwgPSAibnVs
bC1hZ2FpbiI7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdOdW1iZXIgdHlwZSB3aXRob3V0IG9uZm9y
bWNoYW5nZScpOworZGVidWcoJ0JlZm9yZSBzdGVwVXAnKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlu
bmVySFRNTCIsICcibm9uZS1hZ2FpbiInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIs
ICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJudWxsLWFnYWluIicp
OworaW5wdXQyLmZvY3VzKCk7CitzZW5kS2V5KGlucHV0MiwgJ1VwJyk7CitpbnB1dDEuZm9jdXMo
KTsKK2RlYnVnKCdBZnRlciBzdGVwVXAnKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIs
ICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91
bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworcmVzdWx0MS5pbm5lckhUTUwg
PSAic3RpbGwtbm9uZSI7CityZXN1bHQzLmlubmVySFRNTCA9ICJzdGlsbC1udWxsIjsKKworZGVi
dWcoJycpOworZGVidWcoJ1RleHQgdHlwZSB3aXRoIG9uZm9ybWNoYW5nZScpOworZGVidWcoIkJl
Zm9yZSBpbnB1dCBhIHRleHQiKQorc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJzdGls
bC1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91
bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnInN0aWxsLW51bGwiJyk7CitpbnB1dDMuZm9jdXMo
KTsKK3NlbmRUZXh0KGlucHV0MywgJ25ldycpOworaW5wdXQxLmZvY3VzKCk7CitkZWJ1ZygiQWZ0
ZXIgc2VuZGluZyBhIHRleHQiKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9v
IicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgi
cmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAiYm9y
aW5nLW5vbmUiOworcmVzdWx0My5pbm5lckhUTUwgPSAiYm9yaW5nLW51bGwiOworCitkZWJ1Zygn
Jyk7CitkZWJ1ZygnVGV4dGFyZWEnKTsKK2RlYnVnKCJCZWZvcmUgaW5wdXQgYSB0ZXh0IikKK3No
b3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciYm9yaW5nLW5vbmUiJyk7CitzaG91bGRCZSgi
cmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRN
TCIsICciYm9yaW5nLW51bGwiJyk7CitpbnB1dDQuZm9jdXMoKTsKK3NlbmRUZXh0KGlucHV0NCwg
J0hhcHB5IScpOworaW5wdXQxLmZvY3VzKCk7CitkZWJ1ZygiQWZ0ZXIgc2VuZGluZyBhIHRleHQi
KTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJl
c3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwi
LCAnImJhciInKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAic3RpY2t5LW5vbmUiOworcmVzdWx0
My5pbm5lckhUTUwgPSAic3RpY2t5LW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnUmFkaW8g
YnV0dG9uJyk7CitkZWJ1ZygiQmVmb3JlIGNoZWNraW5nIikKK3Nob3VsZEJlKCJyZXN1bHQxLmlu
bmVySFRNTCIsICcic3RpY2t5LW5vbmUiJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwi
LCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIsICcic3RpY2t5LW51bGwi
Jyk7CitpbnB1dDUyLmNsaWNrKCk7CitkZWJ1ZygiQWZ0ZXIgY2hlY2tpbmciKTsKK3Nob3VsZEJl
KCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJI
VE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsK
KworcmVzdWx0MS5pbm5lckhUTUwgPSAiaW50cmVwaWQtbm9uZSI7CityZXN1bHQzLmlubmVySFRN
TCA9ICJpbnRyZXBpZC1udWxsIjsKKworZGVidWcoJycpOworZGVidWcoJ0NoZWNrYm94Jyk7Citk
ZWJ1ZygiQmVmb3JlIGNoZWNraW5nIikKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICci
aW50cmVwaWQtbm9uZSInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicp
Oworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJpbnRyZXBpZC1udWxsIicpOworaW5w
dXQ2Mi5jbGljaygpOworZGVidWcoIkFmdGVyIGNoZWNraW5nIik7CitzaG91bGRCZSgicmVzdWx0
MS5pbm5lckhUTUwiLCAnImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICci
bmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7CisKK3Jlc3Vs
dDEuaW5uZXJIVE1MID0gIm5ldmVyLWdpdmUtdXAtbm9uZSI7CityZXN1bHQzLmlubmVySFRNTCA9
ICJuZXZlci1naXZlLXVwLW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnZm9ybS5kaXNwYXRj
aEZvcm1DaGFuZ2UoKScpOworZGVidWcoJ0JlZm9yZSBkaXNwYXRjaCcpOworc2hvdWxkQmUoInJl
c3VsdDEuaW5uZXJIVE1MIiwgJyJuZXZlci1naXZlLXVwLW5vbmUiJyk7CitzaG91bGRCZSgicmVz
dWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIs
ICcibmV2ZXItZ2l2ZS11cC1udWxsIicpOworZm9ybS5kaXNwYXRjaEZvcm1DaGFuZ2UoKTsKK2Rl
YnVnKCdBZnRlciBkaXNwYXRjaCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJm
b28iJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJl
KCJyZXN1bHQzLmlubmVySFRNTCIsICciYmFyIicpOworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKHJlc3VsdHMpOworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkxMGFkOGIy
YTFlOTg3NDI1ZGJlNjlmNDIzYTc3Nzc3N2FjMGViMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcwpAQCAtMCww
ICsxLDE2OCBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGZvcm1pbnB1dCBldmVudHMuJyk7CisK
K2Z1bmN0aW9uIHNlbmRLZXkoZWxlbWVudCwga2V5TmFtZSkgeworICAgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEtleWJv
YXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmlldywga2V5
TmFtZSk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24g
c2VuZFRleHQoZWxlbWVudCwgdGV4dCkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCdUZXh0RXZlbnQnKTsKKyAgICBldmVudC5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQn
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgdGV4dCk7CisgICAgZWxlbWVudC5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKwordmFyIHJlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd1bCcpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHRzKTsKK3ZhciBy
ZXN1bHQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK3Jlc3VsdDEuc2V0QXR0cmli
dXRlKCdpZCcsICdyZXN1bHQxJyk7CityZXN1bHRzLmFwcGVuZENoaWxkKHJlc3VsdDEpOwordmFy
IHJlc3VsdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworcmVzdWx0Mi5zZXRBdHRy
aWJ1dGUoJ2lkJywgJ3Jlc3VsdDInKTsKK3Jlc3VsdHMuYXBwZW5kQ2hpbGQocmVzdWx0Mik7Cit2
YXIgcmVzdWx0MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CityZXN1bHQzLnNldEF0
dHJpYnV0ZSgnaWQnLCAncmVzdWx0MycpOworcmVzdWx0cy5hcHBlbmRDaGlsZChyZXN1bHQzKTsK
KwordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtLnNldEF0
dHJpYnV0ZSgnaWQnLCAnZm9ybScpOworZm9ybS5pbm5lckhUTUwgPSAiPHVsPjxsaSBpZD0nbGkx
Jz48L2xpPjxsaSBpZD0nbGkyJz48L2xpPjxsaSBpZD0nbGkzJz48L2xpPjxsaSBpZD0nbGk0Jz48
L2xpPjxsaSBpZD0nbGk1Jz48L2xpPjxsaSBpZD0nbGk2Jz48L2xpPjxsaSBpZD0nbGk3Jz48L2xp
PjwvdWw+IjsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7Citkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGkxJykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJp
bnB1dDEiIHZhbHVlPSIyOCIgb25mb3JtaW5wdXQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwn
cmVzdWx0MVwnKS5pbm5lclRleHQ9XCdmb29cJyIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xpMicpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQyIiB2
YWx1ZT0iMTIiIG9uaW5wdXQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MlwnKS5p
bm5lclRleHQ9XCdndWhlXCciIC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTMnKS5p
bm5lckhUTUwgPSAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dDMiIHZhbHVlPSJzb21lIiBv
bmZvcm1pbnB1dD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdyZXN1bHQzXCcpLmlubmVyVGV4
dD1cJ2JhclwnIiBvbmlucHV0PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3Jlc3VsdDJcJyku
aW5uZXJUZXh0PVwnZ3VoZVwnIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk0Jyku
aW5uZXJIVE1MID0gJzx0ZXh0YXJlYSBpZD0iaW5wdXQ0IiAgb25pbnB1dD0iZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoXCdyZXN1bHQyXCcpLmlubmVyVGV4dD1cJ2d1aGVcJyIvPic7Citkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbGk1JykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJyYWRpbyIg
bmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MSIgdmFsdWU9IjEiIGNoZWNrZWQvPjxpbnB1dCB0eXBl
PSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MiIgdmFsdWU9IjIiIG9uaW5wdXQ9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MlwnKS5pbm5lclRleHQ9XCdndWhlXCciIC8+
JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTYnKS5pbm5lckhUTUwgPSAnPGlucHV0IHR5
cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJpbnB1dDYxIiB2YWx1ZT0iMSIgY2hlY2tl
ZC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJpbnB1dDYyIiB2YWx1
ZT0iMiIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpNycpLmlubmVySFRNTCA9ICc8
cCBpZD0iZHVtbXl0ZXh0IiBvbmZvcm1pbnB1dD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdy
ZXN1bHQyXCcpLmlubmVySFRNTD1cJ2JhelwnIj5IaSE8L3A+JzsKKwordmFyIGlucHV0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDEnKTsKK3ZhciBpbnB1dDIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5wdXQyJyk7Cit2YXIgaW5wdXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lucHV0MycpOwordmFyIGlucHV0NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
bnB1dDQnKTsKK3ZhciBpbnB1dDUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0NTEn
KTsKK3ZhciBpbnB1dDUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0NTInKTsKKwor
cmVzdWx0MS5pbm5lckhUTUwgPSAibm9uZSI7CityZXN1bHQyLmlubmVySFRNTCA9ICJuaWwiOwor
cmVzdWx0My5pbm5lckhUTUwgPSAibnVsbCI7CisKK2RlYnVnKCdOdW1iZXIgdHlwZSB3aXRoIG9u
Zm9ybWlucHV0Jyk7CitkZWJ1ZygnQmVmb3JlIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEu
aW5uZXJIVE1MIiwgJyJub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJu
aWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnIm51bGwiJyk7CitpbnB1dDEu
Zm9jdXMoKTsKK3NlbmRLZXkoaW5wdXQxLCAnVXAnKTsKK2lucHV0Mi5mb2N1cygpOworZGVidWco
J0FmdGVyIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7
CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1
bHQzLmlubmVySFRNTCIsICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJub25lLWFn
YWluIjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJu
dWxsLWFnYWluIjsKKworZGVidWcoJycpOworZGVidWcoJ051bWJlciB0eXBlIHdpdGhvdXQgb25m
b3JtaW5wdXQnKTsKK2RlYnVnKCdCZWZvcmUgc3RlcFVwJyk7CitzaG91bGRCZSgicmVzdWx0MS5p
bm5lckhUTUwiLCAnIm5vbmUtYWdhaW4iJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwi
LCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIsICcibnVsbC1hZ2FpbiIn
KTsKK2lucHV0Mi5mb2N1cygpOworc2VuZEtleShpbnB1dDIsICdVcCcpOworaW5wdXQxLmZvY3Vz
KCk7CitkZWJ1ZygnQWZ0ZXIgc3RlcFVwJyk7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwi
LCAnImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hv
dWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7CisKK3Jlc3VsdDEuaW5uZXJIVE1M
ID0gInN0aWxsLW5vbmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5u
ZXJIVE1MID0gInN0aWxsLW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnVGV4dCB0eXBlIHdp
dGggb25mb3JtaW5wdXQnKTsKK2RlYnVnKCJCZWZvcmUgaW5wdXQgYSB0ZXh0IikKK3Nob3VsZEJl
KCJyZXN1bHQxLmlubmVySFRNTCIsICcic3RpbGwtbm9uZSInKTsKK3Nob3VsZEJlKCJyZXN1bHQy
LmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJz
dGlsbC1udWxsIicpOworaW5wdXQzLmZvY3VzKCk7CitzZW5kVGV4dChpbnB1dDMsICduZXcnKTsK
K2lucHV0MS5mb2N1cygpOworZGVidWcoIkFmdGVyIHNlbmRpbmcgYSB0ZXh0Iik7CitzaG91bGRC
ZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVy
SFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7
CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gImJvcmluZy1ub25lIjsKK3Jlc3VsdDIuaW5uZXJIVE1M
ID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJib3JpbmctbnVsbCI7CisKK2RlYnVnKCcn
KTsKK2RlYnVnKCdUZXh0YXJlYScpOworZGVidWcoIkJlZm9yZSBpbnB1dCBhIHRleHQiKQorc2hv
dWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJib3Jpbmctbm9uZSInKTsKK3Nob3VsZEJlKCJy
ZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1M
IiwgJyJib3JpbmctbnVsbCInKTsKK2lucHV0NC5mb2N1cygpOworc2VuZFRleHQoaW5wdXQ0LCAn
SGFwcHkhJyk7CitpbnB1dDEuZm9jdXMoKTsKK2RlYnVnKCJBZnRlciBzZW5kaW5nIGEgdGV4dCIp
Oworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgicmVz
dWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIs
ICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJzdGlja3ktbm9uZSI7CityZXN1bHQy
LmlubmVySFRNTCA9ICJuaWwiOworcmVzdWx0My5pbm5lckhUTUwgPSAic3RpY2t5LW51bGwiOwor
CitkZWJ1ZygnJyk7CitkZWJ1ZygnUmFkaW8gYnV0dG9uJyk7CitkZWJ1ZygiQmVmb3JlIGNoZWNr
aW5nIikKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICcic3RpY2t5LW5vbmUiJyk7Citz
aG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQz
LmlubmVySFRNTCIsICcic3RpY2t5LW51bGwiJyk7CitpbnB1dDUyLmNsaWNrKCk7CitkZWJ1Zygi
QWZ0ZXIgY2hlY2tpbmciKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9vIicp
Oworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVz
dWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAiaW50cmVw
aWQtbm9uZSI7CityZXN1bHQyLmlubmVySFRNTCA9ICJuaWwiOworcmVzdWx0My5pbm5lckhUTUwg
PSAiaW50cmVwaWQtbnVsbCI7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdDaGVja2JveCcpOworZGVi
dWcoIkJlZm9yZSBjaGVja2luZyIpCitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnImlu
dHJlcGlkLW5vbmUiJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsK
K3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIsICciaW50cmVwaWQtbnVsbCInKTsKK2lucHV0
NjIuY2xpY2soKTsKK2RlYnVnKCJBZnRlciBjaGVja2luZyIpOworc2hvdWxkQmUoInJlc3VsdDEu
aW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5p
bCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIsICciYmFyIicpOworCityZXN1bHQx
LmlubmVySFRNTCA9ICJuZXZlci1naXZlLXVwLW5vbmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAi
bmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gIm5ldmVyLWdpdmUtdXAtbnVsbCI7CisKK2RlYnVn
KCcnKTsKK2RlYnVnKCdmb3JtLmRpc3BhdGNoRm9ybUlucHV0KCknKTsKK2RlYnVnKCdCZWZvcmUg
ZGlzcGF0Y2gnKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICcibmV2ZXItZ2l2ZS11
cC1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91
bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnIm5ldmVyLWdpdmUtdXAtbnVsbCInKTsKK2Zvcm0u
ZGlzcGF0Y2hGb3JtSW5wdXQoKTsKK2RlYnVnKCdBZnRlciBkaXNwYXRjaCcpOworc2hvdWxkQmUo
InJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhU
TUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIsICciYmFyIicpOwor
Citkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJlc3VsdHMpOworZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChmb3JtKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc2YTRmNWJm
ODlmN2M0NmU0MmMzYzhhMjNlODViMGRiNTE3N2RhZGQuLmYyYTQxMzJjOGQ4ZmY1NjFmY2M1NTBl
MWMyNjAxNjA3YjAwNzM5ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAtMTEtMTggIERhaSBNaWt1cnVi
ZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZvcm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0
IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjE0MQorCisgICAgICAgIChEZXNjcmlwdGlvbnMgdG8gYmUgYWRkZWQuKQorCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1jaGFuZ2UtZXZlbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbAorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6ZnJvbVVzZXJHZXN0dXJlKToKKyAgICAgICAgKiBk
b20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxG
b3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRpc3Bh
dGNoRm9ybUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0
Y2hGb3JtQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJv
bVJlbmRlcmVyKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTAtMTEtMTUgIElseWEgU2hlcm1hbiAgPGlz
aGVybWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpp
bmRleCA2YzQ1MGFkOTg0M2E3NGE2YzU1ZmFjMTY0MzE4Y2EyMDA4YjgyN2Q4Li4yMDhkMzA2Mjdj
NzA3ZWU4NDEwMDAwNjM4MTkxYTA2ZjkyZDI2ZTc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC01MTMsNyArNTEzLDcgQEAgbXkg
QGV2ZW50U2lnbmFsTmFtZXMgPSAoCiAgICAgIyBVc2VyIEludGVyZmFjZSBFdmVudCB0eXBlcwog
ICAgICJmb2N1cyIsICJibHVyIiwKICAgICAjIEJhc2ljIEV2ZW50IHR5cGVzCi0gICAgImxvYWQi
LCAidW5sb2FkIiwgImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAic3VibWl0
IiwgInJlc2V0IiwKKyAgICAibG9hZCIsICJ1bmxvYWQiLCAiYWJvcnQiLCAiZXJyb3IiLCAic2Vs
ZWN0IiwgImNoYW5nZSIsICJmb3JtY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCiAgICAgInJl
c2l6ZSIsICJzY3JvbGwiLAogICAgICMgTW91c2UgRXZlbnQgdHlwZXMKICAgICAiY2xpY2siLCAi
ZGJsY2xpY2siLCAibW91c2Vkb3duIiwgIm1vdXNldXAiLApAQCAtNTM1LDcgKzUzNSw3IEBAIG15
IEBldmVudFNpZ25hbE5hbWVzID0gKAogICAgICMgQW5pbWF0aW9ucwogICAgICJ3ZWJraXRhbmlt
YXRpb25lbmQiLCAid2Via2l0YW5pbWF0aW9uc3RhcnQiLCAid2Via2l0YW5pbWF0aW9uaXRlcmF0
aW9uIiwKICAgICAjIE90aGVyCi0gICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImludmFsaWQi
LCAic2VhcmNoIiwgInNlbGVjdHN0YXJ0Iik7CisgICAgImNvbnRleHRtZW51IiwgImlucHV0Iiwg
ImZvcm1pbnB1dCIsICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOwogCiBzdWIg
R2VuZXJhdGVQcm9wZXJ0aWVzIHsKICAgICBteSAoJG9iamVjdCwgJGludGVyZmFjZU5hbWUsICRk
YXRhTm9kZSkgPSBAXzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGJhNDhkNmY4MmVjYjQwOGJkYmQxNDdmNjIzZTllNmM5
Y2JmMjIxNjkuLjdkNzE5OTMyYTdjMzE3MzVjNGJkMzkwNjdlNDcxOTYxMjJiODdhNWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtMjQzLDYgKzI0Myw4IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKGRyYWdzdGFydCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihkcmFnKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRyYWdlbmQpOwor
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWNoYW5nZSk7CisgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtaW5wdXQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoaW5wdXQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoaW52YWxpZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihr
ZXlkb3duKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAppbmRleCAxMzg3NTdmOWVkNmFiN2JhMTczNzViNzg0NDk5OWFmMDI2
MDgyYjNhLi44NTM3ZWFmOTMxZjhhMjdiYWVkMjU1NmQ0NTdmZjIyNzIzNzVjMDZjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCkBAIC0yNjYsNiArMjY2LDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJvcDsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9ua2V5ZG93bjsKQEAgLTI4OCw4ICsyOTAsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5n
ZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVtcHRp
ZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbmRl
ZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1j
aGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25m
b3JtaW5wdXQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggN2Q0Yjk0Yzc4YjYxY2U5ZWViMGE5YjBk
NzMxNDY0YmE4NTQyNjRiMS4uY2YxODhiNWM5YTI1ODk4M2E0NDIxOTNhMWE4NzVkZTgwNWQwZTMz
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnZW5k
KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1jaGFuZ2UpOworICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0KTsKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDJiNjJhMWE4NGYxMzMzZmEwY2RiODc4NWQxYTE1MzEy
MGVkZDYzMmIuLmZhODJiMTNlYmJkMmQ2N2Y3NmM5YjZhYjRjOTJiMGU3ODM1ZWFhMTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCkBAIC0xNTMsNiArMTUzLDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJvcDsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9ua2V5ZG93bjsKQEAgLTE3NCw4ICsxNzYsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5n
ZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVtcHRp
ZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbmRl
ZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1j
aGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25m
b3JtaW5wdXQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudC5j
cHAgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggMDUxNWZlN2ZhZTgzNTAwZjg3N2Q5NjJm
OWQwNmViZjNkOGNmNTI3YS4uNTNlNzUwNDk4Y2YzZWEzNDlmMTJmMWM0MDlhNTU2Y2YzNTQxZWQ5
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2
ZW50LmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIGJvb2wgRXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSgp
CiAgICAgICAgIC8vIG90aGVyIGFjY2VwdGVkIGV2ZW50cwogICAgICAgICB8fCB0eXBlID09IGV2
ZW50TmFtZXMoKS5zZWxlY3RFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVu
dAogICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50IHx8IHR5cGUgPT0g
ZXZlbnROYW1lcygpLmJsdXJFdmVudAotICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5z
dWJtaXRFdmVudDsKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc3VibWl0RXZlbnQg
fHwgdHlwZSA9PSBldmVudE5hbWVzKCkuZm9ybWNoYW5nZUV2ZW50OwogfQogCiBib29sIEV2ZW50
OjpzdG9yZXNSZXN1bHRBc1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmggYi9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYWVhZDJiYzFkMjg0
NmM1Y2IwZmQ2ODZmNjQ2NGZkY2QwNzc5M2Y1Mi4uZmQ0ZTU2OTgyZjU2YzRlZWQ4NjFkZDc5NmU4
NzhiOTVmODJmOTE4NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBi
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtNjYsNiArNjYsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFj
cm8oZm9jdXNvdXQpIFwKKyAgICBtYWNybyhmb3JtY2hhbmdlKSBcCisgICAgbWFjcm8oZm9ybWlu
cHV0KSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAg
bWFjcm8oaW52YWxpZCkgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggMTg4MWI2
ZmJhMjI4ZGU4YjQyYTc5MzdlMGVjZDEyNGU2ZTMzZDExMC4uYzI3NGQ2YTYxNjU2MDdjYjhiMDBk
NTllODhkZWMxM2JiMjE2NzhmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0x
NzEsNiArMTcxLDggQEAgb25lcnJvcgogb25mb2N1cwogb25mb2N1c2luCiBvbmZvY3Vzb3V0Citv
bmZvcm1jaGFuZ2UKK29uZm9ybWlucHV0CiBvbmhhc2hjaGFuZ2UKIG9uaW5wdXQKIG9uaW52YWxp
ZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYmM0YmYwNzkwZWFlYTExNzdhNTA0YzVmZGM4YTkzOTZl
MGEyMGE5ZS4uMTc1NDg4ZmU2MmE5MzAyMWM2Yzc4NDg5ODdjMzY4MGNjMTYyNTI1YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCkBAIC0xODcsNiArMTg3LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZm9jdXNpbkV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBv
bmZvY3Vzb3V0QXR0cikgewogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5mb2N1c291dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMs
IGF0dHIpKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvcm1jaGFuZ2VBdHRy
KSB7CisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1j
aGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7Cisg
ICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb3JtaW5wdXRBdHRyKSB7CisgICAgICAg
IHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmJsdXJBdHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0
ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25rZXlk
b3duQXR0cikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDJm
NWQ0MTRmM2I0ZDg4MWQ3ZmNlNmRiNzgwYmE5MWNiYzViMWQwZTcuLjdmYzg4OTViZjJmMzJkZWRm
ZWM4MjUyZWRlOGVkY2Q2YWIyYjdjOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTIxNiw2ICsyMTYsOCBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHZvaWQgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkKIHsKICAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxz
ZSkpOworICAgIGlmIChtX2Zvcm0pCisgICAgICAgIG1fZm9ybS0+ZGlzcGF0Y2hGb3JtQ2hhbmdl
KCk7CiB9CiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBi
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCAxYWViMzYwM2I4OTc3NWRiYWM3NGRmZjQ0
M2ZkODhlN2YxMTEyMGJmLi5jMmUyYzAwNDg2ODZlMzkzYmI1OGExM2VmMjRhOGFkOWI4ZjQzOWZk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNTY5LDYgKzU2OSwyNCBAQCBib29sIEhU
TUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCiAgICAgcmV0dXJuIGNvbnRyb2xzLmlzRW1w
dHkoKTsKIH0KIAordm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUlucHV0KCkgY29u
c3QKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hc3NvY2lhdGVkRWxlbWVudHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9
IG1fYXNzb2NpYXRlZEVsZW1lbnRzW2ldOworICAgICAgICBpZiAoIWNvbnRyb2wtPmRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9ybWlucHV0RXZlbnQsIHRydWUsIGZh
bHNlKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTEZvcm1F
bGVtZW50OjpkaXNwYXRjaEZvcm1DaGFuZ2UoKSBjb25zdAoreworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX2Fzc29jaWF0ZWRFbGVtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gbV9hc3NvY2lhdGVkRWxlbWVudHNbaV07
CisgICAgICAgIGlmICghY29udHJvbC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICB9Cit9CisKIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpjb2xsZWN0VW5oYW5kbGVk
SW52YWxpZENvbnRyb2xzKFZlY3RvcjxSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4gPiYg
dW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQogewogICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IHByb3RlY3Rvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCA0ZTA2YmVjMDk5YzYz
YzRmYzM1ZDU5M2EwNWEzZTMzNWYwMDJmMTBmLi44OTRmMmRlNjcxYjYwYjc0YzM1MGRhNWYxMDYw
NTM4ZTM0ZGM1N2U2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMDQsNiArMTA0LDkgQEAg
cHVibGljOgogCiAgICAgYm9vbCBjaGVja1ZhbGlkaXR5KCk7CiAKKyAgICB2b2lkIGRpc3BhdGNo
Rm9ybUlucHV0KCkgY29uc3Q7CisgICAgdm9pZCBkaXNwYXRjaEZvcm1DaGFuZ2UoKSBjb25zdDsK
KwogICAgIFBhc3NSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4gZWxlbWVudEZvckFsaWFz
KGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHZvaWQgYWRkRWxlbWVudEFsaWFzKEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmIGFsaWFzKTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmlkbAppbmRleCBhOWY4ZWExZGIxNjlkNzY3YzRiNmFhMWY2ZGM1MWNlMWQzMTQz
NGJkLi40NDU2NjhkMTUxNzhmOTZjMmMzODRiNTkxZWMyYmYzYWZhNjM5ZDIxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmlkbApAQCAtMzksNSArMzksOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IFtDYWxsV2l0aD1EeW5hbWljRnJhbWVdIHZvaWQgc3VibWl0KCk7CiAgICAgICAgIHZvaWQgcmVz
ZXQoKTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7CisKKyAgICAgICAgdm9pZCBk
aXNwYXRjaEZvcm1JbnB1dCgpOworICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpOwog
ICAgIH07CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggMDI4NGFiNTA3ZjFmMjEz
NzA5ODhlNDRmNTMwOWU5MzVkZjNjMjc0OS4uMDBkMjJiYThmMmEzOTQwNDc1Y2Y2MGI0ZmVhNDIz
MzFkNzI3MmUxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTk4Nyw2ICsxOTg3
LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAg
ICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkpCiAgICAg
ICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZXRDaGFuZ2VkU2luY2VM
YXN0Q2hhbmdlRXZlbnQodHJ1ZSk7CiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgSFRNTEZv
cm1FbGVtZW50KiBvd25lckZvcm0gPSBmb3JtKCk7CisgICAgICAgIGlmIChvd25lckZvcm0pCisg
ICAgICAgICAgICBvd25lckZvcm0tPmRpc3BhdGNoRm9ybUlucHV0KCk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKaW5kZXggZDg3YTM4NmMwYWExODQ2ZDNiYmQxYzUxZjMxODk2ODVhY2E5NjlmNC4uN2Ex
YTc5MjA1Y2M4NWFlZTc5Mzg4MzYzMWMxODNlZjUzNTQyYmQ4NCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMjk3
LDYgKzI5Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihlbmRlZCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZXJyb3IpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGZvY3VzKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hh
bmdlKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtaW5wdXQp
OwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGhhc2hjaGFuZ2UpOwog
ICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnZhbGlkKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5k
ZXggMzAyMDVlYzcxZTQwNGEzZmZjZjk4YzA2ODg5OTVhYWNhYjc2ZjNiMS4uNzQ1OWQ1YzQ4M2Ex
NmFkZjU1ZWJjZDJmZThlM2ViMjRjZGNlOGE4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTI2MCw2ICsy
NjAsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25lbmRlZDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmZvcm1pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hh
bmdlOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OwogICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CkBAIC0zMDQsOCArMzA2LDYgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKICAgICAgICAgLy8gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25y
ZWFkeXN0YXRlY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJl
ZG87CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2hvdzsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDczNTYwZmQ0
YWYyMjZhZWI5NDhlY2U5Y2ZiZjA1YjcyYjIyNTFkNTMuLmIzZjgzZTEzZjBmYzI0YTI0NDQ5OTJj
OWYxMDNmMTM4ZGIwYjFhZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcApAQCAtMjUxLDYgKzI1MSw5IEBAIHZvaWQgU2VhcmNoRmllbGRDYW5j
ZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAg
ICAgICAgICAgICBpZiAoIW9sZFZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAg
ICB0b1JlbmRlclRleHRDb250cm9sKGlucHV0LT5yZW5kZXJlcigpKS0+c2V0Q2hhbmdlZFNpbmNl
TGFzdENoYW5nZUV2ZW50KHRydWUpOwogICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxz
ZSkpOworICAgICAgICAgICAgICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIG93bmVyRm9ybSA9IGlu
cHV0LT5mb3JtKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvd25lckZvcm0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBvd25lckZvcm0tPmRpc3BhdGNoRm9ybUlucHV0KCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlucHV0LT5vblNlYXJjaCgpOwogICAgICAgICAg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78643</attachid>
            <date>2011-01-11 20:02:11 -0800</date>
            <delta_ts>2011-01-14 02:02:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110112130400.patch</filename>
            <type>text/plain</type>
            <size>43882</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjY2MTEyNmIyMTk1MGVlYTE2YzY1MTA1ODA3YzI0MDdkYTk0MTUwLi4wNjYxODIw
ZjhjYWQ5M2JjODE1NDM3NzczNjJmNjNhZjFmYjMxZjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTEgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTEwICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKaW5kZXggZjliZmZmNTc4ZGI0OTdkZWI4ZGVhNDU3YmE2YjkwZGJh
MzM0YmY2ZS4uMTgxNGRkNTU0YTQwNmRiZjhjYTgwZTc3NzIwNGJlYWY4YTEzNzQwNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzEzLDYgKzIzMTMsOCBAQCB3aW5kb3cub25lbXB0aWVkIFtu
dWxsXQogd2luZG93Lm9uZW5kZWQgW251bGxdCiB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdpbmRv
dy5vbmZvY3VzIFtudWxsXQord2luZG93Lm9uZm9ybWNoYW5nZSBbbnVsbF0KK3dpbmRvdy5vbmZv
cm1pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmhhc2hjaGFuZ2UgW251bGxdCiB3aW5kb3cub25pbnB1
dCBbbnVsbF0KIHdpbmRvdy5vbmludmFsaWQgW251bGxdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0CmluZGV4IDY4MzE1YWQ2ZDRkOGE5ZmFkYTJlOGQyYmE2ZTg2ZmE3NjY1
ZTgyOTYuLmU1MDc4MzliNzE1MGEzYTFiNWRhYjk2YTBkNTRjMDJkNzUwMmI5NjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CkBAIC0zOTMsNiArMzkzLDggQEAgUEFT
UyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVtcHRp
ZWQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdvbmVuZGVkJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb25lcnJvcicpIGlzICdvYmplY3QnCiBQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9j
dXMnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdvbmZvcm1jaGFuZ2UnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmZvcm1pbnB1dCcpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ29uaGFzaGNoYW5nZScpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uaW5wdXQnKSBpcyAnb2JqZWN0JwogUEFTUyB0
eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmludmFsaWQn
KSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hh
bmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5n
ZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiYjlkMzc4ODRjNDAwZGE4YWYyNmRh
NmQyNGFhOWY3NzQ4NTU0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OCBAQAorVGVzdCBm
b3IgZm9ybWNoYW5nZSBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitO
dW1iZXIgdHlwZSB3aXRoIG9uZm9ybWNoYW5nZQorQmVmb3JlIHN0ZXBVcAorUEFTUyByZXN1bHQx
LmlubmVySFRNTCBpcyAibm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BB
U1MgcmVzdWx0My5pbm5lckhUTUwgaXMgIm51bGwiCitBZnRlciBzdGVwVXAKK1BBU1MgcmVzdWx0
MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BB
U1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworTnVtYmVyIHR5cGUgd2l0aG91dCBvbmZv
cm1jaGFuZ2UKK0JlZm9yZSBzdGVwVXAKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgIm5vbmUt
YWdhaW4iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5u
ZXJIVE1MIGlzICJudWxsLWFnYWluIgorQWZ0ZXIgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5uZXJI
VE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3Vs
dDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK1RleHQgdHlwZSB3aXRoIG9uZm9ybWNoYW5nZQorQmVm
b3JlIGlucHV0IGEgdGV4dAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAic3RpbGwtbm9uZSIK
K1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwg
aXMgInN0aWxsLW51bGwiCitBZnRlciBzZW5kaW5nIGEgdGV4dAorUEFTUyByZXN1bHQxLmlubmVy
SFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1
bHQzLmlubmVySFRNTCBpcyAiYmFyIgorCitUZXh0YXJlYQorQmVmb3JlIGlucHV0IGEgdGV4dAor
UEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiYm9yaW5nLW5vbmUiCitQQVNTIHJlc3VsdDIuaW5u
ZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJib3JpbmctbnVsbCIK
K0FmdGVyIHNlbmRpbmcgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJmb28iCitQ
QVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlz
ICJiYXIiCisKK1JhZGlvIGJ1dHRvbgorQmVmb3JlIGNoZWNraW5nCitQQVNTIHJlc3VsdDEuaW5u
ZXJIVE1MIGlzICJzdGlja3ktbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIK
K1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgInN0aWNreS1udWxsIgorQWZ0ZXIgY2hlY2tpbmcK
K1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwg
aXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworQ2hlY2tib3gKK0Jl
Zm9yZSBjaGVja2luZworUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiaW50cmVwaWQtbm9uZSIK
K1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwg
aXMgImludHJlcGlkLW51bGwiCitBZnRlciBjaGVja2luZworUEFTUyByZXN1bHQxLmlubmVySFRN
TCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQz
LmlubmVySFRNTCBpcyAiYmFyIgorCitmb3JtLmRpc3BhdGNoRm9ybUNoYW5nZSgpCitCZWZvcmUg
ZGlzcGF0Y2gKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgIm5ldmVyLWdpdmUtdXAtbm9uZSIK
K1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwg
aXMgIm5ldmVyLWdpdmUtdXAtbnVsbCIKK0FmdGVyIGRpc3BhdGNoCitQQVNTIHJlc3VsdDEuaW5u
ZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJl
c3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFuZ2Ut
ZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjZiYmFjMDhkOTJmZjJmNTY5YzkyZTU4YzEzMmEwMTZh
N2FhYjMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hh
bmdlLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtaW5w
dXQtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtaW5wdXQt
ZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NjdiODNjZWIwZmUyZDY0ZjBjNzZjNWE2
NGM5Yjc4NWQ2ZTRmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2Zvcm1pbnB1dC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OCBAQAorVGVzdCBmb3Ig
Zm9ybWlucHV0IGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK051bWJl
ciB0eXBlIHdpdGggb25mb3JtaW5wdXQKK0JlZm9yZSBzdGVwVXAKK1BBU1MgcmVzdWx0MS5pbm5l
ckhUTUwgaXMgIm5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJl
c3VsdDMuaW5uZXJIVE1MIGlzICJudWxsIgorQWZ0ZXIgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5u
ZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJl
c3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK051bWJlciB0eXBlIHdpdGhvdXQgb25mb3JtaW5w
dXQKK0JlZm9yZSBzdGVwVXAKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgIm5vbmUtYWdhaW4i
CitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1M
IGlzICJudWxsLWFnYWluIgorQWZ0ZXIgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlz
ICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5u
ZXJIVE1MIGlzICJiYXIiCisKK1RleHQgdHlwZSB3aXRoIG9uZm9ybWlucHV0CitCZWZvcmUgaW5w
dXQgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJzdGlsbC1ub25lIgorUEFTUyBy
ZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAic3Rp
bGwtbnVsbCIKK0FmdGVyIHNlbmRpbmcgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlz
ICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5u
ZXJIVE1MIGlzICJiYXIiCisKK1RleHRhcmVhCitCZWZvcmUgaW5wdXQgYSB0ZXh0CitQQVNTIHJl
c3VsdDEuaW5uZXJIVE1MIGlzICJib3Jpbmctbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwg
aXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJvcmluZy1udWxsIgorQWZ0ZXIg
c2VuZGluZyBhIHRleHQKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVz
dWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIK
KworUmFkaW8gYnV0dG9uCitCZWZvcmUgY2hlY2tpbmcKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwg
aXMgInN0aWNreS1ub25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyBy
ZXN1bHQzLmlubmVySFRNTCBpcyAic3RpY2t5LW51bGwiCitBZnRlciBjaGVja2luZworUEFTUyBy
ZXN1bHQxLmlubmVySFRNTCBpcyAic3RpY2t5LW5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1M
IGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJzdGlja3ktbnVsbCIKKworQ2hl
Y2tib3gKK0JlZm9yZSBjaGVja2luZworUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiaW50cmVw
aWQtbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5p
bm5lckhUTUwgaXMgImludHJlcGlkLW51bGwiCitBZnRlciBjaGVja2luZworUEFTUyByZXN1bHQx
LmlubmVySFRNTCBpcyAiaW50cmVwaWQtbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMg
Im5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImludHJlcGlkLW51bGwiCisKK2Zvcm0u
ZGlzcGF0Y2hGb3JtSW5wdXQoKQorQmVmb3JlIGRpc3BhdGNoCitQQVNTIHJlc3VsdDEuaW5uZXJI
VE1MIGlzICJuZXZlci1naXZlLXVwLW5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJu
aWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJuZXZlci1naXZlLXVwLW51bGwiCitBZnRl
ciBkaXNwYXRjaAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQy
LmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAiYmFyIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyN2E5MjAy
MDI3ZTEwM2I2Yjg1NDIyM2Y1YjRhY2ZkN2JhM2Q3MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWNoYW5nZS1ldmVudC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2UtZXZlbnQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDM3MDM0ODZhNWIwZTA5NzEyNDFmZmNiZjc4NDRjMjU1YTU3ZTRhNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2Ut
ZXZlbnQuanMKQEAgLTAsMCArMSwxNjggQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBmb3JtY2hh
bmdlIGV2ZW50cy4nKTsKKworZnVuY3Rpb24gc2VuZEtleShlbGVtZW50LCBrZXlOYW1lKSB7Cisg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0tleWJvYXJkRXZlbnQnKTsKKyAg
ICBldmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50
LmRlZmF1bHRWaWV3LCBrZXlOYW1lKTsKKyAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQp
OworfQorCitmdW5jdGlvbiBzZW5kVGV4dChlbGVtZW50LCB0ZXh0KSB7CisgICAgdmFyIGV2ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ1RleHRFdmVudCcpOworICAgIGV2ZW50LmluaXRUZXh0
RXZlbnQoJ3RleHRJbnB1dCcsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCB0ZXh0
KTsKKyAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCit2YXIgcmVzdWx0cyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHJlc3VsdHMpOwordmFyIHJlc3VsdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwor
cmVzdWx0MS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3Jlc3VsdDEnKTsKK3Jlc3VsdHMuYXBwZW5kQ2hp
bGQocmVzdWx0MSk7Cit2YXIgcmVzdWx0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7
CityZXN1bHQyLnNldEF0dHJpYnV0ZSgnaWQnLCAncmVzdWx0MicpOworcmVzdWx0cy5hcHBlbmRD
aGlsZChyZXN1bHQyKTsKK3ZhciByZXN1bHQzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGkn
KTsKK3Jlc3VsdDMuc2V0QXR0cmlidXRlKCdpZCcsICdyZXN1bHQzJyk7CityZXN1bHRzLmFwcGVu
ZENoaWxkKHJlc3VsdDMpOworCit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zv
cm0nKTsKK2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtJyk7Citmb3JtLmlubmVySFRNTCA9
ICI8dWw+PGxpIGlkPSdsaTEnPjwvbGk+PGxpIGlkPSdsaTInPjwvbGk+PGxpIGlkPSdsaTMnPjwv
bGk+PGxpIGlkPSdsaTQnPjwvbGk+PGxpIGlkPSdsaTUnPjwvbGk+PGxpIGlkPSdsaTYnPjwvbGk+
PGxpIGlkPSdsaTcnPjwvbGk+PC91bD4iOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3Jt
KTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTEnKS5pbm5lckhUTUwgPSAnPGlucHV0IHR5
cGU9Im51bWJlciIgaWQ9ImlucHV0MSIgdmFsdWU9IjI4IiBvbmZvcm1jaGFuZ2U9ImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MVwnKS5pbm5lclRleHQ9XCdmb29cJyIgLz4nOworZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpMicpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0ibnVt
YmVyIiBpZD0iaW5wdXQyIiB2YWx1ZT0iMTIiIC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsaTMnKS5pbm5lckhUTUwgPSAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dDMiIHZhbHVl
PSJzb21lIiBvbmZvcm1jaGFuZ2U9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0M1wn
KS5pbm5lclRleHQ9XCdiYXJcJyIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpNCcp
LmlubmVySFRNTCA9ICc8dGV4dGFyZWEgaWQ9ImlucHV0NCIgLz4nOworZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xpNScpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Imlu
cHV0NSIgaWQ9ImlucHV0NTEiIHZhbHVlPSIxIiBjaGVja2VkLz48aW5wdXQgdHlwZT0icmFkaW8i
IG5hbWU9ImlucHV0NSIgaWQ9ImlucHV0NTIiIHZhbHVlPSIyIiAvPic7Citkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbGk2JykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFt
ZT0iaW5wdXQ2IiBpZD0iaW5wdXQ2MSIgdmFsdWU9IjEiIGNoZWNrZWQvPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgbmFtZT0iaW5wdXQ2IiBpZD0iaW5wdXQ2MiIgdmFsdWU9IjIiIC8+JzsKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsaTcnKS5pbm5lckhUTUwgPSAnPHAgaWQ9ImR1bW15dGV4dCIg
b25mb3JtY2hhbmdlPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3Jlc3VsdDJcJykuaW5uZXJI
VE1MPVwnYmF6XCciPkhpITwvcD4nOworCit2YXIgaW5wdXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lucHV0MScpOwordmFyIGlucHV0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
bnB1dDInKTsKK3ZhciBpbnB1dDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQzJyk7
Cit2YXIgaW5wdXQ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0NCcpOwordmFyIGlu
cHV0NTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQ1MScpOwordmFyIGlucHV0NTIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQ1MicpOworCityZXN1bHQxLmlubmVySFRN
TCA9ICJub25lIjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRN
TCA9ICJudWxsIjsKKworZGVidWcoJ051bWJlciB0eXBlIHdpdGggb25mb3JtY2hhbmdlJyk7Citk
ZWJ1ZygnQmVmb3JlIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJu
b25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRC
ZSgicmVzdWx0My5pbm5lckhUTUwiLCAnIm51bGwiJyk7CitpbnB1dDEuZm9jdXMoKTsKK3NlbmRL
ZXkoaW5wdXQxLCAnVXAnKTsKK2lucHV0Mi5mb2N1cygpOworZGVidWcoJ0FmdGVyIHN0ZXBVcCcp
Oworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgicmVz
dWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRNTCIs
ICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJub25lLWFnYWluIjsKK3Jlc3VsdDIu
aW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJudWxsLWFnYWluIjsKKwor
ZGVidWcoJycpOworZGVidWcoJ051bWJlciB0eXBlIHdpdGhvdXQgb25mb3JtY2hhbmdlJyk7Citk
ZWJ1ZygnQmVmb3JlIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJu
b25lLWFnYWluIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7Citz
aG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnIm51bGwtYWdhaW4iJyk7CitpbnB1dDIuZm9j
dXMoKTsKK3NlbmRLZXkoaW5wdXQyLCAnVXAnKTsKK2lucHV0MS5mb2N1cygpOworZGVidWcoJ0Fm
dGVyIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7Citz
aG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQz
LmlubmVySFRNTCIsICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJzdGlsbC1ub25l
IjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJzdGls
bC1udWxsIjsKKworZGVidWcoJycpOworZGVidWcoJ1RleHQgdHlwZSB3aXRoIG9uZm9ybWNoYW5n
ZScpOworZGVidWcoIkJlZm9yZSBpbnB1dCBhIHRleHQiKQorc2hvdWxkQmUoInJlc3VsdDEuaW5u
ZXJIVE1MIiwgJyJzdGlsbC1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwg
JyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnInN0aWxsLW51bGwiJyk7
CitpbnB1dDMuZm9jdXMoKTsKK3NlbmRUZXh0KGlucHV0MywgJ25ldycpOworaW5wdXQxLmZvY3Vz
KCk7CitkZWJ1ZygiQWZ0ZXIgc2VuZGluZyBhIHRleHQiKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlu
bmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwi
Jyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworcmVzdWx0MS5p
bm5lckhUTUwgPSAiYm9yaW5nLW5vbmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jl
c3VsdDMuaW5uZXJIVE1MID0gImJvcmluZy1udWxsIjsKKworZGVidWcoJycpOworZGVidWcoJ1Rl
eHRhcmVhJyk7CitkZWJ1ZygiQmVmb3JlIGlucHV0IGEgdGV4dCIpCitzaG91bGRCZSgicmVzdWx0
MS5pbm5lckhUTUwiLCAnImJvcmluZy1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJI
VE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJvcmluZy1u
dWxsIicpOworaW5wdXQ0LmZvY3VzKCk7CitzZW5kVGV4dChpbnB1dDQsICdIYXBweSEnKTsKK2lu
cHV0MS5mb2N1cygpOworZGVidWcoIkFmdGVyIHNlbmRpbmcgYSB0ZXh0Iik7CitzaG91bGRCZSgi
cmVzdWx0MS5pbm5lckhUTUwiLCAnImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRN
TCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7CisK
K3Jlc3VsdDEuaW5uZXJIVE1MID0gInN0aWNreS1ub25lIjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0g
Im5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJzdGlja3ktbnVsbCI7CisKK2RlYnVnKCcnKTsK
K2RlYnVnKCdSYWRpbyBidXR0b24nKTsKK2RlYnVnKCJCZWZvcmUgY2hlY2tpbmciKQorc2hvdWxk
QmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJzdGlja3ktbm9uZSInKTsKK3Nob3VsZEJlKCJyZXN1
bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwg
JyJzdGlja3ktbnVsbCInKTsKK2lucHV0NTIuY2xpY2soKTsKK2RlYnVnKCJBZnRlciBjaGVja2lu
ZyIpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgi
cmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRN
TCIsICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJpbnRyZXBpZC1ub25lIjsKK3Jl
c3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJpbnRyZXBpZC1u
dWxsIjsKKworZGVidWcoJycpOworZGVidWcoJ0NoZWNrYm94Jyk7CitkZWJ1ZygiQmVmb3JlIGNo
ZWNraW5nIikKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciaW50cmVwaWQtbm9uZSIn
KTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJl
c3VsdDMuaW5uZXJIVE1MIiwgJyJpbnRyZXBpZC1udWxsIicpOworaW5wdXQ2Mi5jbGljaygpOwor
ZGVidWcoIkFmdGVyIGNoZWNraW5nIik7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAn
ImZvbyInKTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxk
QmUoInJlc3VsdDMuaW5uZXJIVE1MIiwgJyJiYXIiJyk7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0g
Im5ldmVyLWdpdmUtdXAtbm9uZSI7CityZXN1bHQyLmlubmVySFRNTCA9ICJuaWwiOworcmVzdWx0
My5pbm5lckhUTUwgPSAibmV2ZXItZ2l2ZS11cC1udWxsIjsKKworZGVidWcoJycpOworZGVidWco
J2Zvcm0uZGlzcGF0Y2hGb3JtQ2hhbmdlKCknKTsKK2RlYnVnKCdCZWZvcmUgZGlzcGF0Y2gnKTsK
K3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICcibmV2ZXItZ2l2ZS11cC1ub25lIicpOwor
c2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0
My5pbm5lckhUTUwiLCAnIm5ldmVyLWdpdmUtdXAtbnVsbCInKTsKK2Zvcm0uZGlzcGF0Y2hGb3Jt
Q2hhbmdlKCk7CitkZWJ1ZygnQWZ0ZXIgZGlzcGF0Y2gnKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlu
bmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwi
Jyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChyZXN1bHRzKTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9y
bSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk0M2E2NDQwMDhmZDE1ZmMyNjkwMmJkMTc5NTRmNGMzZGIyNTVhY2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZl
bnQuanMKQEAgLTAsMCArMSwxODEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBmb3JtaW5wdXQg
ZXZlbnRzLicpOworCitmdW5jdGlvbiBzZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2
YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2
ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcsIGtleU5hbWUpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK2Z1bmN0aW9uIHNlbmRUZXh0KGVsZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBk
b2N1bWVudC5jcmVhdGVFdmVudCgnVGV4dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVu
dCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOwor
ICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK3ZhciByZXN1bHRzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVz
dWx0cyk7Cit2YXIgcmVzdWx0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CityZXN1
bHQxLnNldEF0dHJpYnV0ZSgnaWQnLCAncmVzdWx0MScpOworcmVzdWx0cy5hcHBlbmRDaGlsZChy
ZXN1bHQxKTsKK3ZhciByZXN1bHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK3Jl
c3VsdDIuc2V0QXR0cmlidXRlKCdpZCcsICdyZXN1bHQyJyk7CityZXN1bHRzLmFwcGVuZENoaWxk
KHJlc3VsdDIpOwordmFyIHJlc3VsdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwor
cmVzdWx0My5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3Jlc3VsdDMnKTsKK3Jlc3VsdHMuYXBwZW5kQ2hp
bGQocmVzdWx0Myk7CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScp
OworZm9ybS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0gIjx1
bD48bGkgaWQ9J2xpMSc+PC9saT48bGkgaWQ9J2xpMic+PC9saT48bGkgaWQ9J2xpMyc+PC9saT48
bGkgaWQ9J2xpNCc+PC9saT48bGkgaWQ9J2xpNSc+PC9saT48bGkgaWQ9J2xpNic+PC9saT48bGkg
aWQ9J2xpNyc+PC9saT48L3VsPiI7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOwor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpMScpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0i
bnVtYmVyIiBpZD0iaW5wdXQxIiB2YWx1ZT0iMjgiIG9uZm9ybWlucHV0PSJkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChcJ3Jlc3VsdDFcJykuaW5uZXJUZXh0PVwnZm9vXCciIC8+JzsKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsaTInKS5pbm5lckhUTUwgPSAnPGlucHV0IHR5cGU9Im51bWJlciIg
aWQ9ImlucHV0MiIgdmFsdWU9IjEyIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGkz
JykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQzIiB2YWx1ZT0ic29t
ZSIgb25mb3JtaW5wdXQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0M1wnKS5pbm5l
clRleHQ9XCdiYXJcJyIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpNCcpLmlubmVy
SFRNTCA9ICc8dGV4dGFyZWEgaWQ9ImlucHV0NCIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xpNScpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImlucHV0NSIg
aWQ9ImlucHV0NTEiIHZhbHVlPSIxIiBjaGVja2VkLz48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9
ImlucHV0NSIgaWQ9ImlucHV0NTIiIHZhbHVlPSIyIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbGk2JykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5w
dXQ2IiBpZD0iaW5wdXQ2MSIgdmFsdWU9IjEiIGNoZWNrZWQvPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgbmFtZT0iaW5wdXQ2IiBpZD0iaW5wdXQ2MiIgdmFsdWU9IjIiIC8+JzsKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsaTcnKS5pbm5lckhUTUwgPSAnPHAgaWQ9ImR1bW15dGV4dCIgb25mb3Jt
aW5wdXQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MlwnKS5pbm5lckhUTUw9XCdi
YXpcJyI+SGkhPC9wPic7CisKK3ZhciBpbnB1dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aW5wdXQxJyk7Cit2YXIgaW5wdXQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0Micp
OwordmFyIGlucHV0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDMnKTsKK3ZhciBp
bnB1dDQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQ0Jyk7Cit2YXIgaW5wdXQ1MSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDUxJyk7Cit2YXIgaW5wdXQ1MiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDUyJyk7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gIm5v
bmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gIm51
bGwiOworCitkZWJ1ZygnTnVtYmVyIHR5cGUgd2l0aCBvbmZvcm1pbnB1dCcpOworZGVidWcoJ0Jl
Zm9yZSBzdGVwVXAnKTsKK3Nob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICcibm9uZSInKTsK
K3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3Vs
dDMuaW5uZXJIVE1MIiwgJyJudWxsIicpOworaW5wdXQxLmZvY3VzKCk7CitzZW5kS2V5KGlucHV0
MSwgJ1VwJyk7CitpbnB1dDIuZm9jdXMoKTsKK2RlYnVnKCdBZnRlciBzdGVwVXAnKTsKK3Nob3Vs
ZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5u
ZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciIn
KTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAibm9uZS1hZ2FpbiI7CityZXN1bHQyLmlubmVySFRN
TCA9ICJuaWwiOworcmVzdWx0My5pbm5lckhUTUwgPSAibnVsbC1hZ2FpbiI7CisKK2RlYnVnKCcn
KTsKK2RlYnVnKCdOdW1iZXIgdHlwZSB3aXRob3V0IG9uZm9ybWlucHV0Jyk7CitkZWJ1ZygnQmVm
b3JlIHN0ZXBVcCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJub25lLWFnYWlu
IicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91bGRCZSgi
cmVzdWx0My5pbm5lckhUTUwiLCAnIm51bGwtYWdhaW4iJyk7CitpbnB1dDIuZm9jdXMoKTsKK3Nl
bmRLZXkoaW5wdXQyLCAnVXAnKTsKK2lucHV0MS5mb2N1cygpOworZGVidWcoJ0FmdGVyIHN0ZXBV
cCcpOworc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CitzaG91bGRCZSgi
cmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJyZXN1bHQzLmlubmVySFRN
TCIsICciYmFyIicpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJzdGlsbC1ub25lIjsKK3Jlc3Vs
dDIuaW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJzdGlsbC1udWxsIjsK
KworZGVidWcoJycpOworZGVidWcoJ1RleHQgdHlwZSB3aXRoIG9uZm9ybWlucHV0Jyk7CitpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZGVidWcoIkJlZm9yZSBpbnB1dCBhIHRleHQiKQor
ICAgIHNob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICcic3RpbGwtbm9uZSInKTsKKyAgICBz
aG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKKyAgICBzaG91bGRCZSgicmVz
dWx0My5pbm5lckhUTUwiLCAnInN0aWxsLW51bGwiJyk7CisgICAgaW5wdXQzLmZvY3VzKCk7Cisg
ICAgZXZlbnRTZW5kZXIua2V5RG93bignbicsIFtdKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3du
KCdlJywgW10pOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ3cnLCBbXSk7CisgICAgaW5wdXQx
LmZvY3VzKCk7CisgICAgZGVidWcoIkFmdGVyIHNlbmRpbmcgYSB0ZXh0Iik7CisgICAgc2hvdWxk
QmUoInJlc3VsdDEuaW5uZXJIVE1MIiwgJyJmb28iJyk7CisgICAgc2hvdWxkQmUoInJlc3VsdDIu
aW5uZXJIVE1MIiwgJyJuaWwiJyk7CisgICAgc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1MIiwg
JyJiYXIiJyk7Cit9IGVsc2UKKyAgICBkZWJ1ZygiTm8gZXZlbnRTZW5kZXIgYXZhaWxhYmxlLiIp
OworCityZXN1bHQxLmlubmVySFRNTCA9ICJib3Jpbmctbm9uZSI7CityZXN1bHQyLmlubmVySFRN
TCA9ICJuaWwiOworcmVzdWx0My5pbm5lckhUTUwgPSAiYm9yaW5nLW51bGwiOworCitkZWJ1Zygn
Jyk7CitkZWJ1ZygnVGV4dGFyZWEnKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBk
ZWJ1ZygiQmVmb3JlIGlucHV0IGEgdGV4dCIpCisgICAgc2hvdWxkQmUoInJlc3VsdDEuaW5uZXJI
VE1MIiwgJyJib3Jpbmctbm9uZSInKTsKKyAgICBzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwi
LCAnIm5pbCInKTsKKyAgICBzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJvcmluZy1u
dWxsIicpOworICAgIGlucHV0NC5mb2N1cygpOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ0gn
LCBbXSk7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bignYScsIFtdKTsKKyAgICBldmVudFNlbmRl
ci5rZXlEb3duKCdwJywgW10pOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ3AnLCBbXSk7Cisg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigneScsIFtdKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3du
KCchJywgW10pOworICAgIGlucHV0MS5mb2N1cygpOworICAgIGRlYnVnKCJBZnRlciBzZW5kaW5n
IGEgdGV4dCIpOworICAgIHNob3VsZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciZm9vIicpOwor
ICAgIHNob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworICAgIHNob3VsZEJl
KCJyZXN1bHQzLmlubmVySFRNTCIsICciYmFyIicpOworfSBlbHNlCisgICAgZGVidWcoIk5vIGV2
ZW50U2VuZGVyIGF2YWlsYWJsZS4iKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAic3RpY2t5LW5v
bmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gInN0
aWNreS1udWxsIjsKKworZGVidWcoJycpOworZGVidWcoJ1JhZGlvIGJ1dHRvbicpOworZGVidWco
IkJlZm9yZSBjaGVja2luZyIpCitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnInN0aWNr
eS1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJuaWwiJyk7CitzaG91
bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnInN0aWNreS1udWxsIicpOworaW5wdXQ1Mi5jbGlj
aygpOworZGVidWcoIkFmdGVyIGNoZWNraW5nIik7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhU
TUwiLCAnInN0aWNreS1ub25lIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJu
aWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnInN0aWNreS1udWxsIicpOwor
CityZXN1bHQxLmlubmVySFRNTCA9ICJpbnRyZXBpZC1ub25lIjsKK3Jlc3VsdDIuaW5uZXJIVE1M
ID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJpbnRyZXBpZC1udWxsIjsKKworZGVidWco
JycpOworZGVidWcoJ0NoZWNrYm94Jyk7CitkZWJ1ZygiQmVmb3JlIGNoZWNraW5nIikKK3Nob3Vs
ZEJlKCJyZXN1bHQxLmlubmVySFRNTCIsICciaW50cmVwaWQtbm9uZSInKTsKK3Nob3VsZEJlKCJy
ZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJlc3VsdDMuaW5uZXJIVE1M
IiwgJyJpbnRyZXBpZC1udWxsIicpOworaW5wdXQ2Mi5jbGljaygpOworZGVidWcoIkFmdGVyIGNo
ZWNraW5nIik7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnImludHJlcGlkLW5vbmUi
Jyk7CitzaG91bGRCZSgicmVzdWx0Mi5pbm5lckhUTUwiLCAnIm5pbCInKTsKK3Nob3VsZEJlKCJy
ZXN1bHQzLmlubmVySFRNTCIsICciaW50cmVwaWQtbnVsbCInKTsKKworcmVzdWx0MS5pbm5lckhU
TUwgPSAibmV2ZXItZ2l2ZS11cC1ub25lIjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7City
ZXN1bHQzLmlubmVySFRNTCA9ICJuZXZlci1naXZlLXVwLW51bGwiOworCitkZWJ1ZygnJyk7Citk
ZWJ1ZygnZm9ybS5kaXNwYXRjaEZvcm1JbnB1dCgpJyk7CitkZWJ1ZygnQmVmb3JlIGRpc3BhdGNo
Jyk7CitzaG91bGRCZSgicmVzdWx0MS5pbm5lckhUTUwiLCAnIm5ldmVyLWdpdmUtdXAtbm9uZSIn
KTsKK3Nob3VsZEJlKCJyZXN1bHQyLmlubmVySFRNTCIsICcibmlsIicpOworc2hvdWxkQmUoInJl
c3VsdDMuaW5uZXJIVE1MIiwgJyJuZXZlci1naXZlLXVwLW51bGwiJyk7Citmb3JtLmRpc3BhdGNo
Rm9ybUlucHV0KCk7CitkZWJ1ZygnQWZ0ZXIgZGlzcGF0Y2gnKTsKK3Nob3VsZEJlKCJyZXN1bHQx
LmlubmVySFRNTCIsICciZm9vIicpOworc2hvdWxkQmUoInJlc3VsdDIuaW5uZXJIVE1MIiwgJyJu
aWwiJyk7CitzaG91bGRCZSgicmVzdWx0My5pbm5lckhUTUwiLCAnImJhciInKTsKKworZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChyZXN1bHRzKTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
Zm9ybSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFl
NTM1MDVkZDhhNjNjYTllMDkyMWJhMGZkMzQ4NzIyNzkwMmIyZWUuLmNjODM2OGVmYjgyY2U4ZjU3
N2IwMzM1YjhmOTkzNWIyMTk2ZmY3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAx
MS0wMS0xMSAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IG9uZm9ybWNo
YW5nZSBhbmQgb25mb3JtaW5wdXQgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MTQxCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
Zm9ybXMvZm9ybWNoYW5nZS1ldmVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2Zv
cm1pbnB1dC1ldmVudC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtOiBBZGRlZCBldmVudCBuYW1lcy4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDogQWRkZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmlk
bDogQWRkZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDogQWRk
ZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOiBBZGRlZCBl
dmVudCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSk6IEFkZGVkIGEgY29uZGl0aW9uIGZvciBhIGZv
cm1jaGFuZ2UgZXZlbnQgaW4gaGFuZGxpbmcgdXNlciBnZXN0dXJlcy4KKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5oOiBBZGRlZCBldmVudCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vSW5w
dXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RWxlbWVudDo6c2V0VmFsdWVG
cm9tUmVuZGVyZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkgY2FsbCBpbnRv
IGRpc3BhdGNoSW5wdXRFdmVudHMoKSwgYSB2aXJ0dWFsIGZ1bmN0aW9uIHdoaWNoIGJyb2FkY2Fz
dHMgZm9ybWlucHV0IGV2ZW50cyBmb3IgSFRNTCBlbGVtZW50cy4KKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaElucHV0RXZlbnRzKTogRGVm
aW5lZCBiYXNpYyBkaXNwYXRjaElucHV0RXZlbnRzKCkgZGVzY3JpYmVkIGFib3ZlLgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IFJlcGxhY2VkIGEgZGlyZWN0
IGRpc3BhdGNoRXZlbnQoKSBjYWxsIGludG8gZGlzcGF0Y2hJbnB1dEV2ZW50cygpLgorICAgICAg
ICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFk
ZGVkIGV2ZW50IG5hbWVzLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogQWRkZWQgZXZl
bnQgaGFuZGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGlzcGF0Y2hJbnB1
dEV2ZW50cyk6IERlZmluZWQgZGlzcGF0Y2hJbnB1dEV2ZW50cygpIGZvciBIVE1MIGVsZW1lbnRz
IGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk6IEFk
ZGVkIGNhbGxpbmcgZGlzcGF0Y2hGb3JtQ2hhbmdlKCkgdG8gYnJvYWRjYXN0IGZvcm1jaGFuZ2Ug
ZXZlbnRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0
Y2hGb3JtQ29udHJvbElucHV0RXZlbnQpOiBEZWZpbmVkIG5ld2x5IHRvIGRpc3BhdGNoIGFuIGlu
cHV0IGV2ZW50IHdpdGggYnJvYWRjYXN0aW5nIGZvcm1pbnB1dCBldmVudHMuCisgICAgICAgICog
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjpkaXNwYXRjaEZv
cm1JbnB1dCk6IERlZmluZWQgbmV3bHkgdG8gYnJvYWRjYXN0IGZvcm1pbnB1dCBldmVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNoYW5nZSk6IERl
ZmluZWQgbmV3bHkgdG8gYnJvYWRjYXN0IGZvcm1jaGFuZ2UgZXZlbnRzLgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRs
OiBBZGRlZCBkaXNwYXRjaEZvcm1JbnB1dCgpIGFuZCBkaXNwYXRjaEZvcm1DaGFuZ2UoKSBET00g
QVBJIGRlZmluaXRpb25zLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIpOiBS
ZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkgY2FsbCBpbnRvIGRpc3BhdGNoSW5wdXRF
dmVudHMoKS4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOiBBZGRlZCBldmVudCBkZWZpbml0
aW9ucy4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IEFkZGVkIGV2ZW50IGRlZmluaXRp
b25zLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKTogUmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50
byBkaXNwYXRjaElucHV0RXZlbnRzKCkuCisKIDIwMTAtMTAtMTAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCmluZGV4IDE4NjNkOGYzOGI3ZWIyYWM0MmViMjNmODZmYmFmNTIxZDNlNmU4Y2UuLmVk
NzZkMDhiMjBmNjEyMWIwYzJhNWMxNzM4YmMwMjg3Njc1ZGUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpA
QCAtNTE4LDcgKzUxOCw3IEBAIG15IEBldmVudFNpZ25hbE5hbWVzID0gKAogICAgICMgVXNlciBJ
bnRlcmZhY2UgRXZlbnQgdHlwZXMKICAgICAiZm9jdXMiLCAiYmx1ciIsCiAgICAgIyBCYXNpYyBF
dmVudCB0eXBlcwotICAgICJsb2FkIiwgInVubG9hZCIsICJhYm9ydCIsICJlcnJvciIsICJzZWxl
Y3QiLCAiY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCisgICAgImxvYWQiLCAidW5sb2FkIiwg
ImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAiZm9ybWNoYW5nZSIsICJzdWJt
aXQiLCAicmVzZXQiLAogICAgICJyZXNpemUiLCAic2Nyb2xsIiwKICAgICAjIE1vdXNlIEV2ZW50
IHR5cGVzCiAgICAgImNsaWNrIiwgImRibGNsaWNrIiwgIm1vdXNlZG93biIsICJtb3VzZXVwIiwK
QEAgLTU0MCw3ICs1NDAsNyBAQCBteSBAZXZlbnRTaWduYWxOYW1lcyA9ICgKICAgICAjIEFuaW1h
dGlvbnMKICAgICAid2Via2l0YW5pbWF0aW9uZW5kIiwgIndlYmtpdGFuaW1hdGlvbnN0YXJ0Iiwg
IndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiIsCiAgICAgIyBPdGhlcgotICAgICJjb250ZXh0bWVu
dSIsICJpbnB1dCIsICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOworICAgICJj
b250ZXh0bWVudSIsICJpbnB1dCIsICJmb3JtaW5wdXQiLCAiaW52YWxpZCIsICJzZWFyY2giLCAi
c2VsZWN0c3RhcnQiKTsKIAogc3ViIEdlbmVyYXRlUHJvcGVydGllcyB7CiAgICAgbXkgKCRvYmpl
Y3QsICRpbnRlcmZhY2VOYW1lLCAkZGF0YU5vZGUpID0gQF87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGZiMWFlMzFhNTdkODViNzUwZjMyNzdkYjQ5MmJmMzQ0YTQ4ZmUxNGIuLjk0ZWVjYTEwMGQy
MThhN2Y5YzhiODVjMDExMTc2MDFhNjA0ZTZjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0y
NTAsNiArMjUwLDggQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZHJhZ3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRyYWcp
OwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ2VuZCk7CisgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hhbmdlKTsKKyAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihpbnZhbGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGtleWRvd24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggOGQ3YTcxYmExMjA2MjBkNTZjODhlNzkwNmMx
YTgwMWU4MzNhNWQzYi4uYzIxNWRmMDRjYjcxZTU5M2Q1NWNiZWJiNTZmYjUwZDQyNDgwYzBjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNjYsNiArMjY2LDggQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJvcDsKICAg
ICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKQEAgLTI4OCw4ICsyOTAsNiBA
QCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25kdXJhdGlvbmNoYW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmVtcHRpZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCBlNTUyMzc2OTZmZjM2YjMwNDI0NjI4NWQ3OTEyMzBmMjYzNjViNDc0Li41NDQ5
YzAzNTJlMmY5OTBjNmI1NTE3YWQ3ZTVkYTU3MzgyMzc0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTYzLDYgKzYzLDggQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIoZHJhZ3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRy
YWcpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ2VuZCk7CisgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hhbmdlKTsKKyAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihpbnZhbGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGtleWRv
d24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdjYjYzYzI1YzQzNzhkYTIxYzRmZGQzZTFm
NGNiNjVhODQ0N2E4YzkuLjY1MmE3NWI2NzRjNjAxOTQyYzg2YTFmNjBhZDYyMDg3NDA1MGY5Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTE1Myw2ICsxNTMsOCBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcm9wOwogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAg
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFuZ2U7CisgICAgICAgIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKICAgICAgICAgYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwpAQCAtMTc0LDggKzE3Niw2IEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0
ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRtZXRhZGF0YTsKICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQu
Y3BwCmluZGV4IDBhMTUzOGIwYjAzZWRmOWFkNTE0ZTcxYzBmOWQwMGM1NTg2YzI2NTAuLjI0ZWZj
NGVlZTkwYjgyYWEwMmVjMTI3YjVmNjI5ODdjODU4ZDZhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApA
QCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgRXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSgpCiAgICAgICAg
IC8vIG90aGVyIGFjY2VwdGVkIGV2ZW50cwogICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS5zZWxlY3RFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudAogICAgICAg
ICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1l
cygpLmJsdXJFdmVudAotICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5zdWJtaXRFdmVu
dDsKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc3VibWl0RXZlbnQgfHwgdHlwZSA9
PSBldmVudE5hbWVzKCkuZm9ybWNoYW5nZUV2ZW50OwogfQogCiBib29sIEV2ZW50OjpzdG9yZXNS
ZXN1bHRBc1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA0OTY4MDRl
ZTUwYWY4Y2JmM2M3YTMxN2MyY2FkNzdjNTExYzEzZjc0Li43Mjc2OGQyMzgyMWE1N2ZkNGM0ZmQ0
OTU2MzY2NTRhNDQwNTE5YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTY2LDYgKzY2
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGZvY3VzKSBcCiAgICAgbWFjcm8o
Zm9jdXNpbikgXAogICAgIG1hY3JvKGZvY3Vzb3V0KSBcCisgICAgbWFjcm8oZm9ybWNoYW5nZSkg
XAorICAgIG1hY3JvKGZvcm1pbnB1dCkgXAogICAgIG1hY3JvKGhhc2hjaGFuZ2UpIFwKICAgICBt
YWNybyhpbnB1dCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxl
bWVudC5jcHAKaW5kZXggMzcyMTFkOGVlMjc3ZDA4MDZiZGM5NjE3NGU5ZWJlZDgzYTBmNTE2OC4u
ZGI4OWMxNjQwYzAyNmQxNTg4YTRkMzhlZWY4YmQ0NWNiNDNmNzllOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0lucHV0RWxlbWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIElucHV0RWxlbWVudDo6
c2V0VmFsdWVGcm9tUmVuZGVyZXIoSW5wdXRFbGVtZW50RGF0YSYgZGF0YSwgSW5wdXRFbGVtZW50
KiBpbgogCiAgICAgLy8gSW5wdXQgZXZlbnQgaXMgZmlyZWQgYnkgdGhlIE5vZGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIgZm9yIGVkaXRhYmxlIGNvbnRyb2xzLgogICAgIGlmICghaW5wdXRFbGVtZW50
LT5pc1RleHRGaWVsZCgpKQotICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAgICAgIGVs
ZW1lbnQtPmRpc3BhdGNoSW5wdXRFdmVudHMoKTsKICAgICBub3RpZnlGb3JtU3RhdGVDaGFuZ2Vk
KGVsZW1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYTU4OTI4MmYyMGE2NWE2YzYxN2Y4
MDMxM2IwYWIyOThhNGQ2ZThjYy4uZjkwYmU5MDE4ZDc4ZmM4MTg0OGMwZDEyZmU5MjEyNGZiNGY0
NTgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjkzOSw2ICsyOTM5LDExIEBAIHZvaWQgTm9kZTo6
ZGlzcGF0Y2hCbHVyRXZlbnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBOb2RlOjpkaXNw
YXRjaElucHV0RXZlbnRzKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7Cit9CisKIGJvb2wgTm9kZTo6ZGlz
YWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTI5OTYsNyArMzAwMSw3IEBA
IHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAg
ICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihzdGFydE5v
ZGUsIHdoZWVsRXZlbnQpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkud2Via2l0RWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50KSB7Ci0gICAgICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFs
c2UpKTsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKaW5kZXggOTJiYTlkMzM4MWRlYTllMDNkNzNkYmIyZjk2MzM2NWIyZjhlZjQyZi4uNWNlZmFm
YThjMTdmZjkyNDBlOTU4ZGQ2OTczYWIyZjk2NDYwODUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01NDEs
NiArNTQxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVu
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaElucHV0RXZlbnRzKCk7CiAKICAgICAvLyBQZXJmb3JtIHRoZSBkZWZhdWx0
IGFjdGlvbiBmb3IgYW4gZXZlbnQuCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5k
ZXggNTEzZTQ0ZjVlZWI2MWE1OTViMzQzNDM3MmEwZmE2YTUyNDY2ZGJlMy4uZWFjOWE3MzBkZTc2
ZDkwNjI3MjNjZDlmY2U4ZTMxY2Q2MjE3ZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KQEAgLTE3Nyw2ICsxNzcsOCBAQCBvbmVycm9yCiBvbmZvY3VzCiBv
bmZvY3VzaW4KIG9uZm9jdXNvdXQKK29uZm9ybWNoYW5nZQorb25mb3JtaW5wdXQKIG9uaGFzaGNo
YW5nZQogb25pbnB1dAogb25pbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IGE1MDRmNzU2NWM3NGRiZjEwY2U0NzdmYWNhMDlhNjEzMzY3NGIyMTEuLjExNTc2ZjQ1YTVl
OTBlYzQ5MDhiZjQ0NmRmODQ2NGE0ZmZlZTc3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCkBAIC0xOTAsNiArMTkwLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0
ZW5lcihldmVudE5hbWVzKCkuZm9jdXNpbkV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3Vz
b3V0QXR0cikgewogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5mb2N1c291dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIp
KTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvcm1jaGFuZ2VBdHRyKSB7Cisg
ICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1jaGFuZ2VF
dmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb3JtaW5wdXRBdHRyKSB7CisgICAgICAgIHNldEF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50LCBjcmVhdGVB
dHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbmJsdXJBdHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0
aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25rZXlkb3duQXR0
cikgewpAQCAtODE5LDYgKzgyMywyNiBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2
aXJ0dWFsRm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIGZpbmRGb3JtQW5jZXN0b3IoKTsKIH0KIAor
dm9pZCBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hJbnB1dEV2ZW50cygpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkp
OworCisgICAgSFRNTEZvcm1FbGVtZW50KiBvd25lckZvcm07CisgICAgTm9kZSogYW5jZXN0b3JO
b2RlID0gc2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAgaWYgKGFuY2VzdG9yTm9kZSkgeworICAg
ICAgICBpZiAoIWFuY2VzdG9yTm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBIVE1MRWxlbWVudCogYW5jZXN0b3JIVE1MID0gc3RhdGljX2Nhc3Q8SFRN
TEVsZW1lbnQqPihhbmNlc3Rvck5vZGUpOworICAgICAgICBpZiAoIWFuY2VzdG9ySFRNTCkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb3duZXJGb3JtID0gYW5jZXN0b3JIVE1MLT5mb3Jt
KCk7CisgICAgfSBlbHNlCisgICAgICAgIG93bmVyRm9ybSA9IGZvcm0oKTsKKworICAgIGlmIChv
d25lckZvcm0pCisgICAgICAgIG93bmVyRm9ybS0+ZGlzcGF0Y2hGb3JtSW5wdXQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCmluZGV4IDYzY2UxMTBkYTNhNDU3MGNhODkxZDhkMDYxYzc0ZjY0ZmEyMDUxN2Yu
LjM1YWVlMDY2YjcxYTlhYzUxMzc1ZjlmYjExYzMzYWVjZTA0YzE5ZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogCiAgICAgSFRNTEZvcm1F
bGVtZW50KiBmaW5kRm9ybUFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggODU1NmMxZTk4OTMwMmExMGI0
ODZmY2JlZmVmNjA0ZjhiYTE4OTkwOC4uODkyMzBiNmFhM2RiNTVlNjUzYWVhOTBlY2U4NTI2MzQ3
MmNlNjcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCkBAIC0xNzMsNiArMTczLDE3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
c2V0TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogdm9pZCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKQogewogICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNl
KSk7CisgICAgSFRNTEZvcm1FbGVtZW50KiBvd25lckZvcm0gPSBmb3JtKCk7CisgICAgaWYgKG93
bmVyRm9ybSkKKyAgICAgICAgb3duZXJGb3JtLT5kaXNwYXRjaEZvcm1DaGFuZ2UoKTsKK30KKwor
dm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVu
dCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1
dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgIEhUTUxGb3JtRWxlbWVudCogb3duZXJGb3JtID0g
Zm9ybSgpOworICAgIGlmIChvd25lckZvcm0pCisgICAgICAgIG93bmVyRm9ybS0+ZGlzcGF0Y2hG
b3JtSW5wdXQoKTsKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXREaXNhYmxl
ZChib29sIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CmluZGV4IGU1ZDc0MWJhZjEyMTk2ODExNjBhMTgxMWM3MDc3OWJhYWU0M2IwMWQuLmQ0NzE4MTc2
ZmUyN2Y2OWIzMjY2MmU2NGUwNjdjOTM0NDQxOWEzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihib29sIGIp
IHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hG
b3JtQ29udHJvbElucHV0RXZlbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2FibGVkKGJvb2wpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IGM4OTZiYmYzYjI4N2Rh
NjIzYzA5OTliN2I0NTE4YTdhNTVjMmJhOWUuLjkxMDcxMGQwOWE2N2FjYmY4MDcyM2E2MWNjNDgw
OGY1ZGExOWE2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAg
LTU5MCw2ICs1OTAsMzAgQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkoKQog
ICAgIHJldHVybiBjb250cm9scy5pc0VtcHR5KCk7CiB9CiAKK3ZvaWQgSFRNTEZvcm1FbGVtZW50
OjpkaXNwYXRjaEZvcm1JbnB1dCgpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fYXNzb2NpYXRlZEVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudCogY29uc3QgZm9ybUFzc29jaWF0ZWRFbGVtZW50ID0gbV9hc3NvY2lhdGVk
RWxlbWVudHNbaV07CisgICAgICAgIGlmICghZm9ybUFzc29jaWF0ZWRFbGVtZW50LT5pc0Zvcm1D
b250cm9sRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqIGZvcm1FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9s
RWxlbWVudCo+KGZvcm1Bc3NvY2lhdGVkRWxlbWVudCk7CisgICAgICAgIGlmICghZm9ybUVsZW1l
bnQtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9ybWlucHV0RXZl
bnQsIGZhbHNlLCBmYWxzZSkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgfQorfQorCit2
b2lkIEhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ2hhbmdlKCkgY29uc3QKK3sKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hc3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBjb25zdCBmb3JtQXNzb2NpYXRlZEVs
ZW1lbnQgPSBtX2Fzc29jaWF0ZWRFbGVtZW50c1tpXTsKKyAgICAgICAgaWYgKCFmb3JtQXNzb2Np
YXRlZEVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9ybUVsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZm9ybUFzc29jaWF0ZWRFbGVtZW50KTsKKyAg
ICAgICAgaWYgKCFmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgfQorfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6Y29sbGVjdFVuaGFuZGxl
ZEludmFsaWRDb250cm9scyhWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVkRWxlbWVudD4gPiYg
dW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQogewogICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IHByb3RlY3Rvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4
IGJkMDg3YjhkZmE1NDRhM2M5YzgyNjBmYmM2MTJkZjNiZGY4NGFlNmUuLjlkYmJlYTg3MWY1Nzg3
ZGMwZjkxMDlhYTFiODdkOGUxMDM3OGQ2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaApAQCAtMTE0LDYgKzExNCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxG
b3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgYXNzb2NpYXRlZEVsZW1lbnRzKCkgY29uc3QgeyByZXR1
cm4gbV9hc3NvY2lhdGVkRWxlbWVudHM7IH0KIAorICAgIHZvaWQgZGlzcGF0Y2hGb3JtSW5wdXQo
KSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpIGNvbnN0OworCiBwcml2YXRl
OgogICAgIEhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4IGU5NzU5ZTI1MzE5
ZjI4YzdhYmYzNjYyNTZhMTY2ODljZTljNWQwYzAuLjNlOWU0NmQwNGUzNjY4ODA0OWE5MGQ2OWEz
ZTcwNDA5MzI3MmU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwK
QEAgLTQzLDYgKzQzLDkgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgICAgIHZvaWQgcmVz
ZXQoKTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7CisKKyAgICAgICAgdm9pZCBk
aXNwYXRjaEZvcm1JbnB1dCgpOworICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpOwog
ICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4
IDAwNzYzOWIyMWFkZGUwMzgwNTBiNzI1MDJiMjA0YTEwMTdiMWQ0NGUuLjBjNDc5NTMwMWRlNzkz
NGZiODAwNWJmZWYzZDk0MzI2MWM1YTdlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcApAQCAtMTM3Miw3ICsxMzcyLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgIGlmIChtX2lucHV0VHlwZS0+aXNS
YW5nZUNvbnRyb2woKSkKICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAgICAgICAgICBk
aXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKaW5kZXggOWU3MmRlYzMxOGExMTA1MDQwYzk2NjBhMWU1ZGIxMzk1YzlmNzgzMC4u
N2NkYzJmODQzZTg0OGM1MDY0MTQyMGU5MGRkZTczZThjODIzNDcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCkBAIC0yNjksNiArMjY5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsKICAgICAgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CiAgICAgICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoZm9jdXMpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKGZvcm1jaGFuZ2UpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoaGFzaGNoYW5nZSk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
aW5wdXQpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDM4OWQ1ZWRhNDAwNmRjZjU4ODU3OWU2
NjIyNjMwYmI4YzAyYWY5MzYuLmE4YzM2YWYwMGE5NzFhNDA3YWYyOWMxNWQxYmQ5NjJjMzE5MGRi
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTI2Myw2ICsyNjMsOCBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1
dDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwogICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmludmFsaWQ7CkBAIC0zMDcsOCArMzA5LDYgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25iZWZvcmVwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25mb3JtY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1p
bnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hh
bmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlZG87CiAgICAgICAg
IC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2hvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZDZmYzdh
YWFjODIwMjQxMDdlY2RiM2JiODE3M2U4N2IyMjhlZDdkZC4uNDI2MWQ3ZGViYjNhYTBhMWEzYzJh
OTJhN2VkNWQ3OWFkM2NmZjgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lk
IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICAgICAgaW5wdXQtPnNldFZhbHVlKCIiKTsKICAgICAgICAg
ICAgICAgICBpZiAoIW9sZFZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICB0
b1JlbmRlclRleHRDb250cm9sKGlucHV0LT5yZW5kZXJlcigpKS0+c2V0Q2hhbmdlZFNpbmNlTGFz
dENoYW5nZUV2ZW50KHRydWUpOwotICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkp
OworICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZl
bnQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5wdXQtPm9uU2VhcmNo
KCk7CiAgICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78913</attachid>
            <date>2011-01-14 02:02:43 -0800</date>
            <delta_ts>2011-01-18 04:36:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110114190241.patch</filename>
            <type>text/plain</type>
            <size>51277</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MDY2Y2Y0MmFmNzMxYjZlYjBjZDFlODFmY2NmYWE1NTYyZDIwMTE3Li42ZTQ5Zjk4
MzUzN2YzZWQyYjJkZWIyNGZiMGJiNjc5OTNiNzVjMjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTQgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTEzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA1ZWJh
ZDgzMDczZGEyMzY3YWMwZjYwZjQ4YjI5YzNlZDliZjk5YmUxLi45NDQ4ZjMwMjllNzRjMTBjOGU0
NmVmMTU2OTA0OTZlMTA4MmNlZTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTIzMTEsNiAr
MjMxMSw4IEBAIHdpbmRvdy5vbmVtcHRpZWQgW251bGxdCiB3aW5kb3cub25lbmRlZCBbbnVsbF0K
IHdpbmRvdy5vbmVycm9yIFtudWxsXQogd2luZG93Lm9uZm9jdXMgW251bGxdCit3aW5kb3cub25m
b3JtY2hhbmdlIFtudWxsXQord2luZG93Lm9uZm9ybWlucHV0IFtudWxsXQogd2luZG93Lm9uaGFz
aGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5vbmlucHV0IFtudWxsXQogd2luZG93Lm9uaW52YWxpZCBb
bnVsbF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNjgzMTVh
ZDZkNGQ4YTlmYWRhMmU4ZDJiYTZlODZmYTc2NjVlODI5Ni4uZTUwNzgzOWI3MTUwYTNhMWI1ZGFi
OTZhMGQ1NGMwMmQ3NTAyYjk2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3Rl
ZC50eHQKQEAgLTM5Myw2ICszOTMsOCBAQCBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZW1wdGllZCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZW5kZWQnKSBpcyAn
b2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5k
b3csICdvbmVycm9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb25mb2N1cycpIGlzICdvYmplY3QnCitQQVNTIHR5cGVv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9ybWNoYW5nZScp
IGlzICdvYmplY3QnCitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ29uZm9ybWlucHV0JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb25oYXNoY2hhbmdlJykgaXMgJ29iamVj
dCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
b25pbnB1dCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ29uaW52YWxpZCcpIGlzICdvYmplY3QnCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYmJiOWQzNzg4NGM0MDBkYThhZjI2ZGE2ZDI0YWE5Zjc3NDg1NTQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDc4IEBACitUZXN0IGZvciBmb3JtY2hhbmdlIGV2ZW50cy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK051bWJlciB0eXBlIHdpdGggb25mb3JtY2hhbmdl
CitCZWZvcmUgc3RlcFVwCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJub25lIgorUEFTUyBy
ZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAibnVs
bCIKK0FmdGVyIHN0ZXBVcAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAiZm9vIgorUEFTUyBy
ZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAiYmFy
IgorCitOdW1iZXIgdHlwZSB3aXRob3V0IG9uZm9ybWNoYW5nZQorQmVmb3JlIHN0ZXBVcAorUEFT
UyByZXN1bHQxLmlubmVySFRNTCBpcyAibm9uZS1hZ2FpbiIKK1BBU1MgcmVzdWx0Mi5pbm5lckhU
TUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgIm51bGwtYWdhaW4iCitBZnRl
ciBzdGVwVXAKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5p
bm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworVGV4
dCB0eXBlIHdpdGggb25mb3JtY2hhbmdlCitCZWZvcmUgaW5wdXQgYSB0ZXh0CitQQVNTIHJlc3Vs
dDEuaW5uZXJIVE1MIGlzICJzdGlsbC1ub25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAi
bmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAic3RpbGwtbnVsbCIKK0FmdGVyIHNlbmRp
bmcgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIu
aW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK1Rl
eHRhcmVhCitCZWZvcmUgaW5wdXQgYSB0ZXh0CitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJi
b3Jpbmctbm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0
My5pbm5lckhUTUwgaXMgImJvcmluZy1udWxsIgorQWZ0ZXIgc2VuZGluZyBhIHRleHQKK1BBU1Mg
cmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5p
bCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworUmFkaW8gYnV0dG9uCitCZWZv
cmUgY2hlY2tpbmcKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgInN0aWNreS1ub25lIgorUEFT
UyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAi
c3RpY2t5LW51bGwiCitBZnRlciBjaGVja2luZworUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAi
Zm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVy
SFRNTCBpcyAiYmFyIgorCitDaGVja2JveAorQmVmb3JlIGNoZWNraW5nCitQQVNTIHJlc3VsdDEu
aW5uZXJIVE1MIGlzICJpbnRyZXBpZC1ub25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAi
bmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAiaW50cmVwaWQtbnVsbCIKK0FmdGVyIGNo
ZWNraW5nCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5u
ZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCisKK2Zvcm0u
ZGlzcGF0Y2hGb3JtQ2hhbmdlKCkKK0JlZm9yZSBkaXNwYXRjaAorUEFTUyByZXN1bHQxLmlubmVy
SFRNTCBpcyAibmV2ZXItZ2l2ZS11cC1ub25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAi
bmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAibmV2ZXItZ2l2ZS11cC1udWxsIgorQWZ0
ZXIgZGlzcGF0Y2gKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0
Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNmJi
YWMwOGQ5MmZmMmY1NjljOTJlNThjMTMyYTAxNmE3YWFiMzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFuZ2UtZXZlbnQuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2UtZXZl
bnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDk2N2I4M2NlYjBmZTJkNjRmMGM3NmM1YTY0YzliNzg1ZDZlNGY5MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDc4IEBACitUZXN0IGZvciBmb3JtaW5wdXQgZXZlbnRzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworTnVtYmVyIHR5cGUgd2l0aCBvbmZvcm1pbnB1dAorQmVm
b3JlIHN0ZXBVcAorUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAibm9uZSIKK1BBU1MgcmVzdWx0
Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgIm51bGwiCitB
ZnRlciBzdGVwVXAKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0
Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKwor
TnVtYmVyIHR5cGUgd2l0aG91dCBvbmZvcm1pbnB1dAorQmVmb3JlIHN0ZXBVcAorUEFTUyByZXN1
bHQxLmlubmVySFRNTCBpcyAibm9uZS1hZ2FpbiIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMg
Im5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgIm51bGwtYWdhaW4iCitBZnRlciBzdGVw
VXAKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhU
TUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworVGV4dCB0eXBl
IHdpdGggb25mb3JtaW5wdXQKK0JlZm9yZSBpbnB1dCBhIHRleHQKK1BBU1MgcmVzdWx0MS5pbm5l
ckhUTUwgaXMgInN0aWxsLW5vbmUiCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQ
QVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJzdGlsbC1udWxsIgorQWZ0ZXIgc2VuZGluZyBhIHRl
eHQKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImZvbyIKK1BBU1MgcmVzdWx0Mi5pbm5lckhU
TUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwgaXMgImJhciIKKworVGV4dGFyZWEK
K0JlZm9yZSBpbnB1dCBhIHRleHQKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgImJvcmluZy1u
b25lIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVy
SFRNTCBpcyAiYm9yaW5nLW51bGwiCitBZnRlciBzZW5kaW5nIGEgdGV4dAorUEFTUyByZXN1bHQx
LmlubmVySFRNTCBpcyAiZm9vIgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFT
UyByZXN1bHQzLmlubmVySFRNTCBpcyAiYmFyIgorCitSYWRpbyBidXR0b24KK0JlZm9yZSBjaGVj
a2luZworUEFTUyByZXN1bHQxLmlubmVySFRNTCBpcyAic3RpY2t5LW5vbmUiCitQQVNTIHJlc3Vs
dDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJlc3VsdDMuaW5uZXJIVE1MIGlzICJzdGlja3kt
bnVsbCIKK0FmdGVyIGNoZWNraW5nCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJzdGlja3kt
bm9uZSIKK1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5l
ckhUTUwgaXMgInN0aWNreS1udWxsIgorCitDaGVja2JveAorQmVmb3JlIGNoZWNraW5nCitQQVNT
IHJlc3VsdDEuaW5uZXJIVE1MIGlzICJpbnRyZXBpZC1ub25lIgorUEFTUyByZXN1bHQyLmlubmVy
SFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRNTCBpcyAiaW50cmVwaWQtbnVsbCIK
K0FmdGVyIGNoZWNraW5nCitQQVNTIHJlc3VsdDEuaW5uZXJIVE1MIGlzICJpbnRyZXBpZC1ub25l
IgorUEFTUyByZXN1bHQyLmlubmVySFRNTCBpcyAibmlsIgorUEFTUyByZXN1bHQzLmlubmVySFRN
TCBpcyAiaW50cmVwaWQtbnVsbCIKKworZm9ybS5kaXNwYXRjaEZvcm1JbnB1dCgpCitCZWZvcmUg
ZGlzcGF0Y2gKK1BBU1MgcmVzdWx0MS5pbm5lckhUTUwgaXMgIm5ldmVyLWdpdmUtdXAtbm9uZSIK
K1BBU1MgcmVzdWx0Mi5pbm5lckhUTUwgaXMgIm5pbCIKK1BBU1MgcmVzdWx0My5pbm5lckhUTUwg
aXMgIm5ldmVyLWdpdmUtdXAtbnVsbCIKK0FmdGVyIGRpc3BhdGNoCitQQVNTIHJlc3VsdDEuaW5u
ZXJIVE1MIGlzICJmb28iCitQQVNTIHJlc3VsdDIuaW5uZXJIVE1MIGlzICJuaWwiCitQQVNTIHJl
c3VsdDMuaW5uZXJIVE1MIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtaW5wdXQtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI3YTkyMDIwMjdlMTAzYjZiODU0MjIzZjViNGFjZmQ3YmEz
ZDczOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0
LWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9mb3JtY2hhbmdlLWV2ZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvZm9ybWNoYW5nZS1ldmVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY1ZGE0NmYxNGRmYzljOGExNmE4
ZDNmNzIxMjVkMzUyYmI0ZDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWNoYW5nZS1ldmVudC5qcwpAQCAtMCwwICsxLDE2OCBAQAor
ZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGZvcm1jaGFuZ2UgZXZlbnRzLicpOworCitmdW5jdGlvbiBz
ZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVh
dGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCdr
ZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIGtleU5hbWUpOworICAg
IGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK2Z1bmN0aW9uIHNlbmRUZXh0KGVs
ZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVGV4
dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVudCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1
ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVu
dChldmVudCk7Cit9CisKK3ZhciByZXN1bHRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwn
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdWx0cyk7Cit2YXIgcmVzdWx0MSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CityZXN1bHQxLnNldEF0dHJpYnV0ZSgnaWQnLCAn
cmVzdWx0MScpOworcmVzdWx0cy5hcHBlbmRDaGlsZChyZXN1bHQxKTsKK3ZhciByZXN1bHQyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK3Jlc3VsdDIuc2V0QXR0cmlidXRlKCdpZCcs
ICdyZXN1bHQyJyk7CityZXN1bHRzLmFwcGVuZENoaWxkKHJlc3VsdDIpOwordmFyIHJlc3VsdDMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworcmVzdWx0My5zZXRBdHRyaWJ1dGUoJ2lk
JywgJ3Jlc3VsdDMnKTsKK3Jlc3VsdHMuYXBwZW5kQ2hpbGQocmVzdWx0Myk7CisKK3ZhciBmb3Jt
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9ybS5zZXRBdHRyaWJ1dGUoJ2lk
JywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0gIjx1bD48bGkgaWQ9J2xpMSc+PC9saT48bGkg
aWQ9J2xpMic+PC9saT48bGkgaWQ9J2xpMyc+PC9saT48bGkgaWQ9J2xpNCc+PC9saT48bGkgaWQ9
J2xpNSc+PC9saT48bGkgaWQ9J2xpNic+PC9saT48bGkgaWQ9J2xpNyc+PC9saT48L3VsPiI7Citk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xpMScpLmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQxIiB2YWx1
ZT0iMjgiIG9uZm9ybWNoYW5nZT0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdyZXN1bHQxXCcp
LmlubmVyVGV4dD1cJ2Zvb1wnIiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGkyJyku
aW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnB1dDIiIHZhbHVlPSIxMiIg
Lz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpMycpLmlubmVySFRNTCA9ICc8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImlucHV0MyIgdmFsdWU9InNvbWUiIG9uZm9ybWNoYW5nZT0iZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCdyZXN1bHQzXCcpLmlubmVyVGV4dD1cJ2JhclwnIiAvPic7Citk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk0JykuaW5uZXJIVE1MID0gJzx0ZXh0YXJlYSBpZD0i
aW5wdXQ0IiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk1JykuaW5uZXJIVE1MID0g
JzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MSIgdmFsdWU9IjEi
IGNoZWNrZWQvPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MiIg
dmFsdWU9IjIiIC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTYnKS5pbm5lckhUTUwg
PSAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJpbnB1dDYxIiB2YWx1
ZT0iMSIgY2hlY2tlZC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJp
bnB1dDYyIiB2YWx1ZT0iMiIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpNycpLmlu
bmVySFRNTCA9ICc8cCBpZD0iZHVtbXl0ZXh0IiBvbmZvcm1jaGFuZ2U9ImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKFwncmVzdWx0MlwnKS5pbm5lckhUTUw9XCdiYXpcJyI+SGkhPC9wPic7CisKK3Zh
ciBpbnB1dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQxJyk7Cit2YXIgaW5wdXQy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MicpOwordmFyIGlucHV0MyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDMnKTsKK3ZhciBpbnB1dDQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW5wdXQ0Jyk7Cit2YXIgaW5wdXQ1MSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbnB1dDUxJyk7Cit2YXIgaW5wdXQ1MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
bnB1dDUyJyk7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gIm5vbmUiOworcmVzdWx0Mi5pbm5lckhU
TUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gIm51bGwiOworCitkZWJ1ZygnTnVtYmVy
IHR5cGUgd2l0aCBvbmZvcm1jaGFuZ2UnKTsKK2RlYnVnKCdCZWZvcmUgc3RlcFVwJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgIm5vbmUiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgIm51bGwiKTsKK2lucHV0MS5mb2N1cygpOwor
c2VuZEtleShpbnB1dDEsICdVcCcpOworaW5wdXQyLmZvY3VzKCk7CitkZWJ1ZygnQWZ0ZXIgc3Rl
cFVwJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgImZvbyIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQyLmlubmVySFRNTCIsICJuaWwiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0My5pbm5lckhUTUwiLCAiYmFyIik7CisKK3Jlc3Vs
dDEuaW5uZXJIVE1MID0gIm5vbmUtYWdhaW4iOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsK
K3Jlc3VsdDMuaW5uZXJIVE1MID0gIm51bGwtYWdhaW4iOworCitkZWJ1ZygnJyk7CitkZWJ1Zygn
TnVtYmVyIHR5cGUgd2l0aG91dCBvbmZvcm1jaGFuZ2UnKTsKK2RlYnVnKCdCZWZvcmUgc3RlcFVw
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgIm5vbmUtYWdh
aW4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgIm51bGwtYWdhaW4i
KTsKK2lucHV0Mi5mb2N1cygpOworc2VuZEtleShpbnB1dDIsICdVcCcpOworaW5wdXQxLmZvY3Vz
KCk7CitkZWJ1ZygnQWZ0ZXIgc3RlcFVwJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dDEuaW5uZXJIVE1MIiwgImZvbyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQyLmlu
bmVySFRNTCIsICJuaWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0My5pbm5lckhU
TUwiLCAiYmFyIik7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gInN0aWxsLW5vbmUiOworcmVzdWx0
Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gInN0aWxsLW51bGwiOwor
CitkZWJ1ZygnJyk7CitkZWJ1ZygnVGV4dCB0eXBlIHdpdGggb25mb3JtY2hhbmdlJyk7CitkZWJ1
ZygiQmVmb3JlIGlucHV0IGEgdGV4dCIpCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEu
aW5uZXJIVE1MIiwgInN0aWxsLW5vbmUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5u
ZXJIVE1MIiwgInN0aWxsLW51bGwiKTsKK2lucHV0My5mb2N1cygpOworc2VuZFRleHQoaW5wdXQz
LCAnbmV3Jyk7CitpbnB1dDEuZm9jdXMoKTsKK2RlYnVnKCJBZnRlciBzZW5kaW5nIGEgdGV4dCIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJmb28iKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgImJhciIpOworCityZXN1bHQxLmlu
bmVySFRNTCA9ICJib3Jpbmctbm9uZSI7CityZXN1bHQyLmlubmVySFRNTCA9ICJuaWwiOworcmVz
dWx0My5pbm5lckhUTUwgPSAiYm9yaW5nLW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnVGV4
dGFyZWEnKTsKK2RlYnVnKCJCZWZvcmUgaW5wdXQgYSB0ZXh0IikKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0MS5pbm5lckhUTUwiLCAiYm9yaW5nLW5vbmUiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgImJvcmluZy1udWxsIik7CitpbnB1dDQuZm9jdXMoKTsK
K3NlbmRUZXh0KGlucHV0NCwgJ0hhcHB5IScpOworaW5wdXQxLmZvY3VzKCk7CitkZWJ1ZygiQWZ0
ZXIgc2VuZGluZyBhIHRleHQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0MS5pbm5l
ckhUTUwiLCAiZm9vIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1M
IiwgIm5pbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQzLmlubmVySFRNTCIsICJi
YXIiKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAic3RpY2t5LW5vbmUiOworcmVzdWx0Mi5pbm5l
ckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gInN0aWNreS1udWxsIjsKKworZGVi
dWcoJycpOworZGVidWcoJ1JhZGlvIGJ1dHRvbicpOworZGVidWcoIkJlZm9yZSBjaGVja2luZyIp
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgInN0aWNreS1ub25l
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1MIiwgIm5pbCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQzLmlubmVySFRNTCIsICJzdGlja3ktbnVsbCIp
OworaW5wdXQ1Mi5jbGljaygpOworZGVidWcoIkFmdGVyIGNoZWNraW5nIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgImZvbyIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQyLmlubmVySFRNTCIsICJuaWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0My5pbm5lckhUTUwiLCAiYmFyIik7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gImlu
dHJlcGlkLW5vbmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJI
VE1MID0gImludHJlcGlkLW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnQ2hlY2tib3gnKTsK
K2RlYnVnKCJCZWZvcmUgY2hlY2tpbmciKQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQx
LmlubmVySFRNTCIsICJpbnRyZXBpZC1ub25lIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
c3VsdDIuaW5uZXJIVE1MIiwgIm5pbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQz
LmlubmVySFRNTCIsICJpbnRyZXBpZC1udWxsIik7CitpbnB1dDYyLmNsaWNrKCk7CitkZWJ1Zygi
QWZ0ZXIgY2hlY2tpbmciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0MS5pbm5lckhU
TUwiLCAiZm9vIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1MIiwg
Im5pbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQzLmlubmVySFRNTCIsICJiYXIi
KTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAibmV2ZXItZ2l2ZS11cC1ub25lIjsKK3Jlc3VsdDIu
aW5uZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJuZXZlci1naXZlLXVwLW51
bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnZm9ybS5kaXNwYXRjaEZvcm1DaGFuZ2UoKScpOwor
ZGVidWcoJ0JlZm9yZSBkaXNwYXRjaCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQx
LmlubmVySFRNTCIsICJuZXZlci1naXZlLXVwLW5vbmUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
c3VsdDMuaW5uZXJIVE1MIiwgIm5ldmVyLWdpdmUtdXAtbnVsbCIpOworZm9ybS5kaXNwYXRjaEZv
cm1DaGFuZ2UoKTsKK2RlYnVnKCdBZnRlciBkaXNwYXRjaCcpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJmb28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dDMuaW5uZXJIVE1MIiwgImJhciIpOworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJlc3Vs
dHMpOworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9mb3JtaW5wdXQtZXZlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg4MWY3ZTUxM2ViYWY5YmE1
YTA1NzY4ZTY1ZGQwYmE0YmZmMTg5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcwpAQCAtMCwwICsxLDE4MSBA
QAorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGZvcm1pbnB1dCBldmVudHMuJyk7CisKK2Z1bmN0aW9u
IHNlbmRLZXkoZWxlbWVudCwga2V5TmFtZSkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEtleWJvYXJkRXZlbnQo
J2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmlldywga2V5TmFtZSk7Cisg
ICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24gc2VuZFRleHQo
ZWxlbWVudCwgdGV4dCkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdU
ZXh0RXZlbnQnKTsKKyAgICBldmVudC5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQnLCB0cnVlLCB0
cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgdGV4dCk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2
ZW50KGV2ZW50KTsKK30KKwordmFyIHJlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1
bCcpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHRzKTsKK3ZhciByZXN1bHQxID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK3Jlc3VsdDEuc2V0QXR0cmlidXRlKCdpZCcs
ICdyZXN1bHQxJyk7CityZXN1bHRzLmFwcGVuZENoaWxkKHJlc3VsdDEpOwordmFyIHJlc3VsdDIg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworcmVzdWx0Mi5zZXRBdHRyaWJ1dGUoJ2lk
JywgJ3Jlc3VsdDInKTsKK3Jlc3VsdHMuYXBwZW5kQ2hpbGQocmVzdWx0Mik7Cit2YXIgcmVzdWx0
MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CityZXN1bHQzLnNldEF0dHJpYnV0ZSgn
aWQnLCAncmVzdWx0MycpOworcmVzdWx0cy5hcHBlbmRDaGlsZChyZXN1bHQzKTsKKwordmFyIGZv
cm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtLnNldEF0dHJpYnV0ZSgn
aWQnLCAnZm9ybScpOworZm9ybS5pbm5lckhUTUwgPSAiPHVsPjxsaSBpZD0nbGkxJz48L2xpPjxs
aSBpZD0nbGkyJz48L2xpPjxsaSBpZD0nbGkzJz48L2xpPjxsaSBpZD0nbGk0Jz48L2xpPjxsaSBp
ZD0nbGk1Jz48L2xpPjxsaSBpZD0nbGk2Jz48L2xpPjxsaSBpZD0nbGk3Jz48L2xpPjwvdWw+IjsK
K2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbGkxJykuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnB1dDEiIHZh
bHVlPSIyOCIgb25mb3JtaW5wdXQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwncmVzdWx0MVwn
KS5pbm5lclRleHQ9XCdmb29cJyIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpMicp
LmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQyIiB2YWx1ZT0iMTIi
IC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTMnKS5pbm5lckhUTUwgPSAnPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpbnB1dDMiIHZhbHVlPSJzb21lIiBvbmZvcm1pbnB1dD0iZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCdyZXN1bHQzXCcpLmlubmVyVGV4dD1cJ2JhclwnIiAvPic7Citk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk0JykuaW5uZXJIVE1MID0gJzx0ZXh0YXJlYSBpZD0i
aW5wdXQ0IiAvPic7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGk1JykuaW5uZXJIVE1MID0g
JzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MSIgdmFsdWU9IjEi
IGNoZWNrZWQvPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQ1IiBpZD0iaW5wdXQ1MiIg
dmFsdWU9IjIiIC8+JzsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaTYnKS5pbm5lckhUTUwg
PSAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJpbnB1dDYxIiB2YWx1
ZT0iMSIgY2hlY2tlZC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dDYiIGlkPSJp
bnB1dDYyIiB2YWx1ZT0iMiIgLz4nOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpNycpLmlu
bmVySFRNTCA9ICc8cCBpZD0iZHVtbXl0ZXh0IiBvbmZvcm1pbnB1dD0iZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoXCdyZXN1bHQyXCcpLmlubmVySFRNTD1cJ2JhelwnIj5IaSE8L3A+JzsKKwordmFy
IGlucHV0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDEnKTsKK3ZhciBpbnB1dDIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQyJyk7Cit2YXIgaW5wdXQzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MycpOwordmFyIGlucHV0NCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbnB1dDQnKTsKK3ZhciBpbnB1dDUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lucHV0NTEnKTsKK3ZhciBpbnB1dDUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lu
cHV0NTInKTsKKworcmVzdWx0MS5pbm5lckhUTUwgPSAibm9uZSI7CityZXN1bHQyLmlubmVySFRN
TCA9ICJuaWwiOworcmVzdWx0My5pbm5lckhUTUwgPSAibnVsbCI7CisKK2RlYnVnKCdOdW1iZXIg
dHlwZSB3aXRoIG9uZm9ybWlucHV0Jyk7CitkZWJ1ZygnQmVmb3JlIHN0ZXBVcCcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJub25lIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1MIiwgIm5pbCIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQzLmlubmVySFRNTCIsICJudWxsIik7CitpbnB1dDEuZm9jdXMoKTsKK3Nl
bmRLZXkoaW5wdXQxLCAnVXAnKTsKK2lucHV0Mi5mb2N1cygpOworZGVidWcoJ0FmdGVyIHN0ZXBV
cCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJmb28iKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgImJhciIpOworCityZXN1bHQx
LmlubmVySFRNTCA9ICJub25lLWFnYWluIjsKK3Jlc3VsdDIuaW5uZXJIVE1MID0gIm5pbCI7City
ZXN1bHQzLmlubmVySFRNTCA9ICJudWxsLWFnYWluIjsKKworZGVidWcoJycpOworZGVidWcoJ051
bWJlciB0eXBlIHdpdGhvdXQgb25mb3JtaW5wdXQnKTsKK2RlYnVnKCdCZWZvcmUgc3RlcFVwJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgIm5vbmUtYWdhaW4i
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgIm51bGwtYWdhaW4iKTsK
K2lucHV0Mi5mb2N1cygpOworc2VuZEtleShpbnB1dDIsICdVcCcpOworaW5wdXQxLmZvY3VzKCk7
CitkZWJ1ZygnQWZ0ZXIgc3RlcFVwJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEu
aW5uZXJIVE1MIiwgImZvbyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQyLmlubmVy
SFRNTCIsICJuaWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0My5pbm5lckhUTUwi
LCAiYmFyIik7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gInN0aWxsLW5vbmUiOworcmVzdWx0Mi5p
bm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gInN0aWxsLW51bGwiOworCitk
ZWJ1ZygnJyk7CitkZWJ1ZygnVGV4dCB0eXBlIHdpdGggb25mb3JtaW5wdXQnKTsKK2lmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICBkZWJ1ZygiQmVmb3JlIGlucHV0IGEgdGV4dCIpCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJzdGlsbC1ub25lIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQyLmlubmVySFRNTCIsICJuaWwiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgInN0aWxsLW51
bGwiKTsKKyAgICBpbnB1dDMuZm9jdXMoKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCduJywg
W10pOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2UnLCBbXSk7CisgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigndycsIFtdKTsKKyAgICBpbnB1dDEuZm9jdXMoKTsKKyAgICBkZWJ1ZygiQWZ0ZXIg
c2VuZGluZyBhIHRleHQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDEuaW5u
ZXJIVE1MIiwgImZvbyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5pbm5l
ckhUTUwiLCAibmlsIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQzLmlubmVy
SFRNTCIsICJiYXIiKTsKK30gZWxzZQorICAgIGRlYnVnKCJObyBldmVudFNlbmRlciBhdmFpbGFi
bGUuIik7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gImJvcmluZy1ub25lIjsKK3Jlc3VsdDIuaW5u
ZXJIVE1MID0gIm5pbCI7CityZXN1bHQzLmlubmVySFRNTCA9ICJib3JpbmctbnVsbCI7CisKK2Rl
YnVnKCcnKTsKK2RlYnVnKCdUZXh0YXJlYScpOworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewor
ICAgIGRlYnVnKCJCZWZvcmUgaW5wdXQgYSB0ZXh0IikKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdDEuaW5uZXJIVE1MIiwgImJvcmluZy1ub25lIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXN1bHQyLmlubmVySFRNTCIsICJuaWwiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgImJvcmluZy1udWxsIik7CisgICAgaW5wdXQ0
LmZvY3VzKCk7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bignSCcsIFtdKTsKKyAgICBldmVudFNl
bmRlci5rZXlEb3duKCdhJywgW10pOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ3AnLCBbXSk7
CisgICAgZXZlbnRTZW5kZXIua2V5RG93bigncCcsIFtdKTsKKyAgICBldmVudFNlbmRlci5rZXlE
b3duKCd5JywgW10pOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJyEnLCBbXSk7CisgICAgaW5w
dXQxLmZvY3VzKCk7CisgICAgZGVidWcoIkFmdGVyIHNlbmRpbmcgYSB0ZXh0Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJmb28iKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1MIiwgIm5pbCIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVzdWx0My5pbm5lckhUTUwiLCAiYmFyIik7Cit9IGVsc2UKKyAg
ICBkZWJ1ZygiTm8gZXZlbnRTZW5kZXIgYXZhaWxhYmxlLiIpOworCityZXN1bHQxLmlubmVySFRN
TCA9ICJzdGlja3ktbm9uZSI7CityZXN1bHQyLmlubmVySFRNTCA9ICJuaWwiOworcmVzdWx0My5p
bm5lckhUTUwgPSAic3RpY2t5LW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnUmFkaW8gYnV0
dG9uJyk7CitkZWJ1ZygiQmVmb3JlIGNoZWNraW5nIikKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVzdWx0MS5pbm5lckhUTUwiLCAic3RpY2t5LW5vbmUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
c3VsdDMuaW5uZXJIVE1MIiwgInN0aWNreS1udWxsIik7CitpbnB1dDUyLmNsaWNrKCk7CitkZWJ1
ZygiQWZ0ZXIgY2hlY2tpbmciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0MS5pbm5l
ckhUTUwiLCAic3RpY2t5LW5vbmUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0Mi5p
bm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDMuaW5uZXJI
VE1MIiwgInN0aWNreS1udWxsIik7CisKK3Jlc3VsdDEuaW5uZXJIVE1MID0gImludHJlcGlkLW5v
bmUiOworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gImlu
dHJlcGlkLW51bGwiOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnQ2hlY2tib3gnKTsKK2RlYnVnKCJC
ZWZvcmUgY2hlY2tpbmciKQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRN
TCIsICJpbnRyZXBpZC1ub25lIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdDIuaW5u
ZXJIVE1MIiwgIm5pbCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQzLmlubmVySFRN
TCIsICJpbnRyZXBpZC1udWxsIik7CitpbnB1dDYyLmNsaWNrKCk7CitkZWJ1ZygiQWZ0ZXIgY2hl
Y2tpbmciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0MS5pbm5lckhUTUwiLCAiaW50
cmVwaWQtbm9uZSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQyLmlubmVySFRNTCIs
ICJuaWwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0My5pbm5lckhUTUwiLCAiaW50
cmVwaWQtbnVsbCIpOworCityZXN1bHQxLmlubmVySFRNTCA9ICJuZXZlci1naXZlLXVwLW5vbmUi
OworcmVzdWx0Mi5pbm5lckhUTUwgPSAibmlsIjsKK3Jlc3VsdDMuaW5uZXJIVE1MID0gIm5ldmVy
LWdpdmUtdXAtbnVsbCI7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdmb3JtLmRpc3BhdGNoRm9ybUlu
cHV0KCknKTsKK2RlYnVnKCdCZWZvcmUgZGlzcGF0Y2gnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0MS5pbm5lckhUTUwiLCAibmV2ZXItZ2l2ZS11cC1ub25lIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdDIuaW5uZXJIVE1MIiwgIm5pbCIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQzLmlubmVySFRNTCIsICJuZXZlci1naXZlLXVwLW51bGwiKTsKK2Zvcm0u
ZGlzcGF0Y2hGb3JtSW5wdXQoKTsKK2RlYnVnKCdBZnRlciBkaXNwYXRjaCcpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQxLmlubmVySFRNTCIsICJmb28iKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0Mi5pbm5lckhUTUwiLCAibmlsIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdDMuaW5uZXJIVE1MIiwgImJhciIpOworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKHJlc3VsdHMpOworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlNzc0MWY3ZTAwZDk4MzM4
YTYzM2UxNjFlMTZmMzE0YmVmYmUwNy4uZmZiYTcyNmI4OWMzZjM5MjRhNmEzYzMxNDNiMjA0ODEz
NjNiMDdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDExLTAxLTE0ICBEYWkgTWlr
dXJ1YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb25mb3JtY2hhbmdlIGFuZCBvbmZvcm1p
bnB1dCBldmVudCBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjYxNDEKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9mb3JtY2hhbmdl
LWV2ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50Lmh0
bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06
IEFkZGVkIGV2ZW50IG5hbWVzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBBZGRlZCBldmVu
dCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBBZGRlZCBldmVudCBk
ZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBBZGRlZCBldmVudCBkZWZpbml0
aW9ucy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6IEFkZGVkIGV2ZW50IGRlZmluaXRpb25z
LgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6ZnJv
bVVzZXJHZXN0dXJlKTogQWRkZWQgYSBjb25kaXRpb24gZm9yIGEgZm9ybWNoYW5nZSBldmVudCBp
biBoYW5kbGluZyB1c2VyIGdlc3R1cmVzLgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6IEFk
ZGVkIGV2ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJlcik6IFJl
cGxhY2VkIGEgZGlyZWN0IGRpc3BhdGNoRXZlbnQoKSBjYWxsIGludG8gZGlzcGF0Y2hJbnB1dEV2
ZW50cygpLCBhIHZpcnR1YWwgZnVuY3Rpb24gd2hpY2ggYnJvYWRjYXN0cyBmb3JtaW5wdXQgZXZl
bnRzIGZvciBIVE1MIGVsZW1lbnRzLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudHMpOiBEZWZpbmVkIGJhc2ljIGRpc3Bh
dGNoSW5wdXRFdmVudHMoKSBkZXNjcmliZWQgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogUmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgp
IGNhbGwgaW50byBkaXNwYXRjaElucHV0RXZlbnRzKCkuCisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFi
bGUoKSB0byBjaGVjayB0aGUgZWxlbWVudCBpcyByZXNldHRhYmxlIG9yIG5vdC4KKyAgICAgICAg
KiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjogQWRkZWQgZXZlbnQgbmFtZXMuCisgICAgICAg
ICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBBZGRlZCBldmVudCBoYW5kbGluZy4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKTogRGVmaW5lZCBkaXNwYXRj
aElucHV0RXZlbnRzKCkgZm9yIEhUTUwgZWxlbWVudHMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlz
cGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KTogQWRkZWQgY2FsbGluZyBkaXNwYXRjaEZvcm1D
aGFuZ2UoKSB0byBicm9hZGNhc3QgZm9ybWNoYW5nZSBldmVudHMuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCk6
IERlZmluZWQgbmV3bHkgdG8gZGlzcGF0Y2ggYW4gaW5wdXQgZXZlbnQgd2l0aCBicm9hZGNhc3Rp
bmcgZm9ybWlucHV0IGV2ZW50cy4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUlucHV0KTogRGVmaW5lZCBuZXdseSB0
byBicm9hZGNhc3QgZm9ybWlucHV0IGV2ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3Jt
RWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ2hhbmdlKTogRGVmaW5lZCBuZXdseSB0byBicm9hZGNhc3Qg
Zm9ybWNoYW5nZSBldmVudHMuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5pZGw6IEFkZGVkIGRpc3BhdGNoRm9ybUlucHV0
KCkgYW5kIGRpc3BhdGNoRm9ybUNoYW5nZSgpIERPTSBBUEkgZGVmaW5pdGlvbnMuCisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5kZXJlcik6IFJlcGxhY2VkIGEgZGlyZWN0IGRpc3BhdGNo
RXZlbnQoKSBjYWxsIGludG8gZGlzcGF0Y2hJbnB1dEV2ZW50cygpLgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFibGUoKS4KKyAgICAgICAgKiBodG1s
L0hUTUxLZXlnZW5FbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIGh0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaDogQWRkZWQgaXNSZXNldHRhYmxlKCkuCisgICAgICAgICog
aHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFibGUoKS4KKyAgICAgICAg
KiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpLgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFibGUoKS4KKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOiBBZGRlZCBldmVudCBkZWZpbml0aW9ucy4KKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IEFkZGVkIGV2ZW50IGRlZmluaXRpb25zLgorICAgICAg
ICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVy
KTogUmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElu
cHV0RXZlbnRzKCkuCisKIDIwMTEtMDEtMTMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
CmluZGV4IDE4NjNkOGYzOGI3ZWIyYWM0MmViMjNmODZmYmFmNTIxZDNlNmU4Y2UuLmVkNzZkMDhi
MjBmNjEyMWIwYzJhNWMxNzM4YmMwMjg3Njc1ZGUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtNTE4
LDcgKzUxOCw3IEBAIG15IEBldmVudFNpZ25hbE5hbWVzID0gKAogICAgICMgVXNlciBJbnRlcmZh
Y2UgRXZlbnQgdHlwZXMKICAgICAiZm9jdXMiLCAiYmx1ciIsCiAgICAgIyBCYXNpYyBFdmVudCB0
eXBlcwotICAgICJsb2FkIiwgInVubG9hZCIsICJhYm9ydCIsICJlcnJvciIsICJzZWxlY3QiLCAi
Y2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCisgICAgImxvYWQiLCAidW5sb2FkIiwgImFib3J0
IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAiZm9ybWNoYW5nZSIsICJzdWJtaXQiLCAi
cmVzZXQiLAogICAgICJyZXNpemUiLCAic2Nyb2xsIiwKICAgICAjIE1vdXNlIEV2ZW50IHR5cGVz
CiAgICAgImNsaWNrIiwgImRibGNsaWNrIiwgIm1vdXNlZG93biIsICJtb3VzZXVwIiwKQEAgLTU0
MCw3ICs1NDAsNyBAQCBteSBAZXZlbnRTaWduYWxOYW1lcyA9ICgKICAgICAjIEFuaW1hdGlvbnMK
ICAgICAid2Via2l0YW5pbWF0aW9uZW5kIiwgIndlYmtpdGFuaW1hdGlvbnN0YXJ0IiwgIndlYmtp
dGFuaW1hdGlvbml0ZXJhdGlvbiIsCiAgICAgIyBPdGhlcgotICAgICJjb250ZXh0bWVudSIsICJp
bnB1dCIsICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOworICAgICJjb250ZXh0
bWVudSIsICJpbnB1dCIsICJmb3JtaW5wdXQiLCAiaW52YWxpZCIsICJzZWFyY2giLCAic2VsZWN0
c3RhcnQiKTsKIAogc3ViIEdlbmVyYXRlUHJvcGVydGllcyB7CiAgICAgbXkgKCRvYmplY3QsICRp
bnRlcmZhY2VOYW1lLCAkZGF0YU5vZGUpID0gQF87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDI4
NjMxNzUxMWVkY2Y2MGFjYWQ0OTY4ZWM0ZjRjZmQ0MWFmMGIxM2UuLjgwZDg0ZDQ3YTVjOGNlYmY0
OGZkMDZhYmRmNzU1ZWMxODM0ZGQxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yNTAsNiAr
MjUwLDggQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJh
Z3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRyYWcpOwogICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ2VuZCk7CisgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hhbmdlKTsKKyAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnZh
bGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGtleWRvd24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggOGQ3YTcxYmExMjA2MjBkNTZjODhlNzkwNmMxYTgwMWU4
MzNhNWQzYi4uYzIxNWRmMDRjYjcxZTU5M2Q1NWNiZWJiNTZmYjUwZDQyNDgwYzBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNjYsNiArMjY2LDggQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJvcDsKICAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKQEAgLTI4OCw4ICsyOTAsNiBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25kdXJhdGlvbmNoYW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmVtcHRpZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25lbmRlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmZvcm1jaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApp
bmRleCA1ZTZjMDQ3OTQzMWI0Y2U1MGIxOWU2YzA5YTZlYzEyZTVmZmRhZGFiLi40NTEwNDc4N2Y2
ZDZmNmFjZTM4MGIzNzQ2MGY1YmIyNzhlYWMwYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTYz
LDYgKzYzLDggQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
ZHJhZ3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRyYWcpOwog
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ2VuZCk7CisgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hhbmdlKTsKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihp
bnZhbGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGtleWRvd24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdjYjYzYzI1YzQzNzhkYTIxYzRmZGQzZTFmNGNiNjVh
ODQ0N2E4YzkuLjY1MmE3NWI2NzRjNjAxOTQyYzg2YTFmNjBhZDYyMDg3NDA1MGY5NjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5pZGwKQEAgLTE1Myw2ICsxNTMsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcm9wOwogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwpAQCAtMTc0LDggKzE3Niw2IEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRtZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmlu
ZGV4IDBhMTUzOGIwYjAzZWRmOWFkNTE0ZTcxYzBmOWQwMGM1NTg2YzI2NTAuLjI0ZWZjNGVlZTkw
YjgyYWEwMmVjMTI3YjVmNjI5ODdjODU4ZDZhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMjY1
LDcgKzI2NSw3IEBAIGJvb2wgRXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSgpCiAgICAgICAgIC8vIG90
aGVyIGFjY2VwdGVkIGV2ZW50cwogICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5zZWxl
Y3RFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudAogICAgICAgICB8fCB0
eXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmJs
dXJFdmVudAotICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5zdWJtaXRFdmVudDsKKyAg
ICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc3VibWl0RXZlbnQgfHwgdHlwZSA9PSBldmVu
dE5hbWVzKCkuZm9ybWNoYW5nZUV2ZW50OwogfQogCiBib29sIEV2ZW50OjpzdG9yZXNSZXN1bHRB
c1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA0OTY4MDRlZTUwYWY4
Y2JmM2M3YTMxN2MyY2FkNzdjNTExYzEzZjc0Li43Mjc2OGQyMzgyMWE1N2ZkNGM0ZmQ0OTU2MzY2
NTRhNDQwNTE5YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTY2LDYgKzY2LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGZvY3VzKSBcCiAgICAgbWFjcm8oZm9jdXNp
bikgXAogICAgIG1hY3JvKGZvY3Vzb3V0KSBcCisgICAgbWFjcm8oZm9ybWNoYW5nZSkgXAorICAg
IG1hY3JvKGZvcm1pbnB1dCkgXAogICAgIG1hY3JvKGhhc2hjaGFuZ2UpIFwKICAgICBtYWNybyhp
bnB1dCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9JbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5j
cHAKaW5kZXggMzcyMTFkOGVlMjc3ZDA4MDZiZGM5NjE3NGU5ZWJlZDgzYTBmNTE2OC4uZGI4OWMx
NjQwYzAyNmQxNTg4YTRkMzhlZWY4YmQ0NWNiNDNmNzllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0
RWxlbWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIElucHV0RWxlbWVudDo6c2V0VmFs
dWVGcm9tUmVuZGVyZXIoSW5wdXRFbGVtZW50RGF0YSYgZGF0YSwgSW5wdXRFbGVtZW50KiBpbgog
CiAgICAgLy8gSW5wdXQgZXZlbnQgaXMgZmlyZWQgYnkgdGhlIE5vZGU6OmRlZmF1bHRFdmVudEhh
bmRsZXIgZm9yIGVkaXRhYmxlIGNvbnRyb2xzLgogICAgIGlmICghaW5wdXRFbGVtZW50LT5pc1Rl
eHRGaWVsZCgpKQotICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAgICAgIGVsZW1lbnQt
PmRpc3BhdGNoSW5wdXRFdmVudHMoKTsKICAgICBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKGVsZW1l
bnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMDhhOWE0NzhhYzdhMDQ2ZTdmZDliNGZkY2M2
NzUzZWM4N2NmM2NhZS4uMmU0MmU4NGQ5MzI3ZWJkNTU5YWQzNjFlYzllMmY5M2M1NzhiOWZmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcApAQCAtMjk2Myw2ICsyOTYzLDE2IEBAIHZvaWQgTm9kZTo6ZGlzcGF0
Y2hCbHVyRXZlbnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBOb2RlOjpkaXNwYXRjaENo
YW5nZUV2ZW50cygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5jaGFuZ2VFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKK30KKwordm9pZCBOb2RlOjpkaXNwYXRj
aElucHV0RXZlbnRzKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7Cit9CisKIGJvb2wgTm9kZTo6ZGlzYWJs
ZWQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTMwMjAsNyArMzAzMCw3IEBAIHZv
aWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihzdGFydE5vZGUs
IHdoZWVsRXZlbnQpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkud2Via2l0RWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50KSB7Ci0gICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFsc2Up
KTsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
aW5kZXggN2M4OGYwZmUyMTJjOWExZDc3YzQ3ZjhkOTU5YjA5ZTgyYTA5NWIyMS4uNzRlMWNjNDdm
ZjhhZWJlYjFlMjYwNmQ2MWFlYWY1OTA4ODcwNjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01NDEsNiAr
NTQxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgp
OwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaENoYW5nZUV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaElucHV0
RXZlbnRzKCk7CiAKICAgICAvLyBQZXJmb3JtIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3IgYW4gZXZl
bnQuCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCmluZGV4IDg3M2JkZjQ2NDg2
MGI1MGU0OWIxNTQ4N2VmNzM4M2Q4ZTE3ODUxZmMuLmViZWZkYzYwMjlkMGI1YWRkZjc4ZjZlMDdm
NTM5NDIyZmRmOTMyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNG
b3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVy
YXRhYmxlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25z
dCA9IDA7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBm
b3JtQ29udHJvbE5hbWUoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCmluZGV4IDUxM2U0NGY1ZWViNjFhNTk1YjM0MzQzNzJhMGZhNmE1MjQ2NmRiZTMuLmVh
YzlhNzMwZGU3NmQ5MDYyNzIzY2Q5ZmNlOGUzMWNkNjIxN2YyODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0xNzcsNiArMTc3LDggQEAgb25lcnJvcgog
b25mb2N1cwogb25mb2N1c2luCiBvbmZvY3Vzb3V0CitvbmZvcm1jaGFuZ2UKK29uZm9ybWlucHV0
CiBvbmhhc2hjaGFuZ2UKIG9uaW5wdXQKIG9uaW52YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAppbmRleCBhZjMxMTVjMjIzZGNhNTA0MzYxM2JiZDJmZGVlZTM4NzI4YTU5MDczLi4x
OThmNGJiYjQ1Yjc5NDc3ZmZmNDgwMDgwZGNjNGJmNjM0ZDliYWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcApAQCAtMTkwLDYgKzE5MCwxMCBAQCB2b2lkIEhUTUxFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvY3VzaW5FdmVudCwgY3JlYXRlQXR0cmlidXRl
RXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gb25mb2N1c291dEF0dHIpIHsKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0
aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb3JtY2hhbmdl
QXR0cikgeworICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5m
b3JtY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikp
OworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZm9ybWlucHV0QXR0cikgeworICAg
ICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb3JtaW5wdXRFdmVu
dCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gb25ibHVyQXR0cikgewogICAgICAgICBzZXRBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIodGhpcywgYXR0cikpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9u
a2V5ZG93bkF0dHIpIHsKQEAgLTgzNyw2ICs4NDEsNDggQEAgSFRNTEZvcm1FbGVtZW50KiBIVE1M
RWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAogICAgIHJldHVybiBmaW5kRm9ybUFuY2VzdG9y
KCk7CiB9CiAKK3ZvaWQgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCkKK3sKKyAg
ICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKKworICAgIFJlZlB0cjxIVE1M
Rm9ybUVsZW1lbnQ+IG93bmVyRm9ybTsKKyAgICBOb2RlKiBhbmNlc3Rvck5vZGUgPSBzaGFkb3dB
bmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoYW5jZXN0b3JOb2RlKSB7CisgICAgICAgIGlmICghYW5j
ZXN0b3JOb2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IEhUTUxFbGVtZW50KiBhbmNlc3RvckhUTUwgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGFu
Y2VzdG9yTm9kZSk7CisgICAgICAgIGlmICghYW5jZXN0b3JIVE1MKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBvd25lckZvcm0gPSBhbmNlc3RvckhUTUwtPmZvcm0oKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgb3duZXJGb3JtID0gZm9ybSgpOworCisgICAgTm9kZTo6ZGlzcGF0Y2hDaGFu
Z2VFdmVudHMoKTsKKyAgICBpZiAob3duZXJGb3JtKQorICAgICAgICBvd25lckZvcm0tPmRpc3Bh
dGNoRm9ybUNoYW5nZSgpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpkaXNwYXRjaElucHV0RXZl
bnRzKCkKK3sKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKKworICAg
IFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IG93bmVyRm9ybTsKKyAgICBOb2RlKiBhbmNlc3Rvck5v
ZGUgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoYW5jZXN0b3JOb2RlKSB7CisgICAg
ICAgIGlmICghYW5jZXN0b3JOb2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIEhUTUxFbGVtZW50KiBhbmNlc3RvckhUTUwgPSBzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KGFuY2VzdG9yTm9kZSk7CisgICAgICAgIGlmICghYW5jZXN0b3JIVE1MKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBvd25lckZvcm0gPSBhbmNlc3RvckhUTUwtPmZvcm0o
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgb3duZXJGb3JtID0gZm9ybSgpOworCisgICAgTm9kZTo6
ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOworICAgIGlmIChvd25lckZvcm0pCisgICAgICAgIG93bmVy
Rm9ybS0+ZGlzcGF0Y2hGb3JtSW5wdXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IGE2NGRiMmNm
NzhjNTdjMzY2NjFmOWIxYTRiMmE1NmM3NTU5MzY0ZTAuLmYzMTgwNmFjNTY2OTY4OWQ1OWViYWQ3
MmZiODMzMzJkMTJhZTAyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTg0LDYg
Kzg0LDkgQEAgcHVibGljOgogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmaW5kRm9ybUFuY2VzdG9y
KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnB1dEV2ZW50cygpOworCiBwcm90ZWN0ZWQ6CiAgICAg
SFRNTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXgg
YjNhZDdjODQzYjYzNTA1OTY4ZGY2ZTNjNGUwMzQ5NTg1MTMyNGZmOC4uYmI0MmRmZDdmODEwMjI2
ZjQzODA3NTRlZmQxOWY0OWQ0MGJhYTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNzgsNyArMTc4LDEyIEBAIHZvaWQgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6c2V0TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogCiB2
b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpCiB7Ci0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFu
Z2VFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VF
dmVudHMoKTsKK30KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvcm1D
b250cm9sSW5wdXRFdmVudCgpCit7CisgICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoSW5wdXRFdmVu
dHMoKTsKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXREaXNhYmxlZChib29s
IGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IDg0MDNiODRhYzVlZGQzNTcwNjYxOThlOGU0ZWRkY2RiYWVlM2EwMTguLmM4ODkwNWM2MmU2NjRj
ZmNhNzkzODA3ODJjMjYyYzM1ZThhODFiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC01MywxMiArNTMsMTQgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGJvb2wgYikgeyBt
X3ZhbHVlTWF0Y2hlc1JlbmRlcmVyID0gYjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1D
b250cm9sSW5wdXRFdmVudCgpOwogCiAgICAgdmlydHVhbCBib29sIGRpc2FibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCk7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNF
bnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gRGV0ZXJtaW5l
cyB3aGV0aGVyIG9yIG5vdCBhIGNvbnRyb2wgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGZvY3VzZWQu
CiAgICAgdmlydHVhbCBib29sIGF1dG9mb2N1cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IGM4OTZiYmYzYjI4N2RhNjIzYzA5OTliN2I0NTE4YTdh
NTVjMmJhOWUuLjA3NDgwY2ZjMzJjZDYzYmM1ZWQyYTU5MTc2Mzc2N2QyYjc3ZTkzMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTU5MCw2ICs1OTAsNDYgQEAg
Ym9vbCBIVE1MRm9ybUVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkoKQogICAgIHJldHVybiBjb250cm9s
cy5pc0VtcHR5KCk7CiB9CiAKK3ZvaWQgSFRNTEZvcm1FbGVtZW50OjpkaXNwYXRjaEZvcm1JbnB1
dCgpCit7CisgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gcHJvdGVjdG9yKHRoaXMpOworICAg
IC8vIENvcHkgbV9hc3NvY2lhdGVkRWxlbWVudHMgYmVjYXVzZSBldmVudCBoYW5kbGVycyBjYWxs
ZWQgZnJvbQorICAgIC8vIGZvcm1FbGVtZW50LT5kaXNwYXRjaEV2ZW50KCkgbWlnaHQgY2hhbmdl
IG1fYXNzb2NpYXRlZEVsZW1lbnRzLgorICAgIFZlY3RvcjxSZWZQdHI8Rm9ybUFzc29jaWF0ZWRF
bGVtZW50PiA+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVDYXBhY2l0eShtX2Fzc29j
aWF0ZWRFbGVtZW50cy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2Fz
c29jaWF0ZWRFbGVtZW50cy5zaXplKCk7ICsraSkKKyAgICAgICAgZWxlbWVudHMuYXBwZW5kKG1f
YXNzb2NpYXRlZEVsZW1lbnRzW2ldKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBl
bGVtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICBSZWZQdHI8Rm9ybUFzc29jaWF0ZWRFbGVt
ZW50PiBmb3JtQXNzb2NpYXRlZEVsZW1lbnQgPSBlbGVtZW50c1tpXTsKKyAgICAgICAgaWYgKCFm
b3JtQXNzb2NpYXRlZEVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkgIHx8ICFmb3JtQXNz
b2NpYXRlZEVsZW1lbnQtPmlzUmVzZXR0YWJsZSgpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiBmb3JtRWxlbWVudCA9IHN0YXRp
Y19wb2ludGVyX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZm9ybUFzc29jaWF0ZWRFbGVt
ZW50KTsKKyAgICAgICAgaWYgKCFmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5mb3JtaW5wdXRFdmVudCwgZmFsc2UsIGZhbHNlKSkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTEZvcm1FbGVtZW50OjpkaXNwYXRj
aEZvcm1DaGFuZ2UoKQoreworICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0
aGlzKTsKKyAgICAvLyBDb3B5IG1fYXNzb2NpYXRlZEVsZW1lbnRzIGJlY2F1c2UgZXZlbnQgaGFu
ZGxlcnMgY2FsbGVkIGZyb20KKyAgICAvLyBmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudCgpIG1p
Z2h0IGNoYW5nZSBtX2Fzc29jaWF0ZWRFbGVtZW50cy4KKyAgICBWZWN0b3I8UmVmUHRyPEZvcm1B
c3NvY2lhdGVkRWxlbWVudD4gPiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlQ2FwYWNp
dHkobV9hc3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9hc3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIGVsZW1lbnRz
LmFwcGVuZChtX2Fzc29jaWF0ZWRFbGVtZW50c1tpXSk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudD4gZm9ybUFzc29jaWF0ZWRFbGVtZW50ID0gZWxlbWVudHNbaV07CisgICAg
ICAgIGlmICghZm9ybUFzc29jaWF0ZWRFbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpIHx8
ICFmb3JtQXNzb2NpYXRlZEVsZW1lbnQtPmlzUmVzZXR0YWJsZSgpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiBmb3JtRWxlbWVu
dCA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZm9ybUFzc29j
aWF0ZWRFbGVtZW50KTsKKyAgICAgICAgaWYgKCFmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgfQorfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVu
dDo6Y29sbGVjdFVuaGFuZGxlZEludmFsaWRDb250cm9scyhWZWN0b3I8UmVmUHRyPEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudD4gPiYgdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQogewogICAgIFJlZlB0
cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5oCmluZGV4IGJkMDg3YjhkZmE1NDRhM2M5YzgyNjBmYmM2MTJkZjNiZGY4NGFl
NmUuLjQ2MjAwOTRjZTAyOTQ0MWVjOGUwMTEwY2I3NmUyZGY0MjJkYjQyNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTE0LDYgKzExNCw5IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgYXNzb2NpYXRlZEVsZW1l
bnRzKCkgY29uc3QgeyByZXR1cm4gbV9hc3NvY2lhdGVkRWxlbWVudHM7IH0KIAorICAgIHZvaWQg
ZGlzcGF0Y2hGb3JtSW5wdXQoKTsKKyAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpOworCiBw
cml2YXRlOgogICAgIEhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4IGU5NzU5
ZTI1MzE5ZjI4YzdhYmYzNjYyNTZhMTY2ODljZTljNWQwYzAuLjNlOWU0NmQwNGUzNjY4ODA0OWE5
MGQ2OWEzZTcwNDA5MzI3MmU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5pZGwKQEAgLTQzLDYgKzQzLDkgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgICAgIHZv
aWQgcmVzZXQoKTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7CisKKyAgICAgICAg
dm9pZCBkaXNwYXRjaEZvcm1JbnB1dCgpOworICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5n
ZSgpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDdkMmEzYzU0MjkyNzQ0NGUwMjhlMGM5MjMxMmI0ZWIxODhmY2QyOGUuLjVkYWY0Mzgx
MzA4Y2NhZmViYzgxZDk0NzdlNTk4NDMxYTk4MDc3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTM3NCw3ICsxMzc0LDcgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgIGlmIChtX2lucHV0VHlw
ZS0+aXNSYW5nZUNvbnRyb2woKSkKICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFu
Z2VFdmVudCgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAgICAg
ICAgICBkaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBlYjMwZGUwODljYzAyNjVmN2ZmMDU3
MWFlYTg3Y2QzNjhhOWYzOWEyLi40MDMyNDhjOThhNDFjMTliMTMyYjIyYjFmM2FjY2RmZDE0ZWY1
ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjExLDYgKzIx
MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5
Ym9hcmRFdmVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0
aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvdXRUb1VubG9hZCgpOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5
Z2VuRWxlbWVudC5oCmluZGV4IDgwZjk0YjU1ZjZiMGM0NTI2OTg2ODNlZTRjYWRiOWRlNjcxZTU3
YWUuLmI4YjE0NGY1MjU4N2IyMjE3ZDE1YTkyNTdjZjY4NmI2OTE0YTRlMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKQEAgLTM1LDYgKzM1LDggQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFi
bGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0
YShGb3JtRGF0YUxpc3QmLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaAppbmRleCBmZjc3M2YxNmQ4MjhjNTFmODMwMTBkNmU5YTA5NmViYmFkNzQ0Y2E3Li5jYzhh
MDNjYzI4ZjVhNWI5MjA2MjQwNjRlZWVmYWQxOTJjNDIwYzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKTsK
IAogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBjb25zdHJhaW50IHZhbGlkYXRpb24gQVBJLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCmluZGV4IDgzZWNlZTJmNDlmODYx
NmY3YjEwZWM5ZGJkYzJkZTA3MzBhM2ZkZWQuLjRjNWM2ODQyYjhjYmI4MDU1ZTIzMjhhZGIzNGIy
ZDBhMzA5YWVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKQEAg
LTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9v
bCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSog
YWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRl
eCBhMjJkZjAyMDA1ZjJlMzU3NDJlMWQ1MmY1OWFhOTI4OWUyZTU2MzY1Li40MmU4OTYzZmRjNmE3
ZTI1OGZlNDcwZTRlMWFhNTBjNDQ5N2U1YzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oCkBAIC0xMDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCA2NjlmY2Q4YzUw
OTg1YmIyYmVkZGVlZmIxNGM3ZDViNThiMDZhM2I1Li4yMWI1ODgwNGM1MjdmNGFjNzY2MDc1OTBj
MzZiN2IxODNlM2YyY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXgg
Y2EyNDg4YjEwNWQ3MDUyZWQ2ZjM3OGY4ZGYxNjJiYjJhYjM1NWVmYS4uODE5MzFiNTYyZDhhZDBj
MjkwMjk1ODA5NjFlOWJjY2Q3ZDQzMzg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0y
NjksNiArMjY5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsKICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihlcnJvcik7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZm9jdXMpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1j
aGFuZ2UpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1
dCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoaGFzaGNoYW5nZSk7
CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoaW5wdXQpOwogICAgICAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCmluZGV4IDBjYjlhMmNhZjk2Nzc4MTc0NDk0YzYyZjgyODYzYjIzNzczMzU2
ZTQuLjliNzFjY2U3Y2NjNWE3MjRhMThjYTg1YWY4MTQxZGZiMDUzYmY2NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKQEAgLTI2Myw2ICsyNjMsOCBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKICAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwor
ICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlu
dmFsaWQ7CkBAIC0zMDcsOCArMzA5LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIC8vIE5v
dCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
YWZ0ZXJwcmludDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVw
cmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwot
ICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlZG87CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uc2hvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZDZmYzdhYWFjODIwMjQxMDdlY2Ri
M2JiODE3M2U4N2IyMjhlZDdkZC4uNDI2MWQ3ZGViYjNhYTBhMWEzYzJhOTJhN2VkNWQ3OWFkM2Nm
ZjgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5jcHAKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lkIFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAg
ICAgICAgICAgICAgaW5wdXQtPnNldFZhbHVlKCIiKTsKICAgICAgICAgICAgICAgICBpZiAoIW9s
ZFZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250
cm9sKGlucHV0LT5yZW5kZXJlcigpKS0+c2V0Q2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50KHRy
dWUpOwotICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICAgICAg
ICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5wdXQtPm9uU2VhcmNoKCk7CiAgICAgICAgICAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79261</attachid>
            <date>2011-01-18 04:34:07 -0800</date>
            <delta_ts>2011-01-18 17:14:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110118213405.patch</filename>
            <type>text/plain</type>
            <size>49573</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MDY2Y2Y0MmFmNzMxYjZlYjBjZDFlODFmY2NmYWE1NTYyZDIwMTE3Li42ZTQ5Zjk4
MzUzN2YzZWQyYjJkZWIyNGZiMGJiNjc5OTNiNzVjMjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTQgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTEzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA1ZWJh
ZDgzMDczZGEyMzY3YWMwZjYwZjQ4YjI5YzNlZDliZjk5YmUxLi45NDQ4ZjMwMjllNzRjMTBjOGU0
NmVmMTU2OTA0OTZlMTA4MmNlZTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTIzMTEsNiAr
MjMxMSw4IEBAIHdpbmRvdy5vbmVtcHRpZWQgW251bGxdCiB3aW5kb3cub25lbmRlZCBbbnVsbF0K
IHdpbmRvdy5vbmVycm9yIFtudWxsXQogd2luZG93Lm9uZm9jdXMgW251bGxdCit3aW5kb3cub25m
b3JtY2hhbmdlIFtudWxsXQord2luZG93Lm9uZm9ybWlucHV0IFtudWxsXQogd2luZG93Lm9uaGFz
aGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5vbmlucHV0IFtudWxsXQogd2luZG93Lm9uaW52YWxpZCBb
bnVsbF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNjgzMTVh
ZDZkNGQ4YTlmYWRhMmU4ZDJiYTZlODZmYTc2NjVlODI5Ni4uZTUwNzgzOWI3MTUwYTNhMWI1ZGFi
OTZhMGQ1NGMwMmQ3NTAyYjk2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3Rl
ZC50eHQKQEAgLTM5Myw2ICszOTMsOCBAQCBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZW1wdGllZCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZW5kZWQnKSBpcyAn
b2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5k
b3csICdvbmVycm9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb25mb2N1cycpIGlzICdvYmplY3QnCitQQVNTIHR5cGVv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9ybWNoYW5nZScp
IGlzICdvYmplY3QnCitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ29uZm9ybWlucHV0JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnb25oYXNoY2hhbmdlJykgaXMgJ29iamVj
dCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
b25pbnB1dCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHdpbmRvdywgJ29uaW52YWxpZCcpIGlzICdvYmplY3QnCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45Yjk4Y2JkOGQyMjQzYTYzYzYyMmNhNWQ5MmI1NGY2ZjNiM2Y4MGNkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM4IEBACitUZXN0IGZvciBmb3JtY2hhbmdlIGV2ZW50cy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9dGV4dCkK
K1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9bnVtYmVyKQor
UEFTUyByZXN1bHQgaXMgIkZpcmVkIgorQ2hhbmdlIGZvciBpbnB1dCAodHlwZT1yYWRpbykKK1BB
U1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9Y2hlY2tib3gpCitQ
QVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIHRleHRhcmVhCitQQVNTIHJlc3VsdCBp
cyAiRmlyZWQiCitDaGFuZ2UgZm9yIHNlbGVjdAorUEFTUyByZXN1bHQgaXMgIkZpcmVkIgorZm9y
bS5kaXNwYXRjaEZvcm1DaGFuZ2UoKQorUEFTUyByZXN1bHQgaXMgIkZpcmVkIgorCitJcyBmb3Jt
Y2hhbmdlIGRlbGl2ZXJlZCBmb3I/CitQQVNTIHJlc3VsdF9pbnB1dF90ZXh0IGlzICJEZWxpdmVy
ZWQiCitQQVNTIHJlc3VsdF9pbnB1dF9udW1iZXIgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
X2lucHV0X3JhZGlvIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdF9pbnB1dF9jaGVja2JveCBp
cyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRfdGV4dGFyZWEgaXMgIkRlbGl2ZXJlZCIKK1BBU1Mg
cmVzdWx0X2tleWdlbiBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRfb2JqZWN0IGlzICJOb3Qg
ZGVsaXZlcmVkIgorUEFTUyByZXN1bHRfb3V0cHV0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3Vs
dF9zZWxlY3QgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0X3AgaXMgIk5vdCBkZWxpdmVyZWQi
CitQQVNTIHJlc3VsdF9yZW1vdmluZ19pbnB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRf
cmVtb3ZpbmdfZm9ybSBpcyAiRGVsaXZlcmVkIgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1j
aGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjZiYmFjMDhkOTJmZjJmNTY5YzkyZTU4YzEz
MmEwMTZhN2FhYjMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtY2hhbmdlLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtaW5wdXQtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3Jt
aW5wdXQtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOThjY2UyZWM3NTkwMWRkOTg3
ZGZkNDYzMmZkMDdmMzE5ZGUxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVz
dCBmb3IgZm9ybWlucHV0IGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9dGV4dCkKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0No
YW5nZSBmb3IgaW5wdXQgKHR5cGU9bnVtYmVyKQorUEFTUyByZXN1bHQgaXMgIkZpcmVkIgorQ2hh
bmdlIGZvciBpbnB1dCAodHlwZT1yYWRpbykKK1BBU1MgcmVzdWx0IGlzICJOb3QgZmlyZWQiCitD
aGFuZ2UgZm9yIGlucHV0ICh0eXBlPWNoZWNrYm94KQorUEFTUyByZXN1bHQgaXMgIk5vdCBmaXJl
ZCIKK0NoYW5nZSBmb3IgdGV4dGFyZWEKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBm
b3Igc2VsZWN0CitQQVNTIHJlc3VsdCBpcyAiTm90IGZpcmVkIgorZm9ybS5kaXNwYXRjaEZvcm1J
bnB1dCgpCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCisKK0lzIGZvcm1pbnB1dCBkZWxpdmVyZWQg
Zm9yPworUEFTUyByZXN1bHRfaW5wdXRfdGV4dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRf
aW5wdXRfbnVtYmVyIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdF9pbnB1dF9yYWRpbyBpcyAi
RGVsaXZlcmVkIgorUEFTUyByZXN1bHRfaW5wdXRfY2hlY2tib3ggaXMgIkRlbGl2ZXJlZCIKK1BB
U1MgcmVzdWx0X3RleHRhcmVhIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdF9rZXlnZW4gaXMg
IkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0X29iamVjdCBpcyAiTm90IGRlbGl2ZXJlZCIKK1BBU1Mg
cmVzdWx0X291dHB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRfc2VsZWN0IGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdF9wIGlzICJOb3QgZGVsaXZlcmVkIgorUEFTUyByZXN1bHRfcmVt
b3ZpbmdfaW5wdXQgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0X3JlbW92aW5nX2Zvcm0gaXMg
IkRlbGl2ZXJlZCIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUyN2E5MjAyMDI3ZTEwM2I2Yjg1NDIyM2Y1YjRhY2ZkN2JhM2Q3MzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1s
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Zm9ybWlucHV0LWV2ZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWNoYW5n
ZS1ldmVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2Zvcm1jaGFu
Z2UtZXZlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYzMTNlMTY4NTAxOTQyYWMwODFjMTBhYTY1MDFjZmE4
YjE3MjVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2Zvcm1jaGFuZ2UtZXZlbnQuanMKQEAgLTAsMCArMSwxNzcgQEAKK2Rlc2NyaXB0aW9u
KCdUZXN0IGZvciBmb3JtY2hhbmdlIGV2ZW50cy4nKTsKKworZnVuY3Rpb24gc2VuZEtleShlbGVt
ZW50LCBrZXlOYW1lKSB7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0tl
eWJvYXJkRXZlbnQnKTsKKyAgICBldmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRy
dWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCBrZXlOYW1lKTsKKyAgICBlbGVtZW50LmRp
c3BhdGNoRXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiBzZW5kVGV4dChlbGVtZW50LCB0ZXh0
KSB7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ1RleHRFdmVudCcpOwor
ICAgIGV2ZW50LmluaXRUZXh0RXZlbnQoJ3RleHRJbnB1dCcsIHRydWUsIHRydWUsIGRvY3VtZW50
LmRlZmF1bHRWaWV3LCB0ZXh0KTsKKyAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwor
fQorCitmdW5jdGlvbiBzZW5kTW91c2VDbGljayhlbGVtZW50KSB7CisgICAgdmFyIHggPSBlbGVt
ZW50LmNsaWVudExlZnQgKyAxMDsKKyAgICB2YXIgeSA9IGVsZW1lbnQuY2xpZW50VG9wICsgMTA7
CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKKyAg
ICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2Vkb3duIiwgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcsIDEsIHgsIHksIHgsIHksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAw
LCBkb2N1bWVudCk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB2YXIg
ZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgIGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCJtb3VzZXVwIiwgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcs
IDEsIHgsIHksIHgsIHksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkb2N1bWVudCk7
CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24gJChpZCkg
eworICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Cit9CisKKwordmFyIGZv
cm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtLnNldEF0dHJpYnV0ZSgn
aWQnLCAnZm9ybScpOworZm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImRlZmF1bHQtaW5wdXQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpbnB1dC10ZXh0IiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisg
ICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnB1dC1udW1iZXIiIHZhbHVlPSIyNCIgLz4n
ICsKKyAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnB1dC1yYWRpbyIgaWQ9ImlucHV0
LXJhZGlvMSIgdmFsdWU9IjEiIGNoZWNrZWQvPicgKworICAgICc8aW5wdXQgdHlwZT0icmFkaW8i
IG5hbWU9ImlucHV0LXJhZGlvIiBpZD0iaW5wdXQtcmFkaW8yIiB2YWx1ZT0iMiIgLz4nICsKKyAg
ICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dC1jaGVjayIgaWQ9ImlucHV0LWNo
ZWNrMSIgdmFsdWU9IjEiIGNoZWNrZWQvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IG5hbWU9ImlucHV0LWNoZWNrIiBpZD0iaW5wdXQtY2hlY2syIiB2YWx1ZT0iMiIgLz4nICsKKyAg
ICAnPHRleHRhcmVhIGlkPSJpbnB1dC10ZXh0YXJlYSI+SW5wdXQgaGVyZS48L3RleHRhcmVhPicg
KworICAgICc8c2VsZWN0IGlkPSJpbnB1dC1zZWxlY3QiIG11bHRpcGxlPicgKworICAgICc8b3B0
aW9uIGlkPSJpbnB1dC1vcHRpb24xIiB2YWx1ZT0ib3B0aW9uMSI+b3B0aW9uMTwvb3B0aW9uPicg
KworICAgICc8b3B0aW9uIGlkPSJpbnB1dC1vcHRpb24yIiB2YWx1ZT0ib3B0aW9uMiI+b3B0aW9u
Mjwvb3B0aW9uPicgKworICAgICc8L3NlbGVjdD4nICsKKworICAgICc8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImRlZmF1bHQtaGFuZGxlciIgb25mb3JtY2hhbmdlPSJyZXN1bHQgPSBcJ0ZpcmVkXCci
IC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci10ZXh0IiBvbmZvcm1j
aGFuZ2U9InJlc3VsdF9pbnB1dF90ZXh0ID0gXCdEZWxpdmVyZWRcJyIgLz4nICsKKyAgICAnPGlu
cHV0IHR5cGU9Im51bWJlciIgaWQ9ImhhbmRsZXItbnVtYmVyIiBvbmZvcm1jaGFuZ2U9InJlc3Vs
dF9pbnB1dF9udW1iZXIgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
cmFkaW8iIG5hbWU9ImhhbmRsZXItcmFkaW8iIGlkPSJoYW5kbGVyLXJhZGlvIiBvbmZvcm1jaGFu
Z2U9InJlc3VsdF9pbnB1dF9yYWRpbyA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxpbnB1
dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaGFuZGxlci1jaGVjayIgaWQ9ImhhbmRsZXItY2hlY2si
IG9uZm9ybWNoYW5nZT0icmVzdWx0X2lucHV0X2NoZWNrYm94ID0gXCdEZWxpdmVyZWRcJyIgLz4n
ICsKKyAgICAnPHRleHRhcmVhIGlkPSJoYW5kbGVyLXRleHRhcmVhIiBvbmZvcm1jaGFuZ2U9InJl
c3VsdF90ZXh0YXJlYSA9IFwnRGVsaXZlcmVkXCciPjwvdGV4dGFyZWE+JyArCisgICAgJzxrZXln
ZW4gaWQ9ImhhbmRsZXIta2V5Z2VuIiBvbmZvcm1jaGFuZ2U9InJlc3VsdF9rZXlnZW4gPSBcJ0Rl
bGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5kbGVyLW9iamVjdCIgb25mb3Jt
Y2hhbmdlPSJyZXN1bHRfb2JqZWN0ID0gXCdEZWxpdmVyZWRcJyIgLz4nICsKKyAgICAnPG91dHB1
dCBpZD0iaGFuZGxlci1vdXRwdXQiIG9uZm9ybWNoYW5nZT0icmVzdWx0X291dHB1dCA9IFwnRGVs
aXZlcmVkXCciIC8+JyArCisgICAgJzxzZWxlY3QgaWQ9ImhhbmRsZXItc2VsZWN0IiBvbmZvcm1j
aGFuZ2U9InJlc3VsdF9zZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworCisgICAgJzxwIGlk
PSJoYW5kbGVyLXAiIG9uZm9ybWNoYW5nZT0icmVzdWx0X3AgPSBcJ0RlbGl2ZXJlZFwnIj5IaSE8
L3A+JzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7CisKKworZnVuY3Rpb24gb25m
b3JtY2hhbmdlX3JlbW92aW5nX2lucHV0KCkgeworICAgICQoJ2Zvcm0tcmVtb3ZpbmctaW5wdXQn
KS5yZW1vdmVDaGlsZCgkKCdoYW5kbGVyLXJlbW92aW5nLWlucHV0JykpOworICAgIHJlc3VsdF9y
ZW1vdmluZ19pbnB1dCA9ICdEZWxpdmVyZWQnOworfQorCit2YXIgZm9ybV9yZW1vdmluZ19pbnB1
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2Zvcm1fcmVtb3ZpbmdfaW5wdXQu
c2V0QXR0cmlidXRlKCdpZCcsICdmb3JtLXJlbW92aW5nLWlucHV0Jyk7Citmb3JtX3JlbW92aW5n
X2lucHV0LmlubmVySFRNTCA9CisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQtcmVt
b3ZpbmctaW5wdXQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9
InRleHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWlucHV0IiBvbmZvcm1jaGFuZ2U9Im9uZm9ybWNo
YW5nZV9yZW1vdmluZ19pbnB1dCgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZv
cm1fcmVtb3ZpbmdfaW5wdXQpOworCisKK2Z1bmN0aW9uIG9uZm9ybWNoYW5nZV9yZW1vdmluZ19m
b3JtKCkgeworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoJCgnZm9ybS1yZW1vdmluZy1m
b3JtJykpOworICAgIHJlc3VsdF9yZW1vdmluZ19mb3JtID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3Zh
ciBmb3JtX3JlbW92aW5nX2Zvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citm
b3JtX3JlbW92aW5nX2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtLXJlbW92aW5nLWZvcm0n
KTsKK2Zvcm1fcmVtb3ZpbmdfZm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImlucHV0LXJlbW92aW5nLWZvcm0iIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAg
ICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWZvcm0iIG9uZm9ybWNo
YW5nZT0ib25mb3JtY2hhbmdlX3JlbW92aW5nX2Zvcm0oKSIgLz4nOworZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChmb3JtX3JlbW92aW5nX2Zvcm0pOworCisKK3ZhciByZXN1bHQ7CisKK2RlYnVn
KCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXRleHQpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsK
KyQoJ2lucHV0LXRleHQnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtdGV4dCcpLCAnTmV3
IHRleHQuJyk7CiskKCdkZWZhdWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgIkZpcmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBl
PW51bWJlciknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtbnVtYmVyJykuZm9j
dXMoKTsKK3NlbmRLZXkoJCgnaW5wdXQtbnVtYmVyJyksICdVcCcpOworJCgnZGVmYXVsdC1pbnB1
dCcpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOwor
CitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlwZT1yYWRpbyknKTsKK3Jlc3VsdCA9ICJOb3Qg
ZmlyZWQiOworJCgnaW5wdXQtcmFkaW8yJykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0IiwgIkZpcmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPWNo
ZWNrYm94KScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC1jaGVjazInKS5jbGlj
aygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWco
J0NoYW5nZSBmb3IgdGV4dGFyZWEnKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgnaW5wdXQt
dGV4dGFyZWEnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtdGV4dGFyZWEnKSwgJ05ldyB0
ZXh0LicpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBzZWxlY3QnKTsKK3Jl
c3VsdCA9ICJOb3QgZmlyZWQiOworc2VuZE1vdXNlQ2xpY2soJCgnaW5wdXQtc2VsZWN0JykpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ2Zvcm0u
ZGlzcGF0Y2hGb3JtQ2hhbmdlKCknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworZm9ybS5kaXNw
YXRjaEZvcm1DaGFuZ2UoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVk
Iik7CisKKworZGVidWcoJycpOworCisKK2RlYnVnKCdJcyBmb3JtY2hhbmdlIGRlbGl2ZXJlZCBm
b3I/Jyk7Cit2YXIgcmVzdWx0X2lucHV0X3RleHQgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVz
dWx0X2lucHV0X251bWJlciA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRfaW5wdXRfcmFk
aW8gPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0X2lucHV0X2NoZWNrYm94ID0gIk5vdCBk
ZWxpdmVyZWQiOwordmFyIHJlc3VsdF90ZXh0YXJlYSA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciBy
ZXN1bHRfa2V5Z2VuID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdF9vYmplY3QgPSAiTm90
IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0X291dHB1dCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciBy
ZXN1bHRfc2VsZWN0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdF9wID0gIk5vdCBkZWxp
dmVyZWQiOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdkZWZhdWx0
LWlucHV0JyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9pbnB1dF90ZXh0IiwgIkRlbGl2ZXJlZCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfaW5wdXRfbnVtYmVyIiwgIkRlbGl2ZXJlZCIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfaW5wdXRfcmFkaW8iLCAiRGVsaXZlcmVk
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9pbnB1dF9jaGVja2JveCIsICJEZWxp
dmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X3RleHRhcmVhIiwgIkRlbGl2
ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfa2V5Z2VuIiwgIkRlbGl2ZXJl
ZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfb2JqZWN0IiwgIk5vdCBkZWxpdmVy
ZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X291dHB1dCIsICJEZWxpdmVyZWQi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X3NlbGVjdCIsICJEZWxpdmVyZWQiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X3AiLCAiTm90IGRlbGl2ZXJlZCIpOworCit2
YXIgcmVzdWx0X3JlbW92aW5nX2lucHV0ID0gIk5vdCBkZWxpdmVyZWQiOworJCgnaW5wdXQtcmVt
b3ZpbmctaW5wdXQnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVtb3ZpbmctaW5wdXQn
KSwgJ05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1oYW5kbGVyJykuZm9jdXMoKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0X3JlbW92aW5nX2lucHV0IiwgIkRlbGl2ZXJlZCIpOworCit2
YXIgcmVzdWx0X3JlbW92aW5nX2Zvcm0gPSAiTm90IGRlbGl2ZXJlZCI7CiskKCdpbnB1dC1yZW1v
dmluZy1mb3JtJykuZm9jdXMoKTsKK3NlbmRUZXh0KCQoJ2lucHV0LXJlbW92aW5nLWZvcm0nKSwg
J05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1oYW5kbGVyJykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygicmVzdWx0X3JlbW92aW5nX2Zvcm0iLCAiRGVsaXZlcmVkIik7CisKKworZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKK2RlYnVnKCcnKTsKKworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmE0NjUzNjNhNWY4
MjM4ZTkzMzhlZWVlYWYyZWRmNmM0ZjdmNjQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzCkBAIC0wLDAgKzEs
MTc3IEBACitkZXNjcmlwdGlvbignVGVzdCBmb3IgZm9ybWlucHV0IGV2ZW50cy4nKTsKKworZnVu
Y3Rpb24gc2VuZEtleShlbGVtZW50LCBrZXlOYW1lKSB7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRXZlbnQoJ0tleWJvYXJkRXZlbnQnKTsKKyAgICBldmVudC5pbml0S2V5Ym9hcmRF
dmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCBrZXlOYW1l
KTsKKyAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiBzZW5k
VGV4dChlbGVtZW50LCB0ZXh0KSB7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZl
bnQoJ1RleHRFdmVudCcpOworICAgIGV2ZW50LmluaXRUZXh0RXZlbnQoJ3RleHRJbnB1dCcsIHRy
dWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCB0ZXh0KTsKKyAgICBlbGVtZW50LmRpc3Bh
dGNoRXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiBzZW5kTW91c2VDbGljayhlbGVtZW50KSB7
CisgICAgdmFyIHggPSBlbGVtZW50LmNsaWVudExlZnQgKyAxMDsKKyAgICB2YXIgeSA9IGVsZW1l
bnQuY2xpZW50VG9wICsgMTA7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQo
Ik1vdXNlRXZlbnQiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2Vkb3duIiwgdHJ1
ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIDEsIHgsIHksIHgsIHksIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCAwLCBkb2N1bWVudCk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50
KGV2ZW50KTsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVu
dCIpOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJtb3VzZXVwIiwgdHJ1ZSwgdHJ1ZSwgZG9j
dW1lbnQuZGVmYXVsdFZpZXcsIDEsIHgsIHksIHgsIHksIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCAwLCBkb2N1bWVudCk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30K
KworZnVuY3Rpb24gJChpZCkgeworICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp
ZCk7Cit9CisKKwordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citm
b3JtLnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybScpOworZm9ybS5pbm5lckhUTUwgPQorICAgICc8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRlZmF1bHQtaW5wdXQiIHZhbHVlPSJJbnB1dCBoZXJlLiIg
Lz4nICsKKyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dC10ZXh0IiB2YWx1ZT0iSW5w
dXQgaGVyZS4iIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnB1dC1udW1i
ZXIiIHZhbHVlPSIyNCIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnB1
dC1yYWRpbyIgaWQ9ImlucHV0LXJhZGlvMSIgdmFsdWU9IjEiIGNoZWNrZWQvPicgKworICAgICc8
aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImlucHV0LXJhZGlvIiBpZD0iaW5wdXQtcmFkaW8yIiB2
YWx1ZT0iMiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dC1j
aGVjayIgaWQ9ImlucHV0LWNoZWNrMSIgdmFsdWU9IjEiIGNoZWNrZWQvPicgKworICAgICc8aW5w
dXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlucHV0LWNoZWNrIiBpZD0iaW5wdXQtY2hlY2syIiB2
YWx1ZT0iMiIgLz4nICsKKyAgICAnPHRleHRhcmVhIGlkPSJpbnB1dC10ZXh0YXJlYSI+SW5wdXQg
aGVyZS48L3RleHRhcmVhPicgKworICAgICc8c2VsZWN0IGlkPSJpbnB1dC1zZWxlY3QiIG11bHRp
cGxlPicgKworICAgICc8b3B0aW9uIGlkPSJpbnB1dC1vcHRpb24xIiB2YWx1ZT0ib3B0aW9uMSI+
b3B0aW9uMTwvb3B0aW9uPicgKworICAgICc8b3B0aW9uIGlkPSJpbnB1dC1vcHRpb24yIiB2YWx1
ZT0ib3B0aW9uMiI+b3B0aW9uMjwvb3B0aW9uPicgKworICAgICc8L3NlbGVjdD4nICsKKworICAg
ICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRlZmF1bHQtaGFuZGxlciIgb25mb3JtaW5wdXQ9InJl
c3VsdCA9IFwnRmlyZWRcJyIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJoYW5k
bGVyLXRleHQiIG9uZm9ybWlucHV0PSJyZXN1bHRfaW5wdXRfdGV4dCA9IFwnRGVsaXZlcmVkXCci
IC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJoYW5kbGVyLW51bWJlciIgb25m
b3JtaW5wdXQ9InJlc3VsdF9pbnB1dF9udW1iZXIgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAg
ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImhhbmRsZXItcmFkaW8iIGlkPSJoYW5kbGVyLXJh
ZGlvIiBvbmZvcm1pbnB1dD0icmVzdWx0X2lucHV0X3JhZGlvID0gXCdEZWxpdmVyZWRcJyIgLz4n
ICsKKyAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJoYW5kbGVyLWNoZWNrIiBpZD0i
aGFuZGxlci1jaGVjayIgb25mb3JtaW5wdXQ9InJlc3VsdF9pbnB1dF9jaGVja2JveCA9IFwnRGVs
aXZlcmVkXCciIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaGFuZGxlci10ZXh0YXJlYSIgb25m
b3JtaW5wdXQ9InJlc3VsdF90ZXh0YXJlYSA9IFwnRGVsaXZlcmVkXCciPjwvdGV4dGFyZWE+JyAr
CisgICAgJzxrZXlnZW4gaWQ9ImhhbmRsZXIta2V5Z2VuIiBvbmZvcm1pbnB1dD0icmVzdWx0X2tl
eWdlbiA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxvYmplY3QgaWQ9ImhhbmRsZXItb2Jq
ZWN0IiBvbmZvcm1pbnB1dD0icmVzdWx0X29iamVjdCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisg
ICAgJzxvdXRwdXQgaWQ9ImhhbmRsZXItb3V0cHV0IiBvbmZvcm1pbnB1dD0icmVzdWx0X291dHB1
dCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxzZWxlY3QgaWQ9ImhhbmRsZXItc2VsZWN0
IiBvbmZvcm1pbnB1dD0icmVzdWx0X3NlbGVjdCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisKKyAg
ICAnPHAgaWQ9ImhhbmRsZXItcCIgb25mb3JtaW5wdXQ9InJlc3VsdF9wID0gXCdEZWxpdmVyZWRc
JyI+SGkhPC9wPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCisKK2Z1bmN0
aW9uIG9uZm9ybWlucHV0X3JlbW92aW5nX2lucHV0KCkgeworICAgICQoJ2Zvcm0tcmVtb3Zpbmct
aW5wdXQnKS5yZW1vdmVDaGlsZCgkKCdoYW5kbGVyLXJlbW92aW5nLWlucHV0JykpOworICAgIHJl
c3VsdF9yZW1vdmluZ19pbnB1dCA9ICdEZWxpdmVyZWQnOworfQorCit2YXIgZm9ybV9yZW1vdmlu
Z19pbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2Zvcm1fcmVtb3Zpbmdf
aW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtLXJlbW92aW5nLWlucHV0Jyk7Citmb3JtX3Jl
bW92aW5nX2lucHV0LmlubmVySFRNTCA9CisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5w
dXQtcmVtb3ZpbmctaW5wdXQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0
IHR5cGU9InRleHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWlucHV0IiBvbmZvcm1pbnB1dD0ib25m
b3JtaW5wdXRfcmVtb3ZpbmdfaW5wdXQoKSIgLz4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChmb3JtX3JlbW92aW5nX2lucHV0KTsKKworCitmdW5jdGlvbiBvbmZvcm1pbnB1dF9yZW1vdmlu
Z19mb3JtKCkgeworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoJCgnZm9ybS1yZW1vdmlu
Zy1mb3JtJykpOworICAgIHJlc3VsdF9yZW1vdmluZ19mb3JtID0gJ0RlbGl2ZXJlZCc7Cit9CisK
K3ZhciBmb3JtX3JlbW92aW5nX2Zvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7
Citmb3JtX3JlbW92aW5nX2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtLXJlbW92aW5nLWZv
cm0nKTsKK2Zvcm1fcmVtb3ZpbmdfZm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImlucHV0LXJlbW92aW5nLWZvcm0iIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsK
KyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWZvcm0iIG9uZm9y
bWlucHV0PSJvbmZvcm1pbnB1dF9yZW1vdmluZ19mb3JtKCkiIC8+JzsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZm9ybV9yZW1vdmluZ19mb3JtKTsKKworCit2YXIgcmVzdWx0OworCitkZWJ1
ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlwZT10ZXh0KScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7
CiskKCdpbnB1dC10ZXh0JykuZm9jdXMoKTsKK3NlbmRUZXh0KCQoJ2lucHV0LXRleHQnKSwgJ05l
dyB0ZXh0LicpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlw
ZT1udW1iZXIpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LW51bWJlcicpLmZv
Y3VzKCk7CitzZW5kS2V5KCQoJ2lucHV0LW51bWJlcicpLCAnVXAnKTsKKyQoJ2RlZmF1bHQtaW5w
dXQnKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsK
KworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9cmFkaW8pJyk7CityZXN1bHQgPSAiTm90
IGZpcmVkIjsKKyQoJ2lucHV0LXJhZGlvMicpLmNsaWNrKCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdCIsICJOb3QgZmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5
cGU9Y2hlY2tib3gpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LWNoZWNrMicp
LmNsaWNrKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJOb3QgZmlyZWQiKTsK
KworZGVidWcoJ0NoYW5nZSBmb3IgdGV4dGFyZWEnKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOwor
JCgnaW5wdXQtdGV4dGFyZWEnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtdGV4dGFyZWEn
KSwgJ05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBzZWxl
Y3QnKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworc2VuZE1vdXNlQ2xpY2soJCgnaW5wdXQtc2Vs
ZWN0JykpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiTm90IGZpcmVkIik7CisK
K2RlYnVnKCdmb3JtLmRpc3BhdGNoRm9ybUlucHV0KCknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQi
OworZm9ybS5kaXNwYXRjaEZvcm1JbnB1dCgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHQiLCAiRmlyZWQiKTsKKworCitkZWJ1ZygnJyk7CisKKworZGVidWcoJ0lzIGZvcm1pbnB1dCBk
ZWxpdmVyZWQgZm9yPycpOwordmFyIHJlc3VsdF9pbnB1dF90ZXh0ID0gIk5vdCBkZWxpdmVyZWQi
OwordmFyIHJlc3VsdF9pbnB1dF9udW1iZXIgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0
X2lucHV0X3JhZGlvID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdF9pbnB1dF9jaGVja2Jv
eCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRfdGV4dGFyZWEgPSAiTm90IGRlbGl2ZXJl
ZCI7Cit2YXIgcmVzdWx0X2tleWdlbiA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRfb2Jq
ZWN0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdF9vdXRwdXQgPSAiTm90IGRlbGl2ZXJl
ZCI7Cit2YXIgcmVzdWx0X3NlbGVjdCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRfcCA9
ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5mb2N1cygpOworc2VuZFRleHQo
JCgnZGVmYXVsdC1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRsZXInKS5m
b2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfaW5wdXRfdGV4dCIsICJEZWxp
dmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X2lucHV0X251bWJlciIsICJE
ZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X2lucHV0X3JhZGlvIiwg
IkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRfaW5wdXRfY2hlY2ti
b3giLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF90ZXh0YXJl
YSIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X2tleWdlbiIs
ICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0X29iamVjdCIsICJO
b3QgZGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9vdXRwdXQiLCAi
RGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9zZWxlY3QiLCAiRGVs
aXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9wIiwgIk5vdCBkZWxpdmVy
ZWQiKTsKKwordmFyIHJlc3VsdF9yZW1vdmluZ19pbnB1dCA9ICJOb3QgZGVsaXZlcmVkIjsKKyQo
J2lucHV0LXJlbW92aW5nLWlucHV0JykuZm9jdXMoKTsKK3NlbmRUZXh0KCQoJ2lucHV0LXJlbW92
aW5nLWlucHV0JyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9yZW1vdmluZ19pbnB1dCIsICJEZWxpdmVy
ZWQiKTsKKwordmFyIHJlc3VsdF9yZW1vdmluZ19mb3JtID0gIk5vdCBkZWxpdmVyZWQiOworJCgn
aW5wdXQtcmVtb3ZpbmctZm9ybScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC1yZW1vdmlu
Zy1mb3JtJyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdF9yZW1vdmluZ19mb3JtIiwgIkRlbGl2ZXJlZCIp
OworCisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9ybSk7CitkZWJ1ZygnJyk7CisKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlNzc0MWY3ZTAw
ZDk4MzM4YTYzM2UxNjFlMTZmMzE0YmVmYmUwNy4uOTAwYjg1MDVlMDhhMTMzZWFkMzAxOTY1ZTRj
Y2FjOTdmNDkwNGFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTAxLTE0ICBE
YWkgTWlrdXJ1YmUgIDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb25mb3JtY2hhbmdlIGFuZCBv
bmZvcm1pbnB1dCBldmVudCBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjYxNDEKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9mb3Jt
Y2hhbmdlLWV2ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2
ZW50Lmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG06IEFkZGVkIGV2ZW50IG5hbWVzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBBZGRl
ZCBldmVudCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBBZGRlZCBl
dmVudCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBBZGRlZCBldmVudCBk
ZWZpbml0aW9ucy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6IEFkZGVkIGV2ZW50IGRlZmlu
aXRpb25zLgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dDo6ZnJvbVVzZXJHZXN0dXJlKTogQWRkZWQgYSBjb25kaXRpb24gZm9yIGEgZm9ybWNoYW5nZSBl
dmVudCBpbiBoYW5kbGluZyB1c2VyIGdlc3R1cmVzLgorICAgICAgICAqIGRvbS9FdmVudE5hbWVz
Lmg6IEFkZGVkIGV2ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJl
cik6IFJlcGxhY2VkIGEgZGlyZWN0IGRpc3BhdGNoRXZlbnQoKSBjYWxsIGludG8gZGlzcGF0Y2hJ
bnB1dEV2ZW50cygpLCBhIHZpcnR1YWwgZnVuY3Rpb24gd2hpY2ggYnJvYWRjYXN0cyBmb3JtaW5w
dXQgZXZlbnRzIGZvciBIVE1MIGVsZW1lbnRzLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudHMpOiBEZWZpbmVkIGJhc2lj
IGRpc3BhdGNoSW5wdXRFdmVudHMoKSBkZXNjcmliZWQgYWJvdmUuCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpkaXNwYXRjaENoYW5nZUV2ZW50cyk6IERlZmluZWQgYmFzaWMgZGlzcGF0Y2hDaGFu
Z2VFdmVudHMoKSBkZXNjcmliZWQgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkZWZh
dWx0RXZlbnRIYW5kbGVyKTogUmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwg
aW50byBkaXNwYXRjaElucHV0RXZlbnRzKCkuCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFibGUoKSB0
byBjaGVjayB0aGUgZWxlbWVudCBpcyByZXNldHRhYmxlIG9yIG5vdC4KKyAgICAgICAgKiBodG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjogQWRkZWQgZXZlbnQgbmFtZXMuCisgICAgICAgICogaHRt
bC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBBZGRlZCBldmVudCBoYW5kbGluZy4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbGVtZW50OjpzaGFkb3dBbmNlc3Rvck93bmVyRm9ybSk6IEFkZGVkIHRvIGdldCBhbiBh
bmNlc3RvciA8Zm9ybT4gZWxlbWVudCBmcm9tIGEgc2hhZG93IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VFdmVudHMpOiBEZWZpbmVkIGRpc3Bh
dGNoQ2hhbmdlRXZlbnRzKCkgZm9yIEhUTUwgZWxlbWVudHMgZGVzY3JpYmVkIGFib3ZlLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmRpc3BhdGNoSW5wdXRFdmVudHMpOiBEZWZpbmVk
IGRpc3BhdGNoSW5wdXRFdmVudHMoKSBmb3IgSFRNTCBlbGVtZW50cyBkZXNjcmliZWQgYWJvdmUu
CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQpOiBBZGRlZCBjYWxsaW5nIGRpc3Bh
dGNoRm9ybUNoYW5nZSgpIHRvIGJyb2FkY2FzdCBmb3JtY2hhbmdlIGV2ZW50cy4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1
dEV2ZW50KTogRGVmaW5lZCBuZXdseSB0byBkaXNwYXRjaCBhbiBpbnB1dCBldmVudCB3aXRoIGJy
b2FkY2FzdGluZyBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxG
b3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmJyb2Fk
Y2FzdEZvcm1FdmVudCk6IEFkZGVkIHRvIGJyb2FkY2FzdCBmb3JtaW5wdXQgb3IgZm9ybWNoYW5n
ZSBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9y
bUlucHV0KTogRGVmaW5lZCBuZXdseSB0byBicm9hZGNhc3QgZm9ybWlucHV0IGV2ZW50cy4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ2hhbmdlKTogRGVm
aW5lZCBuZXdseSB0byBicm9hZGNhc3QgZm9ybWNoYW5nZSBldmVudHMuCisgICAgICAgICogaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5pZGw6
IEFkZGVkIGRpc3BhdGNoRm9ybUlucHV0KCkgYW5kIGRpc3BhdGNoRm9ybUNoYW5nZSgpIERPTSBB
UEkgZGVmaW5pdGlvbnMuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5kZXJlcik6IFJl
cGxhY2VkIGEgZGlyZWN0IGRpc3BhdGNoRXZlbnQoKSBjYWxsIGludG8gZGlzcGF0Y2hJbnB1dEV2
ZW50cygpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0
dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50Lmg6IEFkZGVkIGlzUmVz
ZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaDogQWRkZWQgaXNS
ZXNldHRhYmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oOiBBZGRlZCBp
c1Jlc2V0dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6IEFkZGVk
IGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOiBB
ZGRlZCBpc1Jlc2V0dGFibGUoKS4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOiBBZGRlZCBl
dmVudCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IEFkZGVkIGV2
ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogUmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVu
dCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0RXZlbnRzKCkuCisKIDIwMTEtMDEtMTMgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0
cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDE4NjNkOGYzOGI3ZWIyYWM0MmViMjNmODZm
YmFmNTIxZDNlNmU4Y2UuLmVkNzZkMDhiMjBmNjEyMWIwYzJhNWMxNzM4YmMwMjg3Njc1ZGUzZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQpAQCAtNTE4LDcgKzUxOCw3IEBAIG15IEBldmVudFNpZ25hbE5hbWVz
ID0gKAogICAgICMgVXNlciBJbnRlcmZhY2UgRXZlbnQgdHlwZXMKICAgICAiZm9jdXMiLCAiYmx1
ciIsCiAgICAgIyBCYXNpYyBFdmVudCB0eXBlcwotICAgICJsb2FkIiwgInVubG9hZCIsICJhYm9y
dCIsICJlcnJvciIsICJzZWxlY3QiLCAiY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCisgICAg
ImxvYWQiLCAidW5sb2FkIiwgImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAi
Zm9ybWNoYW5nZSIsICJzdWJtaXQiLCAicmVzZXQiLAogICAgICJyZXNpemUiLCAic2Nyb2xsIiwK
ICAgICAjIE1vdXNlIEV2ZW50IHR5cGVzCiAgICAgImNsaWNrIiwgImRibGNsaWNrIiwgIm1vdXNl
ZG93biIsICJtb3VzZXVwIiwKQEAgLTU0MCw3ICs1NDAsNyBAQCBteSBAZXZlbnRTaWduYWxOYW1l
cyA9ICgKICAgICAjIEFuaW1hdGlvbnMKICAgICAid2Via2l0YW5pbWF0aW9uZW5kIiwgIndlYmtp
dGFuaW1hdGlvbnN0YXJ0IiwgIndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiIsCiAgICAgIyBPdGhl
cgotICAgICJjb250ZXh0bWVudSIsICJpbnB1dCIsICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxl
Y3RzdGFydCIpOworICAgICJjb250ZXh0bWVudSIsICJpbnB1dCIsICJmb3JtaW5wdXQiLCAiaW52
YWxpZCIsICJzZWFyY2giLCAic2VsZWN0c3RhcnQiKTsKIAogc3ViIEdlbmVyYXRlUHJvcGVydGll
cyB7CiAgICAgbXkgKCRvYmplY3QsICRpbnRlcmZhY2VOYW1lLCAkZGF0YU5vZGUpID0gQF87CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDI4NjMxNzUxMWVkY2Y2MGFjYWQ0OTY4ZWM0ZjRjZmQ0MWFm
MGIxM2UuLjgwZDg0ZDQ3YTVjOGNlYmY0OGZkMDZhYmRmNzU1ZWMxODM0ZGQxNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0yNTAsNiArMjUwLDggQEAgcHVibGljOgogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGRyYWcpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
ZHJhZ2VuZCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hhbmdl
KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihpbnZhbGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKGtleWRvd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggOGQ3YTcxYmEx
MjA2MjBkNTZjODhlNzkwNmMxYTgwMWU4MzNhNWQzYi4uYzIxNWRmMDRjYjcxZTU5M2Q1NWNiZWJi
NTZmYjUwZDQyNDgwYzBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNjYsNiArMjY2
LDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZHJvcDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3Jt
Y2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9y
bWlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5w
dXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlk
OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsK
QEAgLTI4OCw4ICsyOTAsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5nZTsKICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVtcHRpZWQ7CiAgICAgICAgIC8vIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKLSAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFuZ2U7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAg
IC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRkYXRhOwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRh
dGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fk
c3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA1ZTZjMDQ3OTQzMWI0Y2U1MGIxOWU2YzA5YTZl
YzEyZTVmZmRhZGFiLi40NTEwNDc4N2Y2ZDZmNmFjZTM4MGIzNzQ2MGY1YmIyNzhlYWMwYmM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTYzLDYgKzYzLDggQEAgcHVibGljOgogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZ3N0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGRyYWcpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZHJhZ2VuZCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtY2hh
bmdlKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnB1dCk7CiAgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnZhbGlkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGtleWRvd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdjYjYzYzI1
YzQzNzhkYTIxYzRmZGQzZTFmNGNiNjVhODQ0N2E4YzkuLjY1MmE3NWI2NzRjNjAxOTQyYzg2YTFm
NjBhZDYyMDg3NDA1MGY5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTE1Myw2ICsxNTMs
OCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25kcm9wOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25m
b2N1czsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1j
aGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3Jt
aW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1
dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwpA
QCAtMTc0LDggKzE3Niw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAvLyBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAvLyBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAgICAgLy8g
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAg
Ly8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7CiAgICAg
ICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRtZXRhZGF0
YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRz
dGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IDBhMTUzOGIwYjAzZWRmOWFkNTE0ZTcxYzBmOWQw
MGM1NTg2YzI2NTAuLjI0ZWZjNGVlZTkwYjgyYWEwMmVjMTI3YjVmNjI5ODdjODU4ZDZhMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50LmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgRXZlbnQ6OmZyb21Vc2Vy
R2VzdHVyZSgpCiAgICAgICAgIC8vIG90aGVyIGFjY2VwdGVkIGV2ZW50cwogICAgICAgICB8fCB0
eXBlID09IGV2ZW50TmFtZXMoKS5zZWxlY3RFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5j
aGFuZ2VFdmVudAogICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50IHx8
IHR5cGUgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudAotICAgICAgICB8fCB0eXBlID09IGV2ZW50
TmFtZXMoKS5zdWJtaXRFdmVudDsKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc3Vi
bWl0RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuZm9ybWNoYW5nZUV2ZW50OwogfQogCiBi
b29sIEV2ZW50OjpzdG9yZXNSZXN1bHRBc1N0cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaAppbmRleCA0OTY4MDRlZTUwYWY4Y2JmM2M3YTMxN2MyY2FkNzdjNTExYzEzZjc0Li43Mjc2
OGQyMzgyMWE1N2ZkNGM0ZmQ0OTU2MzY2NTRhNDQwNTE5YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmgKQEAgLTY2LDYgKzY2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGZv
Y3VzKSBcCiAgICAgbWFjcm8oZm9jdXNpbikgXAogICAgIG1hY3JvKGZvY3Vzb3V0KSBcCisgICAg
bWFjcm8oZm9ybWNoYW5nZSkgXAorICAgIG1hY3JvKGZvcm1pbnB1dCkgXAogICAgIG1hY3JvKGhh
c2hjaGFuZ2UpIFwKICAgICBtYWNybyhpbnB1dCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKaW5kZXggMzcyMTFkOGVlMjc3ZDA4MDZiZGM5NjE3
NGU5ZWJlZDgzYTBmNTE2OC4uZGI4OWMxNjQwYzAyNmQxNTg4YTRkMzhlZWY4YmQ0NWNiNDNmNzll
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2
b2lkIElucHV0RWxlbWVudDo6c2V0VmFsdWVGcm9tUmVuZGVyZXIoSW5wdXRFbGVtZW50RGF0YSYg
ZGF0YSwgSW5wdXRFbGVtZW50KiBpbgogCiAgICAgLy8gSW5wdXQgZXZlbnQgaXMgZmlyZWQgYnkg
dGhlIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIgZm9yIGVkaXRhYmxlIGNvbnRyb2xzLgogICAg
IGlmICghaW5wdXRFbGVtZW50LT5pc1RleHRGaWVsZCgpKQotICAgICAgICBlbGVtZW50LT5kaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZh
bHNlKSk7CisgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoSW5wdXRFdmVudHMoKTsKICAgICBub3Rp
ZnlGb3JtU3RhdGVDaGFuZ2VkKGVsZW1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMDhh
OWE0NzhhYzdhMDQ2ZTdmZDliNGZkY2M2NzUzZWM4N2NmM2NhZS4uMmU0MmU4NGQ5MzI3ZWJkNTU5
YWQzNjFlYzllMmY5M2M1NzhiOWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjk2Myw2ICsyOTYz
LDE2IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQogICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0K
IAordm9pZCBOb2RlOjpkaXNwYXRjaENoYW5nZUV2ZW50cygpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgdHJ1ZSwgZmFsc2UpKTsK
K30KKwordm9pZCBOb2RlOjpkaXNwYXRjaElucHV0RXZlbnRzKCkKK3sKKyAgICBkaXNwYXRjaEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7
Cit9CisKIGJvb2wgTm9kZTo6ZGlzYWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsK
QEAgLTMwMjAsNyArMzAzMCw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJh
bWUoKSkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRlZmF1bHRXaGVl
bEV2ZW50SGFuZGxlcihzdGFydE5vZGUsIHdoZWVsRXZlbnQpOwogICAgIH0gZWxzZSBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkud2Via2l0RWRpdGFibGVDb250ZW50Q2hhbmdlZEV2
ZW50KSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
aW5wdXRFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEV2ZW50cygp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggN2M4OGYwZmUyMTJjOWExZDc3YzQ3ZjhkOTU5
YjA5ZTgyYTA5NWIyMS4uNzRlMWNjNDdmZjhhZWJlYjFlMjYwNmQ2MWFlYWY1OTA4ODcwNjI3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCkBAIC01NDEsNiArNTQxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJF
dmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50cygpOworICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaElucHV0RXZlbnRzKCk7CiAKICAgICAvLyBQZXJmb3JtIHRoZSBk
ZWZhdWx0IGFjdGlvbiBmb3IgYW4gZXZlbnQuCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5oCmluZGV4IDg3M2JkZjQ2NDg2MGI1MGU0OWIxNTQ4N2VmNzM4M2Q4ZTE3ODUxZmMuLmVi
ZWZkYzYwMjlkMGI1YWRkZjc4ZjZlMDdmNTM5NDIyZmRmOTMyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCA9IDA7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUoKSBjb25zdCB7IHJldHVybiBmb3JtQ29udHJvbE5hbWUoKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDUxM2U0NGY1ZWViNjFhNTk1YjM0
MzQzNzJhMGZhNmE1MjQ2NmRiZTMuLmVhYzlhNzMwZGU3NmQ5MDYyNzIzY2Q5ZmNlOGUzMWNkNjIx
N2YyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0x
NzcsNiArMTc3LDggQEAgb25lcnJvcgogb25mb2N1cwogb25mb2N1c2luCiBvbmZvY3Vzb3V0Citv
bmZvcm1jaGFuZ2UKK29uZm9ybWlucHV0CiBvbmhhc2hjaGFuZ2UKIG9uaW5wdXQKIG9uaW52YWxp
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBhZjMxMTVjMjIzZGNhNTA0MzYx
M2JiZDJmZGVlZTM4NzI4YTU5MDczLi4xYTRmYzg1NjQwOWY3YmMwZWRhNDliN2EwNTNhNWQ5OTg0
ZDBiZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMTkwLDYgKzE5MCwx
MCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0
dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvY3Vz
aW5FdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb2N1c291dEF0dHIpIHsKICAgICAgICAgc2V0
QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCwgY3JlYXRl
QXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gb25mb3JtY2hhbmdlQXR0cikgeworICAgICAgICBzZXRBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IG9uZm9ybWlucHV0QXR0cikgeworICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2
ZW50TmFtZXMoKS5mb3JtaW5wdXRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0
aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25ibHVyQXR0cikg
ewogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ibHVyRXZl
bnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwogICAgIH0gZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ua2V5ZG93bkF0dHIpIHsKQEAgLTgzNyw2ICs4NDEsNDAg
QEAgSFRNTEZvcm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAogICAg
IHJldHVybiBmaW5kRm9ybUFuY2VzdG9yKCk7CiB9CiAKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVs
ZW1lbnQ6OnNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCkKK3sKKyAgICBOb2RlKiBhbmNlc3Rvck5v
ZGUgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoIWFuY2VzdG9yTm9kZSkKKyAgICAg
ICAgcmV0dXJuIGZvcm0oKTsKKworICAgIGlmICghYW5jZXN0b3JOb2RlLT5pc0hUTUxFbGVtZW50
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIEhUTUxFbGVtZW50KiBhbmNlc3RvckhUTUwgPSBz
dGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGFuY2VzdG9yTm9kZSk7CisgICAgaWYgKCFhbmNlc3Rv
ckhUTUwpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBhbmNlc3RvckhUTUwtPmZvcm0o
KTsKK30KKwordm9pZCBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKQoreworICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gcHJvdGVjdG9yKHRoaXMpOworICAgIFJlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IG93bmVyRm9ybShzaGFkb3dBbmNlc3Rvck93bmVyRm9ybSgpKTsKKworICAgIE5v
ZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7CisgICAgaWYgKG93bmVyRm9ybSkKKyAgICAgICAg
b3duZXJGb3JtLT5kaXNwYXRjaEZvcm1DaGFuZ2UoKTsKK30KKwordm9pZCBIVE1MRWxlbWVudDo6
ZGlzcGF0Y2hJbnB1dEV2ZW50cygpCit7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwcm90ZWN0
b3IodGhpcyk7CisgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gb3duZXJGb3JtKHNoYWRvd0Fu
Y2VzdG9yT3duZXJGb3JtKCkpOworCisgICAgTm9kZTo6ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwor
ICAgIGlmIChvd25lckZvcm0pCisgICAgICAgIG93bmVyRm9ybS0+ZGlzcGF0Y2hGb3JtSW5wdXQo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IGE2NGRiMmNmNzhjNTdjMzY2NjFmOWIxYTRiMmE1NmM3
NTU5MzY0ZTAuLjMzNTZiYWI2NDYzZWM0NzlmOWVhYzAyMzZkNDZkM2I1ZTkwMDEyMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTg0LDYgKzg0LDkgQEAgcHVibGljOgogCiAgICAg
SFRNTEZvcm1FbGVtZW50KiBmaW5kRm9ybUFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJ
bnB1dEV2ZW50cygpOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApAQCAtMTAxLDYgKzEwNCw4IEBAIHByaXZh
dGU6CiAKICAgICBOb2RlKiBpbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2Rl
KiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCisg
ICAgSFRNTEZvcm1FbGVtZW50KiBzaGFkb3dBbmNlc3Rvck93bmVyRm9ybSgpOwogfTsKIAogaW5s
aW5lIEhUTUxFbGVtZW50OjpIVE1MRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCBiM2FkN2M4NDNiNjM1MDU5NjhkZjZlM2M0ZTAzNDk1ODUx
MzI0ZmY4Li5iYjQyZGZkN2Y4MTAyMjZmNDM4MDc1NGVmZDE5ZjQ5ZDQwYmFhM2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTE3OCw3
ICsxNzgsMTIgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXROYW1lKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0
Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkKIHsKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgIEhUTUxF
bGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cygpOworfQorCit2b2lkIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCkKK3sKKyAgICBIVE1MRWxl
bWVudDo6ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogfQogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgKaW5kZXggODQwM2I4NGFjNWVkZDM1NzA2NjE5OGU4ZTRlZGRjZGJh
ZWUzYTAxOC4uYzg4OTA1YzYyZTY2NGNmY2E3OTM4MDc4MmMyNjJjMzVlOGE4MWI5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTUzLDEyICs1
MywxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvcm1Db250cm9sVmFsdWVNYXRj
aGVzUmVuZGVyZXIoYm9vbCBiKSB7IG1fdmFsdWVNYXRjaGVzUmVuZGVyZXIgPSBiOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgZGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkOyB9CiAgICAgdm9pZCBz
ZXREaXNhYmxlZChib29sKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGEgY29udHJvbCB3aWxsIGJl
IGF1dG9tYXRpY2FsbHkgZm9jdXNlZC4KICAgICB2aXJ0dWFsIGJvb2wgYXV0b2ZvY3VzKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggYzg5NmJiZjNi
Mjg3ZGE2MjNjMDk5OWI3YjQ1MThhN2E1NWMyYmE5ZS4uMDUyZGU1OTAwNTc4ZmZkNWI5YzRlMGRm
MDQxY2JlNzc2YmU3MTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cApAQCAtNTkwLDYgKzU5MCwzNiBAQCBib29sIEhUTUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0
eSgpCiAgICAgcmV0dXJuIGNvbnRyb2xzLmlzRW1wdHkoKTsKIH0KIAordm9pZCBIVE1MRm9ybUVs
ZW1lbnQ6OmJyb2FkY2FzdEZvcm1FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkK
K3sKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBwcm90ZWN0b3IodGhpcyk7CisgICAgLy8g
Q29weSBtX2Fzc29jaWF0ZWRFbGVtZW50cyBiZWNhdXNlIGV2ZW50IGhhbmRsZXJzIGNhbGxlZCBm
cm9tCisgICAgLy8gZm9ybUVsZW1lbnQtPmRpc3BhdGNoRXZlbnQoKSBtaWdodCBjaGFuZ2UgbV9h
c3NvY2lhdGVkRWxlbWVudHMuCisgICAgVmVjdG9yPFJlZlB0cjxGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ+ID4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUNhcGFjaXR5KG1fYXNzb2NpYXRl
ZEVsZW1lbnRzLnNpemUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXNzb2Np
YXRlZEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICBlbGVtZW50cy5hcHBlbmQobV9hc3Nv
Y2lhdGVkRWxlbWVudHNbaV0pOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVsZW1l
bnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogZm9ybUFz
c29jaWF0ZWRFbGVtZW50ID0gZWxlbWVudHNbaV0uZ2V0KCk7CisgICAgICAgIGlmICghZm9ybUFz
c29jaWF0ZWRFbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpICB8fCAhZm9ybUFzc29jaWF0
ZWRFbGVtZW50LT5pc1Jlc2V0dGFibGUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBmb3JtRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqPihmb3JtQXNzb2NpYXRlZEVsZW1lbnQpOworICAgICAgICBpZiAo
IWZvcm1FbGVtZW50LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxz
ZSwgZmFsc2UpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgIH0KK30KKwordm9pZCBIVE1M
Rm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUlucHV0KCkKK3sKKyAgICBicm9hZGNhc3RGb3JtRXZl
bnQoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50KTsKK30KKwordm9pZCBIVE1MRm9ybUVsZW1l
bnQ6OmRpc3BhdGNoRm9ybUNoYW5nZSgpCit7CisgICAgYnJvYWRjYXN0Rm9ybUV2ZW50KGV2ZW50
TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQpOworfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6Y29s
bGVjdFVuaGFuZGxlZEludmFsaWRDb250cm9scyhWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVk
RWxlbWVudD4gPiYgdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQogewogICAgIFJlZlB0cjxIVE1M
Rm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5oCmluZGV4IGJkMDg3YjhkZmE1NDRhM2M5YzgyNjBmYmM2MTJkZjNiZGY4NGFlNmUuLjdk
N2Y0Zjg5NzhlZDVmZjdiMmJjZDQ5MGFmNjg1NzFlYWNiYTFlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTE0LDYgKzExNCw5IEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgYXNzb2NpYXRlZEVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9hc3NvY2lhdGVkRWxlbWVudHM7IH0KIAorICAgIHZvaWQgZGlzcGF0
Y2hGb3JtSW5wdXQoKTsKKyAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpOworCiBwcml2YXRl
OgogICAgIEhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
IApAQCAtMTQ0LDYgKzE0Nyw4IEBAIHByaXZhdGU6CiAgICAgLy8gZXZlbnQgd2FzIG5vdCBjYW5j
ZWxlZCB0byB0aGUgc3BlY2lmaWVkIHZlY3Rvci4KICAgICB2b2lkIGNvbGxlY3RVbmhhbmRsZWRJ
bnZhbGlkQ29udHJvbHMoVmVjdG9yPFJlZlB0cjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQ+ID4mKTsK
IAorICAgIHZvaWQgYnJvYWRjYXN0Rm9ybUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOworCiAg
ICAgZnJpZW5kIGNsYXNzIEhUTUxGb3JtQ29sbGVjdGlvbjsKIAogICAgIHR5cGVkZWYgSGFzaE1h
cDxSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4sIFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50
PiA+IEFsaWFzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4
IGU5NzU5ZTI1MzE5ZjI4YzdhYmYzNjYyNTZhMTY2ODljZTljNWQwYzAuLjNlOWU0NmQwNGUzNjY4
ODA0OWE5MGQ2OWEzZTcwNDA5MzI3MmU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5pZGwKQEAgLTQzLDYgKzQzLDkgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAg
ICAgIHZvaWQgcmVzZXQoKTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7CisKKyAg
ICAgICAgdm9pZCBkaXNwYXRjaEZvcm1JbnB1dCgpOworICAgICAgICB2b2lkIGRpc3BhdGNoRm9y
bUNoYW5nZSgpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDdkMmEzYzU0MjkyNzQ0NGUwMjhlMGM5MjMxMmI0ZWIxODhmY2QyOGUuLjVk
YWY0MzgxMzA4Y2NhZmViYzgxZDk0NzdlNTk4NDMxYTk4MDc3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTM3NCw3ICsxMzc0LDcgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgICAgIGlmIChtX2lu
cHV0VHlwZS0+aXNSYW5nZUNvbnRyb2woKSkKICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRy
b2xDaGFuZ2VFdmVudCgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7Cisg
ICAgICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBlYjMwZGUwODljYzAyNjVm
N2ZmMDU3MWFlYTg3Y2QzNjhhOWYzOWEyLi40MDMyNDhjOThhNDFjMTliMTMyYjIyYjFmM2FjY2Rm
ZDE0ZWY1ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjEx
LDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNh
YmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3Vz
U2VsZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvdXRUb1VubG9hZCgpOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDgwZjk0YjU1ZjZiMGM0NTI2OTg2ODNlZTRjYWRiOWRl
NjcxZTU3YWUuLmI4YjE0NGY1MjU4N2IyMjE3ZDE1YTkyNTdjZjY4NmI2OTE0YTRlMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKQEAgLTM1LDYgKzM1LDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1Jl
c2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCBmZjc3M2YxNmQ4MjhjNTFmODMwMTBkNmU5YTA5NmViYmFkNzQ0Y2E3
Li5jYzhhMDNjYzI4ZjVhNWI5MjA2MjQwNjRlZWVmYWQxOTJjNDIwYzViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBi
b29sKTsKIAogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBjb25zdHJhaW50IHZhbGlkYXRpb24g
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCmluZGV4IDgzZWNlZTJm
NDlmODYxNmY3YjEwZWM5ZGJkYzJkZTA3MzBhM2ZkZWQuLjRjNWM2ODQyYjhjYmI4MDU1ZTIzMjhh
ZGIzNGIyZDBhMzA5YWVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91
dHB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxl
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwg
Tm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aAppbmRleCBhMjJkZjAyMDA1ZjJlMzU3NDJlMWQ1MmY1OWFhOTI4OWUyZTU2MzY1Li40MmU4OTYz
ZmRjNmE3ZTI1OGZlNDcwZTRlMWFhNTBjNDQ5N2U1YzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmlu
ZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCA2Njlm
Y2Q4YzUwOTg1YmIyYmVkZGVlZmIxNGM3ZDViNThiMDZhM2I1Li4yMWI1ODgwNGM1MjdmNGFjNzY2
MDc1OTBjMzZiN2IxODNlM2YyY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJh
dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0
YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
aW5kZXggY2EyNDg4YjEwNWQ3MDUyZWQ2ZjM3OGY4ZGYxNjJiYjJhYjM1NWVmYS4uODE5MzFiNTYy
ZDhhZDBjMjkwMjk1ODA5NjFlOWJjY2Q3ZDQzMzg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CkBAIC0yNjksNiArMjY5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsKICAgICAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihlcnJvcik7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZm9jdXMpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGZvcm1jaGFuZ2UpOworICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZv
cm1pbnB1dCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoaGFzaGNo
YW5nZSk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoaW5wdXQpOwog
ICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDBjYjlhMmNhZjk2Nzc4MTc0NDk0YzYyZjgyODYzYjIz
NzczMzU2ZTQuLjliNzFjY2U3Y2NjNWE3MjRhMThjYTg1YWY4MTQxZGZiMDUzYmY2NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTI2Myw2ICsyNjMsOCBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKICAgICAgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hh
bmdlOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwogICAgICAgICBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmludmFsaWQ7CkBAIC0zMDcsOCArMzA5LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAg
IC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uYWZ0ZXJwcmludDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25i
ZWZvcmVwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hh
bmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAg
ICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlZG87CiAgICAgICAgIC8vIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uc2hvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZDZmYzdhYWFjODIwMjQx
MDdlY2RiM2JiODE3M2U4N2IyMjhlZDdkZC4uNDI2MWQ3ZGViYjNhYTBhMWEzYzJhOTJhN2VkNWQ3
OWFkM2NmZjgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lkIFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAgICAgICAgICAgICAgICAgaW5wdXQtPnNldFZhbHVlKCIiKTsKICAgICAgICAgICAgICAgICBp
ZiAoIW9sZFZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICB0b1JlbmRlclRl
eHRDb250cm9sKGlucHV0LT5yZW5kZXJlcigpKS0+c2V0Q2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2
ZW50KHRydWUpOwotICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAg
ICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5wdXQtPm9uU2VhcmNoKCk7CiAgICAg
ICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79358</attachid>
            <date>2011-01-18 17:09:23 -0800</date>
            <delta_ts>2011-01-18 17:49:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110119100921.patch</filename>
            <type>text/plain</type>
            <size>49340</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMDgyOTkxYjRlOTVlMzliOWMwMmFmNTAwMWZiYjVhYzliNTc3NTJlLi4xMjQ0YTlk
OTMyMmI0NTQxZWFiMzg3MDY5NTBkZmYyOGFmODA2MzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTggIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWVi
YWQ4MzA3M2RhMjM2N2FjMGY2MGY0OGIyOWMzZWQ5YmY5OWJlMS4uOTQ0OGYzMDI5ZTc0YzEwYzhl
NDZlZjE1NjkwNDk2ZTEwODJjZWU4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzExLDYg
KzIzMTEsOCBAQCB3aW5kb3cub25lbXB0aWVkIFtudWxsXQogd2luZG93Lm9uZW5kZWQgW251bGxd
CiB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdpbmRvdy5vbmZvY3VzIFtudWxsXQord2luZG93Lm9u
Zm9ybWNoYW5nZSBbbnVsbF0KK3dpbmRvdy5vbmZvcm1pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmhh
c2hjaGFuZ2UgW251bGxdCiB3aW5kb3cub25pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmludmFsaWQg
W251bGxdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDY4MzE1
YWQ2ZDRkOGE5ZmFkYTJlOGQyYmE2ZTg2ZmE3NjY1ZTgyOTYuLmU1MDc4MzliNzE1MGEzYTFiNWRh
Yjk2YTBkNTRjMDJkNzUwMmI5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0CkBAIC0zOTMsNiArMzkzLDggQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVtcHRpZWQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVuZGVkJykgaXMg
J29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnb25lcnJvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9jdXMnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmZvcm1jaGFuZ2Un
KSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdvbmZvcm1pbnB1dCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uaGFzaGNoYW5nZScpIGlzICdvYmpl
Y3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J29uaW5wdXQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdvbmludmFsaWQnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjRiMTFiYTAxMjE2MGE5MzE2Yzk1MGNkZmJkOTRmM2FiZjQxODU4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXRleHQp
CitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlcikK
K1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9cmFkaW8pCitQ
QVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPWNoZWNrYm94KQor
UEFTUyByZXN1bHQgaXMgIkZpcmVkIgorQ2hhbmdlIGZvciB0ZXh0YXJlYQorUEFTUyByZXN1bHQg
aXMgIkZpcmVkIgorQ2hhbmdlIGZvciBzZWxlY3QKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK2Zv
cm0uZGlzcGF0Y2hGb3JtQ2hhbmdlKCkKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKKworSXMgZm9y
bWNoYW5nZSBkZWxpdmVyZWQgZm9yPworUEFTUyByZXN1bHRJbnB1dFRleHQgaXMgIkRlbGl2ZXJl
ZCIKK1BBU1MgcmVzdWx0SW5wdXROdW1iZXIgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0SW5w
dXRSYWRpbyBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRJbnB1dENoZWNrYm94IGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdFRleHRhcmVhIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdEtl
eWdlbiBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRPYmplY3QgaXMgIk5vdCBkZWxpdmVyZWQi
CitQQVNTIHJlc3VsdE91dHB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRTZWxlY3QgaXMg
IkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0UCBpcyAiTm90IGRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
UmVtb3ZpbmdJbnB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRSZW1vdmluZ0Zvcm0gaXMg
IkRlbGl2ZXJlZCIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1l
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODI2YmJhYzA4ZDkyZmYyZjU2OWM5MmU1OGMxMzJhMDE2YTdhYWIzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC5o
dG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZm9ybWNoYW5nZS1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNmU1OGE2ZjA5ZGE2ZDYyNDUyZTBiMDM3ZGVhODdiOTU1YmZl
Zjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtaW5wdXQt
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgZm9yIGZvcm1pbnB1dCBl
dmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0
ICh0eXBlPXRleHQpCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0
eXBlPW51bWJlcikKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5
cGU9cmFkaW8pCitQQVNTIHJlc3VsdCBpcyAiTm90IGZpcmVkIgorQ2hhbmdlIGZvciBpbnB1dCAo
dHlwZT1jaGVja2JveCkKK1BBU1MgcmVzdWx0IGlzICJOb3QgZmlyZWQiCitDaGFuZ2UgZm9yIHRl
eHRhcmVhCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIHNlbGVjdAorUEFTUyBy
ZXN1bHQgaXMgIk5vdCBmaXJlZCIKK2Zvcm0uZGlzcGF0Y2hGb3JtSW5wdXQoKQorUEFTUyByZXN1
bHQgaXMgIkZpcmVkIgorCitJcyBmb3JtaW5wdXQgZGVsaXZlcmVkIGZvcj8KK1BBU1MgcmVzdWx0
SW5wdXRUZXh0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdElucHV0TnVtYmVyIGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdElucHV0UmFkaW8gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
SW5wdXRDaGVja2JveCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRUZXh0YXJlYSBpcyAiRGVs
aXZlcmVkIgorUEFTUyByZXN1bHRLZXlnZW4gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0T2Jq
ZWN0IGlzICJOb3QgZGVsaXZlcmVkIgorUEFTUyByZXN1bHRPdXRwdXQgaXMgIkRlbGl2ZXJlZCIK
K1BBU1MgcmVzdWx0U2VsZWN0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdFAgaXMgIk5vdCBk
ZWxpdmVyZWQiCitQQVNTIHJlc3VsdFJlbW92aW5nSW5wdXQgaXMgIkRlbGl2ZXJlZCIKK1BBU1Mg
cmVzdWx0UmVtb3ZpbmdGb3JtIGlzICJEZWxpdmVyZWQiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtaW5wdXQtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjdhOTIwMjAyN2UxMDNiNmI4NTQyMjNm
NWI0YWNmZDdiYTNkNzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtaW5wdXQtZXZlbnQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2UtZXZlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZTljMjQ3ZTY3
MTdjYjk1OTQ5YmVkMTljNmRhZGIxOGMwZGY1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCkBAIC0wLDAg
KzEsMTc3IEBACitkZXNjcmlwdGlvbignVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuJyk7CisK
K2Z1bmN0aW9uIHNlbmRLZXkoZWxlbWVudCwga2V5TmFtZSkgeworICAgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEtleWJv
YXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmlldywga2V5
TmFtZSk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24g
c2VuZFRleHQoZWxlbWVudCwgdGV4dCkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCdUZXh0RXZlbnQnKTsKKyAgICBldmVudC5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQn
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgdGV4dCk7CisgICAgZWxlbWVudC5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24gc2VuZE1vdXNlQ2xpY2soZWxlbWVu
dCkgeworICAgIHZhciB4ID0gZWxlbWVudC5jbGllbnRMZWZ0ICsgMTA7CisgICAgdmFyIHkgPSBl
bGVtZW50LmNsaWVudFRvcCArIDEwOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2
ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIs
IHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNl
RXZlbnQiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2V1cCIsIHRydWUsIHRydWUs
IGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7
Cit9CisKK2Z1bmN0aW9uICQoaWQpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOworfQorCisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScp
OworZm9ybS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0KKyAg
ICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVy
ZS4iIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQtdGV4dCIgdmFsdWU9
IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQt
bnVtYmVyIiB2YWx1ZT0iMjQiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0i
aW5wdXQtcmFkaW8iIGlkPSJpbnB1dC1yYWRpbzEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAg
ICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnB1dC1yYWRpbyIgaWQ9ImlucHV0LXJhZGlv
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5w
dXQtY2hlY2siIGlkPSJpbnB1dC1jaGVjazEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAgICAn
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dC1jaGVjayIgaWQ9ImlucHV0LWNoZWNr
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaW5wdXQtdGV4dGFyZWEiPklu
cHV0IGhlcmUuPC90ZXh0YXJlYT4nICsKKyAgICAnPHNlbGVjdCBpZD0iaW5wdXQtc2VsZWN0IiBt
dWx0aXBsZT4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMSIgdmFsdWU9Im9wdGlv
bjEiPm9wdGlvbjE8L29wdGlvbj4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMiIg
dmFsdWU9Im9wdGlvbjIiPm9wdGlvbjI8L29wdGlvbj4nICsKKyAgICAnPC9zZWxlY3Q+JyArCisK
KyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWhhbmRsZXIiIG9uZm9ybWNoYW5n
ZT0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImhhbmRsZXItdGV4dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRJbnB1dFRleHQgPSBcJ0RlbGl2ZXJl
ZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaGFuZGxlci1udW1iZXIi
IG9uZm9ybWNoYW5nZT0icmVzdWx0SW5wdXROdW1iZXIgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImhhbmRsZXItcmFkaW8iIGlkPSJoYW5kbGVy
LXJhZGlvIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2ZXJlZFwnIiAv
PicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXItY2hlY2siIGlk
PSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0Q2hlY2tib3ggPSBcJ0Rl
bGl2ZXJlZFwnIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImhhbmRsZXItdGV4dGFyZWEiIG9u
Zm9ybWNoYW5nZT0icmVzdWx0VGV4dGFyZWEgPSBcJ0RlbGl2ZXJlZFwnIj48L3RleHRhcmVhPicg
KworICAgICc8a2V5Z2VuIGlkPSJoYW5kbGVyLWtleWdlbiIgb25mb3JtY2hhbmdlPSJyZXN1bHRL
ZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5kbGVyLW9i
amVjdCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPYmplY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8b3V0cHV0IGlkPSJoYW5kbGVyLW91dHB1dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPdXRw
dXQgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8c2VsZWN0IGlkPSJoYW5kbGVyLXNlbGVj
dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworCisg
ICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWNoYW5nZT0icmVzdWx0UCA9IFwnRGVsaXZlcmVk
XCciPkhpITwvcD4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKKworCitmdW5j
dGlvbiBvbmZvcm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkgeworICAgICQoJ2Zvcm0tcmVtb3Zpbmct
aW5wdXQnKS5yZW1vdmVDaGlsZCgkKCdoYW5kbGVyLXJlbW92aW5nLWlucHV0JykpOworICAgIHJl
c3VsdFJlbW92aW5nSW5wdXQgPSAnRGVsaXZlcmVkJzsKK30KKwordmFyIGZvcm1fcmVtb3Zpbmdf
aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtX3JlbW92aW5nX2lu
cHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybV9yZW1v
dmluZ19pbnB1dC5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXJlbW92aW5nLWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAgJzxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1pbnB1dCIgb25mb3JtY2hhbmdlPSJvbmZv
cm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkiIC8+JzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Zm9ybV9yZW1vdmluZ19pbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtY2hhbmdlUmVtb3ZpbmdG
b3JtKCkgeworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoJCgnZm9ybS1yZW1vdmluZy1m
b3JtJykpOworICAgIHJlc3VsdFJlbW92aW5nRm9ybSA9ICdEZWxpdmVyZWQnOworfQorCit2YXIg
Zm9ybV9yZW1vdmluZ19mb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9y
bV9yZW1vdmluZ19mb3JtLnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1mb3JtJyk7
Citmb3JtX3JlbW92aW5nX2Zvcm0uaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQi
IGlkPSJpbnB1dC1yZW1vdmluZy1mb3JtIiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAg
JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1mb3JtIiBvbmZvcm1jaGFu
Z2U9Im9uZm9ybWNoYW5nZVJlbW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZvcm1fcmVtb3ZpbmdfZm9ybSk7CisKKwordmFyIHJlc3VsdDsKKworZGVidWcoJ0No
YW5nZSBmb3IgaW5wdXQgKHR5cGU9dGV4dCknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgn
aW5wdXQtdGV4dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9bnVt
YmVyKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC1udW1iZXInKS5mb2N1cygp
Oworc2VuZEtleSgkKCdpbnB1dC1udW1iZXInKSwgJ1VwJyk7CiskKCdkZWZhdWx0LWlucHV0Jyku
Zm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7CisKK2Rl
YnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXJhZGlvKScpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CiskKCdpbnB1dC1yYWRpbzInKS5jbGljaygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9Y2hlY2ti
b3gpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LWNoZWNrMicpLmNsaWNrKCk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hh
bmdlIGZvciB0ZXh0YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0
YXJlYScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQu
Jyk7CiskKCdkZWZhdWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVzdWx0IiwgIkZpcmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0
ID0gIk5vdCBmaXJlZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnZm9ybS5kaXNw
YXRjaEZvcm1DaGFuZ2UoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNo
Rm9ybUNoYW5nZSgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsK
KworCitkZWJ1ZygnJyk7CisKKworZGVidWcoJ0lzIGZvcm1jaGFuZ2UgZGVsaXZlcmVkIGZvcj8n
KTsKK3ZhciByZXN1bHRJbnB1dFRleHQgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5w
dXROdW1iZXIgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5wdXRSYWRpbyA9ICJOb3Qg
ZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRJbnB1dENoZWNrYm94ID0gIk5vdCBkZWxpdmVyZWQiOwor
dmFyIHJlc3VsdFRleHRhcmVhID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdEtleWdlbiA9
ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRPYmplY3QgPSAiTm90IGRlbGl2ZXJlZCI7Cit2
YXIgcmVzdWx0T3V0cHV0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdFNlbGVjdCA9ICJO
b3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRQID0gIk5vdCBkZWxpdmVyZWQiOworJCgnZGVmYXVs
dC1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdkZWZhdWx0LWlucHV0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0VGV4dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0SW5wdXROdW1iZXIiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0UmFkaW8iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0Q2hlY2tib3giLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdFRleHRhcmVhIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHRLZXlnZW4iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE9iamVjdCIsICJOb3QgZGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE91dHB1dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0U2VsZWN0IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRQ
IiwgIk5vdCBkZWxpdmVyZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nSW5wdXQgPSAiTm90IGRl
bGl2ZXJlZCI7CiskKCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgk
KCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRs
ZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0lucHV0
IiwgIkRlbGl2ZXJlZCIpOworCit2YXIgcmVzdWx0UmVtb3ZpbmdGb3JtID0gIk5vdCBkZWxpdmVy
ZWQiOworJCgnaW5wdXQtcmVtb3ZpbmctZm9ybScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1
dC1yZW1vdmluZy1mb3JtJyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZv
Y3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFJlbW92aW5nRm9ybSIsICJEZWxp
dmVyZWQiKTsKKworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZvcm0pOworZGVidWcoJycp
OworCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxYjNlYzlhMDhkMDgwZjhiMmMwZmUzYWViYzhkZWRiNTlmYzk2ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZl
bnQuanMKQEAgLTAsMCArMSwxNzcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBmb3JtaW5wdXQg
ZXZlbnRzLicpOworCitmdW5jdGlvbiBzZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2
YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2
ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcsIGtleU5hbWUpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK2Z1bmN0aW9uIHNlbmRUZXh0KGVsZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBk
b2N1bWVudC5jcmVhdGVFdmVudCgnVGV4dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVu
dCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOwor
ICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK2Z1bmN0aW9uIHNlbmRNb3Vz
ZUNsaWNrKGVsZW1lbnQpIHsKKyAgICB2YXIgeCA9IGVsZW1lbnQuY2xpZW50TGVmdCArIDEwOwor
ICAgIHZhciB5ID0gZWxlbWVudC5jbGllbnRUb3AgKyAxMDsKKyAgICB2YXIgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50
KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwg
eCwgeSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNldXAi
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwgeCwgeSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiAkKGlkKSB7CisgICAgcmV0dXJuIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworCit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2Zvcm0nKTsKK2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtJyk7Citmb3JtLmlu
bmVySFRNTCA9CisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1pbnB1dCIgdmFs
dWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXRleHQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9Im51bWJl
ciIgaWQ9ImlucHV0LW51bWJlciIgdmFsdWU9IjI0IiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
cmFkaW8iIG5hbWU9ImlucHV0LXJhZGlvIiBpZD0iaW5wdXQtcmFkaW8xIiB2YWx1ZT0iMSIgY2hl
Y2tlZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQtcmFkaW8iIGlk
PSJpbnB1dC1yYWRpbzIiIHZhbHVlPSIyIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIG5hbWU9ImlucHV0LWNoZWNrIiBpZD0iaW5wdXQtY2hlY2sxIiB2YWx1ZT0iMSIgY2hlY2tl
ZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5wdXQtY2hlY2siIGlk
PSJpbnB1dC1jaGVjazIiIHZhbHVlPSIyIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImlucHV0
LXRleHRhcmVhIj5JbnB1dCBoZXJlLjwvdGV4dGFyZWE+JyArCisgICAgJzxzZWxlY3QgaWQ9Imlu
cHV0LXNlbGVjdCIgbXVsdGlwbGU+JyArCisgICAgJzxvcHRpb24gaWQ9ImlucHV0LW9wdGlvbjEi
IHZhbHVlPSJvcHRpb24xIj5vcHRpb24xPC9vcHRpb24+JyArCisgICAgJzxvcHRpb24gaWQ9Imlu
cHV0LW9wdGlvbjIiIHZhbHVlPSJvcHRpb24yIj5vcHRpb24yPC9vcHRpb24+JyArCisgICAgJzwv
c2VsZWN0PicgKworCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1oYW5kbGVy
IiBvbmZvcm1pbnB1dD0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImhhbmRsZXItdGV4dCIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0VGV4dCA9
IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJoYW5k
bGVyLW51bWJlciIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0TnVtYmVyID0gXCdEZWxpdmVyZWRc
JyIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJoYW5kbGVyLXJhZGlvIiBp
ZD0iaGFuZGxlci1yYWRpbyIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2
ZXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXIt
Y2hlY2siIGlkPSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1pbnB1dD0icmVzdWx0SW5wdXRDaGVja2Jv
eCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaGFuZGxlci10ZXh0
YXJlYSIgb25mb3JtaW5wdXQ9InJlc3VsdFRleHRhcmVhID0gXCdEZWxpdmVyZWRcJyI+PC90ZXh0
YXJlYT4nICsKKyAgICAnPGtleWdlbiBpZD0iaGFuZGxlci1rZXlnZW4iIG9uZm9ybWlucHV0PSJy
ZXN1bHRLZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5k
bGVyLW9iamVjdCIgb25mb3JtaW5wdXQ9InJlc3VsdE9iamVjdCA9IFwnRGVsaXZlcmVkXCciIC8+
JyArCisgICAgJzxvdXRwdXQgaWQ9ImhhbmRsZXItb3V0cHV0IiBvbmZvcm1pbnB1dD0icmVzdWx0
T3V0cHV0ID0gXCdEZWxpdmVyZWRcJyIgLz4nICsKKyAgICAnPHNlbGVjdCBpZD0iaGFuZGxlci1z
ZWxlY3QiIG9uZm9ybWlucHV0PSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
CisgICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWlucHV0PSJyZXN1bHRQID0gXCdEZWxpdmVy
ZWRcJyI+SGkhPC9wPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCisKK2Z1
bmN0aW9uIG9uZm9ybWlucHV0UmVtb3ZpbmdJbnB1dCgpIHsKKyAgICAkKCdmb3JtLXJlbW92aW5n
LWlucHV0JykucmVtb3ZlQ2hpbGQoJCgnaGFuZGxlci1yZW1vdmluZy1pbnB1dCcpKTsKKyAgICBy
ZXN1bHRSZW1vdmluZ0lucHV0ID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3ZpbmdJ
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2Zvcm1SZW1vdmluZ0lucHV0
LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybVJlbW92aW5n
SW5wdXQuaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dC1yZW1v
dmluZy1pbnB1dCIgdmFsdWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImhhbmRsZXItcmVtb3ZpbmctaW5wdXQiIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1
dFJlbW92aW5nSW5wdXQoKSIgLz4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtUmVt
b3ZpbmdJbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtaW5wdXRSZW1vdmluZ0Zvcm0oKSB7Cisg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCgkKCdmb3JtLXJlbW92aW5nLWZvcm0nKSk7Cisg
ICAgcmVzdWx0UmVtb3ZpbmdGb3JtID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3Zp
bmdGb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9ybVJlbW92aW5nRm9y
bS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0tcmVtb3ZpbmctZm9ybScpOworZm9ybVJlbW92aW5n
Rm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0LXJlbW92
aW5nLWZvcm0iIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWZvcm0iIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1dFJl
bW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm1SZW1vdmlu
Z0Zvcm0pOworCisKK3ZhciByZXN1bHQ7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBl
PXRleHQpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LXRleHQnKS5mb2N1cygp
Oworc2VuZFRleHQoJCgnaW5wdXQtdGV4dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWlu
cHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7
CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlciknKTsKK3Jlc3VsdCA9ICJO
b3QgZmlyZWQiOworJCgnaW5wdXQtbnVtYmVyJykuZm9jdXMoKTsKK3NlbmRLZXkoJCgnaW5wdXQt
bnVtYmVyJyksICdVcCcpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1
dCAodHlwZT1yYWRpbyknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtcmFkaW8y
JykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIp
OworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlwZT1jaGVja2JveCknKTsKK3Jlc3VsdCA9
ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtY2hlY2syJykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciB0ZXh0
YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0YXJlYScpLmZvY3Vz
KCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZh
dWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZp
cmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJOb3QgZmlyZWQiKTsKKworZGVidWcoJ2Zvcm0uZGlzcGF0Y2hGb3Jt
SW5wdXQoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNoRm9ybUlucHV0
KCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCisKK2RlYnVn
KCcnKTsKKworCitkZWJ1ZygnSXMgZm9ybWlucHV0IGRlbGl2ZXJlZCBmb3I/Jyk7Cit2YXIgcmVz
dWx0SW5wdXRUZXh0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0TnVtYmVyID0g
Ik5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0UmFkaW8gPSAiTm90IGRlbGl2ZXJlZCI7
Cit2YXIgcmVzdWx0SW5wdXRDaGVja2JveCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRU
ZXh0YXJlYSA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRLZXlnZW4gPSAiTm90IGRlbGl2
ZXJlZCI7Cit2YXIgcmVzdWx0T2JqZWN0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdE91
dHB1dCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRTZWxlY3QgPSAiTm90IGRlbGl2ZXJl
ZCI7Cit2YXIgcmVzdWx0UCA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5m
b2N1cygpOworc2VuZFRleHQoJCgnZGVmYXVsdC1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdk
ZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFRleHQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdElu
cHV0TnVtYmVyIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFJhZGlvIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dENoZWNrYm94IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHRUZXh0YXJlYSIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
S2V5Z2VuIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPYmpl
Y3QiLCAiTm90IGRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPdXRw
dXQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFNlbGVjdCIs
ICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UCIsICJOb3QgZGVs
aXZlcmVkIik7CisKK3ZhciByZXN1bHRSZW1vdmluZ0lucHV0ID0gIk5vdCBkZWxpdmVyZWQiOwor
JCgnaW5wdXQtcmVtb3ZpbmctaW5wdXQnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVt
b3ZpbmctaW5wdXQnKSwgJ05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1oYW5kbGVyJykuZm9jdXMo
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UmVtb3ZpbmdJbnB1dCIsICJEZWxpdmVy
ZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nRm9ybSA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2lu
cHV0LXJlbW92aW5nLWZvcm0nKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVtb3Zpbmct
Zm9ybScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0Zvcm0iLCAiRGVsaXZlcmVkIik7CisK
KworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKK2RlYnVnKCcnKTsKKworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODAzNDZmOTc4YWU5YmNj
N2IxMjJkY2ExNjM0ZDYzOWZkNGJiN2U5Li4yYmM2ZTVjMTQ1Zjc5ZTJjYTQ4ZmQ1ZGRhMmU3MTI4
ZDY5NjdjODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDEtMTggIERhaSBN
aWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZvcm1jaGFuZ2UgYW5kIG9uZm9y
bWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1jaGFu
Z2UtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQu
aHRtbAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bTogQWRkZWQgZXZlbnQgbmFtZXMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIGV2
ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZGVkIGV2ZW50IGRlZmlu
aXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDogQWRkZWQgZXZlbnQgZGVmaW5pdGlv
bnMuCisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojpm
cm9tVXNlckdlc3R1cmUpOiBBZGRlZCBhIGNvbmRpdGlvbiBmb3IgYSBmb3JtY2hhbmdlIGV2ZW50
IGluIGhhbmRsaW5nIHVzZXIgZ2VzdHVyZXMuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDog
QWRkZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRnJvbVJlbmRlcmVyKTog
UmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0
RXZlbnRzKCksIGEgdmlydHVhbCBmdW5jdGlvbiB3aGljaCBicm9hZGNhc3RzIGZvcm1pbnB1dCBl
dmVudHMgZm9yIEhUTUwgZWxlbWVudHMuCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgYmFzaWMgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKTogRGVmaW5lZCBiYXNpYyBkaXNwYXRjaENoYW5nZUV2
ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkgY2FsbCBpbnRv
IGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAq
IGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpIHRvIGNo
ZWNrIHRoZSBlbGVtZW50IGlzIHJlc2V0dGFibGUgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBldmVudCBuYW1lcy4KKyAgICAgICAgKiBodG1sL0hU
TUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6IEFkZGVkIGV2ZW50IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKTogQWRkZWQgdG8gZ2V0IGFuIGFuY2Vz
dG9yIDxmb3JtPiBlbGVtZW50IGZyb20gYSBzaGFkb3cgZWxlbWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cyk6IERlZmluZWQgZGlzcGF0Y2hD
aGFuZ2VFdmVudHMoKSBmb3IgSFRNTCBlbGVtZW50cyBkZXNjcmliZWQgYWJvdmUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGZvciBIVE1MIGVsZW1lbnRzIGRlc2NyaWJlZCBhYm92ZS4KKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk6IEFkZGVkIGNhbGxpbmcgZGlzcGF0Y2hG
b3JtQ2hhbmdlKCkgdG8gYnJvYWRjYXN0IGZvcm1jaGFuZ2UgZXZlbnRzLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZl
bnQpOiBEZWZpbmVkIG5ld2x5IHRvIGRpc3BhdGNoIGFuIGlucHV0IGV2ZW50IHdpdGggYnJvYWRj
YXN0aW5nIGZvcm1pbnB1dCBldmVudHMuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6YnJvYWRjYXN0
Rm9ybUV2ZW50KTogQWRkZWQgdG8gYnJvYWRjYXN0IGZvcm1pbnB1dCBvciBmb3JtY2hhbmdlIGV2
ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtSW5w
dXQpOiBEZWZpbmVkIG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjpkaXNwYXRjaEZvcm1DaGFuZ2UpOiBEZWZpbmVk
IG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtY2hhbmdlIGV2ZW50cy4KKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmlkbDogQWRk
ZWQgZGlzcGF0Y2hGb3JtSW5wdXQoKSBhbmQgZGlzcGF0Y2hGb3JtQ2hhbmdlKCkgRE9NIEFQSSBk
ZWZpbml0aW9ucy4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKTogUmVwbGFj
ZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0RXZlbnRz
KCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJs
ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDogQWRkZWQgaXNSZXNldHRh
YmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0
dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVz
ZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDogQWRkZWQgaXNS
ZXNldHRhYmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6IEFkZGVk
IGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogQWRkZWQgZXZlbnQg
ZGVmaW5pdGlvbnMuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkg
Y2FsbCBpbnRvIGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKwogMjAxMS0wMS0xNyAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZ
dXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggMTg2M2Q4ZjM4YjdlYjJhYzQyZWIy
M2Y4NmZiYWY1MjFkM2U2ZThjZS4uZWQ3NmQwOGIyMGY2MTIxYjBjMmE1YzE3MzhiYzAyODc2NzVk
ZTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC01MTgsNyArNTE4LDcgQEAgbXkgQGV2ZW50U2lnbmFs
TmFtZXMgPSAoCiAgICAgIyBVc2VyIEludGVyZmFjZSBFdmVudCB0eXBlcwogICAgICJmb2N1cyIs
ICJibHVyIiwKICAgICAjIEJhc2ljIEV2ZW50IHR5cGVzCi0gICAgImxvYWQiLCAidW5sb2FkIiwg
ImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAic3VibWl0IiwgInJlc2V0IiwK
KyAgICAibG9hZCIsICJ1bmxvYWQiLCAiYWJvcnQiLCAiZXJyb3IiLCAic2VsZWN0IiwgImNoYW5n
ZSIsICJmb3JtY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCiAgICAgInJlc2l6ZSIsICJzY3Jv
bGwiLAogICAgICMgTW91c2UgRXZlbnQgdHlwZXMKICAgICAiY2xpY2siLCAiZGJsY2xpY2siLCAi
bW91c2Vkb3duIiwgIm1vdXNldXAiLApAQCAtNTQwLDcgKzU0MCw3IEBAIG15IEBldmVudFNpZ25h
bE5hbWVzID0gKAogICAgICMgQW5pbWF0aW9ucwogICAgICJ3ZWJraXRhbmltYXRpb25lbmQiLCAi
d2Via2l0YW5pbWF0aW9uc3RhcnQiLCAid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwKICAgICAj
IE90aGVyCi0gICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImludmFsaWQiLCAic2VhcmNoIiwg
InNlbGVjdHN0YXJ0Iik7CisgICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImZvcm1pbnB1dCIs
ICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOwogCiBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzIHsKICAgICBteSAoJG9iamVjdCwgJGludGVyZmFjZU5hbWUsICRkYXRhTm9kZSkgPSBA
XzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYjM4ZDNkZDA2ZGI4NTNmZmM2MjQ2NzFmODVhNjI2
OWVkNGJkMzQ1Ni4uMmNkMjZmOWVkMzJjOTNiN2YwM2Y1Y2ZjYjNlZWZiNGEwNjJmOTlkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTI0OSw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1j
aGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0KTsK
ICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA4ZDdh
NzFiYTEyMDYyMGQ1NmM4OGU3OTA2YzFhODAxZTgzM2E1ZDNiLi5jMjE1ZGYwNGNiNzFlNTkzZDU1
Y2JlYmI1NmZiNTBkNDI0ODBjMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI2Niw2
ICsyNjYsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25kcm9wOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmlu
dmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlk
b3duOwpAQCAtMjg4LDggKzI5MCw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAg
Ly8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAg
ICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAg
ICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRt
ZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVlNmMwNDc5NDMxYjRjZTUwYjE5ZTZj
MDlhNmVjMTJlNWZmZGFkYWIuLjQ1MTA0Nzg3ZjZkNmY2YWNlMzgwYjM3NDYwZjViYjI3OGVhYzBi
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZv
cm1jaGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0
KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggN2Ni
NjNjMjVjNDM3OGRhMjFjNGZkZDNlMWY0Y2I2NWE4NDQ3YThjOS4uNjUyYTc1YjY3NGM2MDE5NDJj
ODZhMWY2MGFkNjIwODc0MDUwZjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMTUzLDYg
KzE1Myw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmRyb3A7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9ybWNoYW5nZTsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW52
YWxpZDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRv
d247CkBAIC0xNzQsOCArMTc2LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAvLyBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHVyYXRpb25jaGFuZ2U7CiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwotICAgICAg
ICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1l
dGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggMGExNTM4YjBiMDNlZGY5YWQ1MTRlNzFj
MGY5ZDAwYzU1ODZjMjY1MC4uMjRlZmM0ZWVlOTBiODJhYTAyZWMxMjdiNWY2Mjk4N2M4NThkNmEy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBFdmVudDo6ZnJv
bVVzZXJHZXN0dXJlKCkKICAgICAgICAgLy8gb3RoZXIgYWNjZXB0ZWQgZXZlbnRzCiAgICAgICAg
IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1l
cygpLmNoYW5nZUV2ZW50CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3VzRXZl
bnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50Ci0gICAgICAgIHx8IHR5cGUgPT0g
ZXZlbnROYW1lcygpLnN1Ym1pdEV2ZW50OworICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS5zdWJtaXRFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQ7CiB9
CiAKIGJvb2wgRXZlbnQ6OnN0b3Jlc1Jlc3VsdEFzU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCmluZGV4IDQ5NjgwNGVlNTBhZjhjYmYzYzdhMzE3YzJjYWQ3N2M1MTFjMTNmNzQu
LjcyNzY4ZDIzODIxYTU3ZmQ0YzRmZDQ5NTYzNjY1NGE0NDA1MTlhMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtNjYsNiArNjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwK
KyAgICBtYWNybyhmb3JtY2hhbmdlKSBcCisgICAgbWFjcm8oZm9ybWlucHV0KSBcCiAgICAgbWFj
cm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaW52YWxpZCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAppbmRleCAzNzIxMWQ4ZWUyNzdkMDgwNmJk
Yzk2MTc0ZTllYmVkODNhMGY1MTY4Li5kYjg5YzE2NDBjMDI2ZDE1ODhhNGQzOGVlZjhiZDQ1Y2I0
M2Y3OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcApAQCAtMTQwLDcgKzE0MCw3
IEBAIHZvaWQgSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJlcihJbnB1dEVsZW1lbnRE
YXRhJiBkYXRhLCBJbnB1dEVsZW1lbnQqIGluCiAKICAgICAvLyBJbnB1dCBldmVudCBpcyBmaXJl
ZCBieSB0aGUgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlciBmb3IgZWRpdGFibGUgY29udHJvbHMu
CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkpCi0gICAgICAgIGVsZW1lbnQt
PmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogICAg
IG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRl
eCAwOGE5YTQ3OGFjN2EwNDZlN2ZkOWI0ZmRjYzY3NTNlYzg3Y2YzY2FlLi4yZTQyZTg0ZDkzMjdl
YmQ1NTlhZDM2MWVjOWUyZjkzYzU3OGI5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yOTYzLDYg
KzI5NjMsMTYgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVudCgpCiAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkp
OwogfQogCit2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxz
ZSkpOworfQorCit2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudHMoKQoreworICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFs
c2UpKTsKK30KKwogYm9vbCBOb2RlOjpkaXNhYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMzAyMCw3ICszMDMwLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LT5mcmFtZSgpKQogICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGVmYXVs
dFdoZWVsRXZlbnRIYW5kbGVyKHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCk7CiAgICAgfSBlbHNlIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRFZGl0YWJsZUNvbnRlbnRDaGFu
Z2VkRXZlbnQpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICBkaXNwYXRjaElucHV0RXZl
bnRzKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA3Yzg4ZjBmZTIxMmM5YTFkNzdjNDdm
OGQ5NTliMDllODJhMDk1YjIxLi43NGUxY2M0N2ZmOGFlYmViMWUyNjA2ZDYxYWVhZjU5MDg4NzA2
Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU0MSw2ICs1NDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Qmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudHMoKTsKIAogICAgIC8vIFBlcmZvcm0g
dGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbiBldmVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
b3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKaW5kZXggODczYmRmNDY0ODYwYjUwZTQ5YjE1NDg3ZWY3MzgzZDhlMTc4NTFm
Yy4uZWJlZmRjNjAyOWQwYjVhZGRmNzhmNmUwN2Y1Mzk0MjJmZGY5MzJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0ID0gMDsKIAogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1Db250cm9sTmFtZSgpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggNTEzZTQ0ZjVlZWI2MWE1
OTViMzQzNDM3MmEwZmE2YTUyNDY2ZGJlMy4uZWFjOWE3MzBkZTc2ZDkwNjI3MjNjZDlmY2U4ZTMx
Y2Q2MjE3ZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
QEAgLTE3Nyw2ICsxNzcsOCBAQCBvbmVycm9yCiBvbmZvY3VzCiBvbmZvY3VzaW4KIG9uZm9jdXNv
dXQKK29uZm9ybWNoYW5nZQorb25mb3JtaW5wdXQKIG9uaGFzaGNoYW5nZQogb25pbnB1dAogb25p
bnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGFmMzExNWMyMjNkY2E1
MDQzNjEzYmJkMmZkZWVlMzg3MjhhNTkwNzMuLjFhNGZjODU2NDA5ZjdiYzBlZGE0OWI3YTA1M2E1
ZDk5ODRkMGJlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xOTAsNiAr
MTkwLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0
ZSogYXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
Zm9jdXNpbkV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsK
ICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3Vzb3V0QXR0cikgewogICAgICAg
ICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmZvcm1jaGFuZ2VBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1jaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmli
dXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25mb3JtaW5wdXRBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmJsdXJB
dHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJs
dXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25rZXlkb3duQXR0cikgewpAQCAtODM3LDYgKzg0
MSw0MCBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZpbmRGb3JtQW5jZXN0b3IoKTsKIH0KIAorSFRNTEZvcm1FbGVtZW50KiBI
VE1MRWxlbWVudDo6c2hhZG93QW5jZXN0b3JPd25lckZvcm0oKQoreworICAgIE5vZGUqIGFuY2Vz
dG9yTm9kZSA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAgIGlmICghYW5jZXN0b3JOb2RlKQor
ICAgICAgICByZXR1cm4gZm9ybSgpOworCisgICAgaWYgKCFhbmNlc3Rvck5vZGUtPmlzSFRNTEVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgSFRNTEVsZW1lbnQqIGFuY2VzdG9ySFRN
TCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oYW5jZXN0b3JOb2RlKTsKKyAgICBpZiAoIWFu
Y2VzdG9ySFRNTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuY2VzdG9ySFRNTC0+
Zm9ybSgpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cygpCit7
CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwcm90ZWN0b3IodGhpcyk7CisgICAgUmVmUHRyPEhU
TUxGb3JtRWxlbWVudD4gb3duZXJGb3JtKHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCkpOworCisg
ICAgTm9kZTo6ZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKTsKKyAgICBpZiAob3duZXJGb3JtKQorICAg
ICAgICBvd25lckZvcm0tPmRpc3BhdGNoRm9ybUNoYW5nZSgpOworfQorCit2b2lkIEhUTUxFbGVt
ZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCkKK3sKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
b3RlY3Rvcih0aGlzKTsKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBvd25lckZvcm0oc2hh
ZG93QW5jZXN0b3JPd25lckZvcm0oKSk7CisKKyAgICBOb2RlOjpkaXNwYXRjaElucHV0RXZlbnRz
KCk7CisgICAgaWYgKG93bmVyRm9ybSkKKyAgICAgICAgb3duZXJGb3JtLT5kaXNwYXRjaEZvcm1J
bnB1dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggYTY0ZGIyY2Y3OGM1N2MzNjY2MWY5YjFhNGIy
YTU2Yzc1NTkzNjRlMC4uMzM1NmJhYjY0NjNlYzQ3OWY5ZWFjMDIzNmQ0NmQzYjVlOTAwMTIyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIGZpbmRGb3JtQW5jZXN0b3IoKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaElucHV0RXZlbnRzKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCkBAIC0xMDEsNiArMTA0LDggQEAg
cHJpdmF0ZToKIAogICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUs
IE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CisKKyAgICBIVE1MRm9ybUVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCk7CiB9Owog
CiBpbmxpbmUgSFRNTEVsZW1lbnQ6OkhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGIzYWQ3Yzg0M2I2MzUwNTk2OGRmNmUzYzRlMDM0
OTU4NTEzMjRmZjguLmJiNDJkZmQ3ZjgxMDIyNmY0MzgwNzU0ZWZkMTlmNDlkNDBiYWEzYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
MTc4LDcgKzE3OCwxMiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldE5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKQogewotICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAg
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKQoreworICAgIEhU
TUxFbGVtZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCk7CiB9CiAKIHZvaWQgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4NDAzYjg0YWM1ZWRkMzU3MDY2MTk4ZThlNGVk
ZGNkYmFlZTNhMDE4Li5jODg5MDVjNjJlNjY0Y2ZjYTc5MzgwNzgyYzI2MmMzNWU4YTgxYjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNTMs
MTIgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcihib29sIGIpIHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KICAgICB2
b2lkIHNldERpc2FibGVkKGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIC8vIERldGVybWluZXMgd2hldGhlciBvciBub3QgYSBjb250cm9sIHdp
bGwgYmUgYXV0b21hdGljYWxseSBmb2N1c2VkLgogICAgIHZpcnR1YWwgYm9vbCBhdXRvZm9jdXMo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCBjODk2
YmJmM2IyODdkYTYyM2MwOTk5YjdiNDUxOGE3YTU1YzJiYTllLi45MWRjM2IwZThjN2VhNzdkZjU5
ZjY2ZjBmMTE2OWU5MWE4MThkMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCkBAIC01OTAsNiArNTkwLDM2IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50OjpjaGVja1Zh
bGlkaXR5KCkKICAgICByZXR1cm4gY29udHJvbHMuaXNFbXB0eSgpOwogfQogCit2b2lkIEhUTUxG
b3JtRWxlbWVudDo6YnJvYWRjYXN0Rm9ybUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRO
YW1lKQoreworICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKKyAg
ICAvLyBDb3B5IG1fYXNzb2NpYXRlZEVsZW1lbnRzIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2Fs
bGVkIGZyb20KKyAgICAvLyBmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudCgpIG1pZ2h0IGNoYW5n
ZSBtX2Fzc29jaWF0ZWRFbGVtZW50cy4KKyAgICBWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVk
RWxlbWVudD4gPiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlQ2FwYWNpdHkobV9hc3Nv
Y2lhdGVkRWxlbWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9h
c3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFtX2Fzc29jaWF0
ZWRFbGVtZW50c1tpXS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSB8fCAhbV9hc3NvY2lhdGVkRWxl
bWVudHNbaV0tPmlzUmVzZXR0YWJsZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGVsZW1lbnRzLmFwcGVuZChtX2Fzc29jaWF0ZWRFbGVtZW50c1tpXSk7CisgICAgfQorCisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZv
cm1Db250cm9sRWxlbWVudCo+KGVsZW1lbnRzW2ldLmdldCgpKTsKKyAgICAgICAgaWYgKCFmb3Jt
RWxlbWVudC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZh
bHNlKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTEZvcm1F
bGVtZW50OjpkaXNwYXRjaEZvcm1JbnB1dCgpCit7CisgICAgYnJvYWRjYXN0Rm9ybUV2ZW50KGV2
ZW50TmFtZXMoKS5mb3JtaW5wdXRFdmVudCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1FbGVtZW50Ojpk
aXNwYXRjaEZvcm1DaGFuZ2UoKQoreworICAgIGJyb2FkY2FzdEZvcm1FdmVudChldmVudE5hbWVz
KCkuZm9ybWNoYW5nZUV2ZW50KTsKK30KKwogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmNvbGxlY3RV
bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMoVmVjdG9yPFJlZlB0cjxGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ+ID4mIHVuaGFuZGxlZEludmFsaWRDb250cm9scykKIHsKICAgICBSZWZQdHI8SFRNTEZvcm1F
bGVtZW50PiBwcm90ZWN0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aAppbmRleCBiZDA4N2I4ZGZhNTQ0YTNjOWM4MjYwZmJjNjEyZGYzYmRmODRhZTZlLi43ZDdmNGY4
OTc4ZWQ1ZmY3YjJiY2Q0OTBhZjY4NTcxZWFjYmExZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmgKQEAgLTExNCw2ICsxMTQsOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBW
ZWN0b3I8Rm9ybUFzc29jaWF0ZWRFbGVtZW50Kj4mIGFzc29jaWF0ZWRFbGVtZW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fYXNzb2NpYXRlZEVsZW1lbnRzOyB9CiAKKyAgICB2b2lkIGRpc3BhdGNoRm9y
bUlucHV0KCk7CisgICAgdm9pZCBkaXNwYXRjaEZvcm1DaGFuZ2UoKTsKKwogcHJpdmF0ZToKICAg
ICBIVE1MRm9ybUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKQEAg
LTE0NCw2ICsxNDcsOCBAQCBwcml2YXRlOgogICAgIC8vIGV2ZW50IHdhcyBub3QgY2FuY2VsZWQg
dG8gdGhlIHNwZWNpZmllZCB2ZWN0b3IuCiAgICAgdm9pZCBjb2xsZWN0VW5oYW5kbGVkSW52YWxp
ZENvbnRyb2xzKFZlY3RvcjxSZWZQdHI8Rm9ybUFzc29jaWF0ZWRFbGVtZW50PiA+Jik7CiAKKyAg
ICB2b2lkIGJyb2FkY2FzdEZvcm1FdmVudChjb25zdCBBdG9taWNTdHJpbmcmKTsKKwogICAgIGZy
aWVuZCBjbGFzcyBIVE1MRm9ybUNvbGxlY3Rpb247CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVm
UHRyPEF0b21pY1N0cmluZ0ltcGw+LCBSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4gPiBB
bGlhc01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAppbmRleCBlOTc1
OWUyNTMxOWYyOGM3YWJmMzY2MjU2YTE2Njg5Y2U5YzVkMGMwLi4zZTllNDZkMDRlMzY2ODgwNDlh
OTBkNjlhM2U3MDQwOTMyNzJlOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaWRsCkBAIC00Myw2ICs0Myw5IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgICAgICB2
b2lkIHJlc2V0KCk7CiAgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOworCisgICAgICAg
IHZvaWQgZGlzcGF0Y2hGb3JtSW5wdXQoKTsKKyAgICAgICAgdm9pZCBkaXNwYXRjaEZvcm1DaGFu
Z2UoKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAppbmRleCBhMWU3ZDhiNDY5MWI5MGQxOTg4NjFkYTcyN2ZjZDhjYTNkZDdmNGQwLi4zYzExYmZh
NmFhMWUyMmI1YjY3YjNiNzc5N2U2NmI5MzFhYmYyNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEzNzksNyArMTM3OSw3IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogICAgICAgICBpZiAobV9pbnB1dFR5
cGUtPmlzUmFuZ2VDb250cm9sKCkpCiAgICAgICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hh
bmdlRXZlbnQoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAg
ICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZWIzMGRlMDg5Y2MwMjY1ZjdmZjA1
NzFhZWE4N2NkMzY4YTlmMzlhMi4uNDAzMjQ4Yzk4YTQxYzE5YjEzMmIyMmIxZjNhY2NkZmQxNGVm
NWQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIxMSw2ICsy
MTEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtl
eWJvYXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShib29sIHJlc3RvcmVQcmV2aW91c1NlbGVj
dGlvbik7CiAgICAgdmlydHVhbCB2b2lkIGFib3V0VG9VbmxvYWQoKTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuaAppbmRleCA4MGY5NGI1NWY2YjBjNDUyNjk4NjgzZWU0Y2FkYjlkZTY3MWU1
N2FlLi5iOGIxNDRmNTI1ODdiMjIxN2QxNWE5MjU3Y2Y2ODZiNjkxNGE0ZTJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCkBAIC0zNSw2ICszNSw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRh
YmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1h
cHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURh
dGEoRm9ybURhdGFMaXN0JiwgYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmgKaW5kZXggZmY3NzNmMTZkODI4YzUxZjgzMDEwZDZlOWEwOTZlYmJhZDc0NGNhNy4uY2M4
YTAzY2MyOGY1YTViOTIwNjI0MDY0ZWVlZmFkMTkyYzQyMGM1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCk7
CiAKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgY29uc3RyYWludCB2YWxpZGF0aW9uIEFQSS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCA4M2VjZWUyZjQ5Zjg2
MTZmN2IxMGVjOWRiZGMyZGUwNzMwYTNmZGVkLi40YzVjNjg0MmI4Y2JiODA1NWUyMzI4YWRiMzRi
MmQwYTMwOWFlZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCkBA
IC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJv
b2wgY3JlYXRlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUq
IGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5k
ZXggYTIyZGYwMjAwNWYyZTM1NzQyZTFkNTJmNTlhYTkyODllMmU1NjM2NS4uNDJlODk2M2ZkYzZh
N2UyNThmZTQ3MGU0ZTFhYTUwYzQ0OTdlNWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaApAQCAtMTA3LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
dmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggNjY5ZmNkOGM1
MDk4NWJiMmJlZGRlZWZiMTRjN2Q1YjU4YjA2YTNiNS4uMjFiNTg4MDRjNTI3ZjRhYzc2NjA3NTkw
YzM2YjdiMTgzZTNmMmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOwogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxl
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4
IGNhMjQ4OGIxMDVkNzA1MmVkNmYzNzhmOGRmMTYyYmIyYWIzNTVlZmEuLjgxOTMxYjU2MmQ4YWQw
YzI5MDI5NTgwOTYxZTliY2NkN2Q0MzM4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAt
MjY5LDYgKzI2OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihlbmRlZCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoZXJyb3IpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKGZvY3VzKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3Jt
Y2hhbmdlKTsKKyAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihmb3JtaW5w
dXQpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGhhc2hjaGFuZ2Up
OwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICAg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnZhbGlkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAppbmRleCAwY2I5YTJjYWY5Njc3ODE3NDQ5NGM2MmY4Mjg2M2IyMzc3MzM1
NmU0Li45YjcxY2NlN2NjYzVhNzI0YTE4Y2E4NWFmODE0MWRmYjA1M2JmNjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCkBAIC0yNjMsNiArMjYzLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uZm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsK
KyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaGFzaGNoYW5nZTsKICAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25p
bnZhbGlkOwpAQCAtMzA3LDggKzMwOSw2IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBO
b3QgaW1wbGVtZW50ZWQgeWV0LgogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmFmdGVycHJpbnQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmVmb3Jl
cHJpbnQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsK
LSAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAg
IC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVhZHlzdGF0ZWNoYW5nZTsKICAgICAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWRvOwogICAgICAgICAvLyBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnNob3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDViODcxMmQ2NTUyNjUzMmY4M2Ni
ODgxYzVlMGRlZWU0N2ZkZjU0MDUuLmI2ZTNkZDQ0YmJlMjQzZjM4NDNlNzVjNTQ1N2FjOTEwYWU5
M2ExMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAg
ICAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZSgiIik7CiAgICAgICAgICAgICAgICAgaWYgKCFv
bGRWYWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICAgdG9SZW5kZXJUZXh0Q29u
dHJvbChpbnB1dC0+cmVuZGVyZXIoKSktPnNldENoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudCh0
cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgaW5wdXQtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlucHV0LT5vblNlYXJjaCgpOwogICAgICAgICAg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79371</attachid>
            <date>2011-01-18 17:50:03 -0800</date>
            <delta_ts>2011-01-18 22:31:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110119105000.patch</filename>
            <type>text/plain</type>
            <size>49540</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMDgyOTkxYjRlOTVlMzliOWMwMmFmNTAwMWZiYjVhYzliNTc3NTJlLi4xMjQ0YTlk
OTMyMmI0NTQxZWFiMzg3MDY5NTBkZmYyOGFmODA2MzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTggIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWVi
YWQ4MzA3M2RhMjM2N2FjMGY2MGY0OGIyOWMzZWQ5YmY5OWJlMS4uOTQ0OGYzMDI5ZTc0YzEwYzhl
NDZlZjE1NjkwNDk2ZTEwODJjZWU4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzExLDYg
KzIzMTEsOCBAQCB3aW5kb3cub25lbXB0aWVkIFtudWxsXQogd2luZG93Lm9uZW5kZWQgW251bGxd
CiB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdpbmRvdy5vbmZvY3VzIFtudWxsXQord2luZG93Lm9u
Zm9ybWNoYW5nZSBbbnVsbF0KK3dpbmRvdy5vbmZvcm1pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmhh
c2hjaGFuZ2UgW251bGxdCiB3aW5kb3cub25pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmludmFsaWQg
W251bGxdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDY4MzE1
YWQ2ZDRkOGE5ZmFkYTJlOGQyYmE2ZTg2ZmE3NjY1ZTgyOTYuLmU1MDc4MzliNzE1MGEzYTFiNWRh
Yjk2YTBkNTRjMDJkNzUwMmI5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0CkBAIC0zOTMsNiArMzkzLDggQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVtcHRpZWQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVuZGVkJykgaXMg
J29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnb25lcnJvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9jdXMnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmZvcm1jaGFuZ2Un
KSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdvbmZvcm1pbnB1dCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uaGFzaGNoYW5nZScpIGlzICdvYmpl
Y3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J29uaW5wdXQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdvbmludmFsaWQnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjRiMTFiYTAxMjE2MGE5MzE2Yzk1MGNkZmJkOTRmM2FiZjQxODU4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXRleHQp
CitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlcikK
K1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9cmFkaW8pCitQ
QVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPWNoZWNrYm94KQor
UEFTUyByZXN1bHQgaXMgIkZpcmVkIgorQ2hhbmdlIGZvciB0ZXh0YXJlYQorUEFTUyByZXN1bHQg
aXMgIkZpcmVkIgorQ2hhbmdlIGZvciBzZWxlY3QKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK2Zv
cm0uZGlzcGF0Y2hGb3JtQ2hhbmdlKCkKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKKworSXMgZm9y
bWNoYW5nZSBkZWxpdmVyZWQgZm9yPworUEFTUyByZXN1bHRJbnB1dFRleHQgaXMgIkRlbGl2ZXJl
ZCIKK1BBU1MgcmVzdWx0SW5wdXROdW1iZXIgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0SW5w
dXRSYWRpbyBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRJbnB1dENoZWNrYm94IGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdFRleHRhcmVhIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdEtl
eWdlbiBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRPYmplY3QgaXMgIk5vdCBkZWxpdmVyZWQi
CitQQVNTIHJlc3VsdE91dHB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRTZWxlY3QgaXMg
IkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0UCBpcyAiTm90IGRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
UmVtb3ZpbmdJbnB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRSZW1vdmluZ0Zvcm0gaXMg
IkRlbGl2ZXJlZCIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1l
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODI2YmJhYzA4ZDkyZmYyZjU2OWM5MmU1OGMxMzJhMDE2YTdhYWIzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC5o
dG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZm9ybWNoYW5nZS1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNmU1OGE2ZjA5ZGE2ZDYyNDUyZTBiMDM3ZGVhODdiOTU1YmZl
Zjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtaW5wdXQt
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgZm9yIGZvcm1pbnB1dCBl
dmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0
ICh0eXBlPXRleHQpCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0
eXBlPW51bWJlcikKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5
cGU9cmFkaW8pCitQQVNTIHJlc3VsdCBpcyAiTm90IGZpcmVkIgorQ2hhbmdlIGZvciBpbnB1dCAo
dHlwZT1jaGVja2JveCkKK1BBU1MgcmVzdWx0IGlzICJOb3QgZmlyZWQiCitDaGFuZ2UgZm9yIHRl
eHRhcmVhCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIHNlbGVjdAorUEFTUyBy
ZXN1bHQgaXMgIk5vdCBmaXJlZCIKK2Zvcm0uZGlzcGF0Y2hGb3JtSW5wdXQoKQorUEFTUyByZXN1
bHQgaXMgIkZpcmVkIgorCitJcyBmb3JtaW5wdXQgZGVsaXZlcmVkIGZvcj8KK1BBU1MgcmVzdWx0
SW5wdXRUZXh0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdElucHV0TnVtYmVyIGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdElucHV0UmFkaW8gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
SW5wdXRDaGVja2JveCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRUZXh0YXJlYSBpcyAiRGVs
aXZlcmVkIgorUEFTUyByZXN1bHRLZXlnZW4gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0T2Jq
ZWN0IGlzICJOb3QgZGVsaXZlcmVkIgorUEFTUyByZXN1bHRPdXRwdXQgaXMgIkRlbGl2ZXJlZCIK
K1BBU1MgcmVzdWx0U2VsZWN0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdFAgaXMgIk5vdCBk
ZWxpdmVyZWQiCitQQVNTIHJlc3VsdFJlbW92aW5nSW5wdXQgaXMgIkRlbGl2ZXJlZCIKK1BBU1Mg
cmVzdWx0UmVtb3ZpbmdGb3JtIGlzICJEZWxpdmVyZWQiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtaW5wdXQtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjdhOTIwMjAyN2UxMDNiNmI4NTQyMjNm
NWI0YWNmZDdiYTNkNzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtaW5wdXQtZXZlbnQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2UtZXZlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZTljMjQ3ZTY3
MTdjYjk1OTQ5YmVkMTljNmRhZGIxOGMwZGY1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCkBAIC0wLDAg
KzEsMTc3IEBACitkZXNjcmlwdGlvbignVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuJyk7CisK
K2Z1bmN0aW9uIHNlbmRLZXkoZWxlbWVudCwga2V5TmFtZSkgeworICAgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEtleWJv
YXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmlldywga2V5
TmFtZSk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24g
c2VuZFRleHQoZWxlbWVudCwgdGV4dCkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCdUZXh0RXZlbnQnKTsKKyAgICBldmVudC5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQn
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgdGV4dCk7CisgICAgZWxlbWVudC5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24gc2VuZE1vdXNlQ2xpY2soZWxlbWVu
dCkgeworICAgIHZhciB4ID0gZWxlbWVudC5jbGllbnRMZWZ0ICsgMTA7CisgICAgdmFyIHkgPSBl
bGVtZW50LmNsaWVudFRvcCArIDEwOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2
ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIs
IHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNl
RXZlbnQiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2V1cCIsIHRydWUsIHRydWUs
IGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7
Cit9CisKK2Z1bmN0aW9uICQoaWQpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOworfQorCisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScp
OworZm9ybS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0KKyAg
ICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVy
ZS4iIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQtdGV4dCIgdmFsdWU9
IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQt
bnVtYmVyIiB2YWx1ZT0iMjQiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0i
aW5wdXQtcmFkaW8iIGlkPSJpbnB1dC1yYWRpbzEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAg
ICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnB1dC1yYWRpbyIgaWQ9ImlucHV0LXJhZGlv
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5w
dXQtY2hlY2siIGlkPSJpbnB1dC1jaGVjazEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAgICAn
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dC1jaGVjayIgaWQ9ImlucHV0LWNoZWNr
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaW5wdXQtdGV4dGFyZWEiPklu
cHV0IGhlcmUuPC90ZXh0YXJlYT4nICsKKyAgICAnPHNlbGVjdCBpZD0iaW5wdXQtc2VsZWN0IiBt
dWx0aXBsZT4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMSIgdmFsdWU9Im9wdGlv
bjEiPm9wdGlvbjE8L29wdGlvbj4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMiIg
dmFsdWU9Im9wdGlvbjIiPm9wdGlvbjI8L29wdGlvbj4nICsKKyAgICAnPC9zZWxlY3Q+JyArCisK
KyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWhhbmRsZXIiIG9uZm9ybWNoYW5n
ZT0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImhhbmRsZXItdGV4dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRJbnB1dFRleHQgPSBcJ0RlbGl2ZXJl
ZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaGFuZGxlci1udW1iZXIi
IG9uZm9ybWNoYW5nZT0icmVzdWx0SW5wdXROdW1iZXIgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImhhbmRsZXItcmFkaW8iIGlkPSJoYW5kbGVy
LXJhZGlvIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2ZXJlZFwnIiAv
PicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXItY2hlY2siIGlk
PSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0Q2hlY2tib3ggPSBcJ0Rl
bGl2ZXJlZFwnIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImhhbmRsZXItdGV4dGFyZWEiIG9u
Zm9ybWNoYW5nZT0icmVzdWx0VGV4dGFyZWEgPSBcJ0RlbGl2ZXJlZFwnIj48L3RleHRhcmVhPicg
KworICAgICc8a2V5Z2VuIGlkPSJoYW5kbGVyLWtleWdlbiIgb25mb3JtY2hhbmdlPSJyZXN1bHRL
ZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5kbGVyLW9i
amVjdCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPYmplY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8b3V0cHV0IGlkPSJoYW5kbGVyLW91dHB1dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPdXRw
dXQgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8c2VsZWN0IGlkPSJoYW5kbGVyLXNlbGVj
dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworCisg
ICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWNoYW5nZT0icmVzdWx0UCA9IFwnRGVsaXZlcmVk
XCciPkhpITwvcD4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKKworCitmdW5j
dGlvbiBvbmZvcm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkgeworICAgICQoJ2Zvcm0tcmVtb3Zpbmct
aW5wdXQnKS5yZW1vdmVDaGlsZCgkKCdoYW5kbGVyLXJlbW92aW5nLWlucHV0JykpOworICAgIHJl
c3VsdFJlbW92aW5nSW5wdXQgPSAnRGVsaXZlcmVkJzsKK30KKwordmFyIGZvcm1fcmVtb3Zpbmdf
aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtX3JlbW92aW5nX2lu
cHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybV9yZW1v
dmluZ19pbnB1dC5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXJlbW92aW5nLWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAgJzxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1pbnB1dCIgb25mb3JtY2hhbmdlPSJvbmZv
cm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkiIC8+JzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Zm9ybV9yZW1vdmluZ19pbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtY2hhbmdlUmVtb3ZpbmdG
b3JtKCkgeworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoJCgnZm9ybS1yZW1vdmluZy1m
b3JtJykpOworICAgIHJlc3VsdFJlbW92aW5nRm9ybSA9ICdEZWxpdmVyZWQnOworfQorCit2YXIg
Zm9ybV9yZW1vdmluZ19mb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9y
bV9yZW1vdmluZ19mb3JtLnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1mb3JtJyk7
Citmb3JtX3JlbW92aW5nX2Zvcm0uaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQi
IGlkPSJpbnB1dC1yZW1vdmluZy1mb3JtIiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAg
JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1mb3JtIiBvbmZvcm1jaGFu
Z2U9Im9uZm9ybWNoYW5nZVJlbW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZvcm1fcmVtb3ZpbmdfZm9ybSk7CisKKwordmFyIHJlc3VsdDsKKworZGVidWcoJ0No
YW5nZSBmb3IgaW5wdXQgKHR5cGU9dGV4dCknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgn
aW5wdXQtdGV4dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9bnVt
YmVyKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC1udW1iZXInKS5mb2N1cygp
Oworc2VuZEtleSgkKCdpbnB1dC1udW1iZXInKSwgJ1VwJyk7CiskKCdkZWZhdWx0LWlucHV0Jyku
Zm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7CisKK2Rl
YnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXJhZGlvKScpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CiskKCdpbnB1dC1yYWRpbzInKS5jbGljaygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9Y2hlY2ti
b3gpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LWNoZWNrMicpLmNsaWNrKCk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hh
bmdlIGZvciB0ZXh0YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0
YXJlYScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQu
Jyk7CiskKCdkZWZhdWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVzdWx0IiwgIkZpcmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0
ID0gIk5vdCBmaXJlZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnZm9ybS5kaXNw
YXRjaEZvcm1DaGFuZ2UoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNo
Rm9ybUNoYW5nZSgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsK
KworCitkZWJ1ZygnJyk7CisKKworZGVidWcoJ0lzIGZvcm1jaGFuZ2UgZGVsaXZlcmVkIGZvcj8n
KTsKK3ZhciByZXN1bHRJbnB1dFRleHQgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5w
dXROdW1iZXIgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5wdXRSYWRpbyA9ICJOb3Qg
ZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRJbnB1dENoZWNrYm94ID0gIk5vdCBkZWxpdmVyZWQiOwor
dmFyIHJlc3VsdFRleHRhcmVhID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdEtleWdlbiA9
ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRPYmplY3QgPSAiTm90IGRlbGl2ZXJlZCI7Cit2
YXIgcmVzdWx0T3V0cHV0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdFNlbGVjdCA9ICJO
b3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRQID0gIk5vdCBkZWxpdmVyZWQiOworJCgnZGVmYXVs
dC1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdkZWZhdWx0LWlucHV0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0VGV4dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0SW5wdXROdW1iZXIiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0UmFkaW8iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0Q2hlY2tib3giLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdFRleHRhcmVhIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHRLZXlnZW4iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE9iamVjdCIsICJOb3QgZGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE91dHB1dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0U2VsZWN0IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRQ
IiwgIk5vdCBkZWxpdmVyZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nSW5wdXQgPSAiTm90IGRl
bGl2ZXJlZCI7CiskKCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgk
KCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRs
ZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0lucHV0
IiwgIkRlbGl2ZXJlZCIpOworCit2YXIgcmVzdWx0UmVtb3ZpbmdGb3JtID0gIk5vdCBkZWxpdmVy
ZWQiOworJCgnaW5wdXQtcmVtb3ZpbmctZm9ybScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1
dC1yZW1vdmluZy1mb3JtJyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZv
Y3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFJlbW92aW5nRm9ybSIsICJEZWxp
dmVyZWQiKTsKKworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZvcm0pOworZGVidWcoJycp
OworCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxYjNlYzlhMDhkMDgwZjhiMmMwZmUzYWViYzhkZWRiNTlmYzk2ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZl
bnQuanMKQEAgLTAsMCArMSwxNzcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBmb3JtaW5wdXQg
ZXZlbnRzLicpOworCitmdW5jdGlvbiBzZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2
YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2
ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcsIGtleU5hbWUpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK2Z1bmN0aW9uIHNlbmRUZXh0KGVsZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBk
b2N1bWVudC5jcmVhdGVFdmVudCgnVGV4dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVu
dCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOwor
ICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK2Z1bmN0aW9uIHNlbmRNb3Vz
ZUNsaWNrKGVsZW1lbnQpIHsKKyAgICB2YXIgeCA9IGVsZW1lbnQuY2xpZW50TGVmdCArIDEwOwor
ICAgIHZhciB5ID0gZWxlbWVudC5jbGllbnRUb3AgKyAxMDsKKyAgICB2YXIgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50
KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwg
eCwgeSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNldXAi
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwgeCwgeSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiAkKGlkKSB7CisgICAgcmV0dXJuIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworCit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2Zvcm0nKTsKK2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtJyk7Citmb3JtLmlu
bmVySFRNTCA9CisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1pbnB1dCIgdmFs
dWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXRleHQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9Im51bWJl
ciIgaWQ9ImlucHV0LW51bWJlciIgdmFsdWU9IjI0IiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
cmFkaW8iIG5hbWU9ImlucHV0LXJhZGlvIiBpZD0iaW5wdXQtcmFkaW8xIiB2YWx1ZT0iMSIgY2hl
Y2tlZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQtcmFkaW8iIGlk
PSJpbnB1dC1yYWRpbzIiIHZhbHVlPSIyIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIG5hbWU9ImlucHV0LWNoZWNrIiBpZD0iaW5wdXQtY2hlY2sxIiB2YWx1ZT0iMSIgY2hlY2tl
ZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5wdXQtY2hlY2siIGlk
PSJpbnB1dC1jaGVjazIiIHZhbHVlPSIyIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImlucHV0
LXRleHRhcmVhIj5JbnB1dCBoZXJlLjwvdGV4dGFyZWE+JyArCisgICAgJzxzZWxlY3QgaWQ9Imlu
cHV0LXNlbGVjdCIgbXVsdGlwbGU+JyArCisgICAgJzxvcHRpb24gaWQ9ImlucHV0LW9wdGlvbjEi
IHZhbHVlPSJvcHRpb24xIj5vcHRpb24xPC9vcHRpb24+JyArCisgICAgJzxvcHRpb24gaWQ9Imlu
cHV0LW9wdGlvbjIiIHZhbHVlPSJvcHRpb24yIj5vcHRpb24yPC9vcHRpb24+JyArCisgICAgJzwv
c2VsZWN0PicgKworCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1oYW5kbGVy
IiBvbmZvcm1pbnB1dD0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImhhbmRsZXItdGV4dCIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0VGV4dCA9
IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJoYW5k
bGVyLW51bWJlciIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0TnVtYmVyID0gXCdEZWxpdmVyZWRc
JyIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJoYW5kbGVyLXJhZGlvIiBp
ZD0iaGFuZGxlci1yYWRpbyIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2
ZXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXIt
Y2hlY2siIGlkPSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1pbnB1dD0icmVzdWx0SW5wdXRDaGVja2Jv
eCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaGFuZGxlci10ZXh0
YXJlYSIgb25mb3JtaW5wdXQ9InJlc3VsdFRleHRhcmVhID0gXCdEZWxpdmVyZWRcJyI+PC90ZXh0
YXJlYT4nICsKKyAgICAnPGtleWdlbiBpZD0iaGFuZGxlci1rZXlnZW4iIG9uZm9ybWlucHV0PSJy
ZXN1bHRLZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5k
bGVyLW9iamVjdCIgb25mb3JtaW5wdXQ9InJlc3VsdE9iamVjdCA9IFwnRGVsaXZlcmVkXCciIC8+
JyArCisgICAgJzxvdXRwdXQgaWQ9ImhhbmRsZXItb3V0cHV0IiBvbmZvcm1pbnB1dD0icmVzdWx0
T3V0cHV0ID0gXCdEZWxpdmVyZWRcJyIgLz4nICsKKyAgICAnPHNlbGVjdCBpZD0iaGFuZGxlci1z
ZWxlY3QiIG9uZm9ybWlucHV0PSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
CisgICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWlucHV0PSJyZXN1bHRQID0gXCdEZWxpdmVy
ZWRcJyI+SGkhPC9wPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCisKK2Z1
bmN0aW9uIG9uZm9ybWlucHV0UmVtb3ZpbmdJbnB1dCgpIHsKKyAgICAkKCdmb3JtLXJlbW92aW5n
LWlucHV0JykucmVtb3ZlQ2hpbGQoJCgnaGFuZGxlci1yZW1vdmluZy1pbnB1dCcpKTsKKyAgICBy
ZXN1bHRSZW1vdmluZ0lucHV0ID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3ZpbmdJ
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2Zvcm1SZW1vdmluZ0lucHV0
LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybVJlbW92aW5n
SW5wdXQuaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dC1yZW1v
dmluZy1pbnB1dCIgdmFsdWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImhhbmRsZXItcmVtb3ZpbmctaW5wdXQiIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1
dFJlbW92aW5nSW5wdXQoKSIgLz4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtUmVt
b3ZpbmdJbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtaW5wdXRSZW1vdmluZ0Zvcm0oKSB7Cisg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCgkKCdmb3JtLXJlbW92aW5nLWZvcm0nKSk7Cisg
ICAgcmVzdWx0UmVtb3ZpbmdGb3JtID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3Zp
bmdGb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9ybVJlbW92aW5nRm9y
bS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0tcmVtb3ZpbmctZm9ybScpOworZm9ybVJlbW92aW5n
Rm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0LXJlbW92
aW5nLWZvcm0iIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWZvcm0iIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1dFJl
bW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm1SZW1vdmlu
Z0Zvcm0pOworCisKK3ZhciByZXN1bHQ7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBl
PXRleHQpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LXRleHQnKS5mb2N1cygp
Oworc2VuZFRleHQoJCgnaW5wdXQtdGV4dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWlu
cHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7
CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlciknKTsKK3Jlc3VsdCA9ICJO
b3QgZmlyZWQiOworJCgnaW5wdXQtbnVtYmVyJykuZm9jdXMoKTsKK3NlbmRLZXkoJCgnaW5wdXQt
bnVtYmVyJyksICdVcCcpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1
dCAodHlwZT1yYWRpbyknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtcmFkaW8y
JykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIp
OworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlwZT1jaGVja2JveCknKTsKK3Jlc3VsdCA9
ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtY2hlY2syJykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciB0ZXh0
YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0YXJlYScpLmZvY3Vz
KCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZh
dWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZp
cmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJOb3QgZmlyZWQiKTsKKworZGVidWcoJ2Zvcm0uZGlzcGF0Y2hGb3Jt
SW5wdXQoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNoRm9ybUlucHV0
KCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCisKK2RlYnVn
KCcnKTsKKworCitkZWJ1ZygnSXMgZm9ybWlucHV0IGRlbGl2ZXJlZCBmb3I/Jyk7Cit2YXIgcmVz
dWx0SW5wdXRUZXh0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0TnVtYmVyID0g
Ik5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0UmFkaW8gPSAiTm90IGRlbGl2ZXJlZCI7
Cit2YXIgcmVzdWx0SW5wdXRDaGVja2JveCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRU
ZXh0YXJlYSA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRLZXlnZW4gPSAiTm90IGRlbGl2
ZXJlZCI7Cit2YXIgcmVzdWx0T2JqZWN0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdE91
dHB1dCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRTZWxlY3QgPSAiTm90IGRlbGl2ZXJl
ZCI7Cit2YXIgcmVzdWx0UCA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5m
b2N1cygpOworc2VuZFRleHQoJCgnZGVmYXVsdC1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdk
ZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFRleHQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdElu
cHV0TnVtYmVyIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFJhZGlvIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dENoZWNrYm94IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHRUZXh0YXJlYSIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
S2V5Z2VuIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPYmpl
Y3QiLCAiTm90IGRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPdXRw
dXQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFNlbGVjdCIs
ICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UCIsICJOb3QgZGVs
aXZlcmVkIik7CisKK3ZhciByZXN1bHRSZW1vdmluZ0lucHV0ID0gIk5vdCBkZWxpdmVyZWQiOwor
JCgnaW5wdXQtcmVtb3ZpbmctaW5wdXQnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVt
b3ZpbmctaW5wdXQnKSwgJ05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1oYW5kbGVyJykuZm9jdXMo
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UmVtb3ZpbmdJbnB1dCIsICJEZWxpdmVy
ZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nRm9ybSA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2lu
cHV0LXJlbW92aW5nLWZvcm0nKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVtb3Zpbmct
Zm9ybScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0Zvcm0iLCAiRGVsaXZlcmVkIik7CisK
KworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKK2RlYnVnKCcnKTsKKworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODAzNDZmOTc4YWU5YmNj
N2IxMjJkY2ExNjM0ZDYzOWZkNGJiN2U5Li4yYmM2ZTVjMTQ1Zjc5ZTJjYTQ4ZmQ1ZGRhMmU3MTI4
ZDY5NjdjODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDEtMTggIERhaSBN
aWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZvcm1jaGFuZ2UgYW5kIG9uZm9y
bWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1jaGFu
Z2UtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQu
aHRtbAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bTogQWRkZWQgZXZlbnQgbmFtZXMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIGV2
ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZGVkIGV2ZW50IGRlZmlu
aXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDogQWRkZWQgZXZlbnQgZGVmaW5pdGlv
bnMuCisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojpm
cm9tVXNlckdlc3R1cmUpOiBBZGRlZCBhIGNvbmRpdGlvbiBmb3IgYSBmb3JtY2hhbmdlIGV2ZW50
IGluIGhhbmRsaW5nIHVzZXIgZ2VzdHVyZXMuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDog
QWRkZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRnJvbVJlbmRlcmVyKTog
UmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0
RXZlbnRzKCksIGEgdmlydHVhbCBmdW5jdGlvbiB3aGljaCBicm9hZGNhc3RzIGZvcm1pbnB1dCBl
dmVudHMgZm9yIEhUTUwgZWxlbWVudHMuCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgYmFzaWMgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKTogRGVmaW5lZCBiYXNpYyBkaXNwYXRjaENoYW5nZUV2
ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkgY2FsbCBpbnRv
IGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAq
IGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpIHRvIGNo
ZWNrIHRoZSBlbGVtZW50IGlzIHJlc2V0dGFibGUgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBldmVudCBuYW1lcy4KKyAgICAgICAgKiBodG1sL0hU
TUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6IEFkZGVkIGV2ZW50IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKTogQWRkZWQgdG8gZ2V0IGFuIGFuY2Vz
dG9yIDxmb3JtPiBlbGVtZW50IGZyb20gYSBzaGFkb3cgZWxlbWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cyk6IERlZmluZWQgZGlzcGF0Y2hD
aGFuZ2VFdmVudHMoKSBmb3IgSFRNTCBlbGVtZW50cyBkZXNjcmliZWQgYWJvdmUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGZvciBIVE1MIGVsZW1lbnRzIGRlc2NyaWJlZCBhYm92ZS4KKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk6IEFkZGVkIGNhbGxpbmcgZGlzcGF0Y2hG
b3JtQ2hhbmdlKCkgdG8gYnJvYWRjYXN0IGZvcm1jaGFuZ2UgZXZlbnRzLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZl
bnQpOiBEZWZpbmVkIG5ld2x5IHRvIGRpc3BhdGNoIGFuIGlucHV0IGV2ZW50IHdpdGggYnJvYWRj
YXN0aW5nIGZvcm1pbnB1dCBldmVudHMuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6YnJvYWRjYXN0
Rm9ybUV2ZW50KTogQWRkZWQgdG8gYnJvYWRjYXN0IGZvcm1pbnB1dCBvciBmb3JtY2hhbmdlIGV2
ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtSW5w
dXQpOiBEZWZpbmVkIG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjpkaXNwYXRjaEZvcm1DaGFuZ2UpOiBEZWZpbmVk
IG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtY2hhbmdlIGV2ZW50cy4KKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmlkbDogQWRk
ZWQgZGlzcGF0Y2hGb3JtSW5wdXQoKSBhbmQgZGlzcGF0Y2hGb3JtQ2hhbmdlKCkgRE9NIEFQSSBk
ZWZpbml0aW9ucy4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKTogUmVwbGFj
ZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0RXZlbnRz
KCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJs
ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDogQWRkZWQgaXNSZXNldHRh
YmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0
dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVz
ZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDogQWRkZWQgaXNS
ZXNldHRhYmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6IEFkZGVk
IGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogQWRkZWQgZXZlbnQg
ZGVmaW5pdGlvbnMuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkg
Y2FsbCBpbnRvIGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKwogMjAxMS0wMS0xNyAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZ
dXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggMTg2M2Q4ZjM4YjdlYjJhYzQyZWIy
M2Y4NmZiYWY1MjFkM2U2ZThjZS4uZWQ3NmQwOGIyMGY2MTIxYjBjMmE1YzE3MzhiYzAyODc2NzVk
ZTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC01MTgsNyArNTE4LDcgQEAgbXkgQGV2ZW50U2lnbmFs
TmFtZXMgPSAoCiAgICAgIyBVc2VyIEludGVyZmFjZSBFdmVudCB0eXBlcwogICAgICJmb2N1cyIs
ICJibHVyIiwKICAgICAjIEJhc2ljIEV2ZW50IHR5cGVzCi0gICAgImxvYWQiLCAidW5sb2FkIiwg
ImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAic3VibWl0IiwgInJlc2V0IiwK
KyAgICAibG9hZCIsICJ1bmxvYWQiLCAiYWJvcnQiLCAiZXJyb3IiLCAic2VsZWN0IiwgImNoYW5n
ZSIsICJmb3JtY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCiAgICAgInJlc2l6ZSIsICJzY3Jv
bGwiLAogICAgICMgTW91c2UgRXZlbnQgdHlwZXMKICAgICAiY2xpY2siLCAiZGJsY2xpY2siLCAi
bW91c2Vkb3duIiwgIm1vdXNldXAiLApAQCAtNTQwLDcgKzU0MCw3IEBAIG15IEBldmVudFNpZ25h
bE5hbWVzID0gKAogICAgICMgQW5pbWF0aW9ucwogICAgICJ3ZWJraXRhbmltYXRpb25lbmQiLCAi
d2Via2l0YW5pbWF0aW9uc3RhcnQiLCAid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwKICAgICAj
IE90aGVyCi0gICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImludmFsaWQiLCAic2VhcmNoIiwg
InNlbGVjdHN0YXJ0Iik7CisgICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImZvcm1pbnB1dCIs
ICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOwogCiBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzIHsKICAgICBteSAoJG9iamVjdCwgJGludGVyZmFjZU5hbWUsICRkYXRhTm9kZSkgPSBA
XzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYjM4ZDNkZDA2ZGI4NTNmZmM2MjQ2NzFmODVhNjI2
OWVkNGJkMzQ1Ni4uMmNkMjZmOWVkMzJjOTNiN2YwM2Y1Y2ZjYjNlZWZiNGEwNjJmOTlkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTI0OSw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1j
aGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0KTsK
ICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA4ZDdh
NzFiYTEyMDYyMGQ1NmM4OGU3OTA2YzFhODAxZTgzM2E1ZDNiLi5jMjE1ZGYwNGNiNzFlNTkzZDU1
Y2JlYmI1NmZiNTBkNDI0ODBjMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI2Niw2
ICsyNjYsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25kcm9wOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmlu
dmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlk
b3duOwpAQCAtMjg4LDggKzI5MCw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAg
Ly8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAg
ICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAg
ICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRt
ZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVlNmMwNDc5NDMxYjRjZTUwYjE5ZTZj
MDlhNmVjMTJlNWZmZGFkYWIuLjQ1MTA0Nzg3ZjZkNmY2YWNlMzgwYjM3NDYwZjViYjI3OGVhYzBi
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZv
cm1jaGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0
KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggN2Ni
NjNjMjVjNDM3OGRhMjFjNGZkZDNlMWY0Y2I2NWE4NDQ3YThjOS4uNjUyYTc1YjY3NGM2MDE5NDJj
ODZhMWY2MGFkNjIwODc0MDUwZjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMTUzLDYg
KzE1Myw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmRyb3A7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9ybWNoYW5nZTsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW52
YWxpZDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRv
d247CkBAIC0xNzQsOCArMTc2LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAvLyBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHVyYXRpb25jaGFuZ2U7CiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwotICAgICAg
ICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1l
dGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggMGExNTM4YjBiMDNlZGY5YWQ1MTRlNzFj
MGY5ZDAwYzU1ODZjMjY1MC4uMjRlZmM0ZWVlOTBiODJhYTAyZWMxMjdiNWY2Mjk4N2M4NThkNmEy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBFdmVudDo6ZnJv
bVVzZXJHZXN0dXJlKCkKICAgICAgICAgLy8gb3RoZXIgYWNjZXB0ZWQgZXZlbnRzCiAgICAgICAg
IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1l
cygpLmNoYW5nZUV2ZW50CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3VzRXZl
bnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50Ci0gICAgICAgIHx8IHR5cGUgPT0g
ZXZlbnROYW1lcygpLnN1Ym1pdEV2ZW50OworICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS5zdWJtaXRFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQ7CiB9
CiAKIGJvb2wgRXZlbnQ6OnN0b3Jlc1Jlc3VsdEFzU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCmluZGV4IDQ5NjgwNGVlNTBhZjhjYmYzYzdhMzE3YzJjYWQ3N2M1MTFjMTNmNzQu
LjcyNzY4ZDIzODIxYTU3ZmQ0YzRmZDQ5NTYzNjY1NGE0NDA1MTlhMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtNjYsNiArNjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwK
KyAgICBtYWNybyhmb3JtY2hhbmdlKSBcCisgICAgbWFjcm8oZm9ybWlucHV0KSBcCiAgICAgbWFj
cm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaW52YWxpZCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAppbmRleCAzNzIxMWQ4ZWUyNzdkMDgwNmJk
Yzk2MTc0ZTllYmVkODNhMGY1MTY4Li5kYjg5YzE2NDBjMDI2ZDE1ODhhNGQzOGVlZjhiZDQ1Y2I0
M2Y3OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcApAQCAtMTQwLDcgKzE0MCw3
IEBAIHZvaWQgSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJlcihJbnB1dEVsZW1lbnRE
YXRhJiBkYXRhLCBJbnB1dEVsZW1lbnQqIGluCiAKICAgICAvLyBJbnB1dCBldmVudCBpcyBmaXJl
ZCBieSB0aGUgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlciBmb3IgZWRpdGFibGUgY29udHJvbHMu
CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkpCi0gICAgICAgIGVsZW1lbnQt
PmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogICAg
IG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRl
eCAwOGE5YTQ3OGFjN2EwNDZlN2ZkOWI0ZmRjYzY3NTNlYzg3Y2YzY2FlLi4yZTQyZTg0ZDkzMjdl
YmQ1NTlhZDM2MWVjOWUyZjkzYzU3OGI5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yOTYzLDYg
KzI5NjMsMTYgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVudCgpCiAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkp
OwogfQogCit2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxz
ZSkpOworfQorCit2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudHMoKQoreworICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFs
c2UpKTsKK30KKwogYm9vbCBOb2RlOjpkaXNhYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMzAyMCw3ICszMDMwLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LT5mcmFtZSgpKQogICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGVmYXVs
dFdoZWVsRXZlbnRIYW5kbGVyKHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCk7CiAgICAgfSBlbHNlIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRFZGl0YWJsZUNvbnRlbnRDaGFu
Z2VkRXZlbnQpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICBkaXNwYXRjaElucHV0RXZl
bnRzKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA3Yzg4ZjBmZTIxMmM5YTFkNzdjNDdm
OGQ5NTliMDllODJhMDk1YjIxLi43NGUxY2M0N2ZmOGFlYmViMWUyNjA2ZDYxYWVhZjU5MDg4NzA2
Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU0MSw2ICs1NDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Qmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudHMoKTsKIAogICAgIC8vIFBlcmZvcm0g
dGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbiBldmVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
b3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKaW5kZXggODczYmRmNDY0ODYwYjUwZTQ5YjE1NDg3ZWY3MzgzZDhlMTc4NTFm
Yy4uZWJlZmRjNjAyOWQwYjVhZGRmNzhmNmUwN2Y1Mzk0MjJmZGY5MzJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0ID0gMDsKIAogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1Db250cm9sTmFtZSgpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggNTEzZTQ0ZjVlZWI2MWE1
OTViMzQzNDM3MmEwZmE2YTUyNDY2ZGJlMy4uZWFjOWE3MzBkZTc2ZDkwNjI3MjNjZDlmY2U4ZTMx
Y2Q2MjE3ZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
QEAgLTE3Nyw2ICsxNzcsOCBAQCBvbmVycm9yCiBvbmZvY3VzCiBvbmZvY3VzaW4KIG9uZm9jdXNv
dXQKK29uZm9ybWNoYW5nZQorb25mb3JtaW5wdXQKIG9uaGFzaGNoYW5nZQogb25pbnB1dAogb25p
bnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGFmMzExNWMyMjNkY2E1
MDQzNjEzYmJkMmZkZWVlMzg3MjhhNTkwNzMuLjFhNGZjODU2NDA5ZjdiYzBlZGE0OWI3YTA1M2E1
ZDk5ODRkMGJlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xOTAsNiAr
MTkwLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0
ZSogYXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
Zm9jdXNpbkV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsK
ICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3Vzb3V0QXR0cikgewogICAgICAg
ICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmZvcm1jaGFuZ2VBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1jaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmli
dXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25mb3JtaW5wdXRBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmJsdXJB
dHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJs
dXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25rZXlkb3duQXR0cikgewpAQCAtODM3LDYgKzg0
MSw0MCBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZpbmRGb3JtQW5jZXN0b3IoKTsKIH0KIAorSFRNTEZvcm1FbGVtZW50KiBI
VE1MRWxlbWVudDo6c2hhZG93QW5jZXN0b3JPd25lckZvcm0oKQoreworICAgIE5vZGUqIGFuY2Vz
dG9yTm9kZSA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAgIGlmICghYW5jZXN0b3JOb2RlKQor
ICAgICAgICByZXR1cm4gZm9ybSgpOworCisgICAgaWYgKCFhbmNlc3Rvck5vZGUtPmlzSFRNTEVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgSFRNTEVsZW1lbnQqIGFuY2VzdG9ySFRN
TCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oYW5jZXN0b3JOb2RlKTsKKyAgICBpZiAoIWFu
Y2VzdG9ySFRNTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuY2VzdG9ySFRNTC0+
Zm9ybSgpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cygpCit7
CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwcm90ZWN0b3IodGhpcyk7CisgICAgUmVmUHRyPEhU
TUxGb3JtRWxlbWVudD4gb3duZXJGb3JtKHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCkpOworCisg
ICAgTm9kZTo6ZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKTsKKyAgICBpZiAob3duZXJGb3JtKQorICAg
ICAgICBvd25lckZvcm0tPmRpc3BhdGNoRm9ybUNoYW5nZSgpOworfQorCit2b2lkIEhUTUxFbGVt
ZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCkKK3sKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
b3RlY3Rvcih0aGlzKTsKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBvd25lckZvcm0oc2hh
ZG93QW5jZXN0b3JPd25lckZvcm0oKSk7CisKKyAgICBOb2RlOjpkaXNwYXRjaElucHV0RXZlbnRz
KCk7CisgICAgaWYgKG93bmVyRm9ybSkKKyAgICAgICAgb3duZXJGb3JtLT5kaXNwYXRjaEZvcm1J
bnB1dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggYTY0ZGIyY2Y3OGM1N2MzNjY2MWY5YjFhNGIy
YTU2Yzc1NTkzNjRlMC4uMzM1NmJhYjY0NjNlYzQ3OWY5ZWFjMDIzNmQ0NmQzYjVlOTAwMTIyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIGZpbmRGb3JtQW5jZXN0b3IoKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaElucHV0RXZlbnRzKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCkBAIC0xMDEsNiArMTA0LDggQEAg
cHJpdmF0ZToKIAogICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUs
IE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CisKKyAgICBIVE1MRm9ybUVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCk7CiB9Owog
CiBpbmxpbmUgSFRNTEVsZW1lbnQ6OkhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGIzYWQ3Yzg0M2I2MzUwNTk2OGRmNmUzYzRlMDM0
OTU4NTEzMjRmZjguLmJiNDJkZmQ3ZjgxMDIyNmY0MzgwNzU0ZWZkMTlmNDlkNDBiYWEzYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
MTc4LDcgKzE3OCwxMiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldE5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKQogewotICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAg
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKQoreworICAgIEhU
TUxFbGVtZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCk7CiB9CiAKIHZvaWQgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4NDAzYjg0YWM1ZWRkMzU3MDY2MTk4ZThlNGVk
ZGNkYmFlZTNhMDE4Li5jODg5MDVjNjJlNjY0Y2ZjYTc5MzgwNzgyYzI2MmMzNWU4YTgxYjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNTMs
MTIgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcihib29sIGIpIHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KICAgICB2
b2lkIHNldERpc2FibGVkKGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIC8vIERldGVybWluZXMgd2hldGhlciBvciBub3QgYSBjb250cm9sIHdp
bGwgYmUgYXV0b21hdGljYWxseSBmb2N1c2VkLgogICAgIHZpcnR1YWwgYm9vbCBhdXRvZm9jdXMo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCBjODk2
YmJmM2IyODdkYTYyM2MwOTk5YjdiNDUxOGE3YTU1YzJiYTllLi5kYzI2OWM1NTdlNjQ2OTgyMjMz
YjM0MDMwYmNiY2QxYTc4ZTU5ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCkBAIC01OTAsNiArNTkwLDM5IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50OjpjaGVja1Zh
bGlkaXR5KCkKICAgICByZXR1cm4gY29udHJvbHMuaXNFbXB0eSgpOwogfQogCit2b2lkIEhUTUxG
b3JtRWxlbWVudDo6YnJvYWRjYXN0Rm9ybUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRO
YW1lKQoreworICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKKyAg
ICAvLyBDb3B5IG1fYXNzb2NpYXRlZEVsZW1lbnRzIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2Fs
bGVkIGZyb20KKyAgICAvLyBmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudCgpIG1pZ2h0IGNoYW5n
ZSBtX2Fzc29jaWF0ZWRFbGVtZW50cy4KKyAgICBWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVk
RWxlbWVudD4gPiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlQ2FwYWNpdHkobV9hc3Nv
Y2lhdGVkRWxlbWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9h
c3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFtX2Fzc29jaWF0
ZWRFbGVtZW50c1tpXS0+aXNSZXNldHRhYmxlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgZWxlbWVudHMuYXBwZW5kKG1fYXNzb2NpYXRlZEVsZW1lbnRzW2ldKTsKKyAgICB9CisK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgLy8gV2UgY2FuIGFzc3VtZSBhIHJlc2V0dGFibGUgY29udHJvbCBpcyBhbHdheXMgYSBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50IGFzIG9mIEphbiAxOSwgMjAxMS4KKyAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBoYW5kbGUgcmVzZXR0YWJsZSBub24tSFRNTEZvcm1Db250cm9sRWxlbWVu
dHMgbWF5YmUgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgQVNTRVJUKGVsZW1lbnRzW2ldLT5pc0Zv
cm1Db250cm9sRWxlbWVudCgpKTsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9y
bUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZWxlbWVudHNb
aV0uZ2V0KCkpOworICAgICAgICBpZiAoIWZvcm1FbGVtZW50LT5kaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgIH0KK30KKwordm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUlucHV0KCkK
K3sKKyAgICBicm9hZGNhc3RGb3JtRXZlbnQoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50KTsK
K30KKwordm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmRpc3BhdGNoRm9ybUNoYW5nZSgpCit7CisgICAg
YnJvYWRjYXN0Rm9ybUV2ZW50KGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQpOworfQorCiB2
b2lkIEhUTUxGb3JtRWxlbWVudDo6Y29sbGVjdFVuaGFuZGxlZEludmFsaWRDb250cm9scyhWZWN0
b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVkRWxlbWVudD4gPiYgdW5oYW5kbGVkSW52YWxpZENvbnRy
b2xzKQogewogICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IGJkMDg3YjhkZmE1NDRhM2M5Yzgy
NjBmYmM2MTJkZjNiZGY4NGFlNmUuLjdkN2Y0Zjg5NzhlZDVmZjdiMmJjZDQ5MGFmNjg1NzFlYWNi
YTFlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTE0LDYgKzEx
NCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQq
PiYgYXNzb2NpYXRlZEVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hc3NvY2lhdGVkRWxlbWVu
dHM7IH0KIAorICAgIHZvaWQgZGlzcGF0Y2hGb3JtSW5wdXQoKTsKKyAgICB2b2lkIGRpc3BhdGNo
Rm9ybUNoYW5nZSgpOworCiBwcml2YXRlOgogICAgIEhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIApAQCAtMTQ0LDYgKzE0Nyw4IEBAIHByaXZhdGU6CiAg
ICAgLy8gZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCB0byB0aGUgc3BlY2lmaWVkIHZlY3Rvci4KICAg
ICB2b2lkIGNvbGxlY3RVbmhhbmRsZWRJbnZhbGlkQ29udHJvbHMoVmVjdG9yPFJlZlB0cjxGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQ+ID4mKTsKIAorICAgIHZvaWQgYnJvYWRjYXN0Rm9ybUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYpOworCiAgICAgZnJpZW5kIGNsYXNzIEhUTUxGb3JtQ29sbGVjdGlv
bjsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4sIFJlZlB0
cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiA+IEFsaWFzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4IGU5NzU5ZTI1MzE5ZjI4YzdhYmYzNjYyNTZhMTY2ODlj
ZTljNWQwYzAuLjNlOWU0NmQwNGUzNjY4ODA0OWE5MGQ2OWEzZTcwNDA5MzI3MmU5MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKQEAgLTQzLDYgKzQzLDkgQEAgbW9k
dWxlIGh0bWwgewogI2VuZGlmCiAgICAgICAgIHZvaWQgcmVzZXQoKTsKICAgICAgICAgYm9vbGVh
biBjaGVja1ZhbGlkaXR5KCk7CisKKyAgICAgICAgdm9pZCBkaXNwYXRjaEZvcm1JbnB1dCgpOwor
ICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUNoYW5nZSgpOwogICAgIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGExZTdkOGI0NjkxYjkwZDE5ODg2
MWRhNzI3ZmNkOGNhM2RkN2Y0ZDAuLjNjMTFiZmE2YWExZTIyYjViNjdiM2I3Nzk3ZTY2YjkzMWFi
ZjI0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTM3
OSw3ICsxMzc5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIo
aW50IG4pCiAgICAgICAgIGlmIChtX2lucHV0VHlwZS0+aXNSYW5nZUNvbnRyb2woKSkKICAgICAg
ICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0
RXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAgICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sSW5w
dXRFdmVudCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCBlYjMwZGUwODljYzAyNjVmN2ZmMDU3MWFlYTg3Y2QzNjhhOWYzOWEyLi40MDMyNDhj
OThhNDFjMTliMTMyYjIyYjFmM2FjY2RmZDE0ZWY1ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtMjExLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
RW51bWVyYXRhYmxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJh
bmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJv
dXRUb1VubG9hZCgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDgwZjk0YjU1
ZjZiMGM0NTI2OTg2ODNlZTRjYWRiOWRlNjcxZTU3YWUuLmI4YjE0NGY1MjU4N2IyMjE3ZDE1YTky
NTdjZjY4NmI2OTE0YTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50
LmgKQEAgLTM1LDYgKzM1LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MS2V5Z2VuRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsK
IAorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwog
ICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBmZjc3M2YxNmQ4MjhjNTFm
ODMwMTBkNmU5YTA5NmViYmFkNzQ0Y2E3Li5jYzhhMDNjYzI4ZjVhNWI5MjA2MjQwNjRlZWVmYWQx
OTJjNDIwYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC01
MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVy
YXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0
dGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKTsKIAogICAgIC8vIEltcGxlbWVudGF0aW9ucyBv
ZiBjb25zdHJhaW50IHZhbGlkYXRpb24gQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5oCmluZGV4IDgzZWNlZTJmNDlmODYxNmY3YjEwZWM5ZGJkYzJkZTA3MzBhM2ZkZWQu
LjRjNWM2ODQyYjhjYmI4MDU1ZTIzMjhhZGIzNGIyZDBhMzA5YWVlMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSwg
Tm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRD
b3VudERlbHRhID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCBhMjJkZjAyMDA1ZjJlMzU3NDJlMWQ1MmY1
OWFhOTI4OWUyZTU2MzY1Li40MmU4OTYzZmRjNmE3ZTI1OGZlNDcwZTRlMWFhNTBjNDQ5N2U1YzAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMDcsNiArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9s
U3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaAppbmRleCA2NjlmY2Q4YzUwOTg1YmIyYmVkZGVlZmIxNGM3ZDViNThiMDZh
M2I1Li4yMWI1ODgwNGM1MjdmNGFjNzY2MDc1OTBjMzZiN2IxODNlM2YyY2Q1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtODAsNiArODAsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggY2EyNDg4YjEwNWQ3MDUyZWQ2ZjM3OGY4ZGYx
NjJiYjJhYjM1NWVmYS4uODE5MzFiNTYyZDhhZDBjMjkwMjk1ODA5NjFlOWJjY2Q3ZDQzMzg2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0yNjksNiArMjY5LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsK
ICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CiAgICAgICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9jdXMpOworICAgICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1jaGFuZ2UpOworICAgICAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1pbnB1dCk7CiAgICAgICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoaGFzaGNoYW5nZSk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoaW5wdXQpOwogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKGludmFsaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDBjYjlhMmNh
Zjk2Nzc4MTc0NDk0YzYyZjgyODYzYjIzNzczMzU2ZTQuLjliNzFjY2U3Y2NjNWE3MjRhMThjYTg1
YWY4MTQxZGZiMDUzYmY2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTI2Myw2
ICsyNjMsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25lbmRlZDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNo
Y2hhbmdlOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OwogICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CkBAIC0zMDcsOCArMzA5LDYgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAg
IC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKICAgICAgICAgLy8gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25yZWFkeXN0YXRlY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bnJlZG87CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2hvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKaW5kZXggNWI4NzEyZDY1NTI2NTMyZjgzY2I4ODFjNWUwZGVlZTQ3ZmRmNTQwNS4uYjZlM2Rk
NDRiYmUyNDNmMzg0M2U3NWM1NDU3YWM5MTBhZTkzYTExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTI0Myw3
ICsyNDMsNyBAQCB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgICAgICAgICAgaW5wdXQtPnNldFZhbHVl
KCIiKTsKICAgICAgICAgICAgICAgICBpZiAoIW9sZFZhbHVlLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKGlucHV0LT5yZW5kZXJlcigpKS0+c2V0
Q2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50KHRydWUpOwotICAgICAgICAgICAgICAgICAgICBp
bnB1dC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50
LCB0cnVlLCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZGlzcGF0Y2hGb3Jt
Q29udHJvbElucHV0RXZlbnQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
aW5wdXQtPm9uU2VhcmNoKCk7CiAgICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79389</attachid>
            <date>2011-01-18 22:30:32 -0800</date>
            <delta_ts>2011-01-19 04:56:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26141-20110119153029.patch</filename>
            <type>text/plain</type>
            <size>49521</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMDgyOTkxYjRlOTVlMzliOWMwMmFmNTAwMWZiYjVhYzliNTc3NTJlLi4xMjQ0YTlk
OTMyMmI0NTQxZWFiMzg3MDY5NTBkZmYyOGFmODA2MzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDEtMTggIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZv
cm1jaGFuZ2UgYW5kIG9uZm9ybWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgZm9ybSBldmVu
dHMuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkIGZvcm0gZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Zm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZm9ybWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZCB0byB0ZXN0IGZvcm1jaGFuZ2UgZXZlbnRz
LgorICAgICAgICAqIGZhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQuaHRtbDogQWRkZWQgdG8g
dGVzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2Zvcm1jaGFuZ2UtZXZlbnQuanM6IEFkZGVkLgorICAgICAgICAoc2VuZEtleSk6CisgICAgICAg
IChzZW5kVGV4dCk6CisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0
LWV2ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNlbmRLZXkpOgorICAgICAgICAoc2VuZFRleHQp
OgorCiAyMDExLTAxLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWVi
YWQ4MzA3M2RhMjM2N2FjMGY2MGY0OGIyOWMzZWQ5YmY5OWJlMS4uOTQ0OGYzMDI5ZTc0YzEwYzhl
NDZlZjE1NjkwNDk2ZTEwODJjZWU4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzExLDYg
KzIzMTEsOCBAQCB3aW5kb3cub25lbXB0aWVkIFtudWxsXQogd2luZG93Lm9uZW5kZWQgW251bGxd
CiB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdpbmRvdy5vbmZvY3VzIFtudWxsXQord2luZG93Lm9u
Zm9ybWNoYW5nZSBbbnVsbF0KK3dpbmRvdy5vbmZvcm1pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmhh
c2hjaGFuZ2UgW251bGxdCiB3aW5kb3cub25pbnB1dCBbbnVsbF0KIHdpbmRvdy5vbmludmFsaWQg
W251bGxdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDY4MzE1
YWQ2ZDRkOGE5ZmFkYTJlOGQyYmE2ZTg2ZmE3NjY1ZTgyOTYuLmU1MDc4MzliNzE1MGEzYTFiNWRh
Yjk2YTBkNTRjMDJkNzUwMmI5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0
ZWQudHh0CkBAIC0zOTMsNiArMzkzLDggQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVtcHRpZWQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmVuZGVkJykgaXMg
J29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnb25lcnJvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uZm9jdXMnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBl
b2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdvbmZvcm1jaGFuZ2Un
KSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdvbmZvcm1pbnB1dCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ29uaGFzaGNoYW5nZScpIGlzICdvYmpl
Y3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J29uaW5wdXQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdvbmludmFsaWQnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjRiMTFiYTAxMjE2MGE5MzE2Yzk1MGNkZmJkOTRmM2FiZjQxODU4MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXRleHQp
CitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlcikK
K1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9cmFkaW8pCitQ
QVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPWNoZWNrYm94KQor
UEFTUyByZXN1bHQgaXMgIkZpcmVkIgorQ2hhbmdlIGZvciB0ZXh0YXJlYQorUEFTUyByZXN1bHQg
aXMgIkZpcmVkIgorQ2hhbmdlIGZvciBzZWxlY3QKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK2Zv
cm0uZGlzcGF0Y2hGb3JtQ2hhbmdlKCkKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKKworSXMgZm9y
bWNoYW5nZSBkZWxpdmVyZWQgZm9yPworUEFTUyByZXN1bHRJbnB1dFRleHQgaXMgIkRlbGl2ZXJl
ZCIKK1BBU1MgcmVzdWx0SW5wdXROdW1iZXIgaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0SW5w
dXRSYWRpbyBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRJbnB1dENoZWNrYm94IGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdFRleHRhcmVhIGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdEtl
eWdlbiBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRPYmplY3QgaXMgIk5vdCBkZWxpdmVyZWQi
CitQQVNTIHJlc3VsdE91dHB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRTZWxlY3QgaXMg
IkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0UCBpcyAiTm90IGRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
UmVtb3ZpbmdJbnB1dCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRSZW1vdmluZ0Zvcm0gaXMg
IkRlbGl2ZXJlZCIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1l
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtY2hhbmdlLWV2ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODI2YmJhYzA4ZDkyZmYyZjU2OWM5MmU1OGMxMzJhMDE2YTdhYWIzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWNoYW5nZS1ldmVudC5o
dG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZm9ybWNoYW5nZS1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybWlucHV0LWV2ZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNmU1OGE2ZjA5ZGE2ZDYyNDUyZTBiMDM3ZGVhODdiOTU1YmZl
Zjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9mb3JtaW5wdXQt
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgZm9yIGZvcm1pbnB1dCBl
dmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGFuZ2UgZm9yIGlucHV0
ICh0eXBlPXRleHQpCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIGlucHV0ICh0
eXBlPW51bWJlcikKK1BBU1MgcmVzdWx0IGlzICJGaXJlZCIKK0NoYW5nZSBmb3IgaW5wdXQgKHR5
cGU9cmFkaW8pCitQQVNTIHJlc3VsdCBpcyAiTm90IGZpcmVkIgorQ2hhbmdlIGZvciBpbnB1dCAo
dHlwZT1jaGVja2JveCkKK1BBU1MgcmVzdWx0IGlzICJOb3QgZmlyZWQiCitDaGFuZ2UgZm9yIHRl
eHRhcmVhCitQQVNTIHJlc3VsdCBpcyAiRmlyZWQiCitDaGFuZ2UgZm9yIHNlbGVjdAorUEFTUyBy
ZXN1bHQgaXMgIk5vdCBmaXJlZCIKK2Zvcm0uZGlzcGF0Y2hGb3JtSW5wdXQoKQorUEFTUyByZXN1
bHQgaXMgIkZpcmVkIgorCitJcyBmb3JtaW5wdXQgZGVsaXZlcmVkIGZvcj8KK1BBU1MgcmVzdWx0
SW5wdXRUZXh0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdElucHV0TnVtYmVyIGlzICJEZWxp
dmVyZWQiCitQQVNTIHJlc3VsdElucHV0UmFkaW8gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0
SW5wdXRDaGVja2JveCBpcyAiRGVsaXZlcmVkIgorUEFTUyByZXN1bHRUZXh0YXJlYSBpcyAiRGVs
aXZlcmVkIgorUEFTUyByZXN1bHRLZXlnZW4gaXMgIkRlbGl2ZXJlZCIKK1BBU1MgcmVzdWx0T2Jq
ZWN0IGlzICJOb3QgZGVsaXZlcmVkIgorUEFTUyByZXN1bHRPdXRwdXQgaXMgIkRlbGl2ZXJlZCIK
K1BBU1MgcmVzdWx0U2VsZWN0IGlzICJEZWxpdmVyZWQiCitQQVNTIHJlc3VsdFAgaXMgIk5vdCBk
ZWxpdmVyZWQiCitQQVNTIHJlc3VsdFJlbW92aW5nSW5wdXQgaXMgIkRlbGl2ZXJlZCIKK1BBU1Mg
cmVzdWx0UmVtb3ZpbmdGb3JtIGlzICJEZWxpdmVyZWQiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm1pbnB1dC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtaW5wdXQtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjdhOTIwMjAyN2UxMDNiNmI4NTQyMjNm
NWI0YWNmZDdiYTNkNzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9mb3JtaW5wdXQtZXZlbnQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Zvcm1pbnB1dC1ldmVudC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2Zvcm1jaGFuZ2UtZXZlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZTljMjQ3ZTY3
MTdjYjk1OTQ5YmVkMTljNmRhZGIxOGMwZGY1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtY2hhbmdlLWV2ZW50LmpzCkBAIC0wLDAg
KzEsMTc3IEBACitkZXNjcmlwdGlvbignVGVzdCBmb3IgZm9ybWNoYW5nZSBldmVudHMuJyk7CisK
K2Z1bmN0aW9uIHNlbmRLZXkoZWxlbWVudCwga2V5TmFtZSkgeworICAgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEtleWJv
YXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmlldywga2V5
TmFtZSk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24g
c2VuZFRleHQoZWxlbWVudCwgdGV4dCkgeworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCdUZXh0RXZlbnQnKTsKKyAgICBldmVudC5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQn
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgdGV4dCk7CisgICAgZWxlbWVudC5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworZnVuY3Rpb24gc2VuZE1vdXNlQ2xpY2soZWxlbWVu
dCkgeworICAgIHZhciB4ID0gZWxlbWVudC5jbGllbnRMZWZ0ICsgMTA7CisgICAgdmFyIHkgPSBl
bGVtZW50LmNsaWVudFRvcCArIDEwOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2
ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlZG93biIs
IHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNl
RXZlbnQiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2V1cCIsIHRydWUsIHRydWUs
IGRvY3VtZW50LmRlZmF1bHRWaWV3LCAxLCB4LCB5LCB4LCB5LCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCwgZG9jdW1lbnQpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7
Cit9CisKK2Z1bmN0aW9uICQoaWQpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOworfQorCisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScp
OworZm9ybS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0nKTsKK2Zvcm0uaW5uZXJIVE1MID0KKyAg
ICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVy
ZS4iIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQtdGV4dCIgdmFsdWU9
IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaW5wdXQt
bnVtYmVyIiB2YWx1ZT0iMjQiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0i
aW5wdXQtcmFkaW8iIGlkPSJpbnB1dC1yYWRpbzEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAg
ICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJpbnB1dC1yYWRpbyIgaWQ9ImlucHV0LXJhZGlv
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5w
dXQtY2hlY2siIGlkPSJpbnB1dC1jaGVjazEiIHZhbHVlPSIxIiBjaGVja2VkLz4nICsKKyAgICAn
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJpbnB1dC1jaGVjayIgaWQ9ImlucHV0LWNoZWNr
MiIgdmFsdWU9IjIiIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaW5wdXQtdGV4dGFyZWEiPklu
cHV0IGhlcmUuPC90ZXh0YXJlYT4nICsKKyAgICAnPHNlbGVjdCBpZD0iaW5wdXQtc2VsZWN0IiBt
dWx0aXBsZT4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMSIgdmFsdWU9Im9wdGlv
bjEiPm9wdGlvbjE8L29wdGlvbj4nICsKKyAgICAnPG9wdGlvbiBpZD0iaW5wdXQtb3B0aW9uMiIg
dmFsdWU9Im9wdGlvbjIiPm9wdGlvbjI8L29wdGlvbj4nICsKKyAgICAnPC9zZWxlY3Q+JyArCisK
KyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJkZWZhdWx0LWhhbmRsZXIiIG9uZm9ybWNoYW5n
ZT0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImhhbmRsZXItdGV4dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRJbnB1dFRleHQgPSBcJ0RlbGl2ZXJl
ZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iaGFuZGxlci1udW1iZXIi
IG9uZm9ybWNoYW5nZT0icmVzdWx0SW5wdXROdW1iZXIgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImhhbmRsZXItcmFkaW8iIGlkPSJoYW5kbGVy
LXJhZGlvIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2ZXJlZFwnIiAv
PicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXItY2hlY2siIGlk
PSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1jaGFuZ2U9InJlc3VsdElucHV0Q2hlY2tib3ggPSBcJ0Rl
bGl2ZXJlZFwnIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImhhbmRsZXItdGV4dGFyZWEiIG9u
Zm9ybWNoYW5nZT0icmVzdWx0VGV4dGFyZWEgPSBcJ0RlbGl2ZXJlZFwnIj48L3RleHRhcmVhPicg
KworICAgICc8a2V5Z2VuIGlkPSJoYW5kbGVyLWtleWdlbiIgb25mb3JtY2hhbmdlPSJyZXN1bHRL
ZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5kbGVyLW9i
amVjdCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPYmplY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
ICAgICc8b3V0cHV0IGlkPSJoYW5kbGVyLW91dHB1dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRPdXRw
dXQgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8c2VsZWN0IGlkPSJoYW5kbGVyLXNlbGVj
dCIgb25mb3JtY2hhbmdlPSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworCisg
ICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWNoYW5nZT0icmVzdWx0UCA9IFwnRGVsaXZlcmVk
XCciPkhpITwvcD4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKKworCitmdW5j
dGlvbiBvbmZvcm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkgeworICAgICQoJ2Zvcm0tcmVtb3Zpbmct
aW5wdXQnKS5yZW1vdmVDaGlsZCgkKCdoYW5kbGVyLXJlbW92aW5nLWlucHV0JykpOworICAgIHJl
c3VsdFJlbW92aW5nSW5wdXQgPSAnRGVsaXZlcmVkJzsKK30KKwordmFyIGZvcm1fcmVtb3Zpbmdf
aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citmb3JtX3JlbW92aW5nX2lu
cHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybV9yZW1v
dmluZ19pbnB1dC5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXJlbW92aW5nLWlucHV0IiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAgJzxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1pbnB1dCIgb25mb3JtY2hhbmdlPSJvbmZv
cm1jaGFuZ2VSZW1vdmluZ0lucHV0KCkiIC8+JzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Zm9ybV9yZW1vdmluZ19pbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtY2hhbmdlUmVtb3ZpbmdG
b3JtKCkgeworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoJCgnZm9ybS1yZW1vdmluZy1m
b3JtJykpOworICAgIHJlc3VsdFJlbW92aW5nRm9ybSA9ICdEZWxpdmVyZWQnOworfQorCit2YXIg
Zm9ybV9yZW1vdmluZ19mb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9y
bV9yZW1vdmluZ19mb3JtLnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1mb3JtJyk7
Citmb3JtX3JlbW92aW5nX2Zvcm0uaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQi
IGlkPSJpbnB1dC1yZW1vdmluZy1mb3JtIiB2YWx1ZT0iSW5wdXQgaGVyZS4iIC8+JyArCisgICAg
JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaGFuZGxlci1yZW1vdmluZy1mb3JtIiBvbmZvcm1jaGFu
Z2U9Im9uZm9ybWNoYW5nZVJlbW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZvcm1fcmVtb3ZpbmdfZm9ybSk7CisKKwordmFyIHJlc3VsdDsKKworZGVidWcoJ0No
YW5nZSBmb3IgaW5wdXQgKHR5cGU9dGV4dCknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgn
aW5wdXQtdGV4dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9bnVt
YmVyKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC1udW1iZXInKS5mb2N1cygp
Oworc2VuZEtleSgkKCdpbnB1dC1udW1iZXInKSwgJ1VwJyk7CiskKCdkZWZhdWx0LWlucHV0Jyku
Zm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7CisKK2Rl
YnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPXJhZGlvKScpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CiskKCdpbnB1dC1yYWRpbzInKS5jbGljaygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiRmlyZWQiKTsKKworZGVidWcoJ0NoYW5nZSBmb3IgaW5wdXQgKHR5cGU9Y2hlY2ti
b3gpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LWNoZWNrMicpLmNsaWNrKCk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hh
bmdlIGZvciB0ZXh0YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0
YXJlYScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQu
Jyk7CiskKCdkZWZhdWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVzdWx0IiwgIkZpcmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0
ID0gIk5vdCBmaXJlZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnZm9ybS5kaXNw
YXRjaEZvcm1DaGFuZ2UoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNo
Rm9ybUNoYW5nZSgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiRmlyZWQiKTsK
KworCitkZWJ1ZygnJyk7CisKKworZGVidWcoJ0lzIGZvcm1jaGFuZ2UgZGVsaXZlcmVkIGZvcj8n
KTsKK3ZhciByZXN1bHRJbnB1dFRleHQgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5w
dXROdW1iZXIgPSAiTm90IGRlbGl2ZXJlZCI7Cit2YXIgcmVzdWx0SW5wdXRSYWRpbyA9ICJOb3Qg
ZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRJbnB1dENoZWNrYm94ID0gIk5vdCBkZWxpdmVyZWQiOwor
dmFyIHJlc3VsdFRleHRhcmVhID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdEtleWdlbiA9
ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRPYmplY3QgPSAiTm90IGRlbGl2ZXJlZCI7Cit2
YXIgcmVzdWx0T3V0cHV0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdFNlbGVjdCA9ICJO
b3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRQID0gIk5vdCBkZWxpdmVyZWQiOworJCgnZGVmYXVs
dC1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdkZWZhdWx0LWlucHV0JyksICdOZXcgdGV4
dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZvY3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0VGV4dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0SW5wdXROdW1iZXIiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0UmFkaW8iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlc3VsdElucHV0Q2hlY2tib3giLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdFRleHRhcmVhIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHRLZXlnZW4iLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE9iamVjdCIsICJOb3QgZGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdE91dHB1dCIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0U2VsZWN0IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRQ
IiwgIk5vdCBkZWxpdmVyZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nSW5wdXQgPSAiTm90IGRl
bGl2ZXJlZCI7CiskKCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLmZvY3VzKCk7CitzZW5kVGV4dCgk
KCdpbnB1dC1yZW1vdmluZy1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRs
ZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0lucHV0
IiwgIkRlbGl2ZXJlZCIpOworCit2YXIgcmVzdWx0UmVtb3ZpbmdGb3JtID0gIk5vdCBkZWxpdmVy
ZWQiOworJCgnaW5wdXQtcmVtb3ZpbmctZm9ybScpLmZvY3VzKCk7CitzZW5kVGV4dCgkKCdpbnB1
dC1yZW1vdmluZy1mb3JtJyksICdOZXcgdGV4dC4nKTsKKyQoJ2RlZmF1bHQtaGFuZGxlcicpLmZv
Y3VzKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFJlbW92aW5nRm9ybSIsICJEZWxp
dmVyZWQiKTsKKworCitkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZvcm0pOworZGVidWcoJycp
OworCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvZm9ybWlucHV0LWV2ZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxYjNlYzlhMDhkMDgwZjhiMmMwZmUzYWViYzhkZWRiNTlmYzk2ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9mb3JtaW5wdXQtZXZl
bnQuanMKQEAgLTAsMCArMSwxNzcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBmb3JtaW5wdXQg
ZXZlbnRzLicpOworCitmdW5jdGlvbiBzZW5kS2V5KGVsZW1lbnQsIGtleU5hbWUpIHsKKyAgICB2
YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudCcpOworICAgIGV2
ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcsIGtleU5hbWUpOworICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK2Z1bmN0aW9uIHNlbmRUZXh0KGVsZW1lbnQsIHRleHQpIHsKKyAgICB2YXIgZXZlbnQgPSBk
b2N1bWVudC5jcmVhdGVFdmVudCgnVGV4dEV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdFRleHRFdmVu
dCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIHRleHQpOwor
ICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK2Z1bmN0aW9uIHNlbmRNb3Vz
ZUNsaWNrKGVsZW1lbnQpIHsKKyAgICB2YXIgeCA9IGVsZW1lbnQuY2xpZW50TGVmdCArIDEwOwor
ICAgIHZhciB5ID0gZWxlbWVudC5jbGllbnRUb3AgKyAxMDsKKyAgICB2YXIgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50
KCJtb3VzZWRvd24iLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwg
eCwgeSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJNb3VzZUV2ZW50Iik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNldXAi
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMSwgeCwgeSwgeCwgeSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRvY3VtZW50KTsKKyAgICBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiAkKGlkKSB7CisgICAgcmV0dXJuIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworCit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2Zvcm0nKTsKK2Zvcm0uc2V0QXR0cmlidXRlKCdpZCcsICdmb3JtJyk7Citmb3JtLmlu
bmVySFRNTCA9CisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1pbnB1dCIgdmFs
dWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0
LXRleHQiIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9Im51bWJl
ciIgaWQ9ImlucHV0LW51bWJlciIgdmFsdWU9IjI0IiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
cmFkaW8iIG5hbWU9ImlucHV0LXJhZGlvIiBpZD0iaW5wdXQtcmFkaW8xIiB2YWx1ZT0iMSIgY2hl
Y2tlZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaW5wdXQtcmFkaW8iIGlk
PSJpbnB1dC1yYWRpbzIiIHZhbHVlPSIyIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIG5hbWU9ImlucHV0LWNoZWNrIiBpZD0iaW5wdXQtY2hlY2sxIiB2YWx1ZT0iMSIgY2hlY2tl
ZC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaW5wdXQtY2hlY2siIGlk
PSJpbnB1dC1jaGVjazIiIHZhbHVlPSIyIiAvPicgKworICAgICc8dGV4dGFyZWEgaWQ9ImlucHV0
LXRleHRhcmVhIj5JbnB1dCBoZXJlLjwvdGV4dGFyZWE+JyArCisgICAgJzxzZWxlY3QgaWQ9Imlu
cHV0LXNlbGVjdCIgbXVsdGlwbGU+JyArCisgICAgJzxvcHRpb24gaWQ9ImlucHV0LW9wdGlvbjEi
IHZhbHVlPSJvcHRpb24xIj5vcHRpb24xPC9vcHRpb24+JyArCisgICAgJzxvcHRpb24gaWQ9Imlu
cHV0LW9wdGlvbjIiIHZhbHVlPSJvcHRpb24yIj5vcHRpb24yPC9vcHRpb24+JyArCisgICAgJzwv
c2VsZWN0PicgKworCisgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVmYXVsdC1oYW5kbGVy
IiBvbmZvcm1pbnB1dD0icmVzdWx0ID0gXCdGaXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImhhbmRsZXItdGV4dCIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0VGV4dCA9
IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJoYW5k
bGVyLW51bWJlciIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0TnVtYmVyID0gXCdEZWxpdmVyZWRc
JyIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJoYW5kbGVyLXJhZGlvIiBp
ZD0iaGFuZGxlci1yYWRpbyIgb25mb3JtaW5wdXQ9InJlc3VsdElucHV0UmFkaW8gPSBcJ0RlbGl2
ZXJlZFwnIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImhhbmRsZXIt
Y2hlY2siIGlkPSJoYW5kbGVyLWNoZWNrIiBvbmZvcm1pbnB1dD0icmVzdWx0SW5wdXRDaGVja2Jv
eCA9IFwnRGVsaXZlcmVkXCciIC8+JyArCisgICAgJzx0ZXh0YXJlYSBpZD0iaGFuZGxlci10ZXh0
YXJlYSIgb25mb3JtaW5wdXQ9InJlc3VsdFRleHRhcmVhID0gXCdEZWxpdmVyZWRcJyI+PC90ZXh0
YXJlYT4nICsKKyAgICAnPGtleWdlbiBpZD0iaGFuZGxlci1rZXlnZW4iIG9uZm9ybWlucHV0PSJy
ZXN1bHRLZXlnZW4gPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKworICAgICc8b2JqZWN0IGlkPSJoYW5k
bGVyLW9iamVjdCIgb25mb3JtaW5wdXQ9InJlc3VsdE9iamVjdCA9IFwnRGVsaXZlcmVkXCciIC8+
JyArCisgICAgJzxvdXRwdXQgaWQ9ImhhbmRsZXItb3V0cHV0IiBvbmZvcm1pbnB1dD0icmVzdWx0
T3V0cHV0ID0gXCdEZWxpdmVyZWRcJyIgLz4nICsKKyAgICAnPHNlbGVjdCBpZD0iaGFuZGxlci1z
ZWxlY3QiIG9uZm9ybWlucHV0PSJyZXN1bHRTZWxlY3QgPSBcJ0RlbGl2ZXJlZFwnIiAvPicgKwor
CisgICAgJzxwIGlkPSJoYW5kbGVyLXAiIG9uZm9ybWlucHV0PSJyZXN1bHRQID0gXCdEZWxpdmVy
ZWRcJyI+SGkhPC9wPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCisKK2Z1
bmN0aW9uIG9uZm9ybWlucHV0UmVtb3ZpbmdJbnB1dCgpIHsKKyAgICAkKCdmb3JtLXJlbW92aW5n
LWlucHV0JykucmVtb3ZlQ2hpbGQoJCgnaGFuZGxlci1yZW1vdmluZy1pbnB1dCcpKTsKKyAgICBy
ZXN1bHRSZW1vdmluZ0lucHV0ID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3ZpbmdJ
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2Zvcm1SZW1vdmluZ0lucHV0
LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9ybS1yZW1vdmluZy1pbnB1dCcpOworZm9ybVJlbW92aW5n
SW5wdXQuaW5uZXJIVE1MID0KKyAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dC1yZW1v
dmluZy1pbnB1dCIgdmFsdWU9IklucHV0IGhlcmUuIiAvPicgKworICAgICc8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImhhbmRsZXItcmVtb3ZpbmctaW5wdXQiIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1
dFJlbW92aW5nSW5wdXQoKSIgLz4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtUmVt
b3ZpbmdJbnB1dCk7CisKKworZnVuY3Rpb24gb25mb3JtaW5wdXRSZW1vdmluZ0Zvcm0oKSB7Cisg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCgkKCdmb3JtLXJlbW92aW5nLWZvcm0nKSk7Cisg
ICAgcmVzdWx0UmVtb3ZpbmdGb3JtID0gJ0RlbGl2ZXJlZCc7Cit9CisKK3ZhciBmb3JtUmVtb3Zp
bmdGb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZm9ybVJlbW92aW5nRm9y
bS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Zvcm0tcmVtb3ZpbmctZm9ybScpOworZm9ybVJlbW92aW5n
Rm9ybS5pbm5lckhUTUwgPQorICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0LXJlbW92
aW5nLWZvcm0iIHZhbHVlPSJJbnB1dCBoZXJlLiIgLz4nICsKKyAgICAnPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJoYW5kbGVyLXJlbW92aW5nLWZvcm0iIG9uZm9ybWlucHV0PSJvbmZvcm1pbnB1dFJl
bW92aW5nRm9ybSgpIiAvPic7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm1SZW1vdmlu
Z0Zvcm0pOworCisKK3ZhciByZXN1bHQ7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBl
PXRleHQpJyk7CityZXN1bHQgPSAiTm90IGZpcmVkIjsKKyQoJ2lucHV0LXRleHQnKS5mb2N1cygp
Oworc2VuZFRleHQoJCgnaW5wdXQtdGV4dCcpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWlu
cHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZpcmVkIik7
CisKK2RlYnVnKCdDaGFuZ2UgZm9yIGlucHV0ICh0eXBlPW51bWJlciknKTsKK3Jlc3VsdCA9ICJO
b3QgZmlyZWQiOworJCgnaW5wdXQtbnVtYmVyJykuZm9jdXMoKTsKK3NlbmRLZXkoJCgnaW5wdXQt
bnVtYmVyJyksICdVcCcpOworJCgnZGVmYXVsdC1pbnB1dCcpLmZvY3VzKCk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1
dCAodHlwZT1yYWRpbyknKTsKK3Jlc3VsdCA9ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtcmFkaW8y
JykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIp
OworCitkZWJ1ZygnQ2hhbmdlIGZvciBpbnB1dCAodHlwZT1jaGVja2JveCknKTsKK3Jlc3VsdCA9
ICJOb3QgZmlyZWQiOworJCgnaW5wdXQtY2hlY2syJykuY2xpY2soKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgIk5vdCBmaXJlZCIpOworCitkZWJ1ZygnQ2hhbmdlIGZvciB0ZXh0
YXJlYScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7CiskKCdpbnB1dC10ZXh0YXJlYScpLmZvY3Vz
KCk7CitzZW5kVGV4dCgkKCdpbnB1dC10ZXh0YXJlYScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZh
dWx0LWlucHV0JykuZm9jdXMoKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgIkZp
cmVkIik7CisKK2RlYnVnKCdDaGFuZ2UgZm9yIHNlbGVjdCcpOworcmVzdWx0ID0gIk5vdCBmaXJl
ZCI7CitzZW5kTW91c2VDbGljaygkKCdpbnB1dC1zZWxlY3QnKSk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJOb3QgZmlyZWQiKTsKKworZGVidWcoJ2Zvcm0uZGlzcGF0Y2hGb3Jt
SW5wdXQoKScpOworcmVzdWx0ID0gIk5vdCBmaXJlZCI7Citmb3JtLmRpc3BhdGNoRm9ybUlucHV0
KCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJGaXJlZCIpOworCisKK2RlYnVn
KCcnKTsKKworCitkZWJ1ZygnSXMgZm9ybWlucHV0IGRlbGl2ZXJlZCBmb3I/Jyk7Cit2YXIgcmVz
dWx0SW5wdXRUZXh0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0TnVtYmVyID0g
Ik5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdElucHV0UmFkaW8gPSAiTm90IGRlbGl2ZXJlZCI7
Cit2YXIgcmVzdWx0SW5wdXRDaGVja2JveCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRU
ZXh0YXJlYSA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRLZXlnZW4gPSAiTm90IGRlbGl2
ZXJlZCI7Cit2YXIgcmVzdWx0T2JqZWN0ID0gIk5vdCBkZWxpdmVyZWQiOwordmFyIHJlc3VsdE91
dHB1dCA9ICJOb3QgZGVsaXZlcmVkIjsKK3ZhciByZXN1bHRTZWxlY3QgPSAiTm90IGRlbGl2ZXJl
ZCI7Cit2YXIgcmVzdWx0UCA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2RlZmF1bHQtaW5wdXQnKS5m
b2N1cygpOworc2VuZFRleHQoJCgnZGVmYXVsdC1pbnB1dCcpLCAnTmV3IHRleHQuJyk7CiskKCdk
ZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFRleHQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdElu
cHV0TnVtYmVyIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dFJhZGlvIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRJ
bnB1dENoZWNrYm94IiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHRUZXh0YXJlYSIsICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
S2V5Z2VuIiwgIkRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPYmpl
Y3QiLCAiTm90IGRlbGl2ZXJlZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRPdXRw
dXQiLCAiRGVsaXZlcmVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdFNlbGVjdCIs
ICJEZWxpdmVyZWQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UCIsICJOb3QgZGVs
aXZlcmVkIik7CisKK3ZhciByZXN1bHRSZW1vdmluZ0lucHV0ID0gIk5vdCBkZWxpdmVyZWQiOwor
JCgnaW5wdXQtcmVtb3ZpbmctaW5wdXQnKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVt
b3ZpbmctaW5wdXQnKSwgJ05ldyB0ZXh0LicpOworJCgnZGVmYXVsdC1oYW5kbGVyJykuZm9jdXMo
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0UmVtb3ZpbmdJbnB1dCIsICJEZWxpdmVy
ZWQiKTsKKwordmFyIHJlc3VsdFJlbW92aW5nRm9ybSA9ICJOb3QgZGVsaXZlcmVkIjsKKyQoJ2lu
cHV0LXJlbW92aW5nLWZvcm0nKS5mb2N1cygpOworc2VuZFRleHQoJCgnaW5wdXQtcmVtb3Zpbmct
Zm9ybScpLCAnTmV3IHRleHQuJyk7CiskKCdkZWZhdWx0LWhhbmRsZXInKS5mb2N1cygpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRSZW1vdmluZ0Zvcm0iLCAiRGVsaXZlcmVkIik7CisK
KworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmb3JtKTsKK2RlYnVnKCcnKTsKKworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODAzNDZmOTc4YWU5YmNj
N2IxMjJkY2ExNjM0ZDYzOWZkNGJiN2U5Li4yYmM2ZTVjMTQ1Zjc5ZTJjYTQ4ZmQ1ZGRhMmU3MTI4
ZDY5NjdjODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDEtMTggIERhaSBN
aWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvbmZvcm1jaGFuZ2UgYW5kIG9uZm9y
bWlucHV0IGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjE0MQorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2Zvcm1jaGFu
Z2UtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9mb3JtaW5wdXQtZXZlbnQu
aHRtbAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bTogQWRkZWQgZXZlbnQgbmFtZXMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIGV2
ZW50IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IEFkZGVkIGV2ZW50IGRlZmlu
aXRpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDogQWRkZWQgZXZlbnQgZGVmaW5pdGlv
bnMuCisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojpm
cm9tVXNlckdlc3R1cmUpOiBBZGRlZCBhIGNvbmRpdGlvbiBmb3IgYSBmb3JtY2hhbmdlIGV2ZW50
IGluIGhhbmRsaW5nIHVzZXIgZ2VzdHVyZXMuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDog
QWRkZWQgZXZlbnQgZGVmaW5pdGlvbnMuCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRnJvbVJlbmRlcmVyKTog
UmVwbGFjZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0
RXZlbnRzKCksIGEgdmlydHVhbCBmdW5jdGlvbiB3aGljaCBicm9hZGNhc3RzIGZvcm1pbnB1dCBl
dmVudHMgZm9yIEhUTUwgZWxlbWVudHMuCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgYmFzaWMgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKTogRGVmaW5lZCBiYXNpYyBkaXNwYXRjaENoYW5nZUV2
ZW50cygpIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkgY2FsbCBpbnRv
IGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAq
IGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpIHRvIGNo
ZWNrIHRoZSBlbGVtZW50IGlzIHJlc2V0dGFibGUgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBldmVudCBuYW1lcy4KKyAgICAgICAgKiBodG1sL0hU
TUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6IEFkZGVkIGV2ZW50IGhhbmRsaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OnNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKTogQWRkZWQgdG8gZ2V0IGFuIGFuY2Vz
dG9yIDxmb3JtPiBlbGVtZW50IGZyb20gYSBzaGFkb3cgZWxlbWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cyk6IERlZmluZWQgZGlzcGF0Y2hD
aGFuZ2VFdmVudHMoKSBmb3IgSFRNTCBlbGVtZW50cyBkZXNjcmliZWQgYWJvdmUuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6ZGlzcGF0Y2hJbnB1dEV2ZW50cyk6IERlZmluZWQgZGlz
cGF0Y2hJbnB1dEV2ZW50cygpIGZvciBIVE1MIGVsZW1lbnRzIGRlc2NyaWJlZCBhYm92ZS4KKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk6IEFkZGVkIGNhbGxpbmcgZGlzcGF0Y2hG
b3JtQ2hhbmdlKCkgdG8gYnJvYWRjYXN0IGZvcm1jaGFuZ2UgZXZlbnRzLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZl
bnQpOiBEZWZpbmVkIG5ld2x5IHRvIGRpc3BhdGNoIGFuIGlucHV0IGV2ZW50IHdpdGggYnJvYWRj
YXN0aW5nIGZvcm1pbnB1dCBldmVudHMuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6YnJvYWRjYXN0
Rm9ybUV2ZW50KTogQWRkZWQgdG8gYnJvYWRjYXN0IGZvcm1pbnB1dCBvciBmb3JtY2hhbmdlIGV2
ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtSW5w
dXQpOiBEZWZpbmVkIG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtaW5wdXQgZXZlbnRzLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50OjpkaXNwYXRjaEZvcm1DaGFuZ2UpOiBEZWZpbmVk
IG5ld2x5IHRvIGJyb2FkY2FzdCBmb3JtY2hhbmdlIGV2ZW50cy4KKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmlkbDogQWRk
ZWQgZGlzcGF0Y2hGb3JtSW5wdXQoKSBhbmQgZGlzcGF0Y2hGb3JtQ2hhbmdlKCkgRE9NIEFQSSBk
ZWZpbml0aW9ucy4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKTogUmVwbGFj
ZWQgYSBkaXJlY3QgZGlzcGF0Y2hFdmVudCgpIGNhbGwgaW50byBkaXNwYXRjaElucHV0RXZlbnRz
KCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVzZXR0YWJs
ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDogQWRkZWQgaXNSZXNldHRh
YmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOiBBZGRlZCBpc1Jlc2V0
dGFibGUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50Lmg6IEFkZGVkIGlzUmVz
ZXR0YWJsZSgpLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDogQWRkZWQgaXNS
ZXNldHRhYmxlKCkuCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6IEFkZGVk
IGlzUmVzZXR0YWJsZSgpLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IEFkZGVkIGV2ZW50
IGRlZmluaXRpb25zLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogQWRkZWQgZXZlbnQg
ZGVmaW5pdGlvbnMuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZXBsYWNlZCBhIGRpcmVjdCBkaXNwYXRjaEV2ZW50KCkg
Y2FsbCBpbnRvIGRpc3BhdGNoSW5wdXRFdmVudHMoKS4KKwogMjAxMS0wMS0xNyAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZ
dXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggMTg2M2Q4ZjM4YjdlYjJhYzQyZWIy
M2Y4NmZiYWY1MjFkM2U2ZThjZS4uZWQ3NmQwOGIyMGY2MTIxYjBjMmE1YzE3MzhiYzAyODc2NzVk
ZTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC01MTgsNyArNTE4LDcgQEAgbXkgQGV2ZW50U2lnbmFs
TmFtZXMgPSAoCiAgICAgIyBVc2VyIEludGVyZmFjZSBFdmVudCB0eXBlcwogICAgICJmb2N1cyIs
ICJibHVyIiwKICAgICAjIEJhc2ljIEV2ZW50IHR5cGVzCi0gICAgImxvYWQiLCAidW5sb2FkIiwg
ImFib3J0IiwgImVycm9yIiwgInNlbGVjdCIsICJjaGFuZ2UiLCAic3VibWl0IiwgInJlc2V0IiwK
KyAgICAibG9hZCIsICJ1bmxvYWQiLCAiYWJvcnQiLCAiZXJyb3IiLCAic2VsZWN0IiwgImNoYW5n
ZSIsICJmb3JtY2hhbmdlIiwgInN1Ym1pdCIsICJyZXNldCIsCiAgICAgInJlc2l6ZSIsICJzY3Jv
bGwiLAogICAgICMgTW91c2UgRXZlbnQgdHlwZXMKICAgICAiY2xpY2siLCAiZGJsY2xpY2siLCAi
bW91c2Vkb3duIiwgIm1vdXNldXAiLApAQCAtNTQwLDcgKzU0MCw3IEBAIG15IEBldmVudFNpZ25h
bE5hbWVzID0gKAogICAgICMgQW5pbWF0aW9ucwogICAgICJ3ZWJraXRhbmltYXRpb25lbmQiLCAi
d2Via2l0YW5pbWF0aW9uc3RhcnQiLCAid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwKICAgICAj
IE90aGVyCi0gICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImludmFsaWQiLCAic2VhcmNoIiwg
InNlbGVjdHN0YXJ0Iik7CisgICAgImNvbnRleHRtZW51IiwgImlucHV0IiwgImZvcm1pbnB1dCIs
ICJpbnZhbGlkIiwgInNlYXJjaCIsICJzZWxlY3RzdGFydCIpOwogCiBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzIHsKICAgICBteSAoJG9iamVjdCwgJGludGVyZmFjZU5hbWUsICRkYXRhTm9kZSkgPSBA
XzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYjM4ZDNkZDA2ZGI4NTNmZmM2MjQ2NzFmODVhNjI2
OWVkNGJkMzQ1Ni4uMmNkMjZmOWVkMzJjOTNiN2YwM2Y1Y2ZjYjNlZWZiNGEwNjJmOTlkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTI0OSw2ICsyNDksOCBAQCBwdWJsaWM6CiAgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZvcm1j
aGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0KTsK
ICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA4ZDdh
NzFiYTEyMDYyMGQ1NmM4OGU3OTA2YzFhODAxZTgzM2E1ZDNiLi5jMjE1ZGYwNGNiNzFlNTkzZDU1
Y2JlYmI1NmZiNTBkNDI0ODBjMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI2Niw2
ICsyNjYsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25kcm9wOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmlu
dmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlk
b3duOwpAQCAtMjg4LDggKzI5MCw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKICAgICAgICAg
Ly8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKLSAgICAg
ICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAg
ICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRt
ZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVlNmMwNDc5NDMxYjRjZTUwYjE5ZTZj
MDlhNmVjMTJlNWZmZGFkYWIuLjQ1MTA0Nzg3ZjZkNmY2YWNlMzgwYjM3NDYwZjViYjI3OGVhYzBi
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkcmFnc3RhcnQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoZHJhZyk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihkcmFnZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGZv
cm1jaGFuZ2UpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZm9ybWlucHV0
KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGlucHV0KTsKICAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGludmFsaWQpOwogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoa2V5ZG93bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggN2Ni
NjNjMjVjNDM3OGRhMjFjNGZkZDNlMWY0Y2I2NWE4NDQ3YThjOS4uNjUyYTc1YjY3NGM2MDE5NDJj
ODZhMWY2MGFkNjIwODc0MDUwZjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMTUzLDYg
KzE1Myw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmRyb3A7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9ybWNoYW5nZTsKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmZvcm1pbnB1dDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmlucHV0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW52
YWxpZDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRv
d247CkBAIC0xNzQsOCArMTc2LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAvLyBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHVyYXRpb25jaGFuZ2U7CiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwogICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwotICAgICAg
ICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1l
dGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggMGExNTM4YjBiMDNlZGY5YWQ1MTRlNzFj
MGY5ZDAwYzU1ODZjMjY1MC4uMjRlZmM0ZWVlOTBiODJhYTAyZWMxMjdiNWY2Mjk4N2M4NThkNmEy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBFdmVudDo6ZnJv
bVVzZXJHZXN0dXJlKCkKICAgICAgICAgLy8gb3RoZXIgYWNjZXB0ZWQgZXZlbnRzCiAgICAgICAg
IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1l
cygpLmNoYW5nZUV2ZW50CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3VzRXZl
bnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50Ci0gICAgICAgIHx8IHR5cGUgPT0g
ZXZlbnROYW1lcygpLnN1Ym1pdEV2ZW50OworICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS5zdWJtaXRFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb3JtY2hhbmdlRXZlbnQ7CiB9
CiAKIGJvb2wgRXZlbnQ6OnN0b3Jlc1Jlc3VsdEFzU3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCmluZGV4IDQ5NjgwNGVlNTBhZjhjYmYzYzdhMzE3YzJjYWQ3N2M1MTFjMTNmNzQu
LjcyNzY4ZDIzODIxYTU3ZmQ0YzRmZDQ5NTYzNjY1NGE0NDA1MTlhMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtNjYsNiArNjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oZm9jdXMpIFwKICAgICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwK
KyAgICBtYWNybyhmb3JtY2hhbmdlKSBcCisgICAgbWFjcm8oZm9ybWlucHV0KSBcCiAgICAgbWFj
cm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaW52YWxpZCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAppbmRleCAzNzIxMWQ4ZWUyNzdkMDgwNmJk
Yzk2MTc0ZTllYmVkODNhMGY1MTY4Li5kYjg5YzE2NDBjMDI2ZDE1ODhhNGQzOGVlZjhiZDQ1Y2I0
M2Y3OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcApAQCAtMTQwLDcgKzE0MCw3
IEBAIHZvaWQgSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJlcihJbnB1dEVsZW1lbnRE
YXRhJiBkYXRhLCBJbnB1dEVsZW1lbnQqIGluCiAKICAgICAvLyBJbnB1dCBldmVudCBpcyBmaXJl
ZCBieSB0aGUgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlciBmb3IgZWRpdGFibGUgY29udHJvbHMu
CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkpCi0gICAgICAgIGVsZW1lbnQt
PmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1
ZSwgZmFsc2UpKTsKKyAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hJbnB1dEV2ZW50cygpOwogICAg
IG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRl
eCAwOGE5YTQ3OGFjN2EwNDZlN2ZkOWI0ZmRjYzY3NTNlYzg3Y2YzY2FlLi4yZTQyZTg0ZDkzMjdl
YmQ1NTlhZDM2MWVjOWUyZjkzYzU3OGI5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yOTYzLDYg
KzI5NjMsMTYgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVudCgpCiAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkp
OwogfQogCit2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxz
ZSkpOworfQorCit2b2lkIE5vZGU6OmRpc3BhdGNoSW5wdXRFdmVudHMoKQoreworICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFs
c2UpKTsKK30KKwogYm9vbCBOb2RlOjpkaXNhYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMzAyMCw3ICszMDMwLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LT5mcmFtZSgpKQogICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGVmYXVs
dFdoZWVsRXZlbnRIYW5kbGVyKHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCk7CiAgICAgfSBlbHNlIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRFZGl0YWJsZUNvbnRlbnRDaGFu
Z2VkRXZlbnQpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5pbnB1dEV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICBkaXNwYXRjaElucHV0RXZl
bnRzKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA3Yzg4ZjBmZTIxMmM5YTFkNzdjNDdm
OGQ5NTliMDllODJhMDk1YjIxLi43NGUxY2M0N2ZmOGFlYmViMWUyNjA2ZDYxYWVhZjU5MDg4NzA2
Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU0MSw2ICs1NDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Qmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudHMoKTsKIAogICAgIC8vIFBlcmZvcm0g
dGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbiBldmVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
b3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKaW5kZXggODczYmRmNDY0ODYwYjUwZTQ5YjE1NDg3ZWY3MzgzZDhlMTc4NTFm
Yy4uZWJlZmRjNjAyOWQwYjVhZGRmNzhmNmUwN2Y1Mzk0MjJmZGY5MzJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0ID0gMDsKIAogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1Db250cm9sTmFtZSgpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggNTEzZTQ0ZjVlZWI2MWE1
OTViMzQzNDM3MmEwZmE2YTUyNDY2ZGJlMy4uZWFjOWE3MzBkZTc2ZDkwNjI3MjNjZDlmY2U4ZTMx
Y2Q2MjE3ZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
QEAgLTE3Nyw2ICsxNzcsOCBAQCBvbmVycm9yCiBvbmZvY3VzCiBvbmZvY3VzaW4KIG9uZm9jdXNv
dXQKK29uZm9ybWNoYW5nZQorb25mb3JtaW5wdXQKIG9uaGFzaGNoYW5nZQogb25pbnB1dAogb25p
bnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGFmMzExNWMyMjNkY2E1
MDQzNjEzYmJkMmZkZWVlMzg3MjhhNTkwNzMuLjFhNGZjODU2NDA5ZjdiYzBlZGE0OWI3YTA1M2E1
ZDk5ODRkMGJlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xOTAsNiAr
MTkwLDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0
ZSogYXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
Zm9jdXNpbkV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsK
ICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3Vzb3V0QXR0cikgewogICAgICAg
ICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmZvcm1jaGFuZ2VBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvcm1jaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmli
dXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25mb3JtaW5wdXRBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmZvcm1pbnB1dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmJsdXJB
dHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJs
dXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25rZXlkb3duQXR0cikgewpAQCAtODM3LDYgKzg0
MSw0MCBAQCBIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZpbmRGb3JtQW5jZXN0b3IoKTsKIH0KIAorSFRNTEZvcm1FbGVtZW50KiBI
VE1MRWxlbWVudDo6c2hhZG93QW5jZXN0b3JPd25lckZvcm0oKQoreworICAgIE5vZGUqIGFuY2Vz
dG9yTm9kZSA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAgIGlmICghYW5jZXN0b3JOb2RlKQor
ICAgICAgICByZXR1cm4gZm9ybSgpOworCisgICAgaWYgKCFhbmNlc3Rvck5vZGUtPmlzSFRNTEVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgSFRNTEVsZW1lbnQqIGFuY2VzdG9ySFRN
TCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oYW5jZXN0b3JOb2RlKTsKKyAgICBpZiAoIWFu
Y2VzdG9ySFRNTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuY2VzdG9ySFRNTC0+
Zm9ybSgpOworfQorCit2b2lkIEhUTUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50cygpCit7
CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwcm90ZWN0b3IodGhpcyk7CisgICAgUmVmUHRyPEhU
TUxGb3JtRWxlbWVudD4gb3duZXJGb3JtKHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCkpOworCisg
ICAgTm9kZTo6ZGlzcGF0Y2hDaGFuZ2VFdmVudHMoKTsKKyAgICBpZiAob3duZXJGb3JtKQorICAg
ICAgICBvd25lckZvcm0tPmRpc3BhdGNoRm9ybUNoYW5nZSgpOworfQorCit2b2lkIEhUTUxFbGVt
ZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCkKK3sKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
b3RlY3Rvcih0aGlzKTsKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBvd25lckZvcm0oc2hh
ZG93QW5jZXN0b3JPd25lckZvcm0oKSk7CisKKyAgICBOb2RlOjpkaXNwYXRjaElucHV0RXZlbnRz
KCk7CisgICAgaWYgKG93bmVyRm9ybSkKKyAgICAgICAgb3duZXJGb3JtLT5kaXNwYXRjaEZvcm1J
bnB1dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggYTY0ZGIyY2Y3OGM1N2MzNjY2MWY5YjFhNGIy
YTU2Yzc1NTkzNjRlMC4uMzM1NmJhYjY0NjNlYzQ3OWY5ZWFjMDIzNmQ0NmQzYjVlOTAwMTIyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIGZpbmRGb3JtQW5jZXN0b3IoKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaElucHV0RXZlbnRzKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCkBAIC0xMDEsNiArMTA0LDggQEAg
cHJpdmF0ZToKIAogICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUs
IE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CisKKyAgICBIVE1MRm9ybUVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yT3duZXJGb3JtKCk7CiB9Owog
CiBpbmxpbmUgSFRNTEVsZW1lbnQ6OkhUTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGIzYWQ3Yzg0M2I2MzUwNTk2OGRmNmUzYzRlMDM0
OTU4NTEzMjRmZjguLmJiNDJkZmQ3ZjgxMDIyNmY0MzgwNzU0ZWZkMTlmNDlkNDBiYWEzYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
MTc4LDcgKzE3OCwxMiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldE5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKQogewotICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7CisgICAg
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnRzKCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKQoreworICAgIEhU
TUxFbGVtZW50OjpkaXNwYXRjaElucHV0RXZlbnRzKCk7CiB9CiAKIHZvaWQgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4NDAzYjg0YWM1ZWRkMzU3MDY2MTk4ZThlNGVk
ZGNkYmFlZTNhMDE4Li5jODg5MDVjNjJlNjY0Y2ZjYTc5MzgwNzgyYzI2MmMzNWU4YTgxYjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNTMs
MTIgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcihib29sIGIpIHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KICAgICB2
b2lkIHNldERpc2FibGVkKGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIC8vIERldGVybWluZXMgd2hldGhlciBvciBub3QgYSBjb250cm9sIHdp
bGwgYmUgYXV0b21hdGljYWxseSBmb2N1c2VkLgogICAgIHZpcnR1YWwgYm9vbCBhdXRvZm9jdXMo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCBjODk2
YmJmM2IyODdkYTYyM2MwOTk5YjdiNDUxOGE3YTU1YzJiYTllLi5kNzc4NjAxNmYyN2ZlOTA1YTBk
NTBlMGJiMmMwNTkyZTk0NWZjZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCkBAIC01OTAsNiArNTkwLDM5IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50OjpjaGVja1Zh
bGlkaXR5KCkKICAgICByZXR1cm4gY29udHJvbHMuaXNFbXB0eSgpOwogfQogCit2b2lkIEhUTUxG
b3JtRWxlbWVudDo6YnJvYWRjYXN0Rm9ybUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRO
YW1lKQoreworICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IHByb3RlY3Rvcih0aGlzKTsKKyAg
ICAvLyBDb3B5IG1fYXNzb2NpYXRlZEVsZW1lbnRzIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2Fs
bGVkIGZyb20KKyAgICAvLyBmb3JtRWxlbWVudC0+ZGlzcGF0Y2hFdmVudCgpIG1pZ2h0IGNoYW5n
ZSBtX2Fzc29jaWF0ZWRFbGVtZW50cy4KKyAgICBWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVk
RWxlbWVudD4gPiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlQ2FwYWNpdHkobV9hc3Nv
Y2lhdGVkRWxlbWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9h
c3NvY2lhdGVkRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFtX2Fzc29jaWF0
ZWRFbGVtZW50c1tpXS0+aXNSZXNldHRhYmxlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgZWxlbWVudHMuYXBwZW5kKG1fYXNzb2NpYXRlZEVsZW1lbnRzW2ldKTsKKyAgICB9CisK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgLy8gV2UgY2FuIGFzc3VtZSBhIHJlc2V0dGFibGUgY29udHJvbCBpcyBhbHdheXMgYSBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhbmRs
ZSByZXNldHRhYmxlIG5vbi1IVE1MRm9ybUNvbnRyb2xFbGVtZW50cyBtYXliZSBpbiB0aGUgZnV0
dXJlLgorICAgICAgICBBU1NFUlQoZWxlbWVudHNbaV0tPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkp
OworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBmb3JtRWxlbWVudCA9IHN0YXRpY19j
YXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihlbGVtZW50c1tpXS5nZXQoKSk7CisgICAgICAg
IGlmICghZm9ybUVsZW1lbnQtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUs
IGZhbHNlLCBmYWxzZSkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgfQorfQorCit2b2lk
IEhUTUxGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb3JtSW5wdXQoKQoreworICAgIGJyb2FkY2FzdEZv
cm1FdmVudChldmVudE5hbWVzKCkuZm9ybWlucHV0RXZlbnQpOworfQorCit2b2lkIEhUTUxGb3Jt
RWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ2hhbmdlKCkKK3sKKyAgICBicm9hZGNhc3RGb3JtRXZlbnQo
ZXZlbnROYW1lcygpLmZvcm1jaGFuZ2VFdmVudCk7Cit9CisKIHZvaWQgSFRNTEZvcm1FbGVtZW50
Ojpjb2xsZWN0VW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKFZlY3RvcjxSZWZQdHI8Rm9ybUFzc29j
aWF0ZWRFbGVtZW50PiA+JiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpCiB7CiAgICAgUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gcHJvdGVjdG9yKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmgKaW5kZXggYmQwODdiOGRmYTU0NGEzYzljODI2MGZiYzYxMmRmM2JkZjg0YWU2
ZS4uN2Q3ZjRmODk3OGVkNWZmN2IyYmNkNDkwYWY2ODU3MWVhY2JhMWU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMTQsNiArMTE0LDkgQEAgcHVibGljOgogCiAg
ICAgY29uc3QgVmVjdG9yPEZvcm1Bc3NvY2lhdGVkRWxlbWVudCo+JiBhc3NvY2lhdGVkRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2Fzc29jaWF0ZWRFbGVtZW50czsgfQogCisgICAgdm9pZCBk
aXNwYXRjaEZvcm1JbnB1dCgpOworICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ2hhbmdlKCk7CisKIHBy
aXZhdGU6CiAgICAgSFRNTEZvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogCkBAIC0xNDQsNiArMTQ3LDggQEAgcHJpdmF0ZToKICAgICAvLyBldmVudCB3YXMgbm90
IGNhbmNlbGVkIHRvIHRoZSBzcGVjaWZpZWQgdmVjdG9yLgogICAgIHZvaWQgY29sbGVjdFVuaGFu
ZGxlZEludmFsaWRDb250cm9scyhWZWN0b3I8UmVmUHRyPEZvcm1Bc3NvY2lhdGVkRWxlbWVudD4g
PiYpOwogCisgICAgdm9pZCBicm9hZGNhc3RGb3JtRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7
CisKICAgICBmcmllbmQgY2xhc3MgSFRNTEZvcm1Db2xsZWN0aW9uOwogCiAgICAgdHlwZWRlZiBI
YXNoTWFwPFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiwgUmVmUHRyPEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ+ID4gQWxpYXNNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwK
aW5kZXggZTk3NTllMjUzMTlmMjhjN2FiZjM2NjI1NmExNjY4OWNlOWM1ZDBjMC4uM2U5ZTQ2ZDA0
ZTM2Njg4MDQ5YTkwZDY5YTNlNzA0MDkzMjcyZTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmlkbApAQCAtNDMsNiArNDMsOSBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYK
ICAgICAgICAgdm9pZCByZXNldCgpOwogICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsK
KworICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUlucHV0KCk7CisgICAgICAgIHZvaWQgZGlzcGF0
Y2hGb3JtQ2hhbmdlKCk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggYTFlN2Q4YjQ2OTFiOTBkMTk4ODYxZGE3MjdmY2Q4Y2EzZGQ3ZjRk
MC4uM2MxMWJmYTZhYTFlMjJiNWI2N2IzYjc3OTdlNjZiOTMxYWJmMjQwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMzc5LDcgKzEzNzksNyBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcEZyb21SZW5kZXJlcihpbnQgbikKICAgICAgICAgaWYg
KG1faW5wdXRUeXBlLT5pc1JhbmdlQ29udHJvbCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3Jt
Q29udHJvbENoYW5nZUV2ZW50KCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgdHJ1ZSwgZmFsc2Up
KTsKKyAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGViMzBkZTA4OWNj
MDI2NWY3ZmYwNTcxYWVhODdjZDM2OGE5ZjM5YTIuLjQwMzI0OGM5OGE0MWMxOWIxMzJiMjJiMWYz
YWNjZGZkMTRlZjVkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBA
IC0yMTEsNiArMjExLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZv
Y3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VG
b2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJl
dmlvdXNTZWxlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9pZCBhYm91dFRvVW5sb2FkKCk7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKaW5kZXggODBmOTRiNTVmNmIwYzQ1MjY5ODY4M2VlNGNh
ZGI5ZGU2NzFlNTdhZS4uYjhiMTQ0ZjUyNTg3YjIyMTdkMTVhOTI1N2NmNjg2YjY5MTRhNGUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaApAQCAtMzUsNiArMzUsOCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxLZXlnZW5FbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCisgICAgdmlydHVhbCBib29s
IGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCBib29sIGFw
cGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5oCmluZGV4IGZmNzczZjE2ZDgyOGM1MWY4MzAxMGQ2ZTlhMDk2ZWJiYWQ3
NDRjYTcuLmNjOGEwM2NjMjhmNWE1YjkyMDYyNDA2NGVlZWZhZDE5MmM0MjBjNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYsIGJvb2wpOwogCiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIGNvbnN0cmFpbnQgdmFsaWRh
dGlvbiBBUEkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKaW5kZXggODNl
Y2VlMmY0OWY4NjE2ZjdiMTBlYzlkYmRjMmRlMDczMGEzZmRlZC4uNGM1YzY4NDJiOGNiYjgwNTVl
MjMyOGFkYjM0YjJkMGEzMDlhZWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVy
YXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jlc2V0
dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVu
Q2hhbmdlZChib29sIGNyZWF0ZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2Ug
PSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IGEyMmRmMDIwMDVmMmUzNTc0MmUxZDUyZjU5YWE5Mjg5ZTJlNTYzNjUuLjQy
ZTg5NjNmZGM2YTdlMjU4ZmU0NzBlNGUxYWE1MGM0NDk3ZTVjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVzZXR0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVl
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4
IDY2OWZjZDhjNTA5ODViYjJiZWRkZWVmYjE0YzdkNWI1OGIwNmEzYjUuLjIxYjU4ODA0YzUyN2Y0
YWM3NjYwNzU5MGMzNmI3YjE4M2UzZjJjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oCkBAIC04MCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0Vu
dW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZXNldHRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAppbmRleCBjYTI0ODhiMTA1ZDcwNTJlZDZmMzc4ZjhkZjE2MmJiMmFiMzU1ZWZhLi44MTkz
MWI1NjJkOGFkMGMyOTAyOTU4MDk2MWU5YmNjZDdkNDMzODZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKQEAgLTI2OSw2ICsyNjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZW5kZWQpOwogICAgICAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9yKTsKICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihmb2N1cyk7CisgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIoZm9ybWNoYW5nZSk7CisgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZm9ybWlucHV0KTsKICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUiho
YXNoY2hhbmdlKTsKICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihpbnB1
dCk7CiAgICAgICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoaW52YWxpZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMGNiOWEyY2FmOTY3NzgxNzQ0OTRjNjJmODI4
NjNiMjM3NzMzNTZlNC4uOWI3MWNjZTdjY2M1YTcyNGExOGNhODVhZjgxNDFkZmIwNTNiZjY2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMjYzLDYgKzI2Myw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwogICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZv
cm1jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0Owog
ICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmhhc2hjaGFuZ2U7CiAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9uaW52YWxpZDsKQEAgLTMwNyw4ICszMDksNiBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgLy8gTm90IGltcGxlbWVudGVkIHlldC4KICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25hZnRlcnByaW50OwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmJlZm9yZXByaW50OwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZv
cm1jaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0
OwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlYWR5c3RhdGVjaGFuZ2U7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVkbzsKICAgICAgICAgLy8g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zaG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA1Yjg3MTJkNjU1
MjY1MzJmODNjYjg4MWM1ZTBkZWVlNDdmZGY1NDA1Li5iNmUzZGQ0NGJiZTI0M2YzODQzZTc1YzU0
NTdhYzkxMGFlOTNhMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgU2Vh
cmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBl
dmVudCkKICAgICAgICAgICAgICAgICBpbnB1dC0+c2V0VmFsdWUoIiIpOwogICAgICAgICAgICAg
ICAgIGlmICghb2xkVmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRvUmVu
ZGVyVGV4dENvbnRyb2woaW5wdXQtPnJlbmRlcmVyKCkpLT5zZXRDaGFuZ2VkU2luY2VMYXN0Q2hh
bmdlRXZlbnQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlucHV0LT5kaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIHRydWUsIGZhbHNlKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpbnB1dC0+b25TZWFyY2goKTsK
ICAgICAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>