<?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>98357</bug_id>
          
          <creation_ts>2012-10-04 00:34:52 -0700</creation_ts>
          <short_desc>[GTK] accessibility/aria-readonly.html is failing</short_desc>
          <delta_ts>2016-05-11 14:52:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Joanmarie Diggs">jdiggs</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jochen</cc>
    
    <cc>mario</cc>
    
    <cc>peter+ews</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734438</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-04 00:34:52 -0700</bug_when>
    <thetext>accessibility/aria-readonly.html is failing on all GTK platforms.
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=accessibility%2Faria-readonly.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787395</commentid>
    <comment_count>1</comment_count>
      <attachid>178569</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-10 09:13:53 -0800</bug_when>
    <thetext>Created attachment 178569
test case for discussion

While working on this bug, I came across the following issue: aria-readonly is independent of the element&apos;s readonly state.

According to the W3C [1], aria-readonly:

    Indicates that the element is not editable, but is otherwise
    operable. See related aria-disabled.

    This means the user can read but not set the value of the widget.
    Readonly elements are relevant to the user, and application authors
    SHOULD NOT restrict navigation to the element or its focusable
    descendants. Other actions such as copying the value of the element
    are also supported. This is in contrast to disabled elements, to
    which applications might not allow user navigation to descendants.

Because the readonly state in reality is completely disconnected from aria-readonly, an assistive technology is in danger of informing the user that a widget which is editable is not editable. This strikes me as highly undesirable.

I bring this up for the following reason: The current failing test is failing because we need to implement AccessibilityUIElement::isAttributeSettable(). I implemented it as follows:

bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute)
{
    // In Atk, things are generally settable if they are not read-only. At the
    // moment, we identify read only via ATK_STATE_EDITABLE. In the future,
    // once it is implemented, ATK_STATE_READ_ONLY should also be checked:
    // https://bugzilla.gnome.org/show_bug.cgi?id=665598

    return checkElementState(m_element, ATK_STATE_EDITABLE);
}

That gets the test assertions in aria-readonly.html passing with one exception: 

 PASS ariaTextBoxIsWritable is true
 PASS ariaReadOnlyAriaTextBoxIsWritable is false
-PASS ariaReadOnlyTextFieldIsWritable is false
+FAIL ariaReadOnlyTextFieldIsWritable should be false. Was true.
 PASS ariaNonReadOnlyTextFieldIsWritable is true
 PASS htmlReadOnlyTextFieldIsWritable is false
 PASS textFieldIsWritable is true

In the case of the failure, ariaReadOnlyTextFieldIsWritable actually IS writable. A user can type in it. Thus it should not be false IMHO.

Making this test pass as written by modifying the ATK port would have a side effect of making the Orca screen reader telling the user a non-readonly widget is readonly. I consider that unacceptable. Therefore, what should we do?

Should the element respect the ARIA value and make the widget truly readonly? Should the Accessibility code ignore ARIA attributes that do not jive with reality? Should we move the test to the Mac port (where it fully passes at the moment) and provide a new test which lacks the problematic item? Or something else?

Thoughts?

[1] http://www.w3.org/TR/wai-aria/states_and_properties#aria-readonly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787398</commentid>
    <comment_count>2</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-10 09:16:06 -0800</bug_when>
    <thetext>Chris could you please weigh in on my comment 1? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787403</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-10 09:24:27 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=178569) [details]
&gt; test case for discussion
&gt; 
&gt; While working on this bug, I came across the following issue: aria-readonly is independent of the element&apos;s readonly state.
&gt; 
&gt; According to the W3C [1], aria-readonly:
&gt; 
&gt;     Indicates that the element is not editable, but is otherwise
&gt;     operable. See related aria-disabled.
&gt; 
&gt;     This means the user can read but not set the value of the widget.
&gt;     Readonly elements are relevant to the user, and application authors
&gt;     SHOULD NOT restrict navigation to the element or its focusable
&gt;     descendants. Other actions such as copying the value of the element
&gt;     are also supported. This is in contrast to disabled elements, to
&gt;     which applications might not allow user navigation to descendants.
&gt; 
&gt; Because the readonly state in reality is completely disconnected from aria-readonly, an assistive technology is in danger of informing the user that a widget which is editable is not editable. This strikes me as highly undesirable.
&gt; 
&gt; I bring this up for the following reason: The current failing test is failing because we need to implement AccessibilityUIElement::isAttributeSettable(). I implemented it as follows:
&gt; 
&gt; bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute)
&gt; {
&gt;     // In Atk, things are generally settable if they are not read-only. At the
&gt;     // moment, we identify read only via ATK_STATE_EDITABLE. In the future,
&gt;     // once it is implemented, ATK_STATE_READ_ONLY should also be checked:
&gt;     // https://bugzilla.gnome.org/show_bug.cgi?id=665598
&gt; 
&gt;     return checkElementState(m_element, ATK_STATE_EDITABLE);
&gt; }

Does this get set from calling AccessibilityObject::isAttributeSettable()? Ideally, you&apos;d like your implementation to match that. I&apos;m not sure editable and read-only are always the same thing, and I believe there&apos;s also other non settable cases that don&apos;t pertain to aria-read only or text fields...

&gt; 
&gt; That gets the test assertions in aria-readonly.html passing with one exception: 
&gt; 
&gt;  PASS ariaTextBoxIsWritable is true
&gt;  PASS ariaReadOnlyAriaTextBoxIsWritable is false
&gt; -PASS ariaReadOnlyTextFieldIsWritable is false
&gt; +FAIL ariaReadOnlyTextFieldIsWritable should be false. Was true.
&gt;  PASS ariaNonReadOnlyTextFieldIsWritable is true
&gt;  PASS htmlReadOnlyTextFieldIsWritable is false
&gt;  PASS textFieldIsWritable is true
&gt; 
&gt; In the case of the failure, ariaReadOnlyTextFieldIsWritable actually IS writable. A user can type in it. Thus it should not be false IMHO.
&gt; 
&gt; Making this test pass as written by modifying the ATK port would have a side effect of making the Orca screen reader telling the user a non-readonly widget is readonly. I consider that unacceptable. Therefore, what should we do?
&gt; 
&gt; Should the element respect the ARIA value and make the widget truly readonly? Should the Accessibility code ignore ARIA attributes that do not jive with reality? Should we move the test to the Mac port (where it fully passes at the moment) and provide a new test which lacks the problematic item? Or something else?
&gt; 

I am not sure what is the right behavior. I&apos;ll get James craig from ARIA W3C group to check

&gt; Thoughts?
&gt; 
&gt; [1] http://www.w3.org/TR/wai-aria/states_and_properties#aria-readonly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787417</commentid>
    <comment_count>4</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-10 09:46:30 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; Does this get set from calling AccessibilityObject::isAttributeSettable()? 

ATK_STATE_EDITABLE is set here:
From http://trac.webkit.org/browser/trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp#L632:

  // FIXME: isReadOnly does not seem to do the right thing for
  // controls, so check explicitly for them. In addition, because
  // isReadOnly is false for listBoxOptions, we need to add one
  // more check so that we do not present them as being &quot;editable&quot;.
  if ((!coreObject-&gt;isReadOnly()
      || (coreObject-&gt;isControl() &amp;&amp; coreObject-&gt;canSetValueAttribute()))
      &amp;&amp; !isListBoxOption)
      atk_state_set_add_state(stateSet, ATK_STATE_EDITABLE);

&gt; Ideally, you&apos;d like your implementation to match that. I&apos;m not sure editable and read-only are always the same thing,

Agreed. We have a bug to add a new state in ATK specific to readonly:
https://bugzilla.gnome.org/show_bug.cgi?id=665598

&gt; I am not sure what is the right behavior. I&apos;ll get James craig from ARIA W3C group to check

Awesome. Thank you!! I also pinged Joseph Scheuhammer (GNOME Accessibility Team guy who I believe also participates in that group). I will feel better having an official verdict. (Though I am still highly uncomfortable having a screen reader report something as read-only/non-editable when in reality it is editable.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789622</commentid>
    <comment_count>5</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2012-12-12 09:18:30 -0800</bug_when>
    <thetext>If @aria-readonly is set to false, the accessibility API should report that the item is readonly, even in the case where the item is actually writeable. ARIA allows the author to set specific overrides, even if they are wrong or conflict with native behavior. In this case, the author could script the &quot;readonly&quot; behavior on change or on keypress, so the rendering engine needs to report what the author explicitly added, whether or not the rendering engine thinks it conflicts with native functionality.

Minor nit with the test case: id=&quot;htmlReadOnlyTextArea&quot; appears twice in the document, so it&apos;s not validating or showing up in the inspector correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790526</commentid>
    <comment_count>6</comment_count>
      <attachid>179254</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-13 05:31:41 -0800</bug_when>
    <thetext>Created attachment 179254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790768</commentid>
    <comment_count>7</comment_count>
      <attachid>179254</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-13 11:08:26 -0800</bug_when>
    <thetext>Comment on attachment 179254
Patch

Chris, please review (EWS is all green).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790975</commentid>
    <comment_count>8</comment_count>
      <attachid>179254</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-13 14:56:58 -0800</bug_when>
    <thetext>Comment on attachment 179254
Patch

There&apos;s probably already code in AXrender object to check aria read only. Can that be factored to use the Node object implementation ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791341</commentid>
    <comment_count>9</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-13 22:39:15 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 179254 [details])
&gt; There&apos;s probably already code in AXrender object to check aria read only. Can that be factored to use the Node object implementation ?

It already uses it, with the exception of the WebArea:

==================================================
bool AccessibilityRenderObject::isReadOnly() const
{
    ASSERT(m_renderer);
    
    if (isWebArea()) {
        Document* document = m_renderer-&gt;document();
        if (!document)
            return true;
        
        HTMLElement* body = document-&gt;body();
        if (body &amp;&amp; body-&gt;rendererIsEditable())
            return false;

        return !document-&gt;rendererIsEditable();
    }

    return AccessibilityNodeObject::isReadOnly();
}
==================================================

Are you suggesting we move the handling of the WebArea to the node object code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791397</commentid>
    <comment_count>10</comment_count>
      <attachid>179254</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-14 00:11:13 -0800</bug_when>
    <thetext>Comment on attachment 179254
Patch

ok, looked at the code.

i see that in AccessibilityRenderObject::canSetValueAttribute we&apos;re already checking for aria_readonly == true, which looks like it should be the entry point for this attribute. I also see that we want to check aria_readonly before everything else, so it&apos;s a little tricky to only put it in AXNodeObject, and obviously we shouldn&apos;t duplicate that check.

So, I think maybe we should remove the isReadOnly() method and just use canSetAttributeValue() and move all that logic (and the method) into AXNodeObject. 
I don&apos;t see anything that absolutely requires being inside of AXRenderObject.

That way we can implement the aria_readonly stuff first.

we also need a new test (or modify aria-readonly.html) to test the aria-readonly=false case which will (after your patch) override native semantics

thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791998</commentid>
    <comment_count>11</comment_count>
      <attachid>179566</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-14 17:49:49 -0800</bug_when>
    <thetext>Created attachment 179566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792000</commentid>
    <comment_count>12</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-14 17:52:51 -0800</bug_when>
    <thetext>(In reply to comment #10)

&gt; So, I think maybe we should remove the isReadOnly() method and just use canSetAttributeValue() and move all that logic (and the method) into AXNodeObject. 

Done. Thanks for the tip!

&gt; I don&apos;t see anything that absolutely requires being inside of AXRenderObject.

Here&apos;s to hoping the EWS doesn&apos;t either. ;)

&gt; we also need a new test (or modify aria-readonly.html) to test the aria-readonly=false case which will (after your patch) override native semantics

Actually, that test already has two instances of aria-readonly=false.
 
&gt; thanks!

And to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792008</commentid>
    <comment_count>13</comment_count>
      <attachid>179566</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-14 18:05:40 -0800</bug_when>
    <thetext>Comment on attachment 179566
Patch

Attachment 179566 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15321843</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792009</commentid>
    <comment_count>14</comment_count>
      <attachid>179566</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 18:07:42 -0800</bug_when>
    <thetext>Comment on attachment 179566
Patch

Attachment 179566 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15320811</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792025</commentid>
    <comment_count>15</comment_count>
      <attachid>179566</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-14 18:58:11 -0800</bug_when>
    <thetext>Comment on attachment 179566
Patch

Attachment 179566 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15311904</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792074</commentid>
    <comment_count>16</comment_count>
      <attachid>179583</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-15 02:30:30 -0800</bug_when>
    <thetext>Created attachment 179583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792075</commentid>
    <comment_count>17</comment_count>
      <attachid>179583</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-15 02:41:04 -0800</bug_when>
    <thetext>Comment on attachment 179583
Patch

Attachment 179583 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15323991</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792077</commentid>
    <comment_count>18</comment_count>
      <attachid>179584</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-15 02:56:53 -0800</bug_when>
    <thetext>Created attachment 179584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792083</commentid>
    <comment_count>19</comment_count>
      <attachid>179586</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-15 04:37:41 -0800</bug_when>
    <thetext>Created attachment 179586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792091</commentid>
    <comment_count>20</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-12-15 05:34:56 -0800</bug_when>
    <thetext>Dominic: I keep managing to break your port with my patch. :-/ And I don&apos;t (yet) have a chromium build environment for webkit. Could you please take a look to see where I&apos;m going wrong? (Thanks in advance!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792129</commentid>
    <comment_count>21</comment_count>
      <attachid>179586</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-15 08:31:48 -0800</bug_when>
    <thetext>Comment on attachment 179586
Patch

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

New failing tests:
platform/chromium/accessibility/readonly.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941762</commentid>
    <comment_count>22</comment_count>
      <attachid>179586</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-21 02:01:54 -0700</bug_when>
    <thetext>Comment on attachment 179586
Patch

Clearing r? so it does not appear in webkit.org/pending-review.

Joanie, do you want to give it another try?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191223</commentid>
    <comment_count>23</comment_count>
      <attachid>278413</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-09 11:21:12 -0700</bug_when>
    <thetext>Created attachment 278413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191306</commentid>
    <comment_count>24</comment_count>
      <attachid>278437</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-09 14:04:54 -0700</bug_when>
    <thetext>Created attachment 278437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191547</commentid>
    <comment_count>25</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-10 09:46:55 -0700</bug_when>
    <thetext>Chris: Even though the summary is prefixed with &quot;[GTK]&quot;, the bulk of the changes are in WebCore Accessibility. So when you have some spare cycles, a review would be greatly appreciated. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191663</commentid>
    <comment_count>26</comment_count>
      <attachid>278437</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-10 14:38:21 -0700</bug_when>
    <thetext>Comment on attachment 278437
Patch

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

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp:858
&gt; +        &amp;&amp; (coreObject-&gt;supportsARIAReadOnly() || coreObject-&gt;hasAttribute(HTMLNames::aria_readonlyAttr))))

Why do you need two checks here supportsARIAReadOnly/hasAttribute
It would be nice to keep HTML specific stuff out of platform wrappers, so that you just interface with the accessibility objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191714</commentid>
    <comment_count>27</comment_count>
      <attachid>278437</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-10 16:16:31 -0700</bug_when>
    <thetext>Comment on attachment 278437
Patch

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

&gt;&gt; Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp:858
&gt;&gt; +        &amp;&amp; (coreObject-&gt;supportsARIAReadOnly() || coreObject-&gt;hasAttribute(HTMLNames::aria_readonlyAttr))))
&gt; 
&gt; Why do you need two checks here supportsARIAReadOnly/hasAttribute
&gt; It would be nice to keep HTML specific stuff out of platform wrappers, so that you just interface with the accessibility objects

Aha. That is a leftover. The reason why it was there is because the aria-readonly.html test has a number of elements whose explicit or implicit role value is not one which supports aria-readonly according to the spec. I can remove that additional check because what I wound up doing is always exposing author-provided values as an object attribute. That way ATs (and AccessibilityUIElement) can still access the value independent from the states.

I&apos;ll do a new patch because in addition to the above, I just discovered that ensuring your platform&apos;s toggleable widgets were not value-settable made my platform&apos;s toggleable widgets have STATE_READ_ONLY. Oops.

Thanks for the review!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191825</commentid>
    <comment_count>28</comment_count>
      <attachid>278581</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-10 21:48:17 -0700</bug_when>
    <thetext>Created attachment 278581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191871</commentid>
    <comment_count>29</comment_count>
      <attachid>278581</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 00:13:43 -0700</bug_when>
    <thetext>Comment on attachment 278581
Patch

Clearing flags on attachment: 278581

Committed r200677: &lt;http://trac.webkit.org/changeset/200677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191872</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 00:13:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192046</commentid>
    <comment_count>31</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-05-11 13:01:02 -0700</bug_when>
    <thetext>This caused inspector/dom/getAccessibilityPropertiesForNode.html to fail on Mac:
&lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/5929&gt;

It didn&apos;t look like a regression, so I rebaselined it in &lt;https://trac.webkit.org/r200698&gt;

If this was incorrect, please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192078</commentid>
    <comment_count>32</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-11 13:53:57 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; This caused inspector/dom/getAccessibilityPropertiesForNode.html to fail on
&gt; Mac:
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/5929&gt;
&gt; 
&gt; It didn&apos;t look like a regression, so I rebaselined it in
&gt; &lt;https://trac.webkit.org/r200698&gt;
&gt; 
&gt; If this was incorrect, please let me know.

Apologies for missing that!

Personally, I don&apos;t think it is a regression -- assuming that the purpose of that test is to output the ARIA properties that are present on the elements. That element has aria-disabled (which is being output), but lacks aria-readonly.

That said, if Chris thinks it is a regression and he comments here to that effect, I&apos;ll do a new patch to address that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192103</commentid>
    <comment_count>33</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-11 14:52:51 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; This caused inspector/dom/getAccessibilityPropertiesForNode.html to fail on
&gt; &gt; Mac:
&gt; &gt; &lt;https://build.webkit.org/builders/
&gt; &gt; Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/5929&gt;
&gt; &gt; 
&gt; &gt; It didn&apos;t look like a regression, so I rebaselined it in
&gt; &gt; &lt;https://trac.webkit.org/r200698&gt;
&gt; &gt; 
&gt; &gt; If this was incorrect, please let me know.
&gt; 
&gt; Apologies for missing that!
&gt; 
&gt; Personally, I don&apos;t think it is a regression -- assuming that the purpose of
&gt; that test is to output the ARIA properties that are present on the elements.
&gt; That element has aria-disabled (which is being output), but lacks
&gt; aria-readonly.
&gt; 
&gt; That said, if Chris thinks it is a regression and he comments here to that
&gt; effect, I&apos;ll do a new patch to address that.

If anything it seems like an existing bug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>178569</attachid>
            <date>2012-12-10 09:13:53 -0800</date>
            <delta_ts>2012-12-10 09:13:53 -0800</delta_ts>
            <desc>test case for discussion</desc>
            <filename>readonly.html</filename>
            <type>text/html</type>
            <size>491</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8cD5UaGVzZSBlbGVtZW50cyBoYXZlIHRoZSAncmVhZG9ubHknIGF0dHJp
YnV0ZSBzZXQ6PC9wPgo8aW5wdXQgdHlwZT0idGV4dCIgcmVhZG9ubHk9InJlYWRvbmx5IiBpZD0i
aHRtbFJlYWRPbmx5VGV4dEZpZWxkIiBzaXplPTIwIC8+PGJyIC8+Cjx0ZXh0YXJlYSByb3dzPSIx
IiBjb2xzPSIyMCIgcmVhZG9ubHk9InJlYWRvbmx5IiBpZD0iaHRtbFJlYWRPbmx5VGV4dEFyZWEi
PjwvdGV4dGFyZWE+Cgo8cD5UaGVzZSBlbGVtZW50cyBoYXZlIHRoZSAnYXJpYS1yZWFkb25seScg
cHJvcGVydHkgc2V0OjwvcD4KPGlucHV0IHR5cGU9InRleHQiIGFyaWEtcmVhZG9ubHk9InRydWUi
IGlkPSJhcmlhUmVhZE9ubHlUZXh0RmllbGQiIHNpemU9MjAgLz48YnIgLz4KPHRleHRhcmVhIHJv
d3M9IjEiIGNvbHM9IjIwIiBhcmlhLXJlYWRvbmx5PSJ0cnVlIiBpZD0iaHRtbFJlYWRPbmx5VGV4
dEFyZWEiPjwvdGV4dGFyZWE+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179254</attachid>
            <date>2012-12-13 05:31:41 -0800</date>
            <delta_ts>2012-12-14 17:49:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20121213142900.patch</filename>
            <type>text/plain</type>
            <size>5670</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0YWJlYThhNWVlN2Jm
MzIxMzU5ZDczMmZkNTA5YjNjNTU4NGRjNC4uMDRmOGM3ZjFkY2VkYWI4ODk0ZTY3YjQxNTA5OTc5
NWNiOTRjNTY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTEzICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoKQorICAgICAgICB3YXMgbm90
IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVh
ZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVh
ZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisgICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2Yg
YXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB0aGUgc2tpcHBlZCB0ZXN0IGlzIGJlaW5nIHVuc2tpcHBl
ZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHkp
OiBSZXBvcnQgdGhlIHZhbHVlIG9mCisgICAgICAgIGFyaWEtcmVhZG9ubHkgd2hlbiB0aGF0IHBy
b3BlcnR5IGhhcyBiZWVuIHNldC4KKwogMjAxMi0xMi0xMiAgQWxleGVpIEZpbGlwcG92ICA8YWxw
aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIG1lbW9yeSB1c2Vk
IGJ5IG1lbW9yeSBhbGxvY2F0b3IgaXRzZWxmIHRvIE5NSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAw
ZTVjOTc4NmI0YjA3MjRiNWMxMjEwOThlOTM3MTBiNDVmNWQ5OWI0Li45NDEwOTM5ZDlkYWQwNzhi
ZTc4MWVjZDFkOTk0OGY1ZWJiNjNmMzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNjY5LDYgKzY2
OSwxMyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gSWYgdGhlIHBh
Z2UgYXV0aG9yIGhhcyBzZXQgYXJpYS1yZWFkb25seSwgdGhlIFczQyBleHBlY3RzIHVzIHRvIGV4
cG9zZSBpdC4KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFSZWFkT25seSA9IGdldEF0dHJp
YnV0ZShhcmlhX3JlYWRvbmx5QXR0cik7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGFyaWFS
ZWFkT25seSwgInRydWUiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKGFyaWFSZWFkT25seSwgImZhbHNlIikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKSkKICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKS0+cmVhZE9ubHkoKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRmY2Rk
NzIxZWNhYjc2NjM5OWJkZmNkMGY4MWM3MjlkMzUzNTQ5YjcuLjdjMGZjMzQzM2M1ZjUxOTM0MGVm
MzFiZjJhM2IzNzQwMGJlZDQ0ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMi0xMyAgSm9hbm1hcmllIERp
Z2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gYWNjZXNzaWJpbGl0eS9h
cmlhLXJlYWRvbmx5Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBmYWlsZWQgYmVjYXVzZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKCkKKyAgICAgICAgd2FzIG5vdCBpbXBsZW1l
bnRlZC4gSW4gYWRkaXRpb24sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCkK
KyAgICAgICAgd2FzIGxvb2tpbmcgdG8gdGhlIHdpZGdldCB0byBnZXQgaXRzIHJlYWQtb25seSBz
dGF0ZSB3aGVuIGl0IHNob3VsZAorICAgICAgICByZXBvcnQgdGhlIHZhbHVlIG9mIGFyaWEtcmVh
ZG9ubHkgd2hlbiB0aGF0IHByb3BlcnR5IGhhcyBiZWVuIHNldC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcDoKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUpOiBJbXBsZW1lbnRlZAor
CiAyMDEyLTEyLTEyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAg
ICAgICAgW0dUS10gUmVtb3ZlIHRoZSBsYXN0IG9mIHVubmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24g
b3B0aW9ucyBpbiBjb25maWd1cmUuYWMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcAppbmRleCA1YzE4ODMyZmNmNzEwMTVl
OGIwYTJkNGM1ZGUxZjU2OGQ0NTMwMzcyLi4xYzY3MjBjMmM2YzhjODU1YzQ0MDA3M2E5YjYxNzY1
ZjkyMWExMTllIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCkBAIC04MzYsOCArODM2LDEyIEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSkKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSkKIHsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIC8vIEluIEF0aywgdGhpbmdzIGFyZSBnZW5lcmFsbHkgc2V0dGFibGUg
aWYgdGhleSBhcmUgbm90IHJlYWQtb25seS4gQXQgdGhlCisgICAgLy8gbW9tZW50LCB3ZSBpZGVu
dGlmeSByZWFkIG9ubHkgdmlhIEFUS19TVEFURV9FRElUQUJMRS4gSW4gdGhlIGZ1dHVyZSwKKyAg
ICAvLyBvbmNlIGl0IGlzIGltcGxlbWVudGVkLCBBVEtfU1RBVEVfUkVBRF9PTkxZIHNob3VsZCBh
bHNvIGJlIGNoZWNrZWQ6CisgICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19i
dWcuY2dpP2lkPTY2NTU5OAorCisgICAgcmV0dXJuIGNoZWNrRWxlbWVudFN0YXRlKG1fZWxlbWVu
dCwgQVRLX1NUQVRFX0VESVRBQkxFKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0F0dHJpYnV0ZVN1cHBvcnRlZChKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDNl
ZThjYTc0OTMxOTUzNGZlZGU5OWE3Mjk1YjkyNDk2NDk3MDRjNy4uYzAyYWMxNmIwNmVhZTI4MDM1
NTFiMDUwMWNjYTUwYzYyOWZiOGMzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEyLTEz
ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBh
Y2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcHBlZCB0aGUgcHJldmlvdXNs
eS1mYWlsaW5nIHRlc3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czogVW5za2lwcGVkIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sCisKIDIwMTItMTIt
MTIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gTWFya2VkIGluc3BlY3Rvci1wcm90b2NvbC90YWtlLWhlYXAtc25hcHNob3QuaHRt
bCBhcyBDUkFTSCBvbmx5IGluIERlYnVnIG1vZGUsIGl0IHBhc3NlcyBpbiBSZWxlYXNlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYmI0Yzg5OGRjYjUz
YTg5YzM3ZmVlMWZlNTk4MGU5OGRhNzhkZDM2Li45ZDNkMTZjY2ZhY2ExNGU4OTQxOGY0NDJmY2I2
YjQwNjM0M2VlZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNzU4LDcgKzc1OCw2IEBAIHdlYmtpdC5vcmcvYi85ODM1MiBhY2Nlc3NpYmlsaXR5L2Fy
aWEtaGlkZGVuLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM1MyBhY2Nlc3NpYmls
aXR5L2FyaWEtaGlkZGVuLXdpdGgtZWxlbWVudHMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzk4MzU0IGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTUgYWNjZXNzaWJpbGl0eS9hcmlhLWxp
bmstc3VwcG9ydHMtcHJlc3MuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk4MzU3IGFj
Y2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
OTgzNTggYWNjZXNzaWJpbGl0eS9hcmlhLXNjcm9sbGJhci1yb2xlLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi85ODM1OSBhY2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM2MCBhY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1p
bWFnZS1tYXBzLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179566</attachid>
            <date>2012-12-14 17:49:49 -0800</date>
            <delta_ts>2012-12-15 02:30:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20121215024708.patch</filename>
            <type>text/plain</type>
            <size>16451</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uOWM4N2I4NDA3YjFhM2Y2ZDQwNGU2YjQ1MmJmODdi
Y2ZkNDUwMmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTE0ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoKQorICAgICAgICB3YXMgbm90
IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVh
ZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVh
ZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisgICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2Yg
YXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAgICBJ
biBvcmRlciB0byBlbGltaW5hdGUgZHVwbGljYXRlIGNoZWNrcywgdGhlIGRlY2lzaW9uIHdhcyBt
YWRlIHRvIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljCisgICAgICAgIGludG8gQVhOb2Rl
T2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIGV4
aXN0aW5nIHRlc3QKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNh
blNldFZhbHVlQXR0cmlidXRlKTogQWRkZWQKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmVkIGlz
UmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KTogQWRkZWQgY2FuU2V0VmFs
dWVBdHRyaWJ1dGUoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ZpbGVV
cGxvYWRCdXR0b24pOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVh
ZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNsaWNrUG9pbnQpOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkg
aW5zdGVhZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qp
OiBSZW1vdmUgaXNSZWFkT25seSgpCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0Rm9y
QWNjZXNzaWJpbGl0eU9iamVjdCk6IENhbGwgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKQorICAgICAg
ICBpbnN0ZWFkIG9mIGlzUmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHNldEF0a1N0YXRlU2V0RnJv
bUNvcmVPYmplY3QpOiBDYWxsIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVhZCBvZgorICAg
ICAgICBpc1JlYWRPbmx5KCkKKyAgICAgICAgKGdldEludGVyZmFjZU1hc2tGcm9tT2JqZWN0KTog
Q2FsbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGluc3RlYWQgb2YKKyAgICAgICAgaXNSZWFkT25s
eSgpCisKIDIwMTItMTItMTQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NjMzIGFuZCByMTI5NzU3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCAwZTVjOTc4NmI0YjA3MjRiNWMxMjEwOThlOTM3MTBiNDVmNWQ5
OWI0Li5hZTlmNTAyYjAwMWM3NWFiNTM5Yjc3NTNkMGU0NDk3ZGNkYjc3ODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcApAQCAtNjYzLDI0ICs2NjMsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUoc2VsZWN0VGFnKSAmJiB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSktPm11
bHRpcGxlKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHko
KSBjb25zdAotewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRleHRh
cmVhVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
Pihub2RlKS0+cmVhZE9ubHkoKTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlucHV0LT5yZWFkT25seSgpOwotICAgIH0KLQotICAgIHJldHVy
biAhbm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci19Ci0KIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUmVxdWlyZWQoKSBjb25zdAogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShnZXRBdHRyaWJ1dGUoYXJpYV9yZXF1aXJlZEF0dHIpLCAidHJ1ZSIpKQpAQCAtMTY3Nyw2ICsx
NjU5LDQ4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldEZvY3VzQXR0cmli
dXRlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZS0+c3VwcG9ydHNGb2N1cygpOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUo
YXJpYV9yZWFkb25seUF0dHIpLCAidHJ1ZSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwg
ImZhbHNlIikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodGV4dGFyZWFUYWcpKQorICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PEhUTUxUZXh0QXJl
YUVsZW1lbnQqPihub2RlKS0+cmVhZE9ubHkoKTsKKworICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgaWYgKGlucHV0LT5pc1RleHRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuICFpbnB1dC0+cmVhZE9ubHkoKTsKKyAgICB9CisK
KyAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVyKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKGlzVGV4dENvbnRyb2woKSAmJiAhaXNOYXRpdmVUZXh0Q29u
dHJvbCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1dlYkFyZWEoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgICAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOworICAgICAgICBpZiAoYm9k
eSAmJiBib2R5LT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CisgICAg
fQorCisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVySXNFZGl0YWJsZSgpOworfQorCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRy
aWJ1dGUoKSBjb25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYVJvbGUgPSBnZXRB
dHRyaWJ1dGUocm9sZUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IGNkMGIzZDgwMmM0MzMxMDZhMDhh
Yjc0YzgxYmU3ZGMyY2VmNDhkNzkuLjZiZDJhYTkzOTYwODExZjllNDVkOGYxYWY0NzNiYmY3MWQ0
Y2Q5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTk3LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmRldGVybWlu
YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc3NlZCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUmVxdWly
ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Tm9kZShOb2RlKik7CkBAIC0xMDUsNiArMTA0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBoZWFk
aW5nTGV2ZWwoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24o
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMmI5Mzg4MzA0ODQzNTMyZTg4ZjQ2YjFmYzRiYjI4MDBiYTI5ZWVj
NC4uNzY0NWNmMDVjZWQxMDM4NjY4NDkyNWQ0ZDA3ZmU3NmQyMzY2MWVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQz
Nyw3ICs0MzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTXVsdGlTZWxlY3RhYmxl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGFmNTY4NmFjZTBmNjAzNGMz
NjkyODNjMTE3ZWZmYTk4MjE0MTg5MDEuLjdkNTE2OWM2MjEwY2JlZDgxNmEwYWU3YTFkNmEwNjAy
MWM5ZWFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNTE5LDI1ICs1MTksNiBAQCBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiAg
ICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9yZW5kZXJlcik7Ci0g
ICAgCi0gICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fcmVuZGVyZXItPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIEhUTUxFbGVtZW50KiBib2R5ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKLSAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuICFk
b2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCk7Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25zdAogewpAQCAtODIyLDcgKzgwMyw3IEBA
IEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQoKQogICAgICAg
ICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xpY2tQb2ludCgpOwogCiAgICAgLy8gdXNlIHRoZSBk
ZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlzIGlzIGFuIGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3
aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0aW9uIGJvdW5kcy4KLSAgICBpZiAoIWlzV2ViQXJl
YSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIWlzV2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQ
b2ludCgpOwogICAgIAogICAgIFZpc2libGVTZWxlY3Rpb24gdmlzU2VsZWN0aW9uID0gc2VsZWN0
aW9uKCk7CkBAIC0yNjE5LDIyICsyNjAwLDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlh
RXhwYW5kZWQsICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwgInRydWUiKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlz
TmF0aXZlVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkg
bm9kZSBjb3VsZCBiZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJl
bGllZCB1cG9uCi0gICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4K
LSAgICByZXR1cm4gIWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNUZXh0Q29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA5N2JmOGEzN2ZkNjM1NTQ1N2Y0
M2JhNGE2YWYwYjA0MzIzN2ZmZjJhLi5kYmNiYjEzYmUwZThkNWRmZDc4ZDM5ODZiNjZkNDNhNWNl
Yjk3MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzRm9jdXNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRl
ZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVW52aXNp
dGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OyAgICAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzTGlua2VkKCkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5kZXJsaW5lKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2Vz
c2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwCmluZGV4IGI3MDIyNDcxZjVhZTc0MDJmOTYzMDNiYjgyMzlhYzk3MmZhY2MzODUu
LmYzNGY4OGU4YzRhNjMyYTdlYzZhZGYxZWQ3NTU0Yjg1OWI5MDViNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgQXRrQXR0
cmlidXRlU2V0KiBnZXRBdHRyaWJ1dGVTZXRGb3JBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IEFj
Y2Vzc2liaWxpdAogCiAgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBh
dGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9JTlZJU0lCTEUpLCAoc3R5
bGUtPnZpc2liaWxpdHkoKSA9PSBISURERU4pID8gInRydWUiIDogImZhbHNlIik7CiAKLSAgICBy
ZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9n
ZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwgb2JqZWN0LT5pc1JlYWRPbmx5KCkgPyAi
ZmFsc2UiIDogInRydWUiKTsKKyAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1
bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwg
b2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNlIik7CiAKICAg
ICBTdHJpbmcgbGFuZ3VhZ2UgPSBvYmplY3QtPmxhbmd1YWdlKCk7CiAgICAgaWYgKCFsYW5ndWFn
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggZDI5ZjE5MmMx
NWEwZjY4MjU5N2IwYzljMTNmMzk1Njc5OGY4NWMwNC4uODZlMjY0ODU3NTAwODgyNDg1ZGViZDVi
MDgxMDNjOGQzZTJkYzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNjM2
LDEyICs2MzYsNyBAQCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2JqZWN0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogICAgIGlmIChjb3JlT2JqZWN0
LT5pc0NoZWNrZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQs
IEFUS19TVEFURV9DSEVDS0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRvZXMgbm90
IHNlZW0gdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBzbyBjaGVj
ayBleHBsaWNpdGx5IGZvciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8vIGlzUmVh
ZE9ubHkgaXMgZmFsc2UgZm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBvbmUKLSAg
ICAvLyBtb3JlIGNoZWNrIHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBiZWluZyAi
ZWRpdGFibGUiLgotICAgIGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAgICAgICB8
fCAoY29yZU9iamVjdC0+aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRy
aWJ1dGUoKSkpCisgICAgaWYgKGNvcmVPYmplY3QtPmlzQ29udHJvbCgpICYmIGNvcmVPYmplY3Qt
PmNhblNldFZhbHVlQXR0cmlidXRlKCkKICAgICAgICAgJiYgIWlzTGlzdEJveE9wdGlvbikKICAg
ICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9FRElUQUJM
RSk7CiAKQEAgLTkxMCw3ICs5MDUsNyBAQCBzdGF0aWMgZ3VpbnQxNiBnZXRJbnRlcmZhY2VNYXNr
RnJvbU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogICAgIGVsc2Ugewog
ICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKSB7CiAgICAgICAgICAgICBp
bnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJX1RFWFQ7Ci0gICAgICAgICAgICBpZiAoIWNvcmVPYmpl
Y3QtPmlzUmVhZE9ubHkoKSkKKyAgICAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlf
RURJVEFCTEVfVEVYVDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyb2xlICE9
IFRhYmxlUm9sZSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDMyMzQ5Y2QyN2VjMTMxMzI5ZDk2NDJkN2RkMGFhYjVlNGE4N2IxZGMuLjAwYjI4
MDc5MjJlNzlmNzdmYjdhMjNmMTIwZGM1ZmVkOTZjMjVjMTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMi0x
NCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
YWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRvbmx5Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBmYWlsZWQgYmVjYXVz
ZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKCkKKyAgICAgICAg
d2FzIG5vdCBpbXBsZW1lbnRlZC4gSW4gYWRkaXRpb24sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc1JlYWRPbmx5KCkKKyAgICAgICAgd2FzIGxvb2tpbmcgdG8gdGhlIHdpZGdldCB0byBnZXQg
aXRzIHJlYWQtb25seSBzdGF0ZSB3aGVuIGl0IHNob3VsZAorICAgICAgICByZXBvcnQgdGhlIHZh
bHVlIG9mIGFyaWEtcmVhZG9ubHkgd2hlbiB0aGF0IHByb3BlcnR5IGhhcyBiZWVuIHNldC4KKyAg
ICAgICAgSW4gb3JkZXIgdG8gZWxpbWluYXRlIGR1cGxpY2F0ZSBjaGVja3MsIHRoZSBkZWNpc2lv
biB3YXMgbWFkZSB0byByZW1vdmUKKyAgICAgICAgaXNSZWFkT25seSgpIGFuZCBqdXN0IHVzZSBj
YW5TZXRBdHRyaWJ1dGVWYWx1ZSgpLCBtb3ZpbmcgYWxsIHRoZSBsb2dpYworICAgICAgICBpbnRv
IEFYTm9kZU9iamVjdC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50R3RrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
QXR0cmlidXRlU2V0dGFibGUpOiBJbXBsZW1lbnRlZAorCiAyMDEyLTEyLTEzICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgLS1wcm9maWxlcj1QUk9GSUxFUiBv
cHRpb24gdG8gcnVuLXBlcmYtdGVzdHMgdG8gYWxsb3cgc3BlY2lmeWluZyB3aGljaCBwcm9maWxl
ciB0byB1c2Ugb24gcGxhdGZvcm1zIHdpdGggbWFueQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCmluZGV4IDVjMTg4MzJm
Y2Y3MTAxNWU4YjBhMmQ0YzVkZTFmNTY4ZDQ1MzAzNzIuLjFjNjcyMGMyYzZjOGM4NTVjNDQwMDcz
YTliNjE3NjVmOTIxYTExOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHAKQEAgLTgzNiw4ICs4MzYsMTIgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYg
YXR0cmlidXRlKQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0
dGFibGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSW4gQXRrLCB0aGluZ3MgYXJlIGdlbmVyYWxseSBz
ZXR0YWJsZSBpZiB0aGV5IGFyZSBub3QgcmVhZC1vbmx5LiBBdCB0aGUKKyAgICAvLyBtb21lbnQs
IHdlIGlkZW50aWZ5IHJlYWQgb25seSB2aWEgQVRLX1NUQVRFX0VESVRBQkxFLiBJbiB0aGUgZnV0
dXJlLAorICAgIC8vIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQsIEFUS19TVEFURV9SRUFEX09OTFkg
c2hvdWxkIGFsc28gYmUgY2hlY2tlZDoKKyAgICAvLyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjY1NTk4CisKKyAgICByZXR1cm4gY2hlY2tFbGVtZW50U3RhdGUo
bV9lbGVtZW50LCBBVEtfU1RBVEVfRURJVEFCTEUpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBkN2FjM2VkMDA0NTUyNWQ4ODUzNWU1MTI2YzJlNmMxNTliNDQ4Mzc0Li41NzczMWQ4YzU1
MDhiZDE3NWZiNTg1YzQ0ZGFlNmY4YzcwOWUxMzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMTItMTQgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHVEtdIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZhaWxpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzU3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgZmFpbGVk
IGJlY2F1c2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZSgpCisg
ICAgICAgIHdhcyBub3QgaW1wbGVtZW50ZWQuIEluIGFkZGl0aW9uLCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNSZWFkT25seSgpCisgICAgICAgIHdhcyBsb29raW5nIHRvIHRoZSB3aWRnZXQg
dG8gZ2V0IGl0cyByZWFkLW9ubHkgc3RhdGUgd2hlbiBpdCBzaG91bGQKKyAgICAgICAgcmVwb3J0
IHRoZSB2YWx1ZSBvZiBhcmlhLXJlYWRvbmx5IHdoZW4gdGhhdCBwcm9wZXJ0eSBoYXMgYmVlbiBz
ZXQuCisgICAgICAgIEluIG9yZGVyIHRvIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY2hlY2tzLCB0aGUg
ZGVjaXNpb24gd2FzIG1hZGUgdG8gcmVtb3ZlCisgICAgICAgIGlzUmVhZE9ubHkoKSBhbmQganVz
dCB1c2UgY2FuU2V0QXR0cmlidXRlVmFsdWUoKSwgbW92aW5nIGFsbCB0aGUgbG9naWMKKyAgICAg
ICAgaW50byBBWE5vZGVPYmplY3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczogVW5za2lwcGVkIHByZXZpb3VzbHktc2tpcHBlZCB0ZXN0LgorCiAyMDEyLTEyLTE0
ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW0gZ2FyZGVuaW5nXSBTZXQgZXhwZWN0YXRpb25zIGZvciBwbGF0Zm9ybS9jaHJvbWl1
bS92aXJ0dWFsL2dwdS9jb21wb3NpdGVkc2Nyb2xsaW5nL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLWRy
YWctdGh1bWItd2l0aC1sYXJnZS1jb250ZW50LWV4cGVjdGVkLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDA2YjVhZWRjNmYzOWExNjYzYjI0MDRm
OTMxZmZhYjlmYjJlMmU4Ny4uMTU1MGVmYzFiNzRmZDc2MTk5ODgyM2I2ZGZlZTgzZDkwMjE3ZmNk
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc2Myw3
ICs3NjMsNiBAQCB3ZWJraXQub3JnL2IvNzk3NTcgZmFzdC9zZWxlY3RvcnMvc2VsZWN0aW9uLXdp
bmRvdy1pbmFjdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbAogd2Via2l0Lm9yZy9iLzk4MzUzIGFj
Y2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4td2l0aC1lbGVtZW50cy5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvOTgzNTQgYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVz
LWxhYmVsLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM1NSBhY2Nlc3NpYmlsaXR5
L2FyaWEtbGluay1zdXBwb3J0cy1wcmVzcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
OTgzNTcgYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRvbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi85ODM1OCBhY2Nlc3NpYmlsaXR5L2FyaWEtc2Nyb2xsYmFyLXJvbGUuaHRtbCBbIEZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzU5IGFjY2Vzc2liaWxpdHkvYXJpYS10ZXh0LXJvbGUu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzYwIGFjY2Vzc2liaWxpdHkvYXJpYS11
c2VkLW9uLWltYWdlLW1hcHMuaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179583</attachid>
            <date>2012-12-15 02:30:30 -0800</date>
            <delta_ts>2012-12-15 02:56:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20121215112748.patch</filename>
            <type>text/plain</type>
            <size>18459</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uOWM4N2I4NDA3YjFhM2Y2ZDQwNGU2YjQ1MmJmODdi
Y2ZkNDUwMmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTE0ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoKQorICAgICAgICB3YXMgbm90
IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVh
ZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVh
ZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisgICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2Yg
YXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAgICBJ
biBvcmRlciB0byBlbGltaW5hdGUgZHVwbGljYXRlIGNoZWNrcywgdGhlIGRlY2lzaW9uIHdhcyBt
YWRlIHRvIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljCisgICAgICAgIGludG8gQVhOb2Rl
T2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIGV4
aXN0aW5nIHRlc3QKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNh
blNldFZhbHVlQXR0cmlidXRlKTogQWRkZWQKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmVkIGlz
UmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KTogQWRkZWQgY2FuU2V0VmFs
dWVBdHRyaWJ1dGUoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ZpbGVV
cGxvYWRCdXR0b24pOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVh
ZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNsaWNrUG9pbnQpOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkg
aW5zdGVhZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qp
OiBSZW1vdmUgaXNSZWFkT25seSgpCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0Rm9y
QWNjZXNzaWJpbGl0eU9iamVjdCk6IENhbGwgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKQorICAgICAg
ICBpbnN0ZWFkIG9mIGlzUmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHNldEF0a1N0YXRlU2V0RnJv
bUNvcmVPYmplY3QpOiBDYWxsIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVhZCBvZgorICAg
ICAgICBpc1JlYWRPbmx5KCkKKyAgICAgICAgKGdldEludGVyZmFjZU1hc2tGcm9tT2JqZWN0KTog
Q2FsbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGluc3RlYWQgb2YKKyAgICAgICAgaXNSZWFkT25s
eSgpCisKIDIwMTItMTItMTQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NjMzIGFuZCByMTI5NzU3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCAwZTVjOTc4NmI0YjA3MjRiNWMxMjEwOThlOTM3MTBiNDVmNWQ5
OWI0Li5hZTlmNTAyYjAwMWM3NWFiNTM5Yjc3NTNkMGU0NDk3ZGNkYjc3ODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcApAQCAtNjYzLDI0ICs2NjMsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUoc2VsZWN0VGFnKSAmJiB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSktPm11
bHRpcGxlKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHko
KSBjb25zdAotewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRleHRh
cmVhVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
Pihub2RlKS0+cmVhZE9ubHkoKTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlucHV0LT5yZWFkT25seSgpOwotICAgIH0KLQotICAgIHJldHVy
biAhbm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci19Ci0KIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUmVxdWlyZWQoKSBjb25zdAogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShnZXRBdHRyaWJ1dGUoYXJpYV9yZXF1aXJlZEF0dHIpLCAidHJ1ZSIpKQpAQCAtMTY3Nyw2ICsx
NjU5LDQ4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldEZvY3VzQXR0cmli
dXRlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZS0+c3VwcG9ydHNGb2N1cygpOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUo
YXJpYV9yZWFkb25seUF0dHIpLCAidHJ1ZSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwg
ImZhbHNlIikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodGV4dGFyZWFUYWcpKQorICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PEhUTUxUZXh0QXJl
YUVsZW1lbnQqPihub2RlKS0+cmVhZE9ubHkoKTsKKworICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgaWYgKGlucHV0LT5pc1RleHRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuICFpbnB1dC0+cmVhZE9ubHkoKTsKKyAgICB9CisK
KyAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVyKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKGlzVGV4dENvbnRyb2woKSAmJiAhaXNOYXRpdmVUZXh0Q29u
dHJvbCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1dlYkFyZWEoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgICAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOworICAgICAgICBpZiAoYm9k
eSAmJiBib2R5LT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CisgICAg
fQorCisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVySXNFZGl0YWJsZSgpOworfQorCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRy
aWJ1dGUoKSBjb25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYVJvbGUgPSBnZXRB
dHRyaWJ1dGUocm9sZUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IGNkMGIzZDgwMmM0MzMxMDZhMDhh
Yjc0YzgxYmU3ZGMyY2VmNDhkNzkuLjZiZDJhYTkzOTYwODExZjllNDVkOGYxYWY0NzNiYmY3MWQ0
Y2Q5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTk3LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmRldGVybWlu
YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc3NlZCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUmVxdWly
ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Tm9kZShOb2RlKik7CkBAIC0xMDUsNiArMTA0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBoZWFk
aW5nTGV2ZWwoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24o
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMmI5Mzg4MzA0ODQzNTMyZTg4ZjQ2YjFmYzRiYjI4MDBiYTI5ZWVj
NC4uNzY0NWNmMDVjZWQxMDM4NjY4NDkyNWQ0ZDA3ZmU3NmQyMzY2MWVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQz
Nyw3ICs0MzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTXVsdGlTZWxlY3RhYmxl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGFmNTY4NmFjZTBmNjAzNGMz
NjkyODNjMTE3ZWZmYTk4MjE0MTg5MDEuLjdkNTE2OWM2MjEwY2JlZDgxNmEwYWU3YTFkNmEwNjAy
MWM5ZWFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNTE5LDI1ICs1MTksNiBAQCBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiAg
ICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9yZW5kZXJlcik7Ci0g
ICAgCi0gICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fcmVuZGVyZXItPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIEhUTUxFbGVtZW50KiBib2R5ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKLSAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuICFk
b2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCk7Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25zdAogewpAQCAtODIyLDcgKzgwMyw3IEBA
IEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQoKQogICAgICAg
ICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xpY2tQb2ludCgpOwogCiAgICAgLy8gdXNlIHRoZSBk
ZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlzIGlzIGFuIGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3
aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0aW9uIGJvdW5kcy4KLSAgICBpZiAoIWlzV2ViQXJl
YSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIWlzV2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQ
b2ludCgpOwogICAgIAogICAgIFZpc2libGVTZWxlY3Rpb24gdmlzU2VsZWN0aW9uID0gc2VsZWN0
aW9uKCk7CkBAIC0yNjE5LDIyICsyNjAwLDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlh
RXhwYW5kZWQsICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwgInRydWUiKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlz
TmF0aXZlVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkg
bm9kZSBjb3VsZCBiZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJl
bGllZCB1cG9uCi0gICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4K
LSAgICByZXR1cm4gIWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNUZXh0Q29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA5N2JmOGEzN2ZkNjM1NTQ1N2Y0
M2JhNGE2YWYwYjA0MzIzN2ZmZjJhLi5kYmNiYjEzYmUwZThkNWRmZDc4ZDM5ODZiNjZkNDNhNWNl
Yjk3MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzRm9jdXNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRl
ZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVW52aXNp
dGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OyAgICAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzTGlua2VkKCkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5kZXJsaW5lKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2Vz
c2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwCmluZGV4IGI3MDIyNDcxZjVhZTc0MDJmOTYzMDNiYjgyMzlhYzk3MmZhY2MzODUu
LmYzNGY4OGU4YzRhNjMyYTdlYzZhZGYxZWQ3NTU0Yjg1OWI5MDViNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgQXRrQXR0
cmlidXRlU2V0KiBnZXRBdHRyaWJ1dGVTZXRGb3JBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IEFj
Y2Vzc2liaWxpdAogCiAgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBh
dGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9JTlZJU0lCTEUpLCAoc3R5
bGUtPnZpc2liaWxpdHkoKSA9PSBISURERU4pID8gInRydWUiIDogImZhbHNlIik7CiAKLSAgICBy
ZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9n
ZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwgb2JqZWN0LT5pc1JlYWRPbmx5KCkgPyAi
ZmFsc2UiIDogInRydWUiKTsKKyAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1
bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwg
b2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNlIik7CiAKICAg
ICBTdHJpbmcgbGFuZ3VhZ2UgPSBvYmplY3QtPmxhbmd1YWdlKCk7CiAgICAgaWYgKCFsYW5ndWFn
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggZDI5ZjE5MmMx
NWEwZjY4MjU5N2IwYzljMTNmMzk1Njc5OGY4NWMwNC4uODZlMjY0ODU3NTAwODgyNDg1ZGViZDVi
MDgxMDNjOGQzZTJkYzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNjM2
LDEyICs2MzYsNyBAQCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2JqZWN0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogICAgIGlmIChjb3JlT2JqZWN0
LT5pc0NoZWNrZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQs
IEFUS19TVEFURV9DSEVDS0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRvZXMgbm90
IHNlZW0gdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBzbyBjaGVj
ayBleHBsaWNpdGx5IGZvciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8vIGlzUmVh
ZE9ubHkgaXMgZmFsc2UgZm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBvbmUKLSAg
ICAvLyBtb3JlIGNoZWNrIHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBiZWluZyAi
ZWRpdGFibGUiLgotICAgIGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAgICAgICB8
fCAoY29yZU9iamVjdC0+aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRy
aWJ1dGUoKSkpCisgICAgaWYgKGNvcmVPYmplY3QtPmlzQ29udHJvbCgpICYmIGNvcmVPYmplY3Qt
PmNhblNldFZhbHVlQXR0cmlidXRlKCkKICAgICAgICAgJiYgIWlzTGlzdEJveE9wdGlvbikKICAg
ICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9FRElUQUJM
RSk7CiAKQEAgLTkxMCw3ICs5MDUsNyBAQCBzdGF0aWMgZ3VpbnQxNiBnZXRJbnRlcmZhY2VNYXNr
RnJvbU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogICAgIGVsc2Ugewog
ICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKSB7CiAgICAgICAgICAgICBp
bnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJX1RFWFQ7Ci0gICAgICAgICAgICBpZiAoIWNvcmVPYmpl
Y3QtPmlzUmVhZE9ubHkoKSkKKyAgICAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlf
RURJVEFCTEVfVEVYVDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyb2xlICE9
IFRhYmxlUm9sZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBlNWIxMDIzMWQwMTkwYWU4ZmI0YjViNGE0Nzcx
YmFhNjM5OGI1YWMzLi4yMjU3MzY3MGQ5NGQwMDg5OGJhZTlkZDA3ZWUzM2RmMzE0ZmEwZWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMzcwLDE0ICszNzAsNiBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzUHJlc3NlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNQcmVzc2VkKCk7
CiB9CiAKLWJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSgpIGNvbnN0Ci17
Ci0gICAgaWYgKGlzRGV0YWNoZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4g
bV9wcml2YXRlLT5pc1JlYWRPbmx5KCk7Ci19Ci0KIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dDo6aXNSZXF1aXJlZCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRGV0YWNoZWQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IGE4OTc3MzVkMTAzMjZmYWY0YTZkNWIxOTFiMzA5NDZmODQ1MTc4MWMuLjFiNTM4OGQ3NWRj
M2I5YmJmYjUwYzFmNjIxNjI5OWIxNDU5M2QxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDQsMTEgKzQ0LDYg
QEAgYm9vbCBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCktPmlzRW5hYmxlZEZvcm1D
b250cm9sKCk7CiB9CiAKLWJvb2wgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojppc1JlYWRPbmx5KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1Db250cm9sRWxlbWVudD4o
KS0+cmVhZE9ubHkoKTsKLX0KLQogV2ViU3RyaW5nIFdlYkZvcm1Db250cm9sRWxlbWVudDo6Zm9y
bUNvbnRyb2xOYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1D
b250cm9sRWxlbWVudD4oKS0+bmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
QWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3Bw
CmluZGV4IGJiMzFhZGJkNWRhYWQ3NjYyMDdkMWE0MDYyMzEzZjZlNmRlZGI2MzguLmIwNzQ4NzFl
MmRjMjJlNmQ1NmM3NDlmYzJhNWYxYjdhYTg0MDI0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5jcHAKQEAgLTI3Myw5ICsyNzMsNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklBTlQqCiAg
ICAgaWYgKCFjaGlsZE9iai0+aXNFbmFibGVkKCkpCiAgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0g
U1RBVEVfU1lTVEVNX1VOQVZBSUxBQkxFOwogCi0gICAgaWYgKGNoaWxkT2JqLT5pc1JlYWRPbmx5
KCkpCi0gICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX1JFQURPTkxZOwotCiAg
ICAgaWYgKGNoaWxkT2JqLT5pc09mZlNjcmVlbigpKQogICAgICAgICBwdlN0YXRlLT5sVmFsIHw9
IFNUQVRFX1NZU1RFTV9PRkZTQ1JFRU47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjM0OWNkMjdlYzEzMTMyOWQ5NjQyZDdkZDBhYWI1ZTRh
ODdiMWRjLi4wMGIyODA3OTIyZTc5Zjc3ZmI3YTIzZjEyMGRjNWZlZDk2YzI1YzE4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTItMTQgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtHVEtdIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3Qg
ZmFpbGVkIGJlY2F1c2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJs
ZSgpCisgICAgICAgIHdhcyBub3QgaW1wbGVtZW50ZWQuIEluIGFkZGl0aW9uLCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNSZWFkT25seSgpCisgICAgICAgIHdhcyBsb29raW5nIHRvIHRoZSB3
aWRnZXQgdG8gZ2V0IGl0cyByZWFkLW9ubHkgc3RhdGUgd2hlbiBpdCBzaG91bGQKKyAgICAgICAg
cmVwb3J0IHRoZSB2YWx1ZSBvZiBhcmlhLXJlYWRvbmx5IHdoZW4gdGhhdCBwcm9wZXJ0eSBoYXMg
YmVlbiBzZXQuCisgICAgICAgIEluIG9yZGVyIHRvIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY2hlY2tz
LCB0aGUgZGVjaXNpb24gd2FzIG1hZGUgdG8gcmVtb3ZlCisgICAgICAgIGlzUmVhZE9ubHkoKSBh
bmQganVzdCB1c2UgY2FuU2V0QXR0cmlidXRlVmFsdWUoKSwgbW92aW5nIGFsbCB0aGUgbG9naWMK
KyAgICAgICAgaW50byBBWE5vZGVPYmplY3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKTogSW1wbGVtZW50ZWQKKwogMjAxMi0xMi0x
MyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIC0tcHJvZmls
ZXI9UFJPRklMRVIgb3B0aW9uIHRvIHJ1bi1wZXJmLXRlc3RzIHRvIGFsbG93IHNwZWNpZnlpbmcg
d2hpY2ggcHJvZmlsZXIgdG8gdXNlIG9uIHBsYXRmb3JtcyB3aXRoIG1hbnkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcApp
bmRleCA1YzE4ODMyZmNmNzEwMTVlOGIwYTJkNGM1ZGUxZjU2OGQ0NTMwMzcyLi4xYzY3MjBjMmM2
YzhjODU1YzQ0MDA3M2E5YjYxNzY1ZjkyMWExMTllIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCkBAIC04MzYsOCAr
ODM2LDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0F0dHJpYnV0ZVNldHRhYmxlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKIHsKLSAgICAvLyBGSVhN
RTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEluIEF0aywgdGhpbmdzIGFy
ZSBnZW5lcmFsbHkgc2V0dGFibGUgaWYgdGhleSBhcmUgbm90IHJlYWQtb25seS4gQXQgdGhlCisg
ICAgLy8gbW9tZW50LCB3ZSBpZGVudGlmeSByZWFkIG9ubHkgdmlhIEFUS19TVEFURV9FRElUQUJM
RS4gSW4gdGhlIGZ1dHVyZSwKKyAgICAvLyBvbmNlIGl0IGlzIGltcGxlbWVudGVkLCBBVEtfU1RB
VEVfUkVBRF9PTkxZIHNob3VsZCBhbHNvIGJlIGNoZWNrZWQ6CisgICAgLy8gaHR0cHM6Ly9idWd6
aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTU5OAorCisgICAgcmV0dXJuIGNoZWNr
RWxlbWVudFN0YXRlKG1fZWxlbWVudCwgQVRLX1NUQVRFX0VESVRBQkxFKTsKIH0KIAogYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVN1cHBvcnRlZChKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZDdhYzNlZDAwNDU1MjVkODg1MzVlNTEyNmMyZTZjMTU5YjQ0ODM3
NC4uNTc3MzFkOGM1NTA4YmQxNzVmYjU4NWM0NGRhZTZmOGM3MDllMTM2YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTEyLTE0ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLXSBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRl
U2V0dGFibGUoKQorICAgICAgICB3YXMgbm90IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0
byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVhZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisg
ICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2YgYXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVy
dHkgaGFzIGJlZW4gc2V0LgorICAgICAgICBJbiBvcmRlciB0byBlbGltaW5hdGUgZHVwbGljYXRl
IGNoZWNrcywgdGhlIGRlY2lzaW9uIHdhcyBtYWRlIHRvIHJlbW92ZQorICAgICAgICBpc1JlYWRP
bmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhl
IGxvZ2ljCisgICAgICAgIGludG8gQVhOb2RlT2JqZWN0LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcHBlZCBwcmV2aW91c2x5LXNraXBwZWQgdGVzdC4K
KwogMjAxMi0xMi0xNCAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtIGdhcmRlbmluZ10gU2V0IGV4cGVjdGF0aW9ucyBmb3IgcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY29tcG9zaXRlZHNjcm9sbGluZy9zY3JvbGxiYXJz
L3Njcm9sbGJhci1kcmFnLXRodW1iLXdpdGgtbGFyZ2UtY29udGVudC1leHBlY3RlZC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQwNmI1YWVkYzZm
MzlhMTY2M2IyNDA0ZjkzMWZmYWI5ZmIyZTJlODcuLjE1NTBlZmMxYjc0ZmQ3NjE5OTg4MjNiNmRm
ZWU4M2Q5MDIxN2ZjZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCkBAIC03NjMsNyArNzYzLDYgQEAgd2Via2l0Lm9yZy9iLzc5NzU3IGZhc3Qvc2VsZWN0b3Jz
L3NlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUuaHRtbCBbIEltYWdlT25seUZhaWwKIHdlYmtpdC5v
cmcvYi85ODM1MyBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXdpdGgtZWxlbWVudHMuaHRtbCBb
IEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzU0IGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxl
ZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTUg
YWNjZXNzaWJpbGl0eS9hcmlhLWxpbmstc3VwcG9ydHMtcHJlc3MuaHRtbCBbIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzk4MzU3IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTggYWNjZXNzaWJpbGl0eS9hcmlhLXNjcm9sbGJhci1y
b2xlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM1OSBhY2Nlc3NpYmlsaXR5L2Fy
aWEtdGV4dC1yb2xlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM2MCBhY2Nlc3Np
YmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179584</attachid>
            <date>2012-12-15 02:56:53 -0800</date>
            <delta_ts>2012-12-15 04:37:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20121215115411.patch</filename>
            <type>text/plain</type>
            <size>20581</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uOWM4N2I4NDA3YjFhM2Y2ZDQwNGU2YjQ1MmJmODdi
Y2ZkNDUwMmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTE0ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoKQorICAgICAgICB3YXMgbm90
IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVh
ZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVh
ZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisgICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2Yg
YXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAgICBJ
biBvcmRlciB0byBlbGltaW5hdGUgZHVwbGljYXRlIGNoZWNrcywgdGhlIGRlY2lzaW9uIHdhcyBt
YWRlIHRvIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljCisgICAgICAgIGludG8gQVhOb2Rl
T2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIGV4
aXN0aW5nIHRlc3QKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNh
blNldFZhbHVlQXR0cmlidXRlKTogQWRkZWQKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmVkIGlz
UmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KTogQWRkZWQgY2FuU2V0VmFs
dWVBdHRyaWJ1dGUoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ZpbGVV
cGxvYWRCdXR0b24pOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVh
ZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNsaWNrUG9pbnQpOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkg
aW5zdGVhZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qp
OiBSZW1vdmUgaXNSZWFkT25seSgpCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0Rm9y
QWNjZXNzaWJpbGl0eU9iamVjdCk6IENhbGwgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKQorICAgICAg
ICBpbnN0ZWFkIG9mIGlzUmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHNldEF0a1N0YXRlU2V0RnJv
bUNvcmVPYmplY3QpOiBDYWxsIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVhZCBvZgorICAg
ICAgICBpc1JlYWRPbmx5KCkKKyAgICAgICAgKGdldEludGVyZmFjZU1hc2tGcm9tT2JqZWN0KTog
Q2FsbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGluc3RlYWQgb2YKKyAgICAgICAgaXNSZWFkT25s
eSgpCisKIDIwMTItMTItMTQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NjMzIGFuZCByMTI5NzU3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCAwZTVjOTc4NmI0YjA3MjRiNWMxMjEwOThlOTM3MTBiNDVmNWQ5
OWI0Li5hZTlmNTAyYjAwMWM3NWFiNTM5Yjc3NTNkMGU0NDk3ZGNkYjc3ODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcApAQCAtNjYzLDI0ICs2NjMsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUoc2VsZWN0VGFnKSAmJiB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSktPm11
bHRpcGxlKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHko
KSBjb25zdAotewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRleHRh
cmVhVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
Pihub2RlKS0+cmVhZE9ubHkoKTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlucHV0LT5yZWFkT25seSgpOwotICAgIH0KLQotICAgIHJldHVy
biAhbm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci19Ci0KIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUmVxdWlyZWQoKSBjb25zdAogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShnZXRBdHRyaWJ1dGUoYXJpYV9yZXF1aXJlZEF0dHIpLCAidHJ1ZSIpKQpAQCAtMTY3Nyw2ICsx
NjU5LDQ4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldEZvY3VzQXR0cmli
dXRlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZS0+c3VwcG9ydHNGb2N1cygpOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUo
YXJpYV9yZWFkb25seUF0dHIpLCAidHJ1ZSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwg
ImZhbHNlIikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodGV4dGFyZWFUYWcpKQorICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PEhUTUxUZXh0QXJl
YUVsZW1lbnQqPihub2RlKS0+cmVhZE9ubHkoKTsKKworICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgaWYgKGlucHV0LT5pc1RleHRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuICFpbnB1dC0+cmVhZE9ubHkoKTsKKyAgICB9CisK
KyAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVyKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKGlzVGV4dENvbnRyb2woKSAmJiAhaXNOYXRpdmVUZXh0Q29u
dHJvbCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1dlYkFyZWEoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgICAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOworICAgICAgICBpZiAoYm9k
eSAmJiBib2R5LT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CisgICAg
fQorCisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVySXNFZGl0YWJsZSgpOworfQorCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRy
aWJ1dGUoKSBjb25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYVJvbGUgPSBnZXRB
dHRyaWJ1dGUocm9sZUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IGNkMGIzZDgwMmM0MzMxMDZhMDhh
Yjc0YzgxYmU3ZGMyY2VmNDhkNzkuLjZiZDJhYTkzOTYwODExZjllNDVkOGYxYWY0NzNiYmY3MWQ0
Y2Q5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTk3LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmRldGVybWlu
YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc3NlZCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUmVxdWly
ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Tm9kZShOb2RlKik7CkBAIC0xMDUsNiArMTA0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBoZWFk
aW5nTGV2ZWwoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24o
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMmI5Mzg4MzA0ODQzNTMyZTg4ZjQ2YjFmYzRiYjI4MDBiYTI5ZWVj
NC4uNzY0NWNmMDVjZWQxMDM4NjY4NDkyNWQ0ZDA3ZmU3NmQyMzY2MWVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQz
Nyw3ICs0MzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTXVsdGlTZWxlY3RhYmxl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGFmNTY4NmFjZTBmNjAzNGMz
NjkyODNjMTE3ZWZmYTk4MjE0MTg5MDEuLjdkNTE2OWM2MjEwY2JlZDgxNmEwYWU3YTFkNmEwNjAy
MWM5ZWFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNTE5LDI1ICs1MTksNiBAQCBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiAg
ICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9yZW5kZXJlcik7Ci0g
ICAgCi0gICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fcmVuZGVyZXItPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIEhUTUxFbGVtZW50KiBib2R5ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKLSAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuICFk
b2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCk7Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25zdAogewpAQCAtODIyLDcgKzgwMyw3IEBA
IEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQoKQogICAgICAg
ICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xpY2tQb2ludCgpOwogCiAgICAgLy8gdXNlIHRoZSBk
ZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlzIGlzIGFuIGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3
aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0aW9uIGJvdW5kcy4KLSAgICBpZiAoIWlzV2ViQXJl
YSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIWlzV2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQ
b2ludCgpOwogICAgIAogICAgIFZpc2libGVTZWxlY3Rpb24gdmlzU2VsZWN0aW9uID0gc2VsZWN0
aW9uKCk7CkBAIC0yNjE5LDIyICsyNjAwLDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlh
RXhwYW5kZWQsICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwgInRydWUiKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlz
TmF0aXZlVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkg
bm9kZSBjb3VsZCBiZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJl
bGllZCB1cG9uCi0gICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4K
LSAgICByZXR1cm4gIWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNUZXh0Q29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA5N2JmOGEzN2ZkNjM1NTQ1N2Y0
M2JhNGE2YWYwYjA0MzIzN2ZmZjJhLi5kYmNiYjEzYmUwZThkNWRmZDc4ZDM5ODZiNjZkNDNhNWNl
Yjk3MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzRm9jdXNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRl
ZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVW52aXNp
dGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OyAgICAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzTGlua2VkKCkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5kZXJsaW5lKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2Vz
c2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwCmluZGV4IGI3MDIyNDcxZjVhZTc0MDJmOTYzMDNiYjgyMzlhYzk3MmZhY2MzODUu
LmYzNGY4OGU4YzRhNjMyYTdlYzZhZGYxZWQ3NTU0Yjg1OWI5MDViNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgQXRrQXR0
cmlidXRlU2V0KiBnZXRBdHRyaWJ1dGVTZXRGb3JBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IEFj
Y2Vzc2liaWxpdAogCiAgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBh
dGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9JTlZJU0lCTEUpLCAoc3R5
bGUtPnZpc2liaWxpdHkoKSA9PSBISURERU4pID8gInRydWUiIDogImZhbHNlIik7CiAKLSAgICBy
ZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9n
ZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwgb2JqZWN0LT5pc1JlYWRPbmx5KCkgPyAi
ZmFsc2UiIDogInRydWUiKTsKKyAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1
bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwg
b2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNlIik7CiAKICAg
ICBTdHJpbmcgbGFuZ3VhZ2UgPSBvYmplY3QtPmxhbmd1YWdlKCk7CiAgICAgaWYgKCFsYW5ndWFn
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggZDI5ZjE5MmMx
NWEwZjY4MjU5N2IwYzljMTNmMzk1Njc5OGY4NWMwNC4uODZlMjY0ODU3NTAwODgyNDg1ZGViZDVi
MDgxMDNjOGQzZTJkYzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNjM2
LDEyICs2MzYsNyBAQCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2JqZWN0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogICAgIGlmIChjb3JlT2JqZWN0
LT5pc0NoZWNrZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQs
IEFUS19TVEFURV9DSEVDS0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRvZXMgbm90
IHNlZW0gdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBzbyBjaGVj
ayBleHBsaWNpdGx5IGZvciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8vIGlzUmVh
ZE9ubHkgaXMgZmFsc2UgZm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBvbmUKLSAg
ICAvLyBtb3JlIGNoZWNrIHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBiZWluZyAi
ZWRpdGFibGUiLgotICAgIGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAgICAgICB8
fCAoY29yZU9iamVjdC0+aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRy
aWJ1dGUoKSkpCisgICAgaWYgKGNvcmVPYmplY3QtPmlzQ29udHJvbCgpICYmIGNvcmVPYmplY3Qt
PmNhblNldFZhbHVlQXR0cmlidXRlKCkKICAgICAgICAgJiYgIWlzTGlzdEJveE9wdGlvbikKICAg
ICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9FRElUQUJM
RSk7CiAKQEAgLTkxMCw3ICs5MDUsNyBAQCBzdGF0aWMgZ3VpbnQxNiBnZXRJbnRlcmZhY2VNYXNr
RnJvbU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogICAgIGVsc2Ugewog
ICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKSB7CiAgICAgICAgICAgICBp
bnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJX1RFWFQ7Ci0gICAgICAgICAgICBpZiAoIWNvcmVPYmpl
Y3QtPmlzUmVhZE9ubHkoKSkKKyAgICAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlf
RURJVEFCTEVfVEVYVDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyb2xlICE9
IFRhYmxlUm9sZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBlNWIxMDIzMWQwMTkwYWU4ZmI0YjViNGE0Nzcx
YmFhNjM5OGI1YWMzLi4yMjU3MzY3MGQ5NGQwMDg5OGJhZTlkZDA3ZWUzM2RmMzE0ZmEwZWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMzcwLDE0ICszNzAsNiBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzUHJlc3NlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNQcmVzc2VkKCk7
CiB9CiAKLWJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSgpIGNvbnN0Ci17
Ci0gICAgaWYgKGlzRGV0YWNoZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4g
bV9wcml2YXRlLT5pc1JlYWRPbmx5KCk7Ci19Ci0KIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dDo6aXNSZXF1aXJlZCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRGV0YWNoZWQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IGE4OTc3MzVkMTAzMjZmYWY0YTZkNWIxOTFiMzA5NDZmODQ1MTc4MWMuLjFiNTM4OGQ3NWRj
M2I5YmJmYjUwYzFmNjIxNjI5OWIxNDU5M2QxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDQsMTEgKzQ0LDYg
QEAgYm9vbCBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCktPmlzRW5hYmxlZEZvcm1D
b250cm9sKCk7CiB9CiAKLWJvb2wgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojppc1JlYWRPbmx5KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1Db250cm9sRWxlbWVudD4o
KS0+cmVhZE9ubHkoKTsKLX0KLQogV2ViU3RyaW5nIFdlYkZvcm1Db250cm9sRWxlbWVudDo6Zm9y
bUNvbnRyb2xOYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1D
b250cm9sRWxlbWVudD4oKS0+bmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
QWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3Bw
CmluZGV4IGJiMzFhZGJkNWRhYWQ3NjYyMDdkMWE0MDYyMzEzZjZlNmRlZGI2MzguLmIwNzQ4NzFl
MmRjMjJlNmQ1NmM3NDlmYzJhNWYxYjdhYTg0MDI0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5jcHAKQEAgLTI3Myw5ICsyNzMsNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklBTlQqCiAg
ICAgaWYgKCFjaGlsZE9iai0+aXNFbmFibGVkKCkpCiAgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0g
U1RBVEVfU1lTVEVNX1VOQVZBSUxBQkxFOwogCi0gICAgaWYgKGNoaWxkT2JqLT5pc1JlYWRPbmx5
KCkpCi0gICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX1JFQURPTkxZOwotCiAg
ICAgaWYgKGNoaWxkT2JqLT5pc09mZlNjcmVlbigpKQogICAgICAgICBwdlN0YXRlLT5sVmFsIHw9
IFNUQVRFX1NZU1RFTV9PRkZTQ1JFRU47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjM0OWNkMjdlYzEzMTMyOWQ5NjQyZDdkZDBhYWI1ZTRh
ODdiMWRjLi4wMGIyODA3OTIyZTc5Zjc3ZmI3YTIzZjEyMGRjNWZlZDk2YzI1YzE4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTItMTQgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtHVEtdIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3Qg
ZmFpbGVkIGJlY2F1c2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJs
ZSgpCisgICAgICAgIHdhcyBub3QgaW1wbGVtZW50ZWQuIEluIGFkZGl0aW9uLCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNSZWFkT25seSgpCisgICAgICAgIHdhcyBsb29raW5nIHRvIHRoZSB3
aWRnZXQgdG8gZ2V0IGl0cyByZWFkLW9ubHkgc3RhdGUgd2hlbiBpdCBzaG91bGQKKyAgICAgICAg
cmVwb3J0IHRoZSB2YWx1ZSBvZiBhcmlhLXJlYWRvbmx5IHdoZW4gdGhhdCBwcm9wZXJ0eSBoYXMg
YmVlbiBzZXQuCisgICAgICAgIEluIG9yZGVyIHRvIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY2hlY2tz
LCB0aGUgZGVjaXNpb24gd2FzIG1hZGUgdG8gcmVtb3ZlCisgICAgICAgIGlzUmVhZE9ubHkoKSBh
bmQganVzdCB1c2UgY2FuU2V0QXR0cmlidXRlVmFsdWUoKSwgbW92aW5nIGFsbCB0aGUgbG9naWMK
KyAgICAgICAgaW50byBBWE5vZGVPYmplY3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKTogSW1wbGVtZW50ZWQKKwogMjAxMi0xMi0x
MyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIC0tcHJvZmls
ZXI9UFJPRklMRVIgb3B0aW9uIHRvIHJ1bi1wZXJmLXRlc3RzIHRvIGFsbG93IHNwZWNpZnlpbmcg
d2hpY2ggcHJvZmlsZXIgdG8gdXNlIG9uIHBsYXRmb3JtcyB3aXRoIG1hbnkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDE3
MDY0ODEyYzM2YTVlZDkxMDEwM2ZkNDMwMGYyNTg0ZGZmMWFmOTkuLjdjYzdjNGI5ZmVlN2Y2OTY2
NTEwZDY4MjBhYTYzOTg5MjdhMzUwNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcApAQCAtMzk1LDcgKzM5NSw2IEBAIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdCYgb2JqCiAgICAgYmluZFByb3BlcnR5KCJpc0NvbGxhcHNlZCIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKTsKICAgICBiaW5k
UHJvcGVydHkoImhhc1BvcHVwIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwR2V0
dGVyQ2FsbGJhY2spOwogICAgIGJpbmRQcm9wZXJ0eSgiaXNWYWxpZCIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1ZhbGlkR2V0dGVyQ2FsbGJhY2spOwotICAgIGJpbmRQcm9wZXJ0eSgiaXNS
ZWFkT25seSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlYWRPbmx5R2V0dGVyQ2FsbGJh
Y2spOwogICAgIGJpbmRQcm9wZXJ0eSgib3JpZW50YXRpb24iLCAmQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6b3JpZW50YXRpb25HZXR0ZXJDYWxsYmFjayk7CiAKICAgICAvLwpAQCAtNjM4LDExICs2
MzcsNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmFsaWRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgcmVzdWx0LT5zZXQoIWFjY2Vzc2liaWxpdHlPYmpl
Y3QoKS5pc0RldGFjaGVkKCkpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
UmVhZE9ubHlHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0
LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzUmVhZE9ubHkoKSk7Ci19Ci0KIHZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50
KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXQoZ2V0T3JpZW50YXRpb24oYWNjZXNzaWJpbGl0
eU9iamVjdCgpKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRDaHJvbWl1bS5oCmluZGV4IDQxNTg2ZGI4NmJmZTRhMzI3YWYzZDM0OWM5OGMyMzY4NDZkZTUx
MWYuLmMyYjIxMzkyM2I5YjM0YzdlNmExZjJhMjFlNmM4YTEwYjNlMWUwNTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oCkBAIC05Miw3
ICs5Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKENw
cFZhcmlhbnQqKTsKICAgICB2b2lkIGhhc1BvcHVwR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgaXNWYWxpZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLSAgICB2b2lk
IGlzUmVhZE9ubHlHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBvcmllbnRh
dGlvbkdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKIAogICAgIC8vIEJvdW5kIG1ldGhvZHMu
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEd0ay5jcHAKaW5kZXggNWMxODgzMmZjZjcxMDE1ZThiMGEyZDRjNWRlMWY1NjhkNDUzMDM3
Mi4uMWM2NzIwYzJjNmM4Yzg1NWM0NDAwNzNhOWI2MTc2NWY5MjFhMTE5ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNw
cApAQCAtODM2LDggKzgzNiwxMiBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xB
dHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiB7
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBJbiBB
dGssIHRoaW5ncyBhcmUgZ2VuZXJhbGx5IHNldHRhYmxlIGlmIHRoZXkgYXJlIG5vdCByZWFkLW9u
bHkuIEF0IHRoZQorICAgIC8vIG1vbWVudCwgd2UgaWRlbnRpZnkgcmVhZCBvbmx5IHZpYSBBVEtf
U1RBVEVfRURJVEFCTEUuIEluIHRoZSBmdXR1cmUsCisgICAgLy8gb25jZSBpdCBpcyBpbXBsZW1l
bnRlZCwgQVRLX1NUQVRFX1JFQURfT05MWSBzaG91bGQgYWxzbyBiZSBjaGVja2VkOgorICAgIC8v
IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU1OTgKKworICAg
IHJldHVybiBjaGVja0VsZW1lbnRTdGF0ZShtX2VsZW1lbnQsIEFUS19TVEFURV9FRElUQUJMRSk7
CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQo
SlNTdHJpbmdSZWYgYXR0cmlidXRlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YWMzZWQwMDQ1NTI1ZDg4NTM1ZTUxMjZj
MmU2YzE1OWI0NDgzNzQuLjU3NzMxZDhjNTUwOGJkMTc1ZmI1ODVjNDRkYWU2ZjhjNzA5ZTEzNmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0xNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRv
bmx5Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgdGVzdCBmYWlsZWQgYmVjYXVzZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0F0dHJpYnV0ZVNldHRhYmxlKCkKKyAgICAgICAgd2FzIG5vdCBpbXBsZW1lbnRlZC4gSW4g
YWRkaXRpb24sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCkKKyAgICAgICAg
d2FzIGxvb2tpbmcgdG8gdGhlIHdpZGdldCB0byBnZXQgaXRzIHJlYWQtb25seSBzdGF0ZSB3aGVu
IGl0IHNob3VsZAorICAgICAgICByZXBvcnQgdGhlIHZhbHVlIG9mIGFyaWEtcmVhZG9ubHkgd2hl
biB0aGF0IHByb3BlcnR5IGhhcyBiZWVuIHNldC4KKyAgICAgICAgSW4gb3JkZXIgdG8gZWxpbWlu
YXRlIGR1cGxpY2F0ZSBjaGVja3MsIHRoZSBkZWNpc2lvbiB3YXMgbWFkZSB0byByZW1vdmUKKyAg
ICAgICAgaXNSZWFkT25seSgpIGFuZCBqdXN0IHVzZSBjYW5TZXRBdHRyaWJ1dGVWYWx1ZSgpLCBt
b3ZpbmcgYWxsIHRoZSBsb2dpYworICAgICAgICBpbnRvIEFYTm9kZU9iamVjdC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXBwZWQgcHJldmlvdXNseS1z
a2lwcGVkIHRlc3QuCisKIDIwMTItMTItMTQgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bSBnYXJkZW5pbmddIFNldCBleHBlY3Rh
dGlvbnMgZm9yIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NvbXBvc2l0ZWRzY3JvbGxp
bmcvc2Nyb2xsYmFycy9zY3JvbGxiYXItZHJhZy10aHVtYi13aXRoLWxhcmdlLWNvbnRlbnQtZXhw
ZWN0ZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA0MDZiNWFlZGM2ZjM5YTE2NjNiMjQwNGY5MzFmZmFiOWZiMmUyZTg3Li4xNTUwZWZjMWI3NGZk
NzYxOTk4ODIzYjZkZmVlODNkOTAyMTdmY2RjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNzYzLDcgKzc2Myw2IEBAIHdlYmtpdC5vcmcvYi83OTc1NyBm
YXN0L3NlbGVjdG9ycy9zZWxlY3Rpb24td2luZG93LWluYWN0aXZlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsCiB3ZWJraXQub3JnL2IvOTgzNTMgYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi13aXRoLWVs
ZW1lbnRzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM1NCBhY2Nlc3NpYmlsaXR5
L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzk4MzU1IGFjY2Vzc2liaWxpdHkvYXJpYS1saW5rLXN1cHBvcnRzLXByZXNzLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85ODM1NyBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9u
bHkuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzU4IGFjY2Vzc2liaWxpdHkvYXJp
YS1zY3JvbGxiYXItcm9sZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTkgYWNj
ZXNzaWJpbGl0eS9hcmlhLXRleHQtcm9sZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
OTgzNjAgYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sIFsgRmFpbHVy
ZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179586</attachid>
            <date>2012-12-15 04:37:41 -0800</date>
            <delta_ts>2016-05-09 11:21:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20121215133500.patch</filename>
            <type>text/plain</type>
            <size>24402</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uOWM4N2I4NDA3YjFhM2Y2ZDQwNGU2YjQ1MmJmODdi
Y2ZkNDUwMmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTE0ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGZhaWxlZCBiZWNhdXNlIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoKQorICAgICAgICB3YXMgbm90
IGltcGxlbWVudGVkLiBJbiBhZGRpdGlvbiwgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVh
ZE9ubHkoKQorICAgICAgICB3YXMgbG9va2luZyB0byB0aGUgd2lkZ2V0IHRvIGdldCBpdHMgcmVh
ZC1vbmx5IHN0YXRlIHdoZW4gaXQgc2hvdWxkCisgICAgICAgIHJlcG9ydCB0aGUgdmFsdWUgb2Yg
YXJpYS1yZWFkb25seSB3aGVuIHRoYXQgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAgICBJ
biBvcmRlciB0byBlbGltaW5hdGUgZHVwbGljYXRlIGNoZWNrcywgdGhlIGRlY2lzaW9uIHdhcyBt
YWRlIHRvIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljCisgICAgICAgIGludG8gQVhOb2Rl
T2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIGV4
aXN0aW5nIHRlc3QKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNh
blNldFZhbHVlQXR0cmlidXRlKTogQWRkZWQKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmVkIGlz
UmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KTogQWRkZWQgY2FuU2V0VmFs
dWVBdHRyaWJ1dGUoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ZpbGVV
cGxvYWRCdXR0b24pOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVh
ZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNsaWNrUG9pbnQpOiBDYWxsCisgICAgICAgIGNhblNldFZhbHVlQXR0cmlidXRlKCkg
aW5zdGVhZCBvZiBpc1JlYWRPbmx5KCkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qp
OiBSZW1vdmUgaXNSZWFkT25seSgpCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0Rm9y
QWNjZXNzaWJpbGl0eU9iamVjdCk6IENhbGwgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKQorICAgICAg
ICBpbnN0ZWFkIG9mIGlzUmVhZE9ubHkoKQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHNldEF0a1N0YXRlU2V0RnJv
bUNvcmVPYmplY3QpOiBDYWxsIGNhblNldFZhbHVlQXR0cmlidXRlKCkgaW5zdGVhZCBvZgorICAg
ICAgICBpc1JlYWRPbmx5KCkKKyAgICAgICAgKGdldEludGVyZmFjZU1hc2tGcm9tT2JqZWN0KTog
Q2FsbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGluc3RlYWQgb2YKKyAgICAgICAgaXNSZWFkT25s
eSgpCisKIDIwMTItMTItMTQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NjMzIGFuZCByMTI5NzU3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCAwZTVjOTc4NmI0YjA3MjRiNWMxMjEwOThlOTM3MTBiNDVmNWQ5
OWI0Li5hZTlmNTAyYjAwMWM3NWFiNTM5Yjc3NTNkMGU0NDk3ZGNkYjc3ODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcApAQCAtNjYzLDI0ICs2NjMsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
Pmhhc1RhZ05hbWUoc2VsZWN0VGFnKSAmJiB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUoKSktPm11
bHRpcGxlKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHko
KSBjb25zdAotewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRleHRh
cmVhVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
Pihub2RlKS0+cmVhZE9ubHkoKTsKLQotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgaWYgKGlucHV0LT5pc1RleHRGaWVsZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlucHV0LT5yZWFkT25seSgpOwotICAgIH0KLQotICAgIHJldHVy
biAhbm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci19Ci0KIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUmVxdWlyZWQoKSBjb25zdAogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShnZXRBdHRyaWJ1dGUoYXJpYV9yZXF1aXJlZEF0dHIpLCAidHJ1ZSIpKQpAQCAtMTY3Nyw2ICsx
NjU5LDQ4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldEZvY3VzQXR0cmli
dXRlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZS0+c3VwcG9ydHNGb2N1cygpOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUo
YXJpYV9yZWFkb25seUF0dHIpLCAidHJ1ZSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwg
ImZhbHNlIikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodGV4dGFyZWFUYWcpKQorICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PEhUTUxUZXh0QXJl
YUVsZW1lbnQqPihub2RlKS0+cmVhZE9ubHkoKTsKKworICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgaWYgKGlucHV0LT5pc1RleHRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuICFpbnB1dC0+cmVhZE9ubHkoKTsKKyAgICB9CisK
KyAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xpZGVyKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKGlzVGV4dENvbnRyb2woKSAmJiAhaXNOYXRpdmVUZXh0Q29u
dHJvbCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1dlYkFyZWEoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgICAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOworICAgICAgICBpZiAoYm9k
eSAmJiBib2R5LT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CisgICAg
fQorCisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVySXNFZGl0YWJsZSgpOworfQorCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRy
aWJ1dGUoKSBjb25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYVJvbGUgPSBnZXRB
dHRyaWJ1dGUocm9sZUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IGNkMGIzZDgwMmM0MzMxMDZhMDhh
Yjc0YzgxYmU3ZGMyY2VmNDhkNzkuLjZiZDJhYTkzOTYwODExZjllNDVkOGYxYWY0NzNiYmY3MWQ0
Y2Q5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTk3LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmRldGVybWlu
YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc3NlZCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUmVxdWly
ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Tm9kZShOb2RlKik7CkBAIC0xMDUsNiArMTA0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBoZWFk
aW5nTGV2ZWwoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24o
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMmI5Mzg4MzA0ODQzNTMyZTg4ZjQ2YjFmYzRiYjI4MDBiYTI5ZWVj
NC4uNzY0NWNmMDVjZWQxMDM4NjY4NDkyNWQ0ZDA3ZmU3NmQyMzY2MWVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQz
Nyw3ICs0MzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTXVsdGlTZWxlY3RhYmxl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGFmNTY4NmFjZTBmNjAzNGMz
NjkyODNjMTE3ZWZmYTk4MjE0MTg5MDEuLjdkNTE2OWM2MjEwY2JlZDgxNmEwYWU3YTFkNmEwNjAy
MWM5ZWFlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNTE5LDI1ICs1MTksNiBAQCBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzRmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiAg
ICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9yZW5kZXJlcik7Ci0g
ICAgCi0gICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fcmVuZGVyZXItPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCi0gICAgICAgIEhUTUxFbGVtZW50KiBib2R5ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKLSAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuICFk
b2N1bWVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCk7Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25zdAogewpAQCAtODIyLDcgKzgwMyw3IEBA
IEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQoKQogICAgICAg
ICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xpY2tQb2ludCgpOwogCiAgICAgLy8gdXNlIHRoZSBk
ZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlzIGlzIGFuIGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3
aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0aW9uIGJvdW5kcy4KLSAgICBpZiAoIWlzV2ViQXJl
YSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIWlzV2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQ
b2ludCgpOwogICAgIAogICAgIFZpc2libGVTZWxlY3Rpb24gdmlzU2VsZWN0aW9uID0gc2VsZWN0
aW9uKCk7CkBAIC0yNjE5LDIyICsyNjAwLDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKGFyaWFFeHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShhcmlh
RXhwYW5kZWQsICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSwgInRydWUiKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlz
TmF0aXZlVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkg
bm9kZSBjb3VsZCBiZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJl
bGllZCB1cG9uCi0gICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4K
LSAgICByZXR1cm4gIWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNUZXh0Q29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA5N2JmOGEzN2ZkNjM1NTQ1N2Y0
M2JhNGE2YWYwYjA0MzIzN2ZmZjJhLi5kYmNiYjEzYmUwZThkNWRmZDc4ZDM5ODZiNjZkNDNhNWNl
Yjk3MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzRm9jdXNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRl
ZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVW52aXNp
dGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OyAgICAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzTGlua2VkKCkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5kZXJsaW5lKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2Vz
c2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwCmluZGV4IGI3MDIyNDcxZjVhZTc0MDJmOTYzMDNiYjgyMzlhYzk3MmZhY2MzODUu
LmYzNGY4OGU4YzRhNjMyYTdlYzZhZGYxZWQ3NTU0Yjg1OWI5MDViNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgQXRrQXR0
cmlidXRlU2V0KiBnZXRBdHRyaWJ1dGVTZXRGb3JBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IEFj
Y2Vzc2liaWxpdAogCiAgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBh
dGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9JTlZJU0lCTEUpLCAoc3R5
bGUtPnZpc2liaWxpdHkoKSA9PSBISURERU4pID8gInRydWUiIDogImZhbHNlIik7CiAKLSAgICBy
ZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9n
ZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwgb2JqZWN0LT5pc1JlYWRPbmx5KCkgPyAi
ZmFsc2UiIDogInRydWUiKTsKKyAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1
bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwg
b2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNlIik7CiAKICAg
ICBTdHJpbmcgbGFuZ3VhZ2UgPSBvYmplY3QtPmxhbmd1YWdlKCk7CiAgICAgaWYgKCFsYW5ndWFn
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggZDI5ZjE5MmMx
NWEwZjY4MjU5N2IwYzljMTNmMzk1Njc5OGY4NWMwNC4uODZlMjY0ODU3NTAwODgyNDg1ZGViZDVi
MDgxMDNjOGQzZTJkYzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNjM2
LDEyICs2MzYsNyBAQCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2JqZWN0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogICAgIGlmIChjb3JlT2JqZWN0
LT5pc0NoZWNrZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQs
IEFUS19TVEFURV9DSEVDS0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRvZXMgbm90
IHNlZW0gdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBzbyBjaGVj
ayBleHBsaWNpdGx5IGZvciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8vIGlzUmVh
ZE9ubHkgaXMgZmFsc2UgZm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBvbmUKLSAg
ICAvLyBtb3JlIGNoZWNrIHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBiZWluZyAi
ZWRpdGFibGUiLgotICAgIGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAgICAgICB8
fCAoY29yZU9iamVjdC0+aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRy
aWJ1dGUoKSkpCisgICAgaWYgKGNvcmVPYmplY3QtPmlzQ29udHJvbCgpICYmIGNvcmVPYmplY3Qt
PmNhblNldFZhbHVlQXR0cmlidXRlKCkKICAgICAgICAgJiYgIWlzTGlzdEJveE9wdGlvbikKICAg
ICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9FRElUQUJM
RSk7CiAKQEAgLTkxMCw3ICs5MDUsNyBAQCBzdGF0aWMgZ3VpbnQxNiBnZXRJbnRlcmZhY2VNYXNr
RnJvbU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogICAgIGVsc2Ugewog
ICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKSB7CiAgICAgICAgICAgICBp
bnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJX1RFWFQ7Ci0gICAgICAgICAgICBpZiAoIWNvcmVPYmpl
Y3QtPmlzUmVhZE9ubHkoKSkKKyAgICAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlf
RURJVEFCTEVfVEVYVDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyb2xlICE9
IFRhYmxlUm9sZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBlNWIxMDIzMWQwMTkwYWU4ZmI0YjViNGE0Nzcx
YmFhNjM5OGI1YWMzLi4yMjU3MzY3MGQ5NGQwMDg5OGJhZTlkZDA3ZWUzM2RmMzE0ZmEwZWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMzcwLDE0ICszNzAsNiBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzUHJlc3NlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNQcmVzc2VkKCk7
CiB9CiAKLWJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSgpIGNvbnN0Ci17
Ci0gICAgaWYgKGlzRGV0YWNoZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4g
bV9wcml2YXRlLT5pc1JlYWRPbmx5KCk7Ci19Ci0KIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dDo6aXNSZXF1aXJlZCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRGV0YWNoZWQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IGE4OTc3MzVkMTAzMjZmYWY0YTZkNWIxOTFiMzA5NDZmODQ1MTc4MWMuLjFiNTM4OGQ3NWRj
M2I5YmJmYjUwYzFmNjIxNjI5OWIxNDU5M2QxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDQsMTEgKzQ0LDYg
QEAgYm9vbCBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCktPmlzRW5hYmxlZEZvcm1D
b250cm9sKCk7CiB9CiAKLWJvb2wgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojppc1JlYWRPbmx5KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1Db250cm9sRWxlbWVudD4o
KS0+cmVhZE9ubHkoKTsKLX0KLQogV2ViU3RyaW5nIFdlYkZvcm1Db250cm9sRWxlbWVudDo6Zm9y
bUNvbnRyb2xOYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1D
b250cm9sRWxlbWVudD4oKS0+bmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
QWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3Bw
CmluZGV4IGJiMzFhZGJkNWRhYWQ3NjYyMDdkMWE0MDYyMzEzZjZlNmRlZGI2MzguLmIwNzQ4NzFl
MmRjMjJlNmQ1NmM3NDlmYzJhNWYxYjdhYTg0MDI0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5jcHAKQEAgLTI3Myw5ICsyNzMsNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklBTlQqCiAg
ICAgaWYgKCFjaGlsZE9iai0+aXNFbmFibGVkKCkpCiAgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0g
U1RBVEVfU1lTVEVNX1VOQVZBSUxBQkxFOwogCi0gICAgaWYgKGNoaWxkT2JqLT5pc1JlYWRPbmx5
KCkpCi0gICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX1JFQURPTkxZOwotCiAg
ICAgaWYgKGNoaWxkT2JqLT5pc09mZlNjcmVlbigpKQogICAgICAgICBwdlN0YXRlLT5sVmFsIHw9
IFNUQVRFX1NZU1RFTV9PRkZTQ1JFRU47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjM0OWNkMjdlYzEzMTMyOWQ5NjQyZDdkZDBhYWI1ZTRh
ODdiMWRjLi4wMGIyODA3OTIyZTc5Zjc3ZmI3YTIzZjEyMGRjNWZlZDk2YzI1YzE4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTItMTQgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtHVEtdIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3Qg
ZmFpbGVkIGJlY2F1c2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJs
ZSgpCisgICAgICAgIHdhcyBub3QgaW1wbGVtZW50ZWQuIEluIGFkZGl0aW9uLCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNSZWFkT25seSgpCisgICAgICAgIHdhcyBsb29raW5nIHRvIHRoZSB3
aWRnZXQgdG8gZ2V0IGl0cyByZWFkLW9ubHkgc3RhdGUgd2hlbiBpdCBzaG91bGQKKyAgICAgICAg
cmVwb3J0IHRoZSB2YWx1ZSBvZiBhcmlhLXJlYWRvbmx5IHdoZW4gdGhhdCBwcm9wZXJ0eSBoYXMg
YmVlbiBzZXQuCisgICAgICAgIEluIG9yZGVyIHRvIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY2hlY2tz
LCB0aGUgZGVjaXNpb24gd2FzIG1hZGUgdG8gcmVtb3ZlCisgICAgICAgIGlzUmVhZE9ubHkoKSBh
bmQganVzdCB1c2UgY2FuU2V0QXR0cmlidXRlVmFsdWUoKSwgbW92aW5nIGFsbCB0aGUgbG9naWMK
KyAgICAgICAgaW50byBBWE5vZGVPYmplY3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKTogSW1wbGVtZW50ZWQKKwogMjAxMi0xMi0x
MyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIC0tcHJvZmls
ZXI9UFJPRklMRVIgb3B0aW9uIHRvIHJ1bi1wZXJmLXRlc3RzIHRvIGFsbG93IHNwZWNpZnlpbmcg
d2hpY2ggcHJvZmlsZXIgdG8gdXNlIG9uIHBsYXRmb3JtcyB3aXRoIG1hbnkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDE3
MDY0ODEyYzM2YTVlZDkxMDEwM2ZkNDMwMGYyNTg0ZGZmMWFmOTkuLjdjYzdjNGI5ZmVlN2Y2OTY2
NTEwZDY4MjBhYTYzOTg5MjdhMzUwNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcApAQCAtMzk1LDcgKzM5NSw2IEBAIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdCYgb2JqCiAgICAgYmluZFByb3BlcnR5KCJpc0NvbGxhcHNlZCIsICZBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKTsKICAgICBiaW5k
UHJvcGVydHkoImhhc1BvcHVwIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwR2V0
dGVyQ2FsbGJhY2spOwogICAgIGJpbmRQcm9wZXJ0eSgiaXNWYWxpZCIsICZBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1ZhbGlkR2V0dGVyQ2FsbGJhY2spOwotICAgIGJpbmRQcm9wZXJ0eSgiaXNS
ZWFkT25seSIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlYWRPbmx5R2V0dGVyQ2FsbGJh
Y2spOwogICAgIGJpbmRQcm9wZXJ0eSgib3JpZW50YXRpb24iLCAmQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6b3JpZW50YXRpb25HZXR0ZXJDYWxsYmFjayk7CiAKICAgICAvLwpAQCAtNjM4LDExICs2
MzcsNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmFsaWRHZXR0ZXJDYWxsYmFj
ayhDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgcmVzdWx0LT5zZXQoIWFjY2Vzc2liaWxpdHlPYmpl
Y3QoKS5pc0RldGFjaGVkKCkpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
UmVhZE9ubHlHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0
LT5zZXQoYWNjZXNzaWJpbGl0eU9iamVjdCgpLmlzUmVhZE9ubHkoKSk7Ci19Ci0KIHZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb25HZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50
KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXQoZ2V0T3JpZW50YXRpb24oYWNjZXNzaWJpbGl0
eU9iamVjdCgpKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRDaHJvbWl1bS5oCmluZGV4IDQxNTg2ZGI4NmJmZTRhMzI3YWYzZDM0OWM5OGMyMzY4NDZkZTUx
MWYuLmMyYjIxMzkyM2I5YjM0YzdlNmExZjJhMjFlNmM4YTEwYjNlMWUwNTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oCkBAIC05Miw3
ICs5Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpc0NvbGxhcHNlZEdldHRlckNhbGxiYWNrKENw
cFZhcmlhbnQqKTsKICAgICB2b2lkIGhhc1BvcHVwR2V0dGVyQ2FsbGJhY2soQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgaXNWYWxpZEdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKLSAgICB2b2lk
IGlzUmVhZE9ubHlHZXR0ZXJDYWxsYmFjayhDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBvcmllbnRh
dGlvbkdldHRlckNhbGxiYWNrKENwcFZhcmlhbnQqKTsKIAogICAgIC8vIEJvdW5kIG1ldGhvZHMu
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEd0ay5jcHAKaW5kZXggNWMxODgzMmZjZjcxMDE1ZThiMGEyZDRjNWRlMWY1NjhkNDUzMDM3
Mi4uMWM2NzIwYzJjNmM4Yzg1NWM0NDAwNzNhOWI2MTc2NWY5MjFhMTE5ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNw
cApAQCAtODM2LDggKzgzNiwxMiBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xB
dHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiAKIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiB7
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBJbiBB
dGssIHRoaW5ncyBhcmUgZ2VuZXJhbGx5IHNldHRhYmxlIGlmIHRoZXkgYXJlIG5vdCByZWFkLW9u
bHkuIEF0IHRoZQorICAgIC8vIG1vbWVudCwgd2UgaWRlbnRpZnkgcmVhZCBvbmx5IHZpYSBBVEtf
U1RBVEVfRURJVEFCTEUuIEluIHRoZSBmdXR1cmUsCisgICAgLy8gb25jZSBpdCBpcyBpbXBsZW1l
bnRlZCwgQVRLX1NUQVRFX1JFQURfT05MWSBzaG91bGQgYWxzbyBiZSBjaGVja2VkOgorICAgIC8v
IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU1OTgKKworICAg
IHJldHVybiBjaGVja0VsZW1lbnRTdGF0ZShtX2VsZW1lbnQsIEFUS19TVEFURV9FRElUQUJMRSk7
CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQo
SlNTdHJpbmdSZWYgYXR0cmlidXRlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YWMzZWQwMDQ1NTI1ZDg4NTM1ZTUxMjZj
MmU2YzE1OWI0NDgzNzQuLjU3NzMxZDhjNTUwOGJkMTc1ZmI1ODVjNDRkYWU2ZjhjNzA5ZTEzNmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0xNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRv
bmx5Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgdGVzdCBmYWlsZWQgYmVjYXVzZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0F0dHJpYnV0ZVNldHRhYmxlKCkKKyAgICAgICAgd2FzIG5vdCBpbXBsZW1lbnRlZC4gSW4g
YWRkaXRpb24sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCkKKyAgICAgICAg
d2FzIGxvb2tpbmcgdG8gdGhlIHdpZGdldCB0byBnZXQgaXRzIHJlYWQtb25seSBzdGF0ZSB3aGVu
IGl0IHNob3VsZAorICAgICAgICByZXBvcnQgdGhlIHZhbHVlIG9mIGFyaWEtcmVhZG9ubHkgd2hl
biB0aGF0IHByb3BlcnR5IGhhcyBiZWVuIHNldC4KKyAgICAgICAgSW4gb3JkZXIgdG8gZWxpbWlu
YXRlIGR1cGxpY2F0ZSBjaGVja3MsIHRoZSBkZWNpc2lvbiB3YXMgbWFkZSB0byByZW1vdmUKKyAg
ICAgICAgaXNSZWFkT25seSgpIGFuZCBqdXN0IHVzZSBjYW5TZXRBdHRyaWJ1dGVWYWx1ZSgpLCBt
b3ZpbmcgYWxsIHRoZSBsb2dpYworICAgICAgICBpbnRvIEFYTm9kZU9iamVjdC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXBwZWQgcHJldmlvdXNseS1z
a2lwcGVkIHRlc3QuCisKIDIwMTItMTItMTQgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bSBnYXJkZW5pbmddIFNldCBleHBlY3Rh
dGlvbnMgZm9yIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NvbXBvc2l0ZWRzY3JvbGxp
bmcvc2Nyb2xsYmFycy9zY3JvbGxiYXItZHJhZy10aHVtYi13aXRoLWxhcmdlLWNvbnRlbnQtZXhw
ZWN0ZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNj
ZXNzaWJpbGl0eS9yZWFkb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3JlYWRvbmx5LWV4cGVjdGVkLnR4dAppbmRleCA4NTE2NDhl
NzJiYmNjYjA2Y2ZjNzhmZDdmMzU4MDVjZjcxMzFkMmU4Li4xOGJjN2ZmZTk3YzIyYjNlYjhhMjBk
MjhlYzFmNmM0M2JlMmNhOGI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9hY2Nlc3NpYmlsaXR5L3JlYWRvbmx5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3JlYWRvbmx5LWV4cGVjdGVkLnR4dApA
QCAtMTMsNzUgKzEzLDc1IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGxpbmsxCiBQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxlbWVu
dC5pc1JlYWRPbmx5IGlzIHRydWUKK1BBU1MgYXhFbGVtZW50LmlzQXR0cmlidXRlU2V0dGFibGUg
aXMgZmFsc2UKIAogYnV0dG9uMQogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1l
bnQgaXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQuaXNSZWFkT25seSBpcyB0cnVlCitQQVNTIGF4RWxl
bWVudC5pc0F0dHJpYnV0ZVNldHRhYmxlIGlzIGZhbHNlCiAKIHRleHQxCiBQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudC5pc1JlYWRP
bmx5IGlzIGZhbHNlCitQQVNTIGF4RWxlbWVudC5pc0F0dHJpYnV0ZVNldHRhYmxlIGlzIHRydWUK
IAogY2hlY2tib3gxCiBQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0
cnVlCi1QQVNTIGF4RWxlbWVudC5pc1JlYWRPbmx5IGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Lmlz
QXR0cmlidXRlU2V0dGFibGUgaXMgZmFsc2UKIAogbnVtYmVyMQogUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50ID09IGVsZW1lbnQgaXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQuaXNSZWFkT25seSBp
cyBmYWxzZQorUEFTUyBheEVsZW1lbnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBpcyB0cnVlCiAKIHJh
ZGlvMQogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQgaXMgdHJ1ZQotUEFT
UyBheEVsZW1lbnQuaXNSZWFkT25seSBpcyB0cnVlCitQQVNTIGF4RWxlbWVudC5pc0F0dHJpYnV0
ZVNldHRhYmxlIGlzIGZhbHNlCiAKIHNsaWRlcjEKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCA9PSBlbGVtZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50LmlzUmVhZE9ubHkgaXMgdHJ1ZQor
UEFTUyBheEVsZW1lbnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBpcyBmYWxzZQogCiBzdWJtaXQxCiBQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxl
bWVudC5pc1JlYWRPbmx5IGlzIHRydWUKK1BBU1MgYXhFbGVtZW50LmlzQXR0cmlidXRlU2V0dGFi
bGUgaXMgZmFsc2UKIAogY29tYm9ib3gxCiBQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0g
ZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudC5pc1JlYWRPbmx5IGlzIHRydWUKK1BBU1Mg
YXhFbGVtZW50LmlzQXR0cmlidXRlU2V0dGFibGUgaXMgZmFsc2UKIAogbGlzdGJveDEKIFBBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50
LmlzUmVhZE9ubHkgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBp
cyBmYWxzZQogCiB0ZXh0YXJlYTEKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVt
ZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50LmlzUmVhZE9ubHkgaXMgZmFsc2UKK1BBU1MgYXhF
bGVtZW50LmlzQXR0cmlidXRlU2V0dGFibGUgaXMgdHJ1ZQogCiBmb2N1c2FibGUxCiBQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudC5p
c1JlYWRPbmx5IGlzIHRydWUKK1BBU1MgYXhFbGVtZW50LmlzQXR0cmlidXRlU2V0dGFibGUgaXMg
ZmFsc2UKIAogaGVhZGluZzEKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50
IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50LmlzUmVhZE9ubHkgaXMgdHJ1ZQorUEFTUyBheEVsZW1l
bnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBpcyBmYWxzZQogCiBhcmlhLWJ1dHRvbjEKIFBBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50Lmlz
UmVhZE9ubHkgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBpcyBm
YWxzZQogCiBhcmlhLXRvZ2dsZWJ1dHRvbjEKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9
PSBlbGVtZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50LmlzUmVhZE9ubHkgaXMgdHJ1ZQorUEFT
UyBheEVsZW1lbnQuaXNBdHRyaWJ1dGVTZXR0YWJsZSBpcyBmYWxzZQogCiBhcmlhLWxpbmsxCiBQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxl
bWVudC5pc1JlYWRPbmx5IGlzIHRydWUKK1BBU1MgYXhFbGVtZW50LmlzQXR0cmlidXRlU2V0dGFi
bGUgaXMgZmFsc2UKIAogY29udGVudGVkaXRhYmxlX3Jvb3QxCiBQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQgPT0gZWxlbWVudCBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudC5pc1JlYWRPbmx5IGlz
IGZhbHNlCitQQVNTIGF4RWxlbWVudC5pc0F0dHJpYnV0ZVNldHRhYmxlIGlzIHRydWUKIAogY29u
dGVudGVkaXRhYmxlX2J1dHRvbjEKIFBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVt
ZW50IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50LmlzUmVhZE9ubHkgaXMgZmFsc2UKK1BBU1MgYXhF
bGVtZW50LmlzQXR0cmlidXRlU2V0dGFibGUgaXMgdHJ1ZQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2FjY2Vzc2liaWxpdHkvcmVhZG9ubHkuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvcmVhZG9ubHkuaHRtbAppbmRleCBiMGMwY2JlZjZhNzk4MWUwODQ3
MjA0NjYwMTI2NTYxOWNhOGVkMGNjLi4zZjJjMDFiMWM3YTc5YzU5ODgzY2QyNmVmZGM3NzcwMDIy
OGMwY2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L3JlYWRvbmx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
YWNjZXNzaWJpbGl0eS9yZWFkb25seS5odG1sCkBAIC00MCw3ICs0MCw3IEBAIGlmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICAgICAg
c2hvdWxkQmUoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudCIsICJ0cnVlIik7CiAg
ICAgICAgIHdpbmRvdy5heEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsKIAotICAgICAgICBzaG91bGRCZSgiYXhFbGVtZW50LmlzUmVhZE9ubHkiLCAiIiAr
IGV4cGVjdGVkX3JlYWRvbmx5KTsKKyAgICAgICAgc2hvdWxkQmUoImF4RWxlbWVudC5pc0F0dHJp
YnV0ZVNldHRhYmxlIiwgIiIgKyAhZXhwZWN0ZWRfcmVhZG9ubHkpOwogICAgICAgICBkZWJ1Zygi
Iik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDQwNmI1YWVkYzZmMzlhMTY2M2IyNDA0ZjkzMWZmYWI5ZmIyZTJlODcuLjE1NTBlZmMxYjc0
ZmQ3NjE5OTg4MjNiNmRmZWU4M2Q5MDIxN2ZjZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03NjMsNyArNzYzLDYgQEAgd2Via2l0Lm9yZy9iLzc5NzU3
IGZhc3Qvc2VsZWN0b3JzL3NlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUuaHRtbCBbIEltYWdlT25s
eUZhaWwKIHdlYmtpdC5vcmcvYi85ODM1MyBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXdpdGgt
ZWxlbWVudHMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzU0IGFjY2Vzc2liaWxp
dHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvOTgzNTUgYWNjZXNzaWJpbGl0eS9hcmlhLWxpbmstc3VwcG9ydHMtcHJlc3MuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk4MzU3IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFk
b25seS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTggYWNjZXNzaWJpbGl0eS9h
cmlhLXNjcm9sbGJhci1yb2xlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM1OSBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi85ODM2MCBhY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwgWyBGYWls
dXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278413</attachid>
            <date>2016-05-09 11:21:12 -0700</date>
            <delta_ts>2016-05-09 14:04:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20160509142158.patch</filename>
            <type>text/plain</type>
            <size>27165</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk0NDE4ZGI3ZTVhMGUz
MzQ4ZWNmYmE5ZjUyN2QwYzg3NzZmNzMzNi4uMjI5MTliZTIwZTczZWFlOTJkZGQ4ZTFhY2FlMWZk
NTZkYTc5ODgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTA1LTA5ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBVEtfU1RBVEVfUkVB
RF9PTkxZIGFuZCBleHBvc2UgdGhlIHZhbHVlIG9mIGFyaWEtcmVhZG9ubHkKKyAgICAgICAgYXMg
YW4gQXRrT2JqZWN0IGF0dHJpYnV0ZS4gSW4gb3JkZXIgdG8gZWxpbWluYXRlIGR1cGxpY2F0ZSBj
aGVja3MsIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljIGludG8KKyAgICAgICAgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuIEFkZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFS
ZWFkT25seSgpIHNvCisgICAgICAgIHRoYXQgd2UgY2FuIGV4cGxpY2l0bHkgZXhwb3NlIHRoZSBp
bXBsaWNpdCB2YWx1ZSBmb3IgYXJpYS1yZWFkb25seSBvbiByb2xlcworICAgICAgICB3aGljaCBz
dXBwb3J0IHRoaXMgcHJvcGVydHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gVGhl
IHByZXZpb3VzbHktZmFpbGluZyB0ZXN0IGlzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHkpOiBEZWxldGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUmVhZE9ubHkpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVJlYWRPbmx5VmFsdWUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSk6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNSZWFkT25seSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5T
ZXRWYWx1ZUF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0
Rm9yQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdl
dEF0dHJpYnV0ZXMpOgorICAgICAgICAoc2V0QXRrU3RhdGVTZXRGcm9tQ29yZU9iamVjdCk6Cisg
ICAgICAgIChnZXRJbnRlcmZhY2VNYXNrRnJvbU9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpidWlsZE9iamVjdEZvckFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKToKKwogMjAxNi0wNS0w
NyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMTk2MjIyKTogW0FYXVtHVEtdIGFjY2Vzc2liaWxpdHkvZ3RrL2NhcmV0LW9mZnNldHMu
aHRtbCBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYjE0YjA0Mzc4MDE2ODA0YTNiYjQwODdi
ZDZiMzdkZmFmZWFlN2IwYy4uMmFjZDdhMzA1ZjI2ODM4NWNhODZiZGYxZTYyMWU3ZWQxZmU2N2Uw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA1LTA5ICBKb2FubWFy
aWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3NpYmls
aXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgQWNjZXNzaWJpbGl0eU5vZGU6OmNhblNldFZh
bHVlQXR0cmlidXRlKCkgdG8gZGV0ZXJtaW5lIGlmIFNUQVRFX1NZU1RFTV9SRUFET05MWQorICAg
ICAgICBzaG91bGQgYmUgYWRkZWQuCisKKyAgICAgICAgKiBBY2Nlc3NpYmxlQmFzZS5jcHA6Cisg
ICAgICAgIChBY2Nlc3NpYmxlQmFzZTo6c3RhdGUpOgorCiAyMDE2LTA1LTA2ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEhpdFRlc3RSZXF1
ZXN0IERpc2FsbG93U2hhZG93Q29udGVudCB0byBEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZTdhYzgxYTM2Mjc1MWUwOGQ1MTg0OGIzMGNmNmExNmVi
MGQyMTQ3My4uNmMyNDkwNGI0NDllZGNlZjY3Mzk1YTQ1ZmM4YmU4MmM1ZGMxNzc1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKQEAgLTczOSwyNCArNzM5LDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAogICAgIHJldHVybiBub2RlKCkgJiYgbm9k
ZSgpLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykgJiYgZG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+
KCpub2RlKCkpLm11bHRpcGxlKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmlzUmVhZE9ubHkoKSBjb25zdAotewotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0g
ICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpczxIVE1MVGV4
dEFyZWFFbGVtZW50Pigqbm9kZSkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MVGV4dEFy
ZWFFbGVtZW50Pigqbm9kZSkuaXNSZWFkT25seSgpOwotCi0gICAgaWYgKGlzPEhUTUxJbnB1dEVs
ZW1lbnQ+KCpub2RlKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9IGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKTsKLSAgICAgICAgaWYgKGlucHV0LmlzVGV4dEZp
ZWxkKCkpCi0gICAgICAgICAgICByZXR1cm4gaW5wdXQuaXNSZWFkT25seSgpOwotICAgIH0KLQot
ICAgIHJldHVybiAhbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpOwotfQotCiBib29sIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojppc1JlcXVpcmVkKCkgY29uc3QKIHsKICAgICAvLyBFeHBsaWNpdCBh
cmlhLXJlcXVpcmVkIHZhbHVlcyBzaG91bGQgdHJ1bXAgbmF0aXZlIHJlcXVpcmVkIGF0dHJpYnV0
ZXMuCkBAIC0xOTc1LDYgKzE5NTcsNTAgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Y2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50LnN1cHBvcnRz
Rm9jdXMoKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVB
dHRyaWJ1dGUoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUaGUgaG9zdC1sYW5n
dWFnZSByZWFkb25seSBhdHRyaWJ1dGUgdHJ1bXBzIGFyaWEtcmVhZG9ubHkuCisgICAgaWYgKGlz
PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCpub2RlKSkKKyAgICAgICAgcmV0dXJuICFkb3duY2FzdDxI
VE1MVGV4dEFyZWFFbGVtZW50Pigqbm9kZSkuaXNSZWFkT25seSgpOworICAgIGlmIChpczxIVE1M
SW5wdXRFbGVtZW50Pigqbm9kZSkpIHsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQg
PSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7CisgICAgICAgIGlmIChpbnB1dC5p
c1RleHRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuICFpbnB1dC5pc1JlYWRPbmx5KCk7Cisg
ICAgfQorCisgICAgU3RyaW5nIHJlYWRPbmx5ID0gYXJpYVJlYWRPbmx5VmFsdWUoKTsKKyAgICBp
ZiAoIXJlYWRPbmx5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJlYWRPbmx5ID09ICJ0cnVl
IiA/IGZhbHNlIDogdHJ1ZTsKKworICAgIGlmIChpc05vbk5hdGl2ZVRleHRDb250cm9sKCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGlzTWV0ZXIoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1dlYkFyZWEoKSkgeworICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChIVE1MRWxlbWVu
dCogYm9keSA9IGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpKSB7CisgICAgICAgICAgICBpZiAo
Ym9keS0+aGFzRWRpdGFibGVTdHlsZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5oYXNFZGl0YWJsZVN0eWxlKCk7
CisgICAgfQorCisgICAgcmV0dXJuIG5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKTsKK30KKwogQWNj
ZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFyaWFSb2xl
QXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFSb2xlID0g
Z2V0QXR0cmlidXRlKHJvbGVBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAwNTllZThiMDYxYmZkMjYw
ODRhYTE4NGQ4OWViZWRiNTNkZDliNjU0Li42M2NjN2UwMmE3NjIyYWU3MGI3ZjljNTQ4Y2I5MWYw
MTYwYjAwZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC05Nyw3ICs5Nyw2IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNJbmRldGVybWluYXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ByZXNzZWQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzUmVxdWly
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzUmVxdWlyZWRBdHRyaWJ1dGUo
KSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTEwLDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICBib29s
IGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGhlYWRpbmdM
ZXZlbCgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgYm9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgp
IGNvbnN0IG92ZXJyaWRlOworCiAgICAgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24oKSBjb25zdCBv
dmVycmlkZTsKICAgICBmbG9hdCB2YWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
ZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggODQz
ZjQxZWQxMmJkMDdmYWI1NDBkM2IzYTJjZTgwMzUyMDJjYzEzNC4uZDZkMDVjZTMyODEyZjVkZTJl
OTdkMmY3NzAxNTZkYTI2ZWQ2OTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xNTYxLDYgKzE1NjEsMzcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoYXNDb250ZW50RWRpdGFibGVBdHRyaWJ1dGVTZXQo
KSBjb25zdAogICAgIHJldHVybiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZWxl
bWVudCgpKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFSZWFk
T25seSgpIGNvbnN0Cit7CisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgp
OworCisgICAgcmV0dXJuIHJvbGUgPT0gQ2hlY2tCb3hSb2xlCisgICAgICAgIHx8IHJvbGUgPT0g
Q29sdW1uSGVhZGVyUm9sZQorICAgICAgICB8fCByb2xlID09IENvbWJvQm94Um9sZQorICAgICAg
ICB8fCByb2xlID09IEdyaWRSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gR3JpZENlbGxSb2xlCisg
ICAgICAgIHx8IHJvbGUgPT0gTGlzdEJveFJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBNZW51SXRl
bUNoZWNrYm94Um9sZQorICAgICAgICB8fCByb2xlID09IE1lbnVJdGVtUmFkaW9Sb2xlCisgICAg
ICAgIHx8IHJvbGUgPT0gUmFkaW9Hcm91cFJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBSb3dIZWFk
ZXJSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gU2VhcmNoRmllbGRSb2xlCisgICAgICAgIHx8IHJv
bGUgPT0gU2xpZGVyUm9sZQorICAgICAgICB8fCByb2xlID09IFNwaW5CdXR0b25Sb2xlCisgICAg
ICAgIHx8IHJvbGUgPT0gU3dpdGNoUm9sZQorICAgICAgICB8fCByb2xlID09IFRleHRGaWVsZFJv
bGUKKyAgICAgICAgfHwgcm9sZSA9PSBUcmVlR3JpZFJvbGUKKyAgICAgICAgfHwgaXNQYXNzd29y
ZEZpZWxkKCk7Cit9CisKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUmVhZE9ubHlW
YWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNBdHRyaWJ1dGUoYXJpYV9yZWFkb25seUF0dHIp
KQorICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSAmJiBz
dXBwb3J0c0FSSUFSZWFkT25seSgpID8gImZhbHNlIiA6IFN0cmluZygpOworCisgICAgcmV0dXJu
IFN0cmluZyhnZXRBdHRyaWJ1dGUoYXJpYV9yZWFkb25seUF0dHIpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbnRlbnRFZGl0YWJs
ZUF0dHJpYnV0ZUlzRW5hYmxlZChFbGVtZW50KiBlbGVtZW50KQogewogICAgIGlmICghZWxlbWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKaW5kZXggYzJlYzRkYzcxNzE3NWFjMTdlZmY2MjJjMzkzODgyYWM2NTRmMmMxZi4uMTQ4
NDBmMzYyZWI1MzI0NjNhNzY5MTU2Njc1Zjc1YjM5ZDk1M2YyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTU2OSw3ICs1
NjksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTXVsdGlTZWxlY3RhYmxlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KQEAgLTkyMyw2ICs5MjIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgbGl2
ZVJlZ2lvblN0YXR1c0lzRW5hYmxlZChjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICBzdGF0aWMg
Ym9vbCBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoRWxlbWVudCopOwogICAgIGJv
b2wgaGFzQ29udGVudEVkaXRhYmxlQXR0cmlidXRlU2V0KCkgY29uc3Q7CisKKyAgICBib29sIHN1
cHBvcnRzQVJJQVJlYWRPbmx5KCkgY29uc3Q7CisgICAgU3RyaW5nIGFyaWFSZWFkT25seVZhbHVl
KCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBzdXBwb3J0c0FSSUFBdHRyaWJ1dGVzKCkgY29uc3Q7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAxNGFkZjk2ZGU4NzBmZjI3MjhiNjViOTYw
NDZhODM5YjliNDhhYTEzLi4xNDFjMzNjZTM5MTc3Y2I5NjQyOGRiY2VmMGQ1NjU2NWRlYjhiMjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTUyMiwyMiArNTIyLDYgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ZpbGVVcGxvYWRCdXR0b24oKSBjb25zdAogICAgIAogICAg
IHJldHVybiBmYWxzZTsKIH0KLSAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aXNSZWFkT25seSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fcmVuZGVyZXIpOwotICAgIAotICAg
IGlmIChpc1dlYkFyZWEoKSkgewotICAgICAgICBpZiAoSFRNTEVsZW1lbnQqIGJvZHkgPSBtX3Jl
bmRlcmVyLT5kb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCkpIHsKLSAgICAgICAgICAgIGlmIChi
b2R5LT5oYXNFZGl0YWJsZVN0eWxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuICFtX3JlbmRlcmVyLT5kb2N1bWVudCgpLmhhc0Vk
aXRhYmxlU3R5bGUoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmlzUmVhZE9ubHkoKTsKLX0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpp
c09mZlNjcmVlbigpIGNvbnN0CiB7CkBAIC05MjIsNyArOTA2LDcgQEAgSW50UG9pbnQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6Y2xpY2tQb2ludCgpCiAgICAgICAgIHJldHVybiBjaGlsZHJl
bigpWzBdLT5jbGlja1BvaW50KCk7CiAKICAgICAvLyB1c2UgdGhlIGRlZmF1bHQgcG9zaXRpb24g
dW5sZXNzIHRoaXMgaXMgYW4gZWRpdGFibGUgd2ViIGFyZWEsIGluIHdoaWNoIGNhc2Ugd2UgdXNl
IHRoZSBzZWxlY3Rpb24gYm91bmRzLgotICAgIGlmICghaXNXZWJBcmVhKCkgfHwgaXNSZWFkT25s
eSgpKQorICAgIGlmICghaXNXZWJBcmVhKCkgfHwgIWNhblNldFZhbHVlQXR0cmlidXRlKCkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjbGlja1BvaW50KCk7CiAgICAgCiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNTZWxlY3Rpb24gPSBzZWxlY3Rpb24oKTsKQEAgLTI4NzYs
MzMgKzI4NjAsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNhblNldEV4cGFu
ZGVkQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoYXJpYUV4cGFuZGVkLCAidHJ1ZSIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGFyaWFFeHBhbmRlZCwgImZhbHNlIik7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdAotewotICAgIC8vIEluIHRoZSBl
dmVudCBvZiBhIChCb29sZWFuKUByZWFkb25seSBhbmQgKFRydWUvRmFsc2UvVW5kZWZpbmVkKUBh
cmlhLXJlYWRvbmx5Ci0gICAgLy8gdmFsdWUgbWlzbWF0Y2gsIHRoZSBob3N0IGxhbmd1YWdlIG5h
dGl2ZSBhdHRyaWJ1dGUgdmFsdWUgd2lucy4gICAgCi0gICAgaWYgKGlzTmF0aXZlVGV4dENvbnRy
b2woKSkKLSAgICAgICAgcmV0dXJuICFpc1JlYWRPbmx5KCk7Ci0KLSAgICBpZiAoaXNNZXRlcigp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvJiByZWFkT25seSA9IGdldEF0dHJp
YnV0ZShhcmlhX3JlYWRvbmx5QXR0cik7Ci0gICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHJlYWRPbmx5LCAidHJ1ZSIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlYWRPbmx5LCAiZmFsc2UiKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoaXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGlzU2xp
ZGVyKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKGlzVGV4dENvbnRyb2woKSAm
JiAhaXNOYXRpdmVUZXh0Q29udHJvbCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8v
IEFueSBub2RlIGNvdWxkIGJlIGNvbnRlbnRlZGl0YWJsZSwgc28gaXNSZWFkT25seSBzaG91bGQg
YmUgcmVsaWVkIHVwb24KLSAgICAvLyBmb3IgdGhpcyBpbmZvcm1hdGlvbiBmb3IgYWxsIGVsZW1l
bnRzLgotICAgIHJldHVybiAhaXNSZWFkT25seSgpOwotfQotCiBib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmNhblNldFRleHRSYW5nZUF0dHJpYnV0ZXMoKSBjb25zdAogewogICAgIHJl
dHVybiBpc1RleHRDb250cm9sKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDQwNjE5OGEwMDBjOTY0
ZDg1YWIxMzIyNDkzOGUxMGJmYWJiNjgzNjcuLjVlMmYzNjM1YzA0ZTc5ZDY1NDUzMGEwMDYzZGZk
NThiOGQ4ZGNmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC03MCw3ICs3MCw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzRm9jdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNMb2FkZWQo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Vudmlz
aXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNWaXNpdGVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0xpbmtlZCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODMsNyArODIsNiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNVbmRlcmxpbmUoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IGJvb2wgY2FuU2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblNl
dEV4cGFuZGVkQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldEFjY2Vz
c2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZUludGVyZmFjZVRleHQuY3BwCmluZGV4IDczNDkyMmJmMDAyODkyOWFiNTFjMGRjY2E5ZTE0MDli
NmIzOTUwYzQuLjY1ODViOGFlOTM5ODc0ZjhjZmE2NjNiODY4MzdjNGE3N2M1MTAzMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJ
bnRlcmZhY2VUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9X
ZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0
aWMgQXRrQXR0cmlidXRlU2V0KiBnZXRBdHRyaWJ1dGVTZXRGb3JBY2Nlc3NpYmlsaXR5T2JqZWN0
KGNvbnN0IEFjY2Vzc2liaWxpdAogCiAgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQo
cmVzdWx0LCBhdGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9JTlZJU0lC
TEUpLCAoc3R5bGUtPnZpc2liaWxpdHkoKSA9PSBISURERU4pID8gInRydWUiIDogImZhbHNlIik7
CiAKLSAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0
dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VESVRBQkxFKSwgb2JqZWN0LT5pc1JlYWRP
bmx5KCkgPyAiZmFsc2UiIDogInRydWUiKTsKKyAgICByZXN1bHQgPSBhZGRUb0F0a0F0dHJpYnV0
ZVNldChyZXN1bHQsIGF0a190ZXh0X2F0dHJpYnV0ZV9nZXRfbmFtZShBVEtfVEVYVF9BVFRSX0VE
SVRBQkxFKSwgb2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpID8gInRydWUiIDogImZhbHNl
Iik7CiAKICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBvYmplY3QtPmxhbmd1YWdlKCk7CiAgICAgaWYg
KCFsYW5ndWFnZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXgg
MDA4NDNlYzFmNjg2ODIwMWRhMjk4Nzc3YWQ1YmRkOGVmYjQ2MGY1ZS4uNmJlYmRjZWYwZmNjYzRi
YzBjMTU3OThhMDQyOGE0YWUxY2E1MWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNw
cApAQCAtNDc0LDYgKzQ3NCwxMCBAQCBzdGF0aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nl
c3NpYmxlR2V0QXR0cmlidXRlcyhBdGtPYmplY3QqIG9iamVjdCkKICAgICBpZiAoY29yZU9iamVj
dC0+c3VwcG9ydHNBUklBU2V0U2l6ZSgpKQogICAgICAgICBhdHRyaWJ1dGVTZXQgPSBhZGRUb0F0
a0F0dHJpYnV0ZVNldChhdHRyaWJ1dGVTZXQsICJzZXRzaXplIiwgU3RyaW5nOjpudW1iZXIoY29y
ZU9iamVjdC0+YXJpYVNldFNpemUoKSkudXRmOCgpLmRhdGEoKSk7CiAKKyAgICBTdHJpbmcgaXNS
ZWFkT25seSA9IGNvcmVPYmplY3QtPmFyaWFSZWFkT25seVZhbHVlKCk7CisgICAgaWYgKCFpc1Jl
YWRPbmx5LmlzRW1wdHkoKSkKKyAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1
dGVTZXQoYXR0cmlidXRlU2V0LCAicmVhZG9ubHkiLCBpc1JlYWRPbmx5LnV0ZjgoKS5kYXRhKCkp
OworCiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBXM0MgQ29yZSBBY2Nlc3NpYmlsaXR5IEFQSSBN
YXBwaW5ncyAxLjEsIHNlY3Rpb24gNS40LjEgR2VuZXJhbCBSdWxlczoKICAgICAvLyAiVXNlciBh
Z2VudHMgbXVzdCBleHBvc2UgdGhlIFdBSS1BUklBIHJvbGUgc3RyaW5nIGlmIHRoZSBBUEkgc3Vw
cG9ydHMgYSBtZWNoYW5pc20gdG8gZG8gc28uIgogICAgIC8vIEluIHRoZSBjYXNlIG9mIEFUSywg
dGhlIG1lY2hhbmlzbSB0byBkbyBzbyBpcyBhbiBvYmplY3QgYXR0cmlidXRlIHBhaXIgKHhtbC1y
b2xlczoic3RyaW5nIikuCkBAIC04MDQsMTMgKzgwOCw3IEBAIHN0YXRpYyB2b2lkIHNldEF0a1N0
YXRlU2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRr
U3RhCiAgICAgaWYgKGNvcmVPYmplY3QtPmlzQ2hlY2tlZCgpKQogICAgICAgICBhdGtfc3RhdGVf
c2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX0NIRUNLRUQpOwogCi0gICAgLy8gRklY
TUU6IGlzUmVhZE9ubHkgZG9lcyBub3Qgc2VlbSB0byBkbyB0aGUgcmlnaHQgdGhpbmcgZm9yCi0g
ICAgLy8gY29udHJvbHMsIHNvIGNoZWNrIGV4cGxpY2l0bHkgZm9yIHRoZW0uIEluIGFkZGl0aW9u
LCBiZWNhdXNlCi0gICAgLy8gaXNSZWFkT25seSBpcyBmYWxzZSBmb3IgbGlzdEJveE9wdGlvbnMs
IHdlIG5lZWQgdG8gYWRkIG9uZQotICAgIC8vIG1vcmUgY2hlY2sgc28gdGhhdCB3ZSBkbyBub3Qg
cHJlc2VudCB0aGVtIGFzIGJlaW5nICJlZGl0YWJsZSIuCi0gICAgaWYgKCghY29yZU9iamVjdC0+
aXNSZWFkT25seSgpCi0gICAgICAgIHx8IChjb3JlT2JqZWN0LT5pc0NvbnRyb2woKSAmJiBjb3Jl
T2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKSkKLSAgICAgICAgJiYgIWlzTGlzdEJveE9w
dGlvbikKKyAgICBpZiAoKGNvcmVPYmplY3QtPmlzVGV4dENvbnRyb2woKSB8fCBjb3JlT2JqZWN0
LT5pc05vbk5hdGl2ZVRleHRDb250cm9sKCkpICYmIGNvcmVPYmplY3QtPmNhblNldFZhbHVlQXR0
cmlidXRlKCkpCiAgICAgICAgIGF0a19zdGF0ZV9zZXRfYWRkX3N0YXRlKHN0YXRlU2V0LCBBVEtf
U1RBVEVfRURJVEFCTEUpOwogCiAgICAgLy8gRklYTUU6IFB1dCBib3RoIEVOQUJMRUQgYW5kIFNF
TlNJVElWRSB0b2dldGhlciBoZXJlIGZvciBub3cKQEAgLTg1NSw2ICs4NTMsMTIgQEAgc3RhdGlj
IHZvaWQgc2V0QXRrU3RhdGVTZXRGcm9tQ29yZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBj
b3JlT2JqZWN0LCBBdGtTdGEKICAgICBpZiAoY29yZU9iamVjdC0+aXNQcmVzc2VkKCkpCiAgICAg
ICAgIGF0a19zdGF0ZV9zZXRfYWRkX3N0YXRlKHN0YXRlU2V0LCBBVEtfU1RBVEVfUFJFU1NFRCk7
CiAKKyNpZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLDE1LDMpCisgICAgaWYgKCghY29yZU9iamVjdC0+
Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKQorICAgICAgICAmJiAoY29yZU9iamVjdC0+c3VwcG9ydHNB
UklBUmVhZE9ubHkoKSB8fCBjb3JlT2JqZWN0LT5oYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjphcmlh
X3JlYWRvbmx5QXR0cikpKSkKKyAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVT
ZXQsIEFUS19TVEFURV9SRUFEX09OTFkpOworI2VuZGlmCisKICAgICBpZiAoY29yZU9iamVjdC0+
aXNSZXF1aXJlZCgpKQogICAgICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwg
QVRLX1NUQVRFX1JFUVVJUkVEKTsKIApAQCAtMTE0NCw5ICsxMTQ4LDkgQEAgc3RhdGljIGd1aW50
MTYgZ2V0SW50ZXJmYWNlTWFza0Zyb21PYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9i
amVjdCkKICAgICAvLyBUZXh0LCBFZGl0YWJsZSBUZXh0ICYgSHlwZXJ0ZXh0CiAgICAgaWYgKHJv
bGUgPT0gU3RhdGljVGV4dFJvbGUgfHwgY29yZU9iamVjdC0+aXNNZW51TGlzdE9wdGlvbigpKQog
ICAgICAgICBpbnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJVGV4dDsKLSAgICBlbHNlIGlmIChjb3Jl
T2JqZWN0LT5pc1RleHRDb250cm9sKCkpIHsKKyAgICBlbHNlIGlmIChjb3JlT2JqZWN0LT5pc1Rl
eHRDb250cm9sKCkgfHwgY29yZU9iamVjdC0+aXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKSB7CiAg
ICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlUZXh0OwotICAgICAgICBpZiAoIWNvcmVP
YmplY3QtPmlzUmVhZE9ubHkoKSkKKyAgICAgICAgaWYgKGNvcmVPYmplY3QtPmNhblNldFZhbHVl
QXR0cmlidXRlKCkpCiAgICAgICAgICAgICBpbnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJRWRpdGFi
bGVUZXh0OwogICAgIH0gZWxzZSBpZiAoIWNvcmVPYmplY3QtPmlzV2ViQXJlYSgpKSB7CiAgICAg
ICAgIGlmIChyb2xlICE9IFRhYmxlUm9sZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzgxNDc1YjllM2IxN2E4ZWNjZThhNmQ4NmIw
NmM1YzI2YjI1MjMyNy4uN2U0OGQxMjc5YTUyNmNlMzFmMTNkN2RiZDNhYWNmOTM0Njc1NDMxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBA
IC0xNzI2LDcgKzE3MjYsNyBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nl
c3NpYmlsaXR5UHJvcGVydGllcz4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aQogICAgICAgICAgICAg
ICAgIHByZXNzZWQgPSBheE9iamVjdC0+aXNQcmVzc2VkKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGlmIChheE9iamVjdC0+aXNUZXh0Q29udHJvbCgpKQotICAgICAgICAgICAgICAgIHJl
YWRvbmx5ID0gYXhPYmplY3QtPmlzUmVhZE9ubHkoKTsKKyAgICAgICAgICAgICAgICByZWFkb25s
eSA9ICFheE9iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKTsKIAogICAgICAgICAgICAgc3Vw
cG9ydHNSZXF1aXJlZCA9IGF4T2JqZWN0LT5zdXBwb3J0c1JlcXVpcmVkQXR0cmlidXRlKCk7CiAg
ICAgICAgICAgICBpZiAoc3VwcG9ydHNSZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVC
YXNlLmNwcAppbmRleCA2ZGU2ODNkZWQ1MThiM2YwZTY0MDIxOTg0YTlkZDk4ZTk2YTczNWVkLi45
NDc0MDlmNGUwNzY5MDQzMDlhYzk5YTg0YTBlODQ2NmQxNTZlM2Q2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
QWNjZXNzaWJsZUJhc2UuY3BwCkBAIC00ODgsNyArNDg4LDcgQEAgbG9uZyBBY2Nlc3NpYmxlQmFz
ZTo6c3RhdGUoKSBjb25zdAogICAgIGlmICghbV9vYmplY3QtPmlzRW5hYmxlZCgpKQogICAgICAg
ICBzdGF0ZSB8PSBTVEFURV9TWVNURU1fVU5BVkFJTEFCTEU7CiAKLSAgICBpZiAobV9vYmplY3Qt
PmlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIW1fb2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgp
KQogICAgICAgICBzdGF0ZSB8PSBTVEFURV9TWVNURU1fUkVBRE9OTFk7CiAKICAgICBpZiAobV9v
YmplY3QtPmlzT2ZmU2NyZWVuKCkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMjY3ZmJiNjE3YTg4MzQzZTg3MmRmNzAxNTNjZTlhYjg4MTExNjg4
Ni4uZDc1OWFmOTBjNWJjYzdlODU4MDliOWQ1ZGU3ZDU4NzM3YzU2NDFkYSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDE2LTA1LTA5ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjaGVja3MgdG8g
aXNBdHRyaWJ1dGVTZXR0YWJsZSgpIGZvciBBVEtfU1RBVEVfUkVBRF9PTkxZIGFuZCB0aGUgJ3Jl
YWRvbmx5JworICAgICAgICBBdGtPYmplY3QgYXR0cmlidXRlLiBCdW1wIHRoZSBtaW5pbXVtIHZl
cnNpb24gb2YgYXQtc3BpMi1jb3JlIGFuZCBhdC1zcGkyLWF0aworICAgICAgICB0byAyLjE1LjQg
KGVhcmxpZXN0IHZlcnNpb24gdGhhdCBzdXBwb3J0cyBTVEFURV9SRUFEX09OTFkpLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
QXR0cmlidXRlU2V0dGFibGUpOgorICAgICAgICAqIGd0ay9qaGJ1aWxkLm1vZHVsZXM6CisKIDIw
MTYtMDUtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgRW5hYmxlIElPU19URVhUX0FVVE9TSVpJTkcgb24gTWFjIGFuZCBtYWtlIGl0IHRlc3RhYmxl
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDFmNTc3
YjE2ZmJmZDNlYzY5ZmI2OTBiM2NmZDVhMTQ5NDA5YzA1NDkuLjNiYTdkYTEyYjMzMDI4YWExMTZi
Mzk5NDIwOGIxNGQ3OWEyYmZhNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRBdGsuY3BwCkBAIC0xMDQ0LDggKzEwNDQsMjQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3RyaW5nIGF0dHJpYnV0ZVN0cmluZyA9IGpzU3RyaW5n
VG9XVEZTdHJpbmcoYXR0cmlidXRlKTsKLSAgICBpZiAoYXR0cmlidXRlU3RyaW5nID09ICJBWFZh
bHVlIikKLSAgICAgICAgcmV0dXJuIGNoZWNrRWxlbWVudFN0YXRlKG1fZWxlbWVudC5nZXQoKSwg
QVRLX1NUQVRFX0VESVRBQkxFKTsKKyAgICBpZiAoYXR0cmlidXRlU3RyaW5nICE9ICJBWFZhbHVl
IikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhpcyBzdGF0ZSBpcyBleHBlY3Rl
ZCB0byBiZSBwcmVzZW50IG9ubHkgZm9yIHRleHQgd2lkZ2V0cyBhbmQgY29udGVudGVkaXRhYmxl
IGVsZW1lbnRzLgorICAgIGlmIChjaGVja0VsZW1lbnRTdGF0ZShtX2VsZW1lbnQuZ2V0KCksIEFU
S19TVEFURV9FRElUQUJMRSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgQVRLX0NIRUNL
X1ZFUlNJT04oMiwxNSwzKQorICAgIC8vIFRoaXMgc3RhdGUgaXMgZXhwZWN0ZWQgdG8gYmUgcHJl
c2VudCBvbmx5IGZvciBjb250cm9scyBhbmQgb25seSBpZiBleHBsaWNpdGx5IHNldC4KKyAgICBp
ZiAoY2hlY2tFbGVtZW50U3RhdGUobV9lbGVtZW50LmdldCgpLCBBVEtfU1RBVEVfUkVBRF9PTkxZ
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICAvLyBXZSBleHBvc2UgYW4g
b2JqZWN0IGF0dHJpYnV0ZSB0byBBVHMgd2hlbiB0aGVyZSBpcyBhbiBhdXRob3ItcHJvdmlkZWQg
QVJJQSBwcm9wZXJ0eQorICAgIC8vIGFuZCBhbHNvIHdoZW4gdGhlcmUgaXMgYSBzdXBwb3J0ZWQg
QVJJQSByb2xlIGJ1dCBubyBhdXRob3ItcHJvdmlkZWQgdmFsdWUuCisgICAgU3RyaW5nIGlzUmVh
ZE9ubHkgPSBnZXRBdHRyaWJ1dGVTZXRWYWx1ZUZvcklkKEFUS19PQkpFQ1QobV9lbGVtZW50Lmdl
dCgpKSwgT2JqZWN0QXR0cmlidXRlVHlwZSwgInJlYWRvbmx5Iik7CisgICAgaWYgKCFpc1JlYWRP
bmx5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGlzUmVhZE9ubHkgPT0gInRydWUiID8gZmFs
c2UgOiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3Rr
L2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggNGVlOTkw
ZmFhMTc3MmMwMjZlOTJhMmIwNDNlZTM1YmE3OTlmOGM2Yi4uNTYxOTA3MjU3MjU1NjAxYmUzZTZm
ZWRiNDhiNmZmMDIxYzU4MGNjYyAxMDA2NDQKLS0tIGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxl
cworKysgYi9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCkBAIC0yOTAsOSArMjkwLDkgQEAKIAog
ICA8YXV0b3Rvb2xzIGlkPSJhdC1zcGkyLWNvcmUiIAogICAgICAgICAgICAgIGF1dG9nZW5hcmdz
PSItLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+Ci0gICAgPGJyYW5jaCBtb2R1bGU9InB1Yi9HTk9N
RS9zb3VyY2VzL2F0LXNwaTItY29yZS8yLjEwL2F0LXNwaTItY29yZS0yLjEwLjAudGFyLnh6IiB2
ZXJzaW9uPSIyLjEwLjAiCisgICAgPGJyYW5jaCBtb2R1bGU9InB1Yi9HTk9NRS9zb3VyY2VzL2F0
LXNwaTItY29yZS8yLjE1L2F0LXNwaTItY29yZS0yLjE1LjQudGFyLnh6IiB2ZXJzaW9uPSIyLjE1
LjQiCiAgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgotICAgICAgICAgICAgaGFzaD0i
c2hhMjU2Ojk2NDE1NWM3NTc0MjIwYTAwZTExZTFjMGQ5MWYyZDMwMTdlZDYwMzkyMGViMTMzM2Zm
OWNiZGI2YTIyNzQ0ZGIiPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjBlM2IwMWFmNmJhMDZk
OThmYWY3Yjg1ODkxZWNlMzk0ODk3ZmUxNDViMDc2MGI3ODQ2ZTgxMGI1N2YxYjgwOWYiPgogICAg
IDwvYnJhbmNoPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIi
Lz4KQEAgLTMwMCw5ICszMDAsOSBAQAogICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xzIGlk
PSJhdC1zcGkyLWF0ayI+Ci0gICAgPGJyYW5jaCBtb2R1bGU9InB1Yi9HTk9NRS9zb3VyY2VzL2F0
LXNwaTItYXRrLzIuMTAvYXQtc3BpMi1hdGstMi4xMC4wLnRhci54eiIgdmVyc2lvbj0iMi4xMC4w
IgorICAgIDxicmFuY2ggbW9kdWxlPSJwdWIvR05PTUUvc291cmNlcy9hdC1zcGkyLWF0ay8yLjE1
L2F0LXNwaTItYXRrLTIuMTUuNC50YXIueHoiIHZlcnNpb249IjIuMTUuNCIKICAgICAgICAgICAg
IHJlcG89ImZ0cC5nbm9tZS5vcmciCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZGVhN2ZmMmY5
YmM5YmJkYjAzNTExMTI2MTZkNzM4ZGU3MThiNTU3MzljZDI1MTFhZmVjYWM1MTYwNGMzMWE5NCI+
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MzI4M2FhNTIwN2I4MWU0Yzc3ZDI0YzRlOGIxYzBh
YmU2Yzg1MGIxMWEyZTYyY2Q4NzNjYzA3YWYwYjQwMzUwMSI+CiAgICAgPC9icmFuY2g+CiAgICAg
PGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0YzFi
OTM1ZDU0ZDdlZjdiNjk0MjhhZmMxYzg4Nzk5YjUxNTA0NDQuLmRhZGUxMTc1YWZjNWYzZjQyMDgz
Y2YyMjAwZjgxYjNmMjRhOTRjODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNS0wOSAg
Sm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gYWNj
ZXNzaWJpbGl0eS9hcmlhLXJlYWRvbmx5Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwYXJ0IG9mIHRoaXMgY2hhbmdlLCBh
IG5ldyBBdGtPYmplY3QgYXR0cmlidXRlIGFuZCBzdGF0ZSBhcmUgYmVpbmcgZXhwb3NlZC4KKyAg
ICAgICAgVXBkYXRlIHR3byB0ZXN0cyBhY2NvcmRpbmdseS4gQWxzbyB1bnNraXAgdGhlIHByZXZp
b3VzbHktZmFpbGluZyB0ZXN0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJv
bGVzLWV4cG9zZWQtZXhwZWN0ZWQudHh0OiBVcGRhdGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXBwZWQgcHJldmlvdXNseS1mYWlsaW5nIHRlc3QuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0aW9uLWV4cGVj
dGVkLnR4dDogVXBkYXRlZC4KKwogMjAxNi0wNS0wNyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dz
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTk2MjIyKTogW0FYXVtHVEtdIGFj
Y2Vzc2liaWxpdHkvZ3RrL2NhcmV0LW9mZnNldHMuaHRtbCBmYWlsaW5nCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay94bWwtcm9sZXMtZXhwb3NlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay94bWwtcm9sZXMtZXhwb3NlZC1leHBl
Y3RlZC50eHQKaW5kZXggYjgzOWYzZGE0N2Y3YjliMDIzYWU3ZWIzMzRkNzZkOWFiZThiNTVjNS4u
ZWI1M2M2MThmZGU0NTExZWFmY2ZjOGVjMWIxOTA3ZWQ2ZGM1OWI2NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJvbGVzLWV4cG9zZWQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3htbC1yb2xlcy1leHBvc2VkLWV4
cGVjdGVkLnR4dApAQCAtMTM1LDcgKzEzNSw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDog
MAogQVhSZXF1aXJlZDogMAogQVhDaGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29t
cHV0ZWQtcm9sZTpjaGVja2JveCwgeG1sLXJvbGVzOmNoZWNrYm94LCB0YWc6ZGl2LCB0b29sa2l0
OldlYktpdEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6Y2hlY2tib3gs
IHhtbC1yb2xlczpjaGVja2JveCwgcmVhZG9ubHk6ZmFsc2UsIHRhZzpkaXYsIHRvb2xraXQ6V2Vi
S2l0R3RrCiAtLS0tLS0tLS0tLS0KIEFYUm9sZTogQVhDb21ib0JveAogQVhQYXJlbnQ6IEFYV2Vi
QXJlYQpAQCAtMTU0LDcgKzE1NCw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhS
ZXF1aXJlZDogMAogQVhDaGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQt
cm9sZTpjb21ib2JveCwgeG1sLXJvbGVzOmNvbWJvYm94LCB0YWc6ZGl2LCB0b29sa2l0OldlYktp
dEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6Y29tYm9ib3gsIHhtbC1y
b2xlczpjb21ib2JveCwgcmVhZG9ubHk6ZmFsc2UsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3Rr
CiAtLS0tLS0tLS0tLS0KIEFYUm9sZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKIEFYUGFyZW50
OiBBWFdlYkFyZWEKQEAgLTU5Miw3ICs1OTIsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6
IDAKIEFYUmVxdWlyZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNv
bXB1dGVkLXJvbGU6c2VhcmNoYm94LCB4bWwtcm9sZXM6c2VhcmNoYm94LCB0YWc6ZGl2LCB0b29s
a2l0OldlYktpdEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6c2VhcmNo
Ym94LCB4bWwtcm9sZXM6c2VhcmNoYm94LCByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtp
dDpXZWJLaXRHdGsKIC0tLS0tLS0tLS0tLQogQVhSb2xlOiBBWFNlcGFyYXRvcgogQVhQYXJlbnQ6
IEFYV2ViQXJlYQpAQCAtNjMwLDcgKzYzMCw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDog
MAogQVhSZXF1aXJlZDogMAogQVhDaGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29t
cHV0ZWQtcm9sZTpzbGlkZXIsIHhtbC1yb2xlczpzbGlkZXIsIHRhZzpkaXYsIHRvb2xraXQ6V2Vi
S2l0R3RrCitBWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzbGlkZXIsIHhtbC1y
b2xlczpzbGlkZXIsIHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0awog
LS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFYU3BpbkJ1dHRvbgogQVhQYXJlbnQ6IEFYV2ViQXJlYQpA
QCAtNjQ5LDcgKzY0OSw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJl
ZDogMAogQVhDaGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpz
cGluYnV0dG9uLCB4bWwtcm9sZXM6c3BpbmJ1dHRvbiwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRH
dGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVzOiBjb21wdXRlZC1yb2xlOnNwaW5idXR0b24sIHhtbC1y
b2xlczpzcGluYnV0dG9uLCByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRH
dGsKIC0tLS0tLS0tLS0tLQogQVhSb2xlOiBBWFN0YXR1c0JhcgogQVhQYXJlbnQ6IEFYV2ViQXJl
YQpAQCAtNjg3LDcgKzY4Nyw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1
aXJlZDogMAogQVhDaGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9s
ZTpzd2l0Y2gsIHhtbC1yb2xlczpzd2l0Y2gsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3RrCitB
WFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzd2l0Y2gsIHhtbC1yb2xlczpzd2l0
Y2gsIHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0awogLS0tLS0tLS0t
LS0tCiBBWFJvbGU6IEFYVGV4dEZpZWxkCiBBWFBhcmVudDogQVhXZWJBcmVhCkBAIC03MDYsNyAr
NzA2LDcgQEAgQVhFbmFibGVkOiAxCiBBWEV4cGFuZGVkOiAwCiBBWFJlcXVpcmVkOiAwCiBBWENo
ZWNrZWQ6IDAKLUFYUGxhdGZvcm1BdHRyaWJ1dGVzOiB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0
aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0
OldlYktpdEd0awogLS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFYVGltZXIKIEFYUGFyZW50OiBBWFdl
YkFyZWEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWU3
MmI2ZjhkNzFkODgwMDFjZWRmMzhiODg2ZDBmN2Y4MmQ0OTFjOS4uN2JmYWVjMDZmOTRlMzMxODQ5
YmEyOWQzYjZmNjQxZmUwMjRlMmNiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE4NTAsNyArMTg1MCw2IEBAIHdlYmtpdC5vcmcvYi83Mzc2NiBjc3Mz
L3VuaWNvZGUtYmlkaS1pc29sYXRlLWFoYXJvbi1mYWlsaW5nLmh0bWwgWyBJbWFnZU9ubHlGYWls
CiAKICMgTmVlZCBwbGF0Zm9ybSBzcGVjaWZpYyB1cGRhdGUgdG8gdGVzdCB0byBtYWtlIGl0IHJ1
bi4KIAotd2Via2l0Lm9yZy9iLzk4MzU3IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNjMgYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFs
bGJhY2stY29udGVudC0yLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM3MiBhY2Nl
c3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
Lzk4Mzc3IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEtaW5zZXJ0aW9uLXBvaW50LWxpbmUtbnVtYmVy
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS90YWJsZS1kZXRlY3Rpb24tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDIyNDI3NDVmMGNmOWI2NmZmYjUzZDE4NGUyNzc0MmQzNTcyOGNiNjAuLjIwMWU2YjM1NDQx
N2RkMGMwMjk0YTc5ODg3MWViNGFiYWRhOGZhZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMjg1LDYgKzI4NSw3IEBAIEFYUG9zaXRpb246IHsgOC4wMDAwMDAs
IDMzMi4wMDAwMDAgfQogQVhTaXplOiB7IDY0LjAwMDAwMCwgMjYuMDAwMDAwIH0KIEFYVGl0bGU6
IAogQVhEZXNjcmlwdGlvbjogCitBWFZhbHVlOiBhc2RmCWFzZGY8XG4+CiBBWEZvY3VzYWJsZTog
MQogQVhGb2N1c2VkOiAwCiBBWFNlbGVjdGFibGU6IDAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278437</attachid>
            <date>2016-05-09 14:04:54 -0700</date>
            <delta_ts>2016-05-10 21:48:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20160509170540.patch</filename>
            <type>text/plain</type>
            <size>29193</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk0NDE4ZGI3ZTVhMGUz
MzQ4ZWNmYmE5ZjUyN2QwYzg3NzZmNzMzNi4uMjI5MTliZTIwZTczZWFlOTJkZGQ4ZTFhY2FlMWZk
NTZkYTc5ODgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTA1LTA5ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBVEtfU1RBVEVfUkVB
RF9PTkxZIGFuZCBleHBvc2UgdGhlIHZhbHVlIG9mIGFyaWEtcmVhZG9ubHkKKyAgICAgICAgYXMg
YW4gQXRrT2JqZWN0IGF0dHJpYnV0ZS4gSW4gb3JkZXIgdG8gZWxpbWluYXRlIGR1cGxpY2F0ZSBj
aGVja3MsIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljIGludG8KKyAgICAgICAgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuIEFkZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFS
ZWFkT25seSgpIHNvCisgICAgICAgIHRoYXQgd2UgY2FuIGV4cGxpY2l0bHkgZXhwb3NlIHRoZSBp
bXBsaWNpdCB2YWx1ZSBmb3IgYXJpYS1yZWFkb25seSBvbiByb2xlcworICAgICAgICB3aGljaCBz
dXBwb3J0IHRoaXMgcHJvcGVydHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gVGhl
IHByZXZpb3VzbHktZmFpbGluZyB0ZXN0IGlzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUmVhZE9ubHkpOiBEZWxldGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUmVhZE9ubHkpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVJlYWRPbmx5VmFsdWUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSk6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNSZWFkT25seSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5T
ZXRWYWx1ZUF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0
Rm9yQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdl
dEF0dHJpYnV0ZXMpOgorICAgICAgICAoc2V0QXRrU3RhdGVTZXRGcm9tQ29yZU9iamVjdCk6Cisg
ICAgICAgIChnZXRJbnRlcmZhY2VNYXNrRnJvbU9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpidWlsZE9iamVjdEZvckFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKToKKwogMjAxNi0wNS0w
NyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMTk2MjIyKTogW0FYXVtHVEtdIGFjY2Vzc2liaWxpdHkvZ3RrL2NhcmV0LW9mZnNldHMu
aHRtbCBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYjE0YjA0Mzc4MDE2ODA0YTNiYjQwODdi
ZDZiMzdkZmFmZWFlN2IwYy4uNjUyMzM5ZmY2OTVlZmNkZjlmMTA1MDhkMTZkMThjMjk1ODUyM2Uz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA1LTA5ICBKb2FubWFy
aWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3NpYmls
aXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgQWNjZXNzaWJpbGl0eU5vZGU6OmNhblNldFZh
bHVlQXR0cmlidXRlKCkgdG8gZGV0ZXJtaW5lIGlmIFNUQVRFX1NZU1RFTV9SRUFET05MWQorICAg
ICAgICBzaG91bGQgYmUgYWRkZWQgYW5kIGlmIGVkaXRhYmxlIHRleHQgc2hvdWxkIGJlIHN1cHBv
cnRlZC4KKworICAgICAgICAqIEFjY2Vzc2libGVCYXNlLmNwcDoKKyAgICAgICAgKEFjY2Vzc2li
bGVCYXNlOjpzdGF0ZSk6CisgICAgICAgICogQWNjZXNzaWJsZVRleHRJbXBsLmNwcDoKKyAgICAg
ICAgKEFjY2Vzc2libGVUZXh0OjpkZWxldGVUZXh0KToKKyAgICAgICAgKEFjY2Vzc2libGVUZXh0
OjppbnNlcnRUZXh0KToKKyAgICAgICAgKEFjY2Vzc2libGVUZXh0OjpjdXRUZXh0KToKKyAgICAg
ICAgKEFjY2Vzc2libGVUZXh0OjpwYXN0ZVRleHQpOgorICAgICAgICAoQWNjZXNzaWJsZVRleHQ6
OnJlcGxhY2VUZXh0KToKKwogMjAxNi0wNS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBIaXRUZXN0UmVxdWVzdCBEaXNhbGxvd1NoYWRv
d0NvbnRlbnQgdG8gRGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CmluZGV4IGU3YWM4MWEzNjI3NTFlMDhkNTE4NDhiMzBjZjZhMTZlYjBkMjE0NzMuLjZjMjQ5MDRi
NDQ5ZWRjZWY2NzM5NWE0NWZjOGJlODJjNWRjMTc3NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC03
MzksMjQgKzczOSw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzTXVsdGlTZWxl
Y3RhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZSgpICYmIG5vZGUoKS0+aGFzVGFnTmFtZShz
ZWxlY3RUYWcpICYmIGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50Pigqbm9kZSgpKS5tdWx0aXBs
ZSgpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCkgY29u
c3QKLXsKLSAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwotICAgIGlmICghbm9kZSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoaXM8SFRNTFRleHRBcmVhRWxlbWVudD4oKm5v
ZGUpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oKm5vZGUp
LmlzUmVhZE9ubHkoKTsKLQotICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkpIHsK
LSAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Pigqbm9kZSk7Ci0gICAgICAgIGlmIChpbnB1dC5pc1RleHRGaWVsZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIGlucHV0LmlzUmVhZE9ubHkoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gIW5vZGUt
Pmhhc0VkaXRhYmxlU3R5bGUoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNSZXF1aXJlZCgpIGNvbnN0CiB7CiAgICAgLy8gRXhwbGljaXQgYXJpYS1yZXF1aXJlZCB2YWx1
ZXMgc2hvdWxkIHRydW1wIG5hdGl2ZSByZXF1aXJlZCBhdHRyaWJ1dGVzLgpAQCAtMTk3NSw2ICsx
OTU3LDUwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldEZvY3VzQXR0cmli
dXRlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudC5zdXBwb3J0c0ZvY3VzKCk7CiB9CiAKK2Jv
b2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QK
K3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhlIGhvc3QtbGFuZ3VhZ2UgcmVhZG9ubHkgYXR0
cmlidXRlIHRydW1wcyBhcmlhLXJlYWRvbmx5LgorICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVt
ZW50Pigqbm9kZSkpCisgICAgICAgIHJldHVybiAhZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVu
dD4oKm5vZGUpLmlzUmVhZE9ubHkoKTsKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm5v
ZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93bmNhc3Q8SFRNTElu
cHV0RWxlbWVudD4oKm5vZGUpOworICAgICAgICBpZiAoaW5wdXQuaXNUZXh0RmllbGQoKSkKKyAg
ICAgICAgICAgIHJldHVybiAhaW5wdXQuaXNSZWFkT25seSgpOworICAgIH0KKworICAgIFN0cmlu
ZyByZWFkT25seSA9IGFyaWFSZWFkT25seVZhbHVlKCk7CisgICAgaWYgKCFyZWFkT25seS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiByZWFkT25seSA9PSAidHJ1ZSIgPyBmYWxzZSA6IHRydWU7
CisKKyAgICBpZiAoaXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIGlmIChpc01ldGVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
IChpc1Byb2dyZXNzSW5kaWNhdG9yKCkgfHwgaXNTbGlkZXIoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBpZiAoaXNXZWJBcmVhKCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVu
dC0+Ym9keU9yRnJhbWVzZXQoKSkgeworICAgICAgICAgICAgaWYgKGJvZHktPmhhc0VkaXRhYmxl
U3R5bGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiBkb2N1bWVudC0+aGFzRWRpdGFibGVTdHlsZSgpOworICAgIH0KKworICAgIHJl
dHVybiBub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCk7Cit9CisKIEFjY2Vzc2liaWxpdHlSb2xlIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0
CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhUm9sZSA9IGdldEF0dHJpYnV0ZShyb2xl
QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggMDU5ZWU4YjA2MWJmZDI2MDg0YWExODRkODllYmVkYjUz
ZGQ5YjY1NC4uNjNjYzdlMDJhNzYyMmFlNzBiN2Y5YzU0OGNiOTFmMDE2MGIwMGVkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuaApAQCAtOTcsNyArOTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VuYWJsZWQoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIGJvb2wgaXNQcmVzc2VkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWRP
bmx5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKQEAgLTExMCw2ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5TZXRGb2N1c0F0dHJp
YnV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBoZWFkaW5nTGV2ZWwoKSBjb25zdCBvdmVy
cmlkZTsKIAorICAgIGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsK
KwogICAgIFN0cmluZyB2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxv
YXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGZsb2F0IG1heFZhbHVlRm9y
UmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg0M2Y0MWVkMTJiZDA3ZmFiNTQw
ZDNiM2EyY2U4MDM1MjAyY2MxMzQuLmQ2ZDA1Y2UzMjgxMmY1ZGUyZTk3ZDJmNzcwMTU2ZGEyNmVk
NjkwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcApAQCAtMTU2MSw2ICsxNTYxLDM3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6aGFzQ29udGVudEVkaXRhYmxlQXR0cmlidXRlU2V0KCkgY29uc3QKICAgICByZXR1
cm4gY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGVsZW1lbnQoKSk7CiB9CiAKK2Jv
b2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUmVhZE9ubHkoKSBjb25zdAorewor
ICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKKworICAgIHJldHVybiBy
b2xlID09IENoZWNrQm94Um9sZQorICAgICAgICB8fCByb2xlID09IENvbHVtbkhlYWRlclJvbGUK
KyAgICAgICAgfHwgcm9sZSA9PSBDb21ib0JveFJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBHcmlk
Um9sZQorICAgICAgICB8fCByb2xlID09IEdyaWRDZWxsUm9sZQorICAgICAgICB8fCByb2xlID09
IExpc3RCb3hSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gTWVudUl0ZW1DaGVja2JveFJvbGUKKyAg
ICAgICAgfHwgcm9sZSA9PSBNZW51SXRlbVJhZGlvUm9sZQorICAgICAgICB8fCByb2xlID09IFJh
ZGlvR3JvdXBSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gUm93SGVhZGVyUm9sZQorICAgICAgICB8
fCByb2xlID09IFNlYXJjaEZpZWxkUm9sZQorICAgICAgICB8fCByb2xlID09IFNsaWRlclJvbGUK
KyAgICAgICAgfHwgcm9sZSA9PSBTcGluQnV0dG9uUm9sZQorICAgICAgICB8fCByb2xlID09IFN3
aXRjaFJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBUZXh0RmllbGRSb2xlCisgICAgICAgIHx8IHJv
bGUgPT0gVHJlZUdyaWRSb2xlCisgICAgICAgIHx8IGlzUGFzc3dvcmRGaWVsZCgpOworfQorCitT
dHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVJlYWRPbmx5VmFsdWUoKSBjb25zdAorewor
ICAgIGlmICghaGFzQXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkKKyAgICAgICAgcmV0dXJu
IGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUgJiYgc3VwcG9ydHNBUklBUmVhZE9u
bHkoKSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsKKworICAgIHJldHVybiBTdHJpbmcoZ2V0QXR0cmli
dXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKK30KKwog
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJs
ZWQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGMyZWM0
ZGM3MTcxNzVhYzE3ZWZmNjIyYzM5Mzg4MmFjNjU0ZjJjMWYuLjE0ODQwZjM2MmViNTMyNDYzYTc2
OTE1NjY3NWY3NWIzOWQ5NTNmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01NjksNyArNTY5LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzVW52aXNpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNWaXNpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC05MjMs
NiArOTIyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGxpdmVSZWdpb25TdGF0dXNJc0Vu
YWJsZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEVkaXRh
YmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1lbnQqKTsKICAgICBib29sIGhhc0NvbnRlbnRFZGl0
YWJsZUF0dHJpYnV0ZVNldCgpIGNvbnN0OworCisgICAgYm9vbCBzdXBwb3J0c0FSSUFSZWFkT25s
eSgpIGNvbnN0OworICAgIFN0cmluZyBhcmlhUmVhZE9ubHlWYWx1ZSgpIGNvbnN0OwogICAgIAog
ICAgIGJvb2wgc3VwcG9ydHNBUklBQXR0cmlidXRlcygpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggMTRhZGY5NmRlODcwZmYyNzI4YjY1Yjk2MDQ2YTgzOWI5YjQ4YWExMy4u
MTQxYzMzY2UzOTE3N2NiOTY0MjhkYmNlZjBkNTY1NjVkZWI4YjI2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC01MjIsMjIgKzUyMiw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6aXNGaWxlVXBsb2FkQnV0dG9uKCkgY29uc3QKICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9
Ci0gICAgCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzUmVhZE9ubHkoKSBjb25z
dAotewotICAgIEFTU0VSVChtX3JlbmRlcmVyKTsKLSAgICAKLSAgICBpZiAoaXNXZWJBcmVhKCkp
IHsKLSAgICAgICAgaWYgKEhUTUxFbGVtZW50KiBib2R5ID0gbV9yZW5kZXJlci0+ZG9jdW1lbnQo
KS5ib2R5T3JGcmFtZXNldCgpKSB7Ci0gICAgICAgICAgICBpZiAoYm9keS0+aGFzRWRpdGFibGVT
dHlsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHJldHVybiAhbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS5oYXNFZGl0YWJsZVN0eWxlKCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRPbmx5KCk7
Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25z
dAogewpAQCAtOTIyLDcgKzkwNiw3IEBAIEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmNsaWNrUG9pbnQoKQogICAgICAgICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xpY2tQb2lu
dCgpOwogCiAgICAgLy8gdXNlIHRoZSBkZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlzIGlzIGFu
IGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0aW9uIGJv
dW5kcy4KLSAgICBpZiAoIWlzV2ViQXJlYSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIWlz
V2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQb2ludCgpOwogICAgIAogICAgIFZpc2libGVTZWxlY3Rp
b24gdmlzU2VsZWN0aW9uID0gc2VsZWN0aW9uKCk7CkBAIC0yODc2LDMzICsyODYwLDYgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFFeHBhbmRl
ZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhcmlhRXhwYW5kZWQs
ICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNhblNldFZh
bHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICAvLyBJbiB0aGUgZXZlbnQgb2YgYSAoQm9vbGVh
bilAcmVhZG9ubHkgYW5kIChUcnVlL0ZhbHNlL1VuZGVmaW5lZClAYXJpYS1yZWFkb25seQotICAg
IC8vIHZhbHVlIG1pc21hdGNoLCB0aGUgaG9zdCBsYW5ndWFnZSBuYXRpdmUgYXR0cmlidXRlIHZh
bHVlIHdpbnMuICAgIAotICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpCi0gICAgICAgIHJl
dHVybiAhaXNSZWFkT25seSgpOwotCi0gICAgaWYgKGlzTWV0ZXIoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgYXV0byYgcmVhZE9ubHkgPSBnZXRBdHRyaWJ1dGUoYXJpYV9yZWFkb25s
eUF0dHIpOwotICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWFkT25seSwg
InRydWUiKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShyZWFkT25seSwgImZhbHNlIikpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlzTmF0aXZlVGV4dENv
bnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkgbm9kZSBjb3VsZCBi
ZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJlbGllZCB1cG9uCi0g
ICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4KLSAgICByZXR1cm4g
IWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5T
ZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNUZXh0Q29udHJv
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA0MDYxOThhMDAwYzk2NGQ4NWFiMTMyMjQ5MzhlMTBi
ZmFiYjY4MzY3Li41ZTJmMzYzNWMwNGU3OWQ2NTQ1MzBhMDA2M2RmZDU4YjhkOGRjZmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZvY3Vz
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTG9hZGVkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFk
T25seSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzVmlzaXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNM
aW5rZWQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTgzLDcgKzgyLDYgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzVW5kZXJsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGNhblNldFRleHRS
YW5nZUF0dHJpYnV0ZXMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNhblNldFZhbHVlQXR0
cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5TZXRFeHBhbmRlZEF0dHJpYnV0
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRBY2Nlc3NpYmxlTmFtZShjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNw
cAppbmRleCA3MzQ5MjJiZjAwMjg5MjlhYjUxYzBkY2NhOWUxNDA5YjZiMzk1MGM0Li42NTg1Yjhh
ZTkzOTg3NGY4Y2ZhNjYzYjg2ODM3YzRhNzdjNTEwMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUlu
dGVyZmFjZVRleHQuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIEF0a0F0dHJpYnV0ZVNl
dCogZ2V0QXR0cmlidXRlU2V0Rm9yQWNjZXNzaWJpbGl0eU9iamVjdChjb25zdCBBY2Nlc3NpYmls
aXQKIAogICAgIHJlc3VsdCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KHJlc3VsdCwgYXRrX3RleHRf
YXR0cmlidXRlX2dldF9uYW1lKEFUS19URVhUX0FUVFJfSU5WSVNJQkxFKSwgKHN0eWxlLT52aXNp
YmlsaXR5KCkgPT0gSElEREVOKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gICAgcmVzdWx0ID0g
YWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBhdGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUo
QVRLX1RFWFRfQVRUUl9FRElUQUJMRSksIG9iamVjdC0+aXNSZWFkT25seSgpID8gImZhbHNlIiA6
ICJ0cnVlIik7CisgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBhdGtf
dGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9FRElUQUJMRSksIG9iamVjdC0+
Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCiAgICAgU3RyaW5n
IGxhbmd1YWdlID0gb2JqZWN0LT5sYW5ndWFnZSgpOwogICAgIGlmICghbGFuZ3VhZ2UuaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDAwODQzZWMxZjY4NjgyMDFk
YTI5ODc3N2FkNWJkZDhlZmI0NjBmNWUuLjZiZWJkY2VmMGZjY2M0YmMwYzE1Nzk4YTA0MjhhNGFl
MWNhNTFmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTQ3NCw2ICs0NzQs
MTAgQEAgc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0
ZXMoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQVNl
dFNpemUoKSkKICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0
cmlidXRlU2V0LCAic2V0c2l6ZSIsIFN0cmluZzo6bnVtYmVyKGNvcmVPYmplY3QtPmFyaWFTZXRT
aXplKCkpLnV0ZjgoKS5kYXRhKCkpOwogCisgICAgU3RyaW5nIGlzUmVhZE9ubHkgPSBjb3JlT2Jq
ZWN0LT5hcmlhUmVhZE9ubHlWYWx1ZSgpOworICAgIGlmICghaXNSZWFkT25seS5pc0VtcHR5KCkp
CisgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJpYnV0ZVNl
dCwgInJlYWRvbmx5IiwgaXNSZWFkT25seS51dGY4KCkuZGF0YSgpKTsKKwogICAgIC8vIEFjY29y
ZGluZyB0byB0aGUgVzNDIENvcmUgQWNjZXNzaWJpbGl0eSBBUEkgTWFwcGluZ3MgMS4xLCBzZWN0
aW9uIDUuNC4xIEdlbmVyYWwgUnVsZXM6CiAgICAgLy8gIlVzZXIgYWdlbnRzIG11c3QgZXhwb3Nl
IHRoZSBXQUktQVJJQSByb2xlIHN0cmluZyBpZiB0aGUgQVBJIHN1cHBvcnRzIGEgbWVjaGFuaXNt
IHRvIGRvIHNvLiIKICAgICAvLyBJbiB0aGUgY2FzZSBvZiBBVEssIHRoZSBtZWNoYW5pc20gdG8g
ZG8gc28gaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSBwYWlyICh4bWwtcm9sZXM6InN0cmluZyIpLgpA
QCAtODA0LDEzICs4MDgsNyBAQCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2Jq
ZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogICAgIGlmIChjb3Jl
T2JqZWN0LT5pc0NoZWNrZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3Rh
dGVTZXQsIEFUS19TVEFURV9DSEVDS0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRv
ZXMgbm90IHNlZW0gdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBz
byBjaGVjayBleHBsaWNpdGx5IGZvciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8v
IGlzUmVhZE9ubHkgaXMgZmFsc2UgZm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBv
bmUKLSAgICAvLyBtb3JlIGNoZWNrIHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBi
ZWluZyAiZWRpdGFibGUiLgotICAgIGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAg
ICAgICB8fCAoY29yZU9iamVjdC0+aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFs
dWVBdHRyaWJ1dGUoKSkpCi0gICAgICAgICYmICFpc0xpc3RCb3hPcHRpb24pCisgICAgaWYgKChj
b3JlT2JqZWN0LT5pc1RleHRDb250cm9sKCkgfHwgY29yZU9iamVjdC0+aXNOb25OYXRpdmVUZXh0
Q29udHJvbCgpKSAmJiBjb3JlT2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAg
ICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX0VESVRBQkxFKTsK
IAogICAgIC8vIEZJWE1FOiBQdXQgYm90aCBFTkFCTEVEIGFuZCBTRU5TSVRJVkUgdG9nZXRoZXIg
aGVyZSBmb3Igbm93CkBAIC04NTUsNiArODUzLDEyIEBAIHN0YXRpYyB2b2lkIHNldEF0a1N0YXRl
U2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrU3Rh
CiAgICAgaWYgKGNvcmVPYmplY3QtPmlzUHJlc3NlZCgpKQogICAgICAgICBhdGtfc3RhdGVfc2V0
X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX1BSRVNTRUQpOwogCisjaWYgQVRLX0NIRUNL
X1ZFUlNJT04oMiwxNSwzKQorICAgIGlmICgoIWNvcmVPYmplY3QtPmNhblNldFZhbHVlQXR0cmli
dXRlKCkKKyAgICAgICAgJiYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQVJlYWRPbmx5KCkgfHwg
Y29yZU9iamVjdC0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6YXJpYV9yZWFkb25seUF0dHIpKSkp
CisgICAgICAgIGF0a19zdGF0ZV9zZXRfYWRkX3N0YXRlKHN0YXRlU2V0LCBBVEtfU1RBVEVfUkVB
RF9PTkxZKTsKKyNlbmRpZgorCiAgICAgaWYgKGNvcmVPYmplY3QtPmlzUmVxdWlyZWQoKSkKICAg
ICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9SRVFVSVJF
RCk7CiAKQEAgLTExNDQsOSArMTE0OCw5IEBAIHN0YXRpYyBndWludDE2IGdldEludGVyZmFjZU1h
c2tGcm9tT2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QpCiAgICAgLy8gVGV4
dCwgRWRpdGFibGUgVGV4dCAmIEh5cGVydGV4dAogICAgIGlmIChyb2xlID09IFN0YXRpY1RleHRS
b2xlIHx8IGNvcmVPYmplY3QtPmlzTWVudUxpc3RPcHRpb24oKSkKICAgICAgICAgaW50ZXJmYWNl
TWFzayB8PSAxIDw8IFdBSVRleHQ7Ci0gICAgZWxzZSBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29u
dHJvbCgpKSB7CisgICAgZWxzZSBpZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpIHx8IGNv
cmVPYmplY3QtPmlzTm9uTmF0aXZlVGV4dENvbnRyb2woKSkgewogICAgICAgICBpbnRlcmZhY2VN
YXNrIHw9IDEgPDwgV0FJVGV4dDsKLSAgICAgICAgaWYgKCFjb3JlT2JqZWN0LT5pc1JlYWRPbmx5
KCkpCisgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAg
ICAgICAgICAgaW50ZXJmYWNlTWFzayB8PSAxIDw8IFdBSUVkaXRhYmxlVGV4dDsKICAgICB9IGVs
c2UgaWYgKCFjb3JlT2JqZWN0LT5pc1dlYkFyZWEoKSkgewogICAgICAgICBpZiAocm9sZSAhPSBU
YWJsZVJvbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCmluZGV4IDc4MTQ3NWI5ZTNiMTdhOGVjY2U4YTZkODZiMDZjNWMyNmIyNTIzMjcuLjdl
NDhkMTI3OWE1MjZjZTMxZjEzZDdkYmQzYWFjZjkzNDY3NTQzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTcyNiw3ICsxNzI2LDcg
QEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0eVByb3BlcnRp
ZXM+IEluc3BlY3RvckRPTUFnZW50OjpidWkKICAgICAgICAgICAgICAgICBwcmVzc2VkID0gYXhP
YmplY3QtPmlzUHJlc3NlZCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoYXhPYmpl
Y3QtPmlzVGV4dENvbnRyb2woKSkKLSAgICAgICAgICAgICAgICByZWFkb25seSA9IGF4T2JqZWN0
LT5pc1JlYWRPbmx5KCk7CisgICAgICAgICAgICAgICAgcmVhZG9ubHkgPSAhYXhPYmplY3QtPmNh
blNldFZhbHVlQXR0cmlidXRlKCk7CiAKICAgICAgICAgICAgIHN1cHBvcnRzUmVxdWlyZWQgPSBh
eE9iamVjdC0+c3VwcG9ydHNSZXF1aXJlZEF0dHJpYnV0ZSgpOwogICAgICAgICAgICAgaWYgKHN1
cHBvcnRzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxl
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKaW5kZXggNmRl
NjgzZGVkNTE4YjNmMGU2NDAyMTk4NGE5ZGQ5OGU5NmE3MzVlZC4uOTQ3NDA5ZjRlMDc2OTA0MzA5
YWM5OWE4NGEwZTg0NjZkMTU2ZTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQWNj
ZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNw
cApAQCAtNDg4LDcgKzQ4OCw3IEBAIGxvbmcgQWNjZXNzaWJsZUJhc2U6OnN0YXRlKCkgY29uc3QK
ICAgICBpZiAoIW1fb2JqZWN0LT5pc0VuYWJsZWQoKSkKICAgICAgICAgc3RhdGUgfD0gU1RBVEVf
U1lTVEVNX1VOQVZBSUxBQkxFOwogCi0gICAgaWYgKG1fb2JqZWN0LT5pc1JlYWRPbmx5KCkpCisg
ICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkKICAgICAgICAgc3RhdGUg
fD0gU1RBVEVfU1lTVEVNX1JFQURPTkxZOwogCiAgICAgaWYgKG1fb2JqZWN0LT5pc09mZlNjcmVl
bigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYjcwNWYw
OWQ4ZmVlOTZjNjE5NjcyNTg1OWNmMDkzZmY1ZTc2Yzg4ZC4uYzg4MjJkOTg1ZDA5M2Q1N2EyZmQx
YTg5Y2RiZjQ4ODRlZDdlMTg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNz
aWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlVGV4dElt
cGwuY3BwCkBAIC01NjMsNyArNTYzLDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Y29weVRl
eHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQpCiAKIEhSRVNVTFQgQWNjZXNzaWJs
ZVRleHQ6OmRlbGV0ZVRleHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQpCiB7Ci0g
ICAgaWYgKG1fb2JqZWN0LT5pc1JlYWRPbmx5KCkpCisgICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0
VmFsdWVBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJuIFNfRkFMU0U7CiAKICAgICBpZiAoaW5p
dGlhbENoZWNrKCkgPT0gRV9QT0lOVEVSKQpAQCAtNTgxLDcgKzU4MSw3IEBAIEhSRVNVTFQgQWNj
ZXNzaWJsZVRleHQ6OmRlbGV0ZVRleHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQp
CiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6Omluc2VydFRleHQobG9uZyBvZmZzZXQsIEJTVFIq
IHRleHQpCiB7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1JlYWRPbmx5KCkpCisgICAgaWYgKCFtX29i
amVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJuIFNfRkFMU0U7CiAK
ICAgICBpZiAoaW5pdGlhbENoZWNrKCkgPT0gRV9QT0lOVEVSKQpAQCAtNjAxLDcgKzYwMSw3IEBA
IEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6Omluc2VydFRleHQobG9uZyBvZmZzZXQsIEJTVFIqIHRl
eHQpCiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmN1dFRleHQobG9uZyBzdGFydE9mZnNldCwg
bG9uZyBlbmRPZmZzZXQpCiB7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1JlYWRPbmx5KCkpCisgICAg
aWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJuIFNf
RkFMU0U7CiAKICAgICBpZiAoaW5pdGlhbENoZWNrKCkgPT0gRV9QT0lOVEVSKQpAQCAtNjIyLDcg
KzYyMiw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmN1dFRleHQobG9uZyBzdGFydE9mZnNl
dCwgbG9uZyBlbmRPZmZzZXQpCiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OnBhc3RlVGV4dChs
b25nIG9mZnNldCkKIHsKLSAgICBpZiAobV9vYmplY3QtPmlzUmVhZE9ubHkoKSkKKyAgICBpZiAo
IW1fb2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gU19GQUxT
RTsKIAogICAgIGlmIChpbml0aWFsQ2hlY2soKSA9PSBFX1BPSU5URVIpCkBAIC02NDIsNyArNjQy
LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6cGFzdGVUZXh0KGxvbmcgb2Zmc2V0KQogCiBI
UkVTVUxUIEFjY2Vzc2libGVUZXh0OjpyZXBsYWNlVGV4dChsb25nIHN0YXJ0T2Zmc2V0LCBsb25n
IGVuZE9mZnNldCwgQlNUUiogdGV4dCkKIHsKLSAgICBpZiAobV9vYmplY3QtPmlzUmVhZE9ubHko
KSkKKyAgICBpZiAoIW1fb2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICBy
ZXR1cm4gU19GQUxTRTsKIAogICAgIGlmIChpbml0aWFsQ2hlY2soKSA9PSBFX1BPSU5URVIpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjY3ZmJi
NjE3YTg4MzQzZTg3MmRmNzAxNTNjZTlhYjg4MTExNjg4Ni4uZDc1OWFmOTBjNWJjYzdlODU4MDli
OWQ1ZGU3ZDU4NzM3YzU2NDFkYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA1LTA5ICBKb2FubWFyaWUgRGln
Z3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3NpYmlsaXR5L2Fy
aWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBjaGVja3MgdG8gaXNBdHRyaWJ1dGVTZXR0YWJsZSgpIGZv
ciBBVEtfU1RBVEVfUkVBRF9PTkxZIGFuZCB0aGUgJ3JlYWRvbmx5JworICAgICAgICBBdGtPYmpl
Y3QgYXR0cmlidXRlLiBCdW1wIHRoZSBtaW5pbXVtIHZlcnNpb24gb2YgYXQtc3BpMi1jb3JlIGFu
ZCBhdC1zcGkyLWF0aworICAgICAgICB0byAyLjE1LjQgKGVhcmxpZXN0IHZlcnNpb24gdGhhdCBz
dXBwb3J0cyBTVEFURV9SRUFEX09OTFkpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUpOgorICAg
ICAgICAqIGd0ay9qaGJ1aWxkLm1vZHVsZXM6CisKIDIwMTYtMDUtMDYgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIElPU19URVhUX0FVVE9T
SVpJTkcgb24gTWFjIGFuZCBtYWtlIGl0IHRlc3RhYmxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRr
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDFmNTc3YjE2ZmJmZDNlYzY5ZmI2OTBiM2NmZDVh
MTQ5NDA5YzA1NDkuLjNiYTdkYTEyYjMzMDI4YWExMTZiMzk5NDIwOGIxNGQ3OWEyYmZhNzIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC0xMDQ0LDgg
KzEwNDQsMjQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRh
YmxlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
U3RyaW5nIGF0dHJpYnV0ZVN0cmluZyA9IGpzU3RyaW5nVG9XVEZTdHJpbmcoYXR0cmlidXRlKTsK
LSAgICBpZiAoYXR0cmlidXRlU3RyaW5nID09ICJBWFZhbHVlIikKLSAgICAgICAgcmV0dXJuIGNo
ZWNrRWxlbWVudFN0YXRlKG1fZWxlbWVudC5nZXQoKSwgQVRLX1NUQVRFX0VESVRBQkxFKTsKKyAg
ICBpZiAoYXR0cmlidXRlU3RyaW5nICE9ICJBWFZhbHVlIikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gVGhpcyBzdGF0ZSBpcyBleHBlY3RlZCB0byBiZSBwcmVzZW50IG9ubHkgZm9y
IHRleHQgd2lkZ2V0cyBhbmQgY29udGVudGVkaXRhYmxlIGVsZW1lbnRzLgorICAgIGlmIChjaGVj
a0VsZW1lbnRTdGF0ZShtX2VsZW1lbnQuZ2V0KCksIEFUS19TVEFURV9FRElUQUJMRSkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisjaWYgQVRLX0NIRUNLX1ZFUlNJT04oMiwxNSwzKQorICAgIC8v
IFRoaXMgc3RhdGUgaXMgZXhwZWN0ZWQgdG8gYmUgcHJlc2VudCBvbmx5IGZvciBjb250cm9scyBh
bmQgb25seSBpZiBleHBsaWNpdGx5IHNldC4KKyAgICBpZiAoY2hlY2tFbGVtZW50U3RhdGUobV9l
bGVtZW50LmdldCgpLCBBVEtfU1RBVEVfUkVBRF9PTkxZKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCisKKyAgICAvLyBXZSBleHBvc2UgYW4gb2JqZWN0IGF0dHJpYnV0ZSB0byBBVHMg
d2hlbiB0aGVyZSBpcyBhbiBhdXRob3ItcHJvdmlkZWQgQVJJQSBwcm9wZXJ0eQorICAgIC8vIGFu
ZCBhbHNvIHdoZW4gdGhlcmUgaXMgYSBzdXBwb3J0ZWQgQVJJQSByb2xlIGJ1dCBubyBhdXRob3It
cHJvdmlkZWQgdmFsdWUuCisgICAgU3RyaW5nIGlzUmVhZE9ubHkgPSBnZXRBdHRyaWJ1dGVTZXRW
YWx1ZUZvcklkKEFUS19PQkpFQ1QobV9lbGVtZW50LmdldCgpKSwgT2JqZWN0QXR0cmlidXRlVHlw
ZSwgInJlYWRvbmx5Iik7CisgICAgaWYgKCFpc1JlYWRPbmx5LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIGlzUmVhZE9ubHkgPT0gInRydWUiID8gZmFsc2UgOiB0cnVlOwogCiAgICAgcmV0dXJu
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xz
L2d0ay9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggNGVlOTkwZmFhMTc3MmMwMjZlOTJhMmIwNDNlZTM1
YmE3OTlmOGM2Yi4uNTYxOTA3MjU3MjU1NjAxYmUzZTZmZWRiNDhiNmZmMDIxYzU4MGNjYyAxMDA2
NDQKLS0tIGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9ndGsvamhidWls
ZC5tb2R1bGVzCkBAIC0yOTAsOSArMjkwLDkgQEAKIAogICA8YXV0b3Rvb2xzIGlkPSJhdC1zcGky
LWNvcmUiIAogICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtaW50cm9zcGVjdGlv
biI+Ci0gICAgPGJyYW5jaCBtb2R1bGU9InB1Yi9HTk9NRS9zb3VyY2VzL2F0LXNwaTItY29yZS8y
LjEwL2F0LXNwaTItY29yZS0yLjEwLjAudGFyLnh6IiB2ZXJzaW9uPSIyLjEwLjAiCisgICAgPGJy
YW5jaCBtb2R1bGU9InB1Yi9HTk9NRS9zb3VyY2VzL2F0LXNwaTItY29yZS8yLjE1L2F0LXNwaTIt
Y29yZS0yLjE1LjQudGFyLnh6IiB2ZXJzaW9uPSIyLjE1LjQiCiAgICAgICAgICAgICByZXBvPSJm
dHAuZ25vbWUub3JnIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojk2NDE1NWM3NTc0MjIwYTAw
ZTExZTFjMGQ5MWYyZDMwMTdlZDYwMzkyMGViMTMzM2ZmOWNiZGI2YTIyNzQ0ZGIiPgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjBlM2IwMWFmNmJhMDZkOThmYWY3Yjg1ODkxZWNlMzk0ODk3ZmUx
NDViMDc2MGI3ODQ2ZTgxMGI1N2YxYjgwOWYiPgogICAgIDwvYnJhbmNoPgogICAgIDxkZXBlbmRl
bmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KQEAgLTMwMCw5ICszMDAsOSBAQAog
ICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xzIGlkPSJhdC1zcGkyLWF0ayI+Ci0gICAgPGJy
YW5jaCBtb2R1bGU9InB1Yi9HTk9NRS9zb3VyY2VzL2F0LXNwaTItYXRrLzIuMTAvYXQtc3BpMi1h
dGstMi4xMC4wLnRhci54eiIgdmVyc2lvbj0iMi4xMC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJw
dWIvR05PTUUvc291cmNlcy9hdC1zcGkyLWF0ay8yLjE1L2F0LXNwaTItYXRrLTIuMTUuNC50YXIu
eHoiIHZlcnNpb249IjIuMTUuNCIKICAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCi0g
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZGVhN2ZmMmY5YmM5YmJkYjAzNTExMTI2MTZkNzM4ZGU3
MThiNTU3MzljZDI1MTFhZmVjYWM1MTYwNGMzMWE5NCI+CisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6MzI4M2FhNTIwN2I4MWU0Yzc3ZDI0YzRlOGIxYzBhYmU2Yzg1MGIxMWEyZTYyY2Q4NzNjYzA3
YWYwYjQwMzUwMSI+CiAgICAgPC9icmFuY2g+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxk
ZXAgcGFja2FnZT0iZ2xpYiIvPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0YzFiOTM1ZDU0ZDdlZjdiNjk0MjhhZmMxYzg4
Nzk5YjUxNTA0NDQuLmRhZGUxMTc1YWZjNWYzZjQyMDgzY2YyMjAwZjgxYjNmMjRhOTRjODggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNS0wOSAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dz
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRvbmx5
Lmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTgzNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBcyBwYXJ0IG9mIHRoaXMgY2hhbmdlLCBhIG5ldyBBdGtPYmplY3QgYXR0cmlidXRl
IGFuZCBzdGF0ZSBhcmUgYmVpbmcgZXhwb3NlZC4KKyAgICAgICAgVXBkYXRlIHR3byB0ZXN0cyBh
Y2NvcmRpbmdseS4gQWxzbyB1bnNraXAgdGhlIHByZXZpb3VzbHktZmFpbGluZyB0ZXN0LgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJvbGVzLWV4cG9zZWQtZXhwZWN0ZWQudHh0
OiBVcGRhdGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBVbnNr
aXBwZWQgcHJldmlvdXNseS1mYWlsaW5nIHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKwogMjAx
Ni0wNS0wNyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMTk2MjIyKTogW0FYXVtHVEtdIGFjY2Vzc2liaWxpdHkvZ3RrL2NhcmV0LW9m
ZnNldHMuaHRtbCBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2d0ay94bWwtcm9sZXMtZXhwb3NlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2d0ay94bWwtcm9sZXMtZXhwb3NlZC1leHBlY3RlZC50eHQKaW5kZXggYjgzOWYzZGE0
N2Y3YjliMDIzYWU3ZWIzMzRkNzZkOWFiZThiNTVjNS4uZWI1M2M2MThmZGU0NTExZWFmY2ZjOGVj
MWIxOTA3ZWQ2ZGM1OWI2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9n
dGsveG1sLXJvbGVzLWV4cG9zZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvZ3RrL3htbC1yb2xlcy1leHBvc2VkLWV4cGVjdGVkLnR4dApAQCAtMTM1LDcgKzEz
NSw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhDaGVj
a2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpjaGVja2JveCwgeG1s
LXJvbGVzOmNoZWNrYm94LCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0aworQVhQbGF0Zm9ybUF0
dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6Y2hlY2tib3gsIHhtbC1yb2xlczpjaGVja2JveCwgcmVh
ZG9ubHk6ZmFsc2UsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3RrCiAtLS0tLS0tLS0tLS0KIEFY
Um9sZTogQVhDb21ib0JveAogQVhQYXJlbnQ6IEFYV2ViQXJlYQpAQCAtMTU0LDcgKzE1NCw3IEBA
IEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhDaGVja2VkOiAw
Ci1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpjb21ib2JveCwgeG1sLXJvbGVz
OmNvbWJvYm94LCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0
ZXM6IGNvbXB1dGVkLXJvbGU6Y29tYm9ib3gsIHhtbC1yb2xlczpjb21ib2JveCwgcmVhZG9ubHk6
ZmFsc2UsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3RrCiAtLS0tLS0tLS0tLS0KIEFYUm9sZTog
QVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKIEFYUGFyZW50OiBBWFdlYkFyZWEKQEAgLTU5Miw3ICs1
OTIsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6IDAKIEFYUmVxdWlyZWQ6IDAKIEFYQ2hl
Y2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6c2VhcmNoYm94LCB4
bWwtcm9sZXM6c2VhcmNoYm94LCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0aworQVhQbGF0Zm9y
bUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6c2VhcmNoYm94LCB4bWwtcm9sZXM6c2VhcmNoYm94
LCByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRHdGsKIC0tLS0tLS0tLS0t
LQogQVhSb2xlOiBBWFNlcGFyYXRvcgogQVhQYXJlbnQ6IEFYV2ViQXJlYQpAQCAtNjMwLDcgKzYz
MCw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhDaGVj
a2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzbGlkZXIsIHhtbC1y
b2xlczpzbGlkZXIsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3RrCitBWFBsYXRmb3JtQXR0cmli
dXRlczogY29tcHV0ZWQtcm9sZTpzbGlkZXIsIHhtbC1yb2xlczpzbGlkZXIsIHJlYWRvbmx5OmZh
bHNlLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0awogLS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFY
U3BpbkJ1dHRvbgogQVhQYXJlbnQ6IEFYV2ViQXJlYQpAQCAtNjQ5LDcgKzY0OSw3IEBAIEFYRW5h
YmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhDaGVja2VkOiAwCi1BWFBs
YXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzcGluYnV0dG9uLCB4bWwtcm9sZXM6c3Bp
bmJ1dHRvbiwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRHdGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVz
OiBjb21wdXRlZC1yb2xlOnNwaW5idXR0b24sIHhtbC1yb2xlczpzcGluYnV0dG9uLCByZWFkb25s
eTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRHdGsKIC0tLS0tLS0tLS0tLQogQVhSb2xl
OiBBWFN0YXR1c0JhcgogQVhQYXJlbnQ6IEFYV2ViQXJlYQpAQCAtNjg3LDcgKzY4Nyw3IEBAIEFY
RW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhDaGVja2VkOiAwCi1B
WFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzd2l0Y2gsIHhtbC1yb2xlczpzd2l0
Y2gsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0R3RrCitBWFBsYXRmb3JtQXR0cmlidXRlczogY29t
cHV0ZWQtcm9sZTpzd2l0Y2gsIHhtbC1yb2xlczpzd2l0Y2gsIHJlYWRvbmx5OmZhbHNlLCB0YWc6
ZGl2LCB0b29sa2l0OldlYktpdEd0awogLS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFYVGV4dEZpZWxk
CiBBWFBhcmVudDogQVhXZWJBcmVhCkBAIC03MDYsNyArNzA2LDcgQEAgQVhFbmFibGVkOiAxCiBB
WEV4cGFuZGVkOiAwCiBBWFJlcXVpcmVkOiAwCiBBWENoZWNrZWQ6IDAKLUFYUGxhdGZvcm1BdHRy
aWJ1dGVzOiB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6
IHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0awogLS0tLS0tLS0tLS0t
CiBBWFJvbGU6IEFYVGltZXIKIEFYUGFyZW50OiBBWFdlYkFyZWEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWU3MmI2ZjhkNzFkODgwMDFjZWRmMzhiODg2
ZDBmN2Y4MmQ0OTFjOS4uN2JmYWVjMDZmOTRlMzMxODQ5YmEyOWQzYjZmNjQxZmUwMjRlMmNiZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NTAsNyAr
MTg1MCw2IEBAIHdlYmtpdC5vcmcvYi83Mzc2NiBjc3MzL3VuaWNvZGUtYmlkaS1pc29sYXRlLWFo
YXJvbi1mYWlsaW5nLmh0bWwgWyBJbWFnZU9ubHlGYWlsCiAKICMgTmVlZCBwbGF0Zm9ybSBzcGVj
aWZpYyB1cGRhdGUgdG8gdGVzdCB0byBtYWtlIGl0IHJ1bi4KIAotd2Via2l0Lm9yZy9iLzk4MzU3
IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvOTgzNjMgYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC0yLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM3MiBhY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxl
cnMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4Mzc3IGFjY2Vzc2liaWxpdHkvdGV4
dGFyZWEtaW5zZXJ0aW9uLXBvaW50LWxpbmUtbnVtYmVyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVj
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS90YWJsZS1kZXRlY3Rpb24tZXhwZWN0ZWQudHh0CmluZGV4IDIyNDI3NDVmMGNmOWI2NmZmYjUz
ZDE4NGUyNzc0MmQzNTcyOGNiNjAuLjIwMWU2YjM1NDQxN2RkMGMwMjk0YTc5ODg3MWViNGFiYWRh
OGZhZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L3RhYmxlLWRldGVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMjg1LDYg
KzI4NSw3IEBAIEFYUG9zaXRpb246IHsgOC4wMDAwMDAsIDMzMi4wMDAwMDAgfQogQVhTaXplOiB7
IDY0LjAwMDAwMCwgMjYuMDAwMDAwIH0KIEFYVGl0bGU6IAogQVhEZXNjcmlwdGlvbjogCitBWFZh
bHVlOiBhc2RmCWFzZGY8XG4+CiBBWEZvY3VzYWJsZTogMQogQVhGb2N1c2VkOiAwCiBBWFNlbGVj
dGFibGU6IDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278581</attachid>
            <date>2016-05-10 21:48:17 -0700</date>
            <delta_ts>2016-05-11 00:13:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98357-20160511004905.patch</filename>
            <type>text/plain</type>
            <size>47406</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQxZTdhOTQ0N2Q5NzFm
NjM0NTU0ZmI0Nzg4MGU0Yjk0NjA4ODNkNC4uMWQwNDlmNDVjMjQwN2M1NTNmZDY4MzZjODc3OWI4
Njc3MTM5ZDY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE2LTA1LTEwICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBhY2Nlc3Np
YmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBVEtfU1RBVEVfUkVB
RF9PTkxZIGFuZCBleHBvc2UgdGhlIHZhbHVlIG9mIGFyaWEtcmVhZG9ubHkKKyAgICAgICAgYXMg
YW4gQXRrT2JqZWN0IGF0dHJpYnV0ZS4gSW4gb3JkZXIgdG8gZWxpbWluYXRlIGR1cGxpY2F0ZSBj
aGVja3MsIHJlbW92ZQorICAgICAgICBpc1JlYWRPbmx5KCkgYW5kIGp1c3QgdXNlIGNhblNldEF0
dHJpYnV0ZVZhbHVlKCksIG1vdmluZyBhbGwgdGhlIGxvZ2ljIGludG8KKyAgICAgICAgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuIEFkZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFS
ZWFkT25seSgpIHNvCisgICAgICAgIHRoYXQgd2UgY2FuIGV4cGxpY2l0bHkgZXhwb3NlIHRoZSBp
bXBsaWNpdCB2YWx1ZSBmb3IgYXJpYS1yZWFkb25seSBvbiByb2xlcworICAgICAgICB3aGljaCBz
dXBwb3J0IHRoaXMgcHJvcGVydHkuIEFsc28gYWRkIHN1cHBvcnQgZm9yIEFUS19TVEFURV9DSEVD
S0FCTEUsIGJvdGgKKyAgICAgICAgYmVjYXVzZSB0aGlzIHN0YXRlIHdhcyBtaXNzaW5nIGFuZCBi
ZWNhdXNlIGl0IHNlcnZlcyBhIHNpbWlsYXIgZnVuY3Rpb24gdG8KKyAgICAgICAgQVRLX1NUQVRF
X0VESVRBQkxFIGZvciB0aGUgcHVycG9zZSBvZiB2ZXJpZnlpbmcgZXhwb3N1cmUgb2YgdG9nZ2xl
LWFibGUKKyAgICAgICAgZWxlbWVudHMgdGhhdCBhcmUgbm90IHJlYWQtb25seS4KKworICAgICAg
ICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2Zvcm0tY29udHJvbC12YWx1ZS1zZXR0YWJsZS5odG1sCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNSZXF1
aXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6c3VwcG9ydHNSZXF1aXJlZEF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFSZWFkT25seSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjphcmlhUmVhZE9ubHlWYWx1ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc1VudmlzaXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsaWNrUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YW5jaG9yRWxlbWVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjppbnRlcm5h
bExpbmtFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnRleHRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSW1hZ2VNYXBDaGlsZHJl
bik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUlu
dGVyZmFjZVRleHQuY3BwOgorICAgICAgICAoZ2V0QXR0cmlidXRlU2V0Rm9yQWNjZXNzaWJpbGl0
eU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdy
YXBwZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0ZXMpOgor
ICAgICAgICAoc2V0QXRrU3RhdGVTZXRGcm9tQ29yZU9iamVjdCk6CisgICAgICAgIChnZXRJbnRl
cmZhY2VNYXNrRnJvbU9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVj
dEZvckFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKToKKwogMjAxNi0wNS0xMCAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgIUVOQUJMRShTSEFE
T1dfRE9NKSAmJiAhRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpp
bmRleCAzNDA3ZjgxYTFjNjY0NmFjMzg5NzEwMWJhODRlM2NhNzY5MWU3YWNmLi40OWMzODJkZjk5
YjY3YmJjNTVkY2ViMjQzZjgzODFhNmMyODkxNDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTYtMDUtMTAgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZh
aWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2Fs
bCBBY2Nlc3NpYmlsaXR5Tm9kZTo6Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSB0byBkZXRlcm1pbmUg
aWYgU1RBVEVfU1lTVEVNX1JFQURPTkxZCisgICAgICAgIHNob3VsZCBiZSBhZGRlZCBhbmQgaWYg
ZWRpdGFibGUgdGV4dCBzaG91bGQgYmUgc3VwcG9ydGVkLgorCisgICAgICAgICogQWNjZXNzaWJs
ZUJhc2UuY3BwOgorICAgICAgICAoQWNjZXNzaWJsZUJhc2U6OnN0YXRlKToKKyAgICAgICAgKiBB
Y2Nlc3NpYmxlVGV4dEltcGwuY3BwOgorICAgICAgICAoQWNjZXNzaWJsZVRleHQ6OmRlbGV0ZVRl
eHQpOgorICAgICAgICAoQWNjZXNzaWJsZVRleHQ6Omluc2VydFRleHQpOgorICAgICAgICAoQWNj
ZXNzaWJsZVRleHQ6OmN1dFRleHQpOgorICAgICAgICAoQWNjZXNzaWJsZVRleHQ6OnBhc3RlVGV4
dCk6CisgICAgICAgIChBY2Nlc3NpYmxlVGV4dDo6cmVwbGFjZVRleHQpOgorCiAyMDE2LTA1LTA5
ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFt3
aW5jYWlyb10gd2ViIGluc3BlY3RvciBmYWlsZWQgdG8gbGF1bmNoIGluIE1pbmlCcm93c2VyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCmluZGV4IGU3YWM4MWEzNjI3NTFlMDhkNTE4NDhiMzBjZjZhMTZlYjBkMjE0
NzMuLjQ5MjlkMTgyYzBkMmRiMWUwZjJjMTYxMTY1ZmU2ZDA4YzZlMmVjMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCkBAIC03MzksMjQgKzczOSw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3QKICAgICByZXR1cm4gbm9kZSgpICYmIG5vZGUoKS0+
aGFzVGFnTmFtZShzZWxlY3RUYWcpICYmIGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50Pigqbm9k
ZSgpKS5tdWx0aXBsZSgpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Jl
YWRPbmx5KCkgY29uc3QKLXsKLSAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwotICAgIGlm
ICghbm9kZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoaXM8SFRNTFRleHRBcmVh
RWxlbWVudD4oKm5vZGUpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxl
bWVudD4oKm5vZGUpLmlzUmVhZE9ubHkoKTsKLQotICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50
Pigqbm9kZSkpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7Ci0gICAgICAgIGlmIChpbnB1dC5pc1RleHRGaWVsZCgp
KQotICAgICAgICAgICAgcmV0dXJuIGlucHV0LmlzUmVhZE9ubHkoKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gIW5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNSZXF1aXJlZCgpIGNvbnN0CiB7CiAgICAgLy8gRXhwbGljaXQgYXJpYS1y
ZXF1aXJlZCB2YWx1ZXMgc2hvdWxkIHRydW1wIG5hdGl2ZSByZXF1aXJlZCBhdHRyaWJ1dGVzLgpA
QCAtMTk3NSw2ICsxOTU3LDU3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNl
dEZvY3VzQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudC5zdXBwb3J0c0ZvY3Vz
KCk7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldFZhbHVlQXR0cmli
dXRlKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICgh
bm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhlIGhvc3QtbGFuZ3VhZ2Ug
cmVhZG9ubHkgYXR0cmlidXRlIHRydW1wcyBhcmlhLXJlYWRvbmx5LgorICAgIGlmIChpczxIVE1M
VGV4dEFyZWFFbGVtZW50Pigqbm9kZSkpCisgICAgICAgIHJldHVybiAhZG93bmNhc3Q8SFRNTFRl
eHRBcmVhRWxlbWVudD4oKm5vZGUpLmlzUmVhZE9ubHkoKTsKKyAgICBpZiAoaXM8SFRNTElucHV0
RWxlbWVudD4oKm5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOworICAgICAgICBpZiAoaW5wdXQuaXNUZXh0
RmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiAhaW5wdXQuaXNSZWFkT25seSgpOworICAgIH0K
KworICAgIFN0cmluZyByZWFkT25seSA9IGFyaWFSZWFkT25seVZhbHVlKCk7CisgICAgaWYgKCFy
ZWFkT25seS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiByZWFkT25seSA9PSAidHJ1ZSIgPyBm
YWxzZSA6IHRydWU7CisKKyAgICBpZiAoaXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc01ldGVyKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChpc1Byb2dyZXNzSW5kaWNhdG9yKCkgfHwgaXNTbGlkZXIoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyAg
ICAvLyBJbiBBVEssIGlucHV0IHR5cGVzIHdoaWNoIHN1cHBvcnQgYXJpYS1yZWFkb25seSBhcmUg
dHJlYXRlZCBhcyBoYXZpbmcgYQorICAgIC8vIHNldHRhYmxlIHZhbHVlIGlmIHRoZSB1c2VyIGNh
biBtb2RpZnkgdGhlIHdpZGdldCdzIHZhbHVlIG9yIGl0cyBzdGF0ZS4KKyAgICBpZiAoc3VwcG9y
dHNBUklBUmVhZE9ubHkoKSB8fCBpc1JhZGlvQnV0dG9uKCkpCisgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCisKKyAgICBpZiAoaXNXZWJBcmVhKCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoSFRNTEVsZW1lbnQqIGJvZHkgPSBk
b2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKSkgeworICAgICAgICAgICAgaWYgKGJvZHktPmhhc0Vk
aXRhYmxlU3R5bGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+aGFzRWRpdGFibGVTdHlsZSgpOworICAgIH0KKwor
ICAgIHJldHVybiBub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCk7Cit9CisKIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgp
IGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhUm9sZSA9IGdldEF0dHJpYnV0
ZShyb2xlQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggMDU5ZWU4YjA2MWJmZDI2MDg0YWExODRkODll
YmVkYjUzZGQ5YjY1NC4uNjNjYzdlMDJhNzYyMmFlNzBiN2Y5YzU0OGNiOTFmMDE2MGIwMGVkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuaApAQCAtOTcsNyArOTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VuYWJs
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgaXNQcmVzc2VkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBp
c1JlYWRPbmx5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKQEAgLTExMCw2ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5TZXRGb2N1
c0F0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBoZWFkaW5nTGV2ZWwoKSBjb25z
dCBvdmVycmlkZTsKIAorICAgIGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdCBvdmVy
cmlkZTsKKwogICAgIFN0cmluZyB2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGZsb2F0IG1heFZh
bHVlRm9yUmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg0M2Y0MWVkMTJiZDA3
ZmFiNTQwZDNiM2EyY2U4MDM1MjAyY2MxMzQuLmQ2ZDA1Y2UzMjgxMmY1ZGUyZTk3ZDJmNzcwMTU2
ZGEyNmVkNjkwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTU2MSw2ICsxNTYxLDM3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aGFzQ29udGVudEVkaXRhYmxlQXR0cmlidXRlU2V0KCkgY29uc3QKICAg
ICByZXR1cm4gY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGVsZW1lbnQoKSk7CiB9
CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUmVhZE9ubHkoKSBjb25z
dAoreworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKKworICAgIHJl
dHVybiByb2xlID09IENoZWNrQm94Um9sZQorICAgICAgICB8fCByb2xlID09IENvbHVtbkhlYWRl
clJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBDb21ib0JveFJvbGUKKyAgICAgICAgfHwgcm9sZSA9
PSBHcmlkUm9sZQorICAgICAgICB8fCByb2xlID09IEdyaWRDZWxsUm9sZQorICAgICAgICB8fCBy
b2xlID09IExpc3RCb3hSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gTWVudUl0ZW1DaGVja2JveFJv
bGUKKyAgICAgICAgfHwgcm9sZSA9PSBNZW51SXRlbVJhZGlvUm9sZQorICAgICAgICB8fCByb2xl
ID09IFJhZGlvR3JvdXBSb2xlCisgICAgICAgIHx8IHJvbGUgPT0gUm93SGVhZGVyUm9sZQorICAg
ICAgICB8fCByb2xlID09IFNlYXJjaEZpZWxkUm9sZQorICAgICAgICB8fCByb2xlID09IFNsaWRl
clJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBTcGluQnV0dG9uUm9sZQorICAgICAgICB8fCByb2xl
ID09IFN3aXRjaFJvbGUKKyAgICAgICAgfHwgcm9sZSA9PSBUZXh0RmllbGRSb2xlCisgICAgICAg
IHx8IHJvbGUgPT0gVHJlZUdyaWRSb2xlCisgICAgICAgIHx8IGlzUGFzc3dvcmRGaWVsZCgpOwor
fQorCitTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVJlYWRPbmx5VmFsdWUoKSBjb25z
dAoreworICAgIGlmICghaGFzQXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkKKyAgICAgICAg
cmV0dXJuIGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUgJiYgc3VwcG9ydHNBUklB
UmVhZE9ubHkoKSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsKKworICAgIHJldHVybiBTdHJpbmcoZ2V0
QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsK
K30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJ
c0VuYWJsZWQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4
IGMyZWM0ZGM3MTcxNzVhYzE3ZWZmNjIyYzM5Mzg4MmFjNjU0ZjJjMWYuLjE0ODQwZjM2MmViNTMy
NDYzYTc2OTE1NjY3NWY3NWIzOWQ5NTNmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01NjksNyArNTY5LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzVW52aXNpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBA
IC05MjMsNiArOTIyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGxpdmVSZWdpb25TdGF0
dXNJc0VuYWJsZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgY29udGVu
dEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1lbnQqKTsKICAgICBib29sIGhhc0NvbnRl
bnRFZGl0YWJsZUF0dHJpYnV0ZVNldCgpIGNvbnN0OworCisgICAgYm9vbCBzdXBwb3J0c0FSSUFS
ZWFkT25seSgpIGNvbnN0OworICAgIFN0cmluZyBhcmlhUmVhZE9ubHlWYWx1ZSgpIGNvbnN0Owog
ICAgIAogICAgIGJvb2wgc3VwcG9ydHNBUklBQXR0cmlidXRlcygpIGNvbnN0OwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggMTRhZGY5NmRlODcwZmYyNzI4YjY1Yjk2MDQ2YTgzOWI5YjQ4
YWExMy4uMTQxYzMzY2UzOTE3N2NiOTY0MjhkYmNlZjBkNTY1NjVkZWI4YjI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCkBAIC01MjIsMjIgKzUyMiw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNGaWxlVXBsb2FkQnV0dG9uKCkgY29uc3QKICAgICAKICAgICByZXR1cm4gZmFs
c2U7CiB9Ci0gICAgCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzUmVhZE9ubHko
KSBjb25zdAotewotICAgIEFTU0VSVChtX3JlbmRlcmVyKTsKLSAgICAKLSAgICBpZiAoaXNXZWJB
cmVhKCkpIHsKLSAgICAgICAgaWYgKEhUTUxFbGVtZW50KiBib2R5ID0gbV9yZW5kZXJlci0+ZG9j
dW1lbnQoKS5ib2R5T3JGcmFtZXNldCgpKSB7Ci0gICAgICAgICAgICBpZiAoYm9keS0+aGFzRWRp
dGFibGVTdHlsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiAhbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS5oYXNFZGl0YWJsZVN0eWxl
KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1JlYWRP
bmx5KCk7Ci19CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNPZmZTY3JlZW4o
KSBjb25zdAogewpAQCAtOTIyLDcgKzkwNiw3IEBAIEludFBvaW50IEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNsaWNrUG9pbnQoKQogICAgICAgICByZXR1cm4gY2hpbGRyZW4oKVswXS0+Y2xp
Y2tQb2ludCgpOwogCiAgICAgLy8gdXNlIHRoZSBkZWZhdWx0IHBvc2l0aW9uIHVubGVzcyB0aGlz
IGlzIGFuIGVkaXRhYmxlIHdlYiBhcmVhLCBpbiB3aGljaCBjYXNlIHdlIHVzZSB0aGUgc2VsZWN0
aW9uIGJvdW5kcy4KLSAgICBpZiAoIWlzV2ViQXJlYSgpIHx8IGlzUmVhZE9ubHkoKSkKKyAgICBp
ZiAoIWlzV2ViQXJlYSgpIHx8ICFjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQb2ludCgpOwogICAgIAogICAgIFZpc2libGVT
ZWxlY3Rpb24gdmlzU2VsZWN0aW9uID0gc2VsZWN0aW9uKCk7CkBAIC0yODc2LDMzICsyODYwLDYg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5TZXRFeHBhbmRlZEF0dHJpYnV0
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGFyaWFF
eHBhbmRlZCwgInRydWUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhcmlhRXhw
YW5kZWQsICJmYWxzZSIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNh
blNldFZhbHVlQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICAvLyBJbiB0aGUgZXZlbnQgb2YgYSAo
Qm9vbGVhbilAcmVhZG9ubHkgYW5kIChUcnVlL0ZhbHNlL1VuZGVmaW5lZClAYXJpYS1yZWFkb25s
eQotICAgIC8vIHZhbHVlIG1pc21hdGNoLCB0aGUgaG9zdCBsYW5ndWFnZSBuYXRpdmUgYXR0cmli
dXRlIHZhbHVlIHdpbnMuICAgIAotICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpCi0gICAg
ICAgIHJldHVybiAhaXNSZWFkT25seSgpOwotCi0gICAgaWYgKGlzTWV0ZXIoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgYXV0byYgcmVhZE9ubHkgPSBnZXRBdHRyaWJ1dGUoYXJpYV9y
ZWFkb25seUF0dHIpOwotICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWFk
T25seSwgInRydWUiKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWFkT25seSwgImZhbHNlIikpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgaWYgKGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBpc1NsaWRlcigpKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1RleHRDb250cm9sKCkgJiYgIWlzTmF0aXZl
VGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBBbnkgbm9kZSBj
b3VsZCBiZSBjb250ZW50ZWRpdGFibGUsIHNvIGlzUmVhZE9ubHkgc2hvdWxkIGJlIHJlbGllZCB1
cG9uCi0gICAgLy8gZm9yIHRoaXMgaW5mb3JtYXRpb24gZm9yIGFsbCBlbGVtZW50cy4KLSAgICBy
ZXR1cm4gIWlzUmVhZE9ubHkoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpjYW5TZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNUZXh0
Q29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA0MDYxOThhMDAwYzk2NGQ4NWFiMTMyMjQ5
MzhlMTBiZmFiYjY4MzY3Li41ZTJmMzYzNWMwNGU3OWQ2NTQ1MzBhMDA2M2RmZDU4YjhkOGRjZmNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzAsNyArNzAsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0ZvY3VzZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTG9hZGVkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
aXNSZWFkT25seSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNVbnZpc2l0ZWQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIGlzVmlzaXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJv
b2wgaXNMaW5rZWQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTgzLDcgKzgyLDYgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzVW5kZXJsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGNhblNl
dFRleHRSYW5nZUF0dHJpYnV0ZXMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNhblNldFZh
bHVlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5TZXRFeHBhbmRlZEF0
dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRBY2Nlc3NpYmxlTmFtZShj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VU
ZXh0LmNwcAppbmRleCA3MzQ5MjJiZjAwMjg5MjlhYjUxYzBkY2NhOWUxNDA5YjZiMzk1MGM0Li42
NTg1YjhhZTkzOTg3NGY4Y2ZhNjYzYjg2ODM3YzRhNzdjNTEwMzA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNz
aWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIEF0a0F0dHJp
YnV0ZVNldCogZ2V0QXR0cmlidXRlU2V0Rm9yQWNjZXNzaWJpbGl0eU9iamVjdChjb25zdCBBY2Nl
c3NpYmlsaXQKIAogICAgIHJlc3VsdCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KHJlc3VsdCwgYXRr
X3RleHRfYXR0cmlidXRlX2dldF9uYW1lKEFUS19URVhUX0FUVFJfSU5WSVNJQkxFKSwgKHN0eWxl
LT52aXNpYmlsaXR5KCkgPT0gSElEREVOKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gICAgcmVz
dWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0LCBhdGtfdGV4dF9hdHRyaWJ1dGVfZ2V0
X25hbWUoQVRLX1RFWFRfQVRUUl9FRElUQUJMRSksIG9iamVjdC0+aXNSZWFkT25seSgpID8gImZh
bHNlIiA6ICJ0cnVlIik7CisgICAgcmVzdWx0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQocmVzdWx0
LCBhdGtfdGV4dF9hdHRyaWJ1dGVfZ2V0X25hbWUoQVRLX1RFWFRfQVRUUl9FRElUQUJMRSksIG9i
amVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCiAgICAg
U3RyaW5nIGxhbmd1YWdlID0gb2JqZWN0LT5sYW5ndWFnZSgpOwogICAgIGlmICghbGFuZ3VhZ2Uu
aXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDAwODQzZWMxZjY4
NjgyMDFkYTI5ODc3N2FkNWJkZDhlZmI0NjBmNWUuLmY4YzFmZjI3NDYyNDdlOGM3MzJmOTNhZmYz
NjZjMzY4ZWNkODBlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTQ3NCw2
ICs0NzQsMTAgQEAgc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0
dHJpYnV0ZXMoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRz
QVJJQVNldFNpemUoKSkKICAgICAgICAgYXR0cmlidXRlU2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVT
ZXQoYXR0cmlidXRlU2V0LCAic2V0c2l6ZSIsIFN0cmluZzo6bnVtYmVyKGNvcmVPYmplY3QtPmFy
aWFTZXRTaXplKCkpLnV0ZjgoKS5kYXRhKCkpOwogCisgICAgU3RyaW5nIGlzUmVhZE9ubHkgPSBj
b3JlT2JqZWN0LT5hcmlhUmVhZE9ubHlWYWx1ZSgpOworICAgIGlmICghaXNSZWFkT25seS5pc0Vt
cHR5KCkpCisgICAgICAgIGF0dHJpYnV0ZVNldCA9IGFkZFRvQXRrQXR0cmlidXRlU2V0KGF0dHJp
YnV0ZVNldCwgInJlYWRvbmx5IiwgaXNSZWFkT25seS51dGY4KCkuZGF0YSgpKTsKKwogICAgIC8v
IEFjY29yZGluZyB0byB0aGUgVzNDIENvcmUgQWNjZXNzaWJpbGl0eSBBUEkgTWFwcGluZ3MgMS4x
LCBzZWN0aW9uIDUuNC4xIEdlbmVyYWwgUnVsZXM6CiAgICAgLy8gIlVzZXIgYWdlbnRzIG11c3Qg
ZXhwb3NlIHRoZSBXQUktQVJJQSByb2xlIHN0cmluZyBpZiB0aGUgQVBJIHN1cHBvcnRzIGEgbWVj
aGFuaXNtIHRvIGRvIHNvLiIKICAgICAvLyBJbiB0aGUgY2FzZSBvZiBBVEssIHRoZSBtZWNoYW5p
c20gdG8gZG8gc28gaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSBwYWlyICh4bWwtcm9sZXM6InN0cmlu
ZyIpLgpAQCAtODAxLDE2ICs4MDUsMTUgQEAgc3RhdGljIHZvaWQgc2V0QXRrU3RhdGVTZXRGcm9t
Q29yZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGtTdGEKICAgICBp
ZiAoaXNMaXN0Qm94T3B0aW9uICYmIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUo
KSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9B
Q1RJVkUpOwogCisjaWYgQVRLX0NIRUNLX1ZFUlNJT04oMiwxMSwyKQorICAgIGlmIChjb3JlT2Jq
ZWN0LT5zdXBwb3J0c0NoZWNrZWQoKSAmJiBjb3JlT2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0
ZSgpKQorICAgICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRF
X0NIRUNLQUJMRSk7CisjZW5kaWYKKwogICAgIGlmIChjb3JlT2JqZWN0LT5pc0NoZWNrZWQoKSkK
ICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3RhdGVTZXQsIEFUS19TVEFURV9DSEVD
S0VEKTsKIAotICAgIC8vIEZJWE1FOiBpc1JlYWRPbmx5IGRvZXMgbm90IHNlZW0gdG8gZG8gdGhl
IHJpZ2h0IHRoaW5nIGZvcgotICAgIC8vIGNvbnRyb2xzLCBzbyBjaGVjayBleHBsaWNpdGx5IGZv
ciB0aGVtLiBJbiBhZGRpdGlvbiwgYmVjYXVzZQotICAgIC8vIGlzUmVhZE9ubHkgaXMgZmFsc2Ug
Zm9yIGxpc3RCb3hPcHRpb25zLCB3ZSBuZWVkIHRvIGFkZCBvbmUKLSAgICAvLyBtb3JlIGNoZWNr
IHNvIHRoYXQgd2UgZG8gbm90IHByZXNlbnQgdGhlbSBhcyBiZWluZyAiZWRpdGFibGUiLgotICAg
IGlmICgoIWNvcmVPYmplY3QtPmlzUmVhZE9ubHkoKQotICAgICAgICB8fCAoY29yZU9iamVjdC0+
aXNDb250cm9sKCkgJiYgY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkpCi0gICAg
ICAgICYmICFpc0xpc3RCb3hPcHRpb24pCisgICAgaWYgKChjb3JlT2JqZWN0LT5pc1RleHRDb250
cm9sKCkgfHwgY29yZU9iamVjdC0+aXNOb25OYXRpdmVUZXh0Q29udHJvbCgpKSAmJiBjb3JlT2Jq
ZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICBhdGtfc3RhdGVfc2V0X2FkZF9z
dGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX0VESVRBQkxFKTsKIAogICAgIC8vIEZJWE1FOiBQdXQg
Ym90aCBFTkFCTEVEIGFuZCBTRU5TSVRJVkUgdG9nZXRoZXIgaGVyZSBmb3Igbm93CkBAIC04NTUs
NiArODU4LDExIEBAIHN0YXRpYyB2b2lkIHNldEF0a1N0YXRlU2V0RnJvbUNvcmVPYmplY3QoQWNj
ZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrU3RhCiAgICAgaWYgKGNvcmVPYmplY3Qt
PmlzUHJlc3NlZCgpKQogICAgICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwg
QVRLX1NUQVRFX1BSRVNTRUQpOwogCisjaWYgQVRLX0NIRUNLX1ZFUlNJT04oMiwxNSwzKQorICAg
IGlmICghY29yZU9iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSAmJiAoY29yZU9iamVjdC0+
c3VwcG9ydHNBUklBUmVhZE9ubHkoKSkpCisgICAgICAgIGF0a19zdGF0ZV9zZXRfYWRkX3N0YXRl
KHN0YXRlU2V0LCBBVEtfU1RBVEVfUkVBRF9PTkxZKTsKKyNlbmRpZgorCiAgICAgaWYgKGNvcmVP
YmplY3QtPmlzUmVxdWlyZWQoKSkKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3Rh
dGVTZXQsIEFUS19TVEFURV9SRVFVSVJFRCk7CiAKQEAgLTExNDQsOSArMTE1Miw5IEBAIHN0YXRp
YyBndWludDE2IGdldEludGVyZmFjZU1hc2tGcm9tT2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGNvcmVPYmplY3QpCiAgICAgLy8gVGV4dCwgRWRpdGFibGUgVGV4dCAmIEh5cGVydGV4dAogICAg
IGlmIChyb2xlID09IFN0YXRpY1RleHRSb2xlIHx8IGNvcmVPYmplY3QtPmlzTWVudUxpc3RPcHRp
b24oKSkKICAgICAgICAgaW50ZXJmYWNlTWFzayB8PSAxIDw8IFdBSVRleHQ7Ci0gICAgZWxzZSBp
ZiAoY29yZU9iamVjdC0+aXNUZXh0Q29udHJvbCgpKSB7CisgICAgZWxzZSBpZiAoY29yZU9iamVj
dC0+aXNUZXh0Q29udHJvbCgpIHx8IGNvcmVPYmplY3QtPmlzTm9uTmF0aXZlVGV4dENvbnRyb2wo
KSkgewogICAgICAgICBpbnRlcmZhY2VNYXNrIHw9IDEgPDwgV0FJVGV4dDsKLSAgICAgICAgaWYg
KCFjb3JlT2JqZWN0LT5pc1JlYWRPbmx5KCkpCisgICAgICAgIGlmIChjb3JlT2JqZWN0LT5jYW5T
ZXRWYWx1ZUF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgaW50ZXJmYWNlTWFzayB8PSAxIDw8IFdB
SUVkaXRhYmxlVGV4dDsKICAgICB9IGVsc2UgaWYgKCFjb3JlT2JqZWN0LT5pc1dlYkFyZWEoKSkg
ewogICAgICAgICBpZiAocm9sZSAhPSBUYWJsZVJvbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDc4MTQ3NWI5ZTNiMTdhOGVjY2U4
YTZkODZiMDZjNWMyNmIyNTIzMjcuLjdlNDhkMTI3OWE1MjZjZTMxZjEzZDdkYmQzYWFjZjkzNDY3
NTQzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcApAQCAtMTcyNiw3ICsxNzI2LDcgQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6QWNjZXNzaWJpbGl0eVByb3BlcnRpZXM+IEluc3BlY3RvckRPTUFnZW50OjpidWkKICAgICAg
ICAgICAgICAgICBwcmVzc2VkID0gYXhPYmplY3QtPmlzUHJlc3NlZCgpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoYXhPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKLSAgICAgICAgICAg
ICAgICByZWFkb25seSA9IGF4T2JqZWN0LT5pc1JlYWRPbmx5KCk7CisgICAgICAgICAgICAgICAg
cmVhZG9ubHkgPSAhYXhPYmplY3QtPmNhblNldFZhbHVlQXR0cmlidXRlKCk7CiAKICAgICAgICAg
ICAgIHN1cHBvcnRzUmVxdWlyZWQgPSBheE9iamVjdC0+c3VwcG9ydHNSZXF1aXJlZEF0dHJpYnV0
ZSgpOwogICAgICAgICAgICAgaWYgKHN1cHBvcnRzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nl
c3NpYmxlQmFzZS5jcHAKaW5kZXggNmRlNjgzZGVkNTE4YjNmMGU2NDAyMTk4NGE5ZGQ5OGU5NmE3
MzVlZC4uOTQ3NDA5ZjRlMDc2OTA0MzA5YWM5OWE4NGEwZTg0NjZkMTU2ZTNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtNDg4LDcgKzQ4OCw3IEBAIGxvbmcgQWNjZXNz
aWJsZUJhc2U6OnN0YXRlKCkgY29uc3QKICAgICBpZiAoIW1fb2JqZWN0LT5pc0VuYWJsZWQoKSkK
ICAgICAgICAgc3RhdGUgfD0gU1RBVEVfU1lTVEVNX1VOQVZBSUxBQkxFOwogCi0gICAgaWYgKG1f
b2JqZWN0LT5pc1JlYWRPbmx5KCkpCisgICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRy
aWJ1dGUoKSkKICAgICAgICAgc3RhdGUgfD0gU1RBVEVfU1lTVEVNX1JFQURPTkxZOwogCiAgICAg
aWYgKG1fb2JqZWN0LT5pc09mZlNjcmVlbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVU
ZXh0SW1wbC5jcHAKaW5kZXggYjcwNWYwOWQ4ZmVlOTZjNjE5NjcyNTg1OWNmMDkzZmY1ZTc2Yzg4
ZC4uYzg4MjJkOTg1ZDA5M2Q1N2EyZmQxYTg5Y2RiZjQ4ODRlZDdlMTg0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCkBAIC01NjMsNyArNTYzLDcgQEAgSFJFU1VM
VCBBY2Nlc3NpYmxlVGV4dDo6Y29weVRleHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZz
ZXQpCiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmRlbGV0ZVRleHQobG9uZyBzdGFydE9mZnNl
dCwgbG9uZyBlbmRPZmZzZXQpCiB7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1JlYWRPbmx5KCkpCisg
ICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJu
IFNfRkFMU0U7CiAKICAgICBpZiAoaW5pdGlhbENoZWNrKCkgPT0gRV9QT0lOVEVSKQpAQCAtNTgx
LDcgKzU4MSw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmRlbGV0ZVRleHQobG9uZyBzdGFy
dE9mZnNldCwgbG9uZyBlbmRPZmZzZXQpCiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6Omluc2Vy
dFRleHQobG9uZyBvZmZzZXQsIEJTVFIqIHRleHQpCiB7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1Jl
YWRPbmx5KCkpCisgICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSkKICAg
ICAgICAgcmV0dXJuIFNfRkFMU0U7CiAKICAgICBpZiAoaW5pdGlhbENoZWNrKCkgPT0gRV9QT0lO
VEVSKQpAQCAtNjAxLDcgKzYwMSw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6Omluc2VydFRl
eHQobG9uZyBvZmZzZXQsIEJTVFIqIHRleHQpCiAKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmN1
dFRleHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQpCiB7Ci0gICAgaWYgKG1fb2Jq
ZWN0LT5pc1JlYWRPbmx5KCkpCisgICAgaWYgKCFtX29iamVjdC0+Y2FuU2V0VmFsdWVBdHRyaWJ1
dGUoKSkKICAgICAgICAgcmV0dXJuIFNfRkFMU0U7CiAKICAgICBpZiAoaW5pdGlhbENoZWNrKCkg
PT0gRV9QT0lOVEVSKQpAQCAtNjIyLDcgKzYyMiw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6
OmN1dFRleHQobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQpCiAKIEhSRVNVTFQgQWNj
ZXNzaWJsZVRleHQ6OnBhc3RlVGV4dChsb25nIG9mZnNldCkKIHsKLSAgICBpZiAobV9vYmplY3Qt
PmlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIW1fb2JqZWN0LT5jYW5TZXRWYWx1ZUF0dHJpYnV0ZSgp
KQogICAgICAgICByZXR1cm4gU19GQUxTRTsKIAogICAgIGlmIChpbml0aWFsQ2hlY2soKSA9PSBF
X1BPSU5URVIpCkBAIC02NDIsNyArNjQyLDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6cGFz
dGVUZXh0KGxvbmcgb2Zmc2V0KQogCiBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpyZXBsYWNlVGV4
dChsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNUUiogdGV4dCkKIHsKLSAgICBp
ZiAobV9vYmplY3QtPmlzUmVhZE9ubHkoKSkKKyAgICBpZiAoIW1fb2JqZWN0LT5jYW5TZXRWYWx1
ZUF0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gU19GQUxTRTsKIAogICAgIGlmIChpbml0aWFs
Q2hlY2soKSA9PSBFX1BPSU5URVIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYjI2NzA3M2E0ZWNiODQwZTFhZDgzOTk3OWQzMjFiMmMzYWI5MGU3
ZC4uNDZlYzIxN2FhYjFkMmZhOTU0YWU2NWU4MThiMWJlZDgxMzJhOGQ3MCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDE2LTA1LTEwICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBpcyBmYWlsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjaGVja3MgdG8g
aXNBdHRyaWJ1dGVTZXR0YWJsZSgpIGZvciBBVEtfU1RBVEVfUkVBRF9PTkxZIGFuZCB0aGUgJ3Jl
YWRvbmx5JworICAgICAgICBBdGtPYmplY3QgYXR0cmlidXRlIGFsb25nIHdpdGggQVRLX1NUQVRF
X0NIRUNLQUJMRSBmb3IgdG9nZ2xlLWFibGUgZWxlbWVudHMsCisgICAgICAgIEFUS19TVEFURV9T
RUxFQ1RBQkxFIGZvciBzZWxlY3QgZWxlbWVudHMsIGFuZCBBVEtfU1RBVEVfRk9DVVNBQkxFIGNv
bWJpbmVkCisgICAgICAgIHdpdGggcmFuZ2UgdmVyaWZpY2F0aW9uIGZvciBpbnB1dHMgd2hpY2gg
aW1wbGVtZW50IEF0a1ZhbHVlLiBUaGUgbGF0dGVyIHR3bworICAgICAgICBhZGRpdGlvbnMgYXJl
IGFkbWl0dGVkbHkgYSBoZXVyaXN0aWMgd29ya2Fyb3VuZCBmb3IgcGxhdGZvcm0gYWNjZXNzaWJp
bGl0eQorICAgICAgICBBUEkgZGlmZmVyZW5jZXMuIEJ1dCB0aGV5IHNob3VsZCBiZSBzdWZmaWNp
ZW50IHRvIGZhY2lsaXRhdGUgY3Jvc3MtcGxhdGZvcm0KKyAgICAgICAgdGVzdGluZyBvZiBpc0F0
dHJpYnV0ZVNldHRhYmxlKCkgZm9yIGZvcm0gZWxlbWVudHMgd2hpY2ggbGFjayBBUklBIGF0dHJp
YnV0ZXMuCisKKyAgICAgICAgQnVtcCB0aGUgbWluaW11bSB2ZXJzaW9uIG9mIGF0LXNwaTItY29y
ZSBhbmQgYXQtc3BpMi1hdGsKKyAgICAgICAgdG8gMi4xNS40IChlYXJsaWVzdCB2ZXJzaW9uIHRo
YXQgc3VwcG9ydHMgU1RBVEVfUkVBRF9PTkxZKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKToK
KyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorCiAyMDE2LTA1LTEwICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTGludXhdIFJlbW92
ZSBzZWNjb21wIGZpbHRlcnMgc3VwcG9ydApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50QXRrLmNwcAppbmRleCAxZjU3N2IxNmZiZmQzZWM2OWZiNjkwYjNjZmQ1YTE0OTQwOWMw
NTQ5Li43ZDIxMWRmODM1NDU0MTNjZDM0OGNmMTE1ZjExMDkxZmUzOTNjYTcwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50QXRrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcApAQCAtMTA0NCw4ICsxMDQ0LDUx
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0
cmluZ1JlZiBhdHRyaWJ1dGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBh
dHRyaWJ1dGVTdHJpbmcgPSBqc1N0cmluZ1RvV1RGU3RyaW5nKGF0dHJpYnV0ZSk7Ci0gICAgaWYg
KGF0dHJpYnV0ZVN0cmluZyA9PSAiQVhWYWx1ZSIpCi0gICAgICAgIHJldHVybiBjaGVja0VsZW1l
bnRTdGF0ZShtX2VsZW1lbnQuZ2V0KCksIEFUS19TVEFURV9FRElUQUJMRSk7CisgICAgaWYgKGF0
dHJpYnV0ZVN0cmluZyAhPSAiQVhWYWx1ZSIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIEFUSyBkb2VzIG5vdCBoYXZlIGEgc2luZ2xlIHN0YXRlIG9yIHByb3BlcnR5IHRvIGluZGlj
YXRlIHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZQorICAgIC8vIG9mIGFuIGFjY2Vzc2libGUgb2Jq
ZWN0IGNhbiBiZSBzZXQuIEFUcyBsb29rIGF0IHNldmVyYWwgc3RhdGVzIGFuZCBwcm9wZXJ0aWVz
IGJhc2VkCisgICAgLy8gb24gdGhlIHR5cGUgb2Ygb2JqZWN0LiBJZiBub3RoaW5nIGV4cGxpY2l0
bHkgaW5kaWNhdGVzIHRoZSB2YWx1ZSBjYW4gb3IgY2Fubm90IGJlCisgICAgLy8gc2V0LCBBVHMg
bWFrZSByb2xlLSBhbmQgaW50ZXJmYWNlLWJhc2VkIGRlY2lzaW9ucy4gV2UnbGwgZG8gc29tZXRo
aW5nIHNpbWlsYXIgaGVyZS4KKworICAgIC8vIFRoaXMgc3RhdGUgaXMgZXhwZWN0ZWQgdG8gYmUg
cHJlc2VudCBvbmx5IGZvciB0ZXh0IHdpZGdldHMgYW5kIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50
cy4KKyAgICBpZiAoY2hlY2tFbGVtZW50U3RhdGUobV9lbGVtZW50LmdldCgpLCBBVEtfU1RBVEVf
RURJVEFCTEUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIEFUS19DSEVDS19WRVJTSU9O
KDIsMTEsMikKKyAgICAvLyBUaGlzIHN0YXRlIGlzIGFwcGxpY2FibGUgdG8gY2hlY2tib3hlcywg
cmFkaW9idXR0b25zLCBzd2l0Y2hlcywgZXRjLgorICAgIGlmIChjaGVja0VsZW1lbnRTdGF0ZSht
X2VsZW1lbnQuZ2V0KCksIEFUS19TVEFURV9DSEVDS0FCTEUpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbmRpZgorCisjaWYgQVRLX0NIRUNLX1ZFUlNJT04oMiwxNSwzKQorICAgIC8vIFRoaXMg
c3RhdGUgaXMgZXhwZWN0ZWQgdG8gYmUgcHJlc2VudCBvbmx5IGZvciBjb250cm9scyBhbmQgb25s
eSBpZiBleHBsaWNpdGx5IHNldC4KKyAgICBpZiAoY2hlY2tFbGVtZW50U3RhdGUobV9lbGVtZW50
LmdldCgpLCBBVEtfU1RBVEVfUkVBRF9PTkxZKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisKKyAgICAvLyBXZSBleHBvc2UgYW4gb2JqZWN0IGF0dHJpYnV0ZSB0byBBVHMgd2hlbiB0
aGVyZSBpcyBhbiBhdXRob3ItcHJvdmlkZWQgQVJJQSBwcm9wZXJ0eQorICAgIC8vIGFuZCBhbHNv
IHdoZW4gdGhlcmUgaXMgYSBzdXBwb3J0ZWQgQVJJQSByb2xlIGJ1dCBubyBhdXRob3ItcHJvdmlk
ZWQgdmFsdWUuCisgICAgU3RyaW5nIGlzUmVhZE9ubHkgPSBnZXRBdHRyaWJ1dGVTZXRWYWx1ZUZv
cklkKEFUS19PQkpFQ1QobV9lbGVtZW50LmdldCgpKSwgT2JqZWN0QXR0cmlidXRlVHlwZSwgInJl
YWRvbmx5Iik7CisgICAgaWYgKCFpc1JlYWRPbmx5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IGlzUmVhZE9ubHkgPT0gInRydWUiID8gZmFsc2UgOiB0cnVlOworCisgICAgLy8gSWYgd2UgaGF2
ZSBhIG5hdGl2ZSBsaXN0Ym94IG9yIGNvbWJvYm94IGFuZCB0aGUgdmFsdWUgY2FuIGJlIHNldCwg
dGhlIG9wdGlvbnMgc2hvdWxkCisgICAgLy8gaGF2ZSBBVEtfU1RBVEVfU0VMRUNUQUJMRS4KKyAg
ICBBdGtSb2xlIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKEFUS19PQkpFQ1QobV9lbGVtZW50
LmdldCgpKSk7CisgICAgaWYgKHJvbGUgPT0gQVRLX1JPTEVfTElTVF9CT1ggfHwgcm9sZSA9PSBB
VEtfUk9MRV9DT01CT19CT1gpIHsKKyAgICAgICAgaWYgKEdSZWZQdHI8QXRrT2JqZWN0PiBjaGls
ZCA9IGFkb3B0R1JlZihhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKEFUS19PQkpFQ1Qo
bV9lbGVtZW50LmdldCgpKSwgMCkpKSB7CisgICAgICAgICAgICBpZiAoYXRrX29iamVjdF9nZXRf
cm9sZShBVEtfT0JKRUNUKGNoaWxkLmdldCgpKSkgPT0gQVRLX1JPTEVfTUVOVSkKKyAgICAgICAg
ICAgICAgICBjaGlsZCA9IGFkb3B0R1JlZihhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxk
KEFUS19PQkpFQ1QoY2hpbGQuZ2V0KCkpLCAwKSk7CisgICAgICAgICAgICByZXR1cm4gY2hpbGQg
JiYgY2hlY2tFbGVtZW50U3RhdGUoY2hpbGQuZ2V0KCksIEFUS19TVEFURV9TRUxFQ1RBQkxFKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHdlIGhhdmUgYSBuYXRpdmUgZWxlbWVudCB3
aGljaCBleHBvc2VzIGEgcmFuZ2Ugd2hvc2UgdmFsdWUgY2FuIGJlIHNldCwgaXQgc2hvdWxkCisg
ICAgLy8gYmUgZm9jdXNhYmxlIGFuZCBoYXZlIGEgdHJ1ZSByYW5nZS4KKyAgICBpZiAoQVRLX0lT
X1ZBTFVFKG1fZWxlbWVudC5nZXQoKSkgJiYgY2hlY2tFbGVtZW50U3RhdGUobV9lbGVtZW50Lmdl
dCgpLCBBVEtfU1RBVEVfRk9DVVNBQkxFKSkKKyAgICAgICAgcmV0dXJuIG1pblZhbHVlKCkgIT0g
bWF4VmFsdWUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL2d0
ay9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCmluZGV4IGZjYTg2
NWE1MWE0ZmFkMGMxZjU4MDg3ZDM0MWMwYmMzZmIxNjM0ZDIuLmQ2NGNlZjY1N2U1YWVlMGUwNjE0
NjczNDA4ZTE1NGI5YWRhMTdiMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVs
ZXMKKysrIGIvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcwpAQCAtMjg1LDkgKzI4NSw5IEBACiAK
ICAgPGF1dG90b29scyBpZD0iYXQtc3BpMi1jb3JlIiAKICAgICAgICAgICAgICBhdXRvZ2VuYXJn
cz0iLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgotICAgIDxicmFuY2ggbW9kdWxlPSJwdWIvR05P
TUUvc291cmNlcy9hdC1zcGkyLWNvcmUvMi4xMC9hdC1zcGkyLWNvcmUtMi4xMC4wLnRhci54eiIg
dmVyc2lvbj0iMi4xMC4wIgorICAgIDxicmFuY2ggbW9kdWxlPSJwdWIvR05PTUUvc291cmNlcy9h
dC1zcGkyLWNvcmUvMi4xNS9hdC1zcGkyLWNvcmUtMi4xNS40LnRhci54eiIgdmVyc2lvbj0iMi4x
NS40IgogICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKLSAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo5NjQxNTVjNzU3NDIyMGEwMGUxMWUxYzBkOTFmMmQzMDE3ZWQ2MDM5MjBlYjEzMzNm
ZjljYmRiNmEyMjc0NGRiIj4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjowZTNiMDFhZjZiYTA2
ZDk4ZmFmN2I4NTg5MWVjZTM5NDg5N2ZlMTQ1YjA3NjBiNzg0NmU4MTBiNTdmMWI4MDlmIj4KICAg
ICA8L2JyYW5jaD4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnbGli
Ii8+CkBAIC0yOTUsOSArMjk1LDkgQEAKICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBp
ZD0iYXQtc3BpMi1hdGsiPgotICAgIDxicmFuY2ggbW9kdWxlPSJwdWIvR05PTUUvc291cmNlcy9h
dC1zcGkyLWF0ay8yLjEwL2F0LXNwaTItYXRrLTIuMTAuMC50YXIueHoiIHZlcnNpb249IjIuMTAu
MCIKKyAgICA8YnJhbmNoIG1vZHVsZT0icHViL0dOT01FL3NvdXJjZXMvYXQtc3BpMi1hdGsvMi4x
NS9hdC1zcGkyLWF0ay0yLjE1LjQudGFyLnh6IiB2ZXJzaW9uPSIyLjE1LjQiCiAgICAgICAgICAg
ICByZXBvPSJmdHAuZ25vbWUub3JnIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmRlYTdmZjJm
OWJjOWJiZGIwMzUxMTEyNjE2ZDczOGRlNzE4YjU1NzM5Y2QyNTExYWZlY2FjNTE2MDRjMzFhOTQi
PgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjMyODNhYTUyMDdiODFlNGM3N2QyNGM0ZThiMWMw
YWJlNmM4NTBiMTFhMmU2MmNkODczY2MwN2FmMGI0MDM1MDEiPgogICAgIDwvYnJhbmNoPgogICAg
IDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMTY0
M2M0ZWVkNWMzZTIzNzZlNWNkYTUzOTI0YTIxMDE0NjhlODA4Li41NWU0Yjc1N2Y2MmY1MmRmYjhl
ZDg5MzJkMjkwZTAwODhhNzkxYjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMDUtMTAg
IEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIGFj
Y2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgcGFydCBvZiB0aGlzIGNoYW5nZSwg
YSBuZXcgQXRrT2JqZWN0IGF0dHJpYnV0ZSBhbmQgc3RhdGUgYXJlIGJlaW5nIGV4cG9zZWQuCisg
ICAgICAgIFVwZGF0ZSB0d28gdGVzdHMgYWNjb3JkaW5nbHkuIEFsc28gdW5za2lwIHRoZSBwcmV2
aW91c2x5LWZhaWxpbmcgdGVzdC4gTGFzdGx5LAorICAgICAgICBtb3ZlIHRoZSBNYWMgZm9ybS1j
b250cm9sLXZhbHVlLXNldHRhYmxlLmh0bWwgdGVzdCB0byB0aGUgc2hhcmVkIHRlc3Qgc2V0LAor
ICAgICAgICB3aXRoIGEgbWlub3IgdHdlYWsgdG8gY2hlY2sgdGhlIHBsYXRmb3JtIGZvciBzZXZl
cmFsIGVsZW1lbnRzJyBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Zv
cm0tY29udHJvbC12YWx1ZS1zZXR0YWJsZS5odG1sOiBNb3ZlZCB0byBzaGFyZWQgdGVzdHMuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJvbGVzLWV4cG9zZWQtZXhwZWN0ZWQudHh0
OiBVcGRhdGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBVbnNr
aXBwZWQgcHJldmlvdXNseS1mYWlsaW5nIHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvZm9ybS1jb250cm9sLXZhbHVlLXNldHRhYmxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0aW9u
LWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9mb3JtLWNvbnRyb2wtdmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0OiBNb3ZlZC4KKwog
MjAxNi0wNS0xMCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYXJraW5nIGZhc3QvdGV4dC91bmljb2RlLXJhbmdlLWRvd25sb2FkLmh0bWwgYXMgZmxha3kK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZm9ybS1jb250cm9sLXZhbHVl
LXNldHRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Zvcm0tY29udHJvbC12
YWx1ZS1zZXR0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwZDgyM2RmNTY3YzYwNzY0OGE5NTk4ODFj
YzMzZTllYTZiYmM5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2Zvcm0tY29udHJvbC12YWx1ZS1zZXR0YWJsZS5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8ZGl2PgorICA8aW5wdXQgaWQ9InRleHQxIiB0
eXBlPSJ0ZXh0IiB2YWx1ZT0iVmFsdWUiPgorICA8aW5wdXQgaWQ9ImNoZWNrYm94MSIgdHlwZT0i
Y2hlY2tib3giIGNoZWNrZWQ+CisgIDxpbnB1dCBpZD0ibnVtYmVyMSIgdHlwZT0ibnVtYmVyIiB2
YWx1ZT0iMTIzIj4KKyAgPGlucHV0IGlkPSJyYWRpbzEiIHR5cGU9InJhZGlvIiBjaGVja2VkPgor
ICA8aW5wdXQgaWQ9InNsaWRlcjEiIHR5cGU9InJhbmdlIiBtaW49IjEiIG1heD0iMTAiIHZhbHVl
PSI1Ij4KKyAgPGlucHV0IGlkPSJzdWJtaXQxIiB0eXBlPSJzdWJtaXQiPgorICA8c2VsZWN0IGlk
PSJjb21ib2JveDEiPjxvcHRpb24+MTxvcHRpb24gc2VsZWN0ZWQ+Mjwvc2VsZWN0PgorICA8c2Vs
ZWN0IG11bHRpcGxlIGlkPSJsaXN0Ym94MSI+PG9wdGlvbj4xPG9wdGlvbiBzZWxlY3RlZD4yPC9z
ZWxlY3Q+CisgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5UZXh0YXJlYTwvdGV4dGFyZWE+Cis8
L2Rpdj4KKworPGRpdiBjb250ZW50RWRpdGFibGU+CisgIDxpbnB1dCBpZD0idGV4dDIiIHR5cGU9
InRleHQiIHZhbHVlPSJWYWx1ZSI+CisgIDxpbnB1dCBpZD0iY2hlY2tib3gyIiB0eXBlPSJjaGVj
a2JveCIgY2hlY2tlZD4KKyAgPGlucHV0IGlkPSJudW1iZXIyIiB0eXBlPSJudW1iZXIiIHZhbHVl
PSIxMjMiPgorICA8aW5wdXQgaWQ9InJhZGlvMiIgdHlwZT0icmFkaW8iIGNoZWNrZWQ+CisgIDxp
bnB1dCBpZD0ic2xpZGVyMiIgdHlwZT0icmFuZ2UiIG1pbj0iMSIgbWF4PSIxMCIgdmFsdWU9IjUi
PgorICA8aW5wdXQgaWQ9InN1Ym1pdDIiIHR5cGU9InN1Ym1pdCI+CisgIDxzZWxlY3QgaWQ9ImNv
bWJvYm94MiI+PG9wdGlvbj4xPG9wdGlvbiBzZWxlY3RlZD4yPC9zZWxlY3Q+CisgIDxzZWxlY3Qg
bXVsdGlwbGUgaWQ9Imxpc3Rib3gyIj48b3B0aW9uPjE8b3B0aW9uIHNlbGVjdGVkPjI8L3NlbGVj
dD4KKyAgPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTIiPlRleHRhcmVhPC90ZXh0YXJlYT4KKzwvZGl2
PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0cyB3aGV0aGVyIEFYVmFsdWUgaXMgd3JpdGFibGUgZm9yIHZhcmlvdXMgZm9ybSBjb250
cm9scy4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGZ1bmN0aW9uIGNoZWNrKGlkMSwgaWQyLCBleHBlY3RlZDEpIHsKKyAgICAgICAgZGVidWcoaWQx
KTsKKyAgICAgICAgd2luZG93LmVsZW1lbnQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQx
KTsKKyAgICAgICAgZWxlbWVudDEuZm9jdXMoKTsKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEiLCAidHJ1ZSIpOworICAgICAgICB3aW5kb3cuYXhF
bGVtZW50MSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAg
ICAgIGRlYnVnKGlkMik7CisgICAgICAgIHdpbmRvdy5lbGVtZW50MiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkMik7CisgICAgICAgIGVsZW1lbnQyLmZvY3VzKCk7CisgICAgICAgIHNob3Vs
ZEJlKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQyIiwgInRydWUiKTsKKyAgICAg
ICAgd2luZG93LmF4RWxlbWVudDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxl
bWVudDsKKworICAgICAgICBzaG91bGRCZSgiYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxl
KCdBWFZhbHVlJykiLCBTdHJpbmcoZXhwZWN0ZWQxKSk7CisgICAgICAgIC8vIElmIGNvbnRlbnRF
ZGl0YWJsZSwgQVhWYWx1ZSBpcyBhbHdheXMgd3JpdGFibGUuCisgICAgICAgIHNob3VsZEJlKCJh
eEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSIsICJ0cnVlIik7CisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICB9CisKKyAgICAvLyBBbGwgdGV4dC1saWtlIGZvcm0gY29udHJv
bHMgc2hvdWxkIGhhdmUgYSB3cml0YWJsZSBBWFZhbHVlLgorICAgIGNoZWNrKCJ0ZXh0MSIsICJ0
ZXh0MiIsIHRydWUpOworICAgIGNoZWNrKCJudW1iZXIxIiwgIm51bWJlcjIiLCB0cnVlKTsKKyAg
ICBjaGVjaygidGV4dGFyZWExIiwgInRleHRhcmVhMiIsIHRydWUpOworCisgICAgLy8gQSBzbGlk
ZXIgY2FuIHNldCBBWFZhbHVlLgorICAgIGNoZWNrKCJzbGlkZXIxIiwgInNsaWRlcjIiLCB0cnVl
KTsKKworICAgIC8vIE90aGVyIGNvbnRyb2xzIHdob3NlIGNvbnRlbnRzIG9yIHN0YXRlIGNhbiBi
ZSB1c2VyIG1vZGlmaWVkIHNob3VsZCBoYXZlIGEgcmVhZC1vbmx5CisgICAgLy8gQVhWYWx1ZSBm
b3Igbm9uLUFUSy1iYXNlZCBwbGF0Zm9ybXMsIHVubGVzcyB0aG9zZSBjb250cm9scyBhcmUgaW5z
aWRlIGNvbnRlbnRFZGl0YWJsZSwKKyAgICAvLyB0aGVuIGV2ZXJ5dGhpbmcgc2hvdWxkIGhhdmUg
YSB3cml0YWJsZSBBWFZhbHVlLgorICAgIGlzQVRLID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
cGxhdGZvcm1OYW1lID09ICJhdGsiOworICAgIGNoZWNrKCJjaGVja2JveDEiLCAiY2hlY2tib3gy
IiwgaXNBVEsgPyB0cnVlIDogZmFsc2UpOworICAgIGNoZWNrKCJyYWRpbzEiLCAicmFkaW8yIiwg
aXNBVEsgPyB0cnVlIDogZmFsc2UpOworICAgIGNoZWNrKCJzdWJtaXQxIiwgInN1Ym1pdDIiLCBm
YWxzZSk7CisgICAgY2hlY2soImNvbWJvYm94MSIsICJjb21ib2JveDIiLCBpc0FUSyA/IHRydWUg
OiBmYWxzZSk7CisgICAgY2hlY2soImxpc3Rib3gxIiwgImxpc3Rib3gyIiwgaXNBVEsgPyB0cnVl
IDogZmFsc2UpOworfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJvbGVzLWV4cG9zZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsveG1sLXJvbGVzLWV4cG9zZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IGI4MzlmM2RhNDdmN2I5YjAyM2FlN2ViMzM0ZDc2ZDlhYmU4YjU1YzUu
LmViNTNjNjE4ZmRlNDUxMWVhZmNmYzhlYzFiMTkwN2VkNmRjNTliNjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3htbC1yb2xlcy1leHBvc2VkLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay94bWwtcm9sZXMtZXhwb3NlZC1l
eHBlY3RlZC50eHQKQEAgLTEzNSw3ICsxMzUsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6
IDAKIEFYUmVxdWlyZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNv
bXB1dGVkLXJvbGU6Y2hlY2tib3gsIHhtbC1yb2xlczpjaGVja2JveCwgdGFnOmRpdiwgdG9vbGtp
dDpXZWJLaXRHdGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVzOiBjb21wdXRlZC1yb2xlOmNoZWNrYm94
LCB4bWwtcm9sZXM6Y2hlY2tib3gsIHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0Oldl
YktpdEd0awogLS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFYQ29tYm9Cb3gKIEFYUGFyZW50OiBBWFdl
YkFyZWEKQEAgLTE1NCw3ICsxNTQsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6IDAKIEFY
UmVxdWlyZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVk
LXJvbGU6Y29tYm9ib3gsIHhtbC1yb2xlczpjb21ib2JveCwgdGFnOmRpdiwgdG9vbGtpdDpXZWJL
aXRHdGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVzOiBjb21wdXRlZC1yb2xlOmNvbWJvYm94LCB4bWwt
cm9sZXM6Y29tYm9ib3gsIHJlYWRvbmx5OmZhbHNlLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0
awogLS0tLS0tLS0tLS0tCiBBWFJvbGU6IEFYTGFuZG1hcmtDb21wbGVtZW50YXJ5CiBBWFBhcmVu
dDogQVhXZWJBcmVhCkBAIC01OTIsNyArNTkyLDcgQEAgQVhFbmFibGVkOiAxCiBBWEV4cGFuZGVk
OiAwCiBBWFJlcXVpcmVkOiAwCiBBWENoZWNrZWQ6IDAKLUFYUGxhdGZvcm1BdHRyaWJ1dGVzOiBj
b21wdXRlZC1yb2xlOnNlYXJjaGJveCwgeG1sLXJvbGVzOnNlYXJjaGJveCwgdGFnOmRpdiwgdG9v
bGtpdDpXZWJLaXRHdGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVzOiBjb21wdXRlZC1yb2xlOnNlYXJj
aGJveCwgeG1sLXJvbGVzOnNlYXJjaGJveCwgcmVhZG9ubHk6ZmFsc2UsIHRhZzpkaXYsIHRvb2xr
aXQ6V2ViS2l0R3RrCiAtLS0tLS0tLS0tLS0KIEFYUm9sZTogQVhTZXBhcmF0b3IKIEFYUGFyZW50
OiBBWFdlYkFyZWEKQEAgLTYzMCw3ICs2MzAsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6
IDAKIEFYUmVxdWlyZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNv
bXB1dGVkLXJvbGU6c2xpZGVyLCB4bWwtcm9sZXM6c2xpZGVyLCB0YWc6ZGl2LCB0b29sa2l0Oldl
YktpdEd0aworQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6c2xpZGVyLCB4bWwt
cm9sZXM6c2xpZGVyLCByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRHdGsK
IC0tLS0tLS0tLS0tLQogQVhSb2xlOiBBWFNwaW5CdXR0b24KIEFYUGFyZW50OiBBWFdlYkFyZWEK
QEAgLTY0OSw3ICs2NDksNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6IDAKIEFYUmVxdWly
ZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6
c3BpbmJ1dHRvbiwgeG1sLXJvbGVzOnNwaW5idXR0b24sIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0
R3RrCitBWFBsYXRmb3JtQXR0cmlidXRlczogY29tcHV0ZWQtcm9sZTpzcGluYnV0dG9uLCB4bWwt
cm9sZXM6c3BpbmJ1dHRvbiwgcmVhZG9ubHk6ZmFsc2UsIHRhZzpkaXYsIHRvb2xraXQ6V2ViS2l0
R3RrCiAtLS0tLS0tLS0tLS0KIEFYUm9sZTogQVhTdGF0dXNCYXIKIEFYUGFyZW50OiBBWFdlYkFy
ZWEKQEAgLTY4Nyw3ICs2ODcsNyBAQCBBWEVuYWJsZWQ6IDEKIEFYRXhwYW5kZWQ6IDAKIEFYUmVx
dWlyZWQ6IDAKIEFYQ2hlY2tlZDogMAotQVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJv
bGU6c3dpdGNoLCB4bWwtcm9sZXM6c3dpdGNoLCB0YWc6ZGl2LCB0b29sa2l0OldlYktpdEd0awor
QVhQbGF0Zm9ybUF0dHJpYnV0ZXM6IGNvbXB1dGVkLXJvbGU6c3dpdGNoLCB4bWwtcm9sZXM6c3dp
dGNoLCByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRHdGsKIC0tLS0tLS0t
LS0tLQogQVhSb2xlOiBBWFRleHRGaWVsZAogQVhQYXJlbnQ6IEFYV2ViQXJlYQpAQCAtNzA2LDcg
KzcwNiw3IEBAIEFYRW5hYmxlZDogMQogQVhFeHBhbmRlZDogMAogQVhSZXF1aXJlZDogMAogQVhD
aGVja2VkOiAwCi1BWFBsYXRmb3JtQXR0cmlidXRlczogdGFnOmRpdiwgdG9vbGtpdDpXZWJLaXRH
dGsKK0FYUGxhdGZvcm1BdHRyaWJ1dGVzOiByZWFkb25seTpmYWxzZSwgdGFnOmRpdiwgdG9vbGtp
dDpXZWJLaXRHdGsKIC0tLS0tLS0tLS0tLQogQVhSb2xlOiBBWFRpbWVyCiBBWFBhcmVudDogQVhX
ZWJBcmVhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9mb3JtLWNv
bnRyb2wtdmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvZm9ybS1jb250cm9sLXZhbHVlLXNldHRhYmxlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk0NjEzOGUyNDMzMDY4NDEwZDVjMmQ4NTI0NTc4MmI1
N2I5ZTdiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9mb3JtLWNvbnRyb2wtdmFsdWUtc2V0dGFibGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIAotVGhpcyB0ZXN0cyB3aGV0aGVyIEFYVmFsdWUgaXMgd3Jp
dGFibGUgZm9yIHZhcmlvdXMgZm9ybSBjb250cm9scy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLXRleHQxCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEg
aXMgdHJ1ZQotdGV4dDIKLVBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MiBp
cyB0cnVlCi1QQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlz
IHRydWUKLVBBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVlJykgaXMg
dHJ1ZQotCi1udW1iZXIxCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEg
aXMgdHJ1ZQotbnVtYmVyMgotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQy
IGlzIHRydWUKLVBBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVlJykg
aXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBp
cyB0cnVlCi0KLXRleHRhcmVhMQotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1l
bnQxIGlzIHRydWUKLXRleHRhcmVhMgotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVs
ZW1lbnQyIGlzIHRydWUKLVBBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZh
bHVlJykgaXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFs
dWUnKSBpcyB0cnVlCi0KLXNsaWRlcjEKLVBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBl
bGVtZW50MSBpcyB0cnVlCi1zbGlkZXIyCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0g
ZWxlbWVudDIgaXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQxLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FY
VmFsdWUnKSBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhW
YWx1ZScpIGlzIHRydWUKLQotY2hlY2tib3gxCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQg
PT0gZWxlbWVudDEgaXMgdHJ1ZQotY2hlY2tib3gyCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgPT0gZWxlbWVudDIgaXMgdHJ1ZQotUEFTUyBheEVsZW1lbnQxLmlzQXR0cmlidXRlU2V0dGFi
bGUoJ0FYVmFsdWUnKSBpcyBmYWxzZQotUEFTUyBheEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFi
bGUoJ0FYVmFsdWUnKSBpcyB0cnVlCi0KLXJhZGlvMQotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50ID09IGVsZW1lbnQxIGlzIHRydWUKLXJhZGlvMgotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50ID09IGVsZW1lbnQyIGlzIHRydWUKLVBBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRh
YmxlKCdBWFZhbHVlJykgaXMgZmFsc2UKLVBBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRh
YmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQotCi1zdWJtaXQxCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQgPT0gZWxlbWVudDEgaXMgdHJ1ZQotc3VibWl0MgotUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50ID09IGVsZW1lbnQyIGlzIHRydWUKLVBBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNl
dHRhYmxlKCdBWFZhbHVlJykgaXMgZmFsc2UKLVBBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNl
dHRhYmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQotCi1jb21ib2JveDEKLVBBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudCA9PSBlbGVtZW50MSBpcyB0cnVlCi1jb21ib2JveDIKLVBBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MiBpcyB0cnVlCi1QQVNTIGF4RWxlbWVudDEuaXNBdHRy
aWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIGZhbHNlCi1QQVNTIGF4RWxlbWVudDIuaXNBdHRy
aWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKLQotbGlzdGJveDEKLVBBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MSBpcyB0cnVlCi1saXN0Ym94MgotUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQyIGlzIHRydWUKLVBBU1MgYXhFbGVtZW50MS5p
c0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVlJykgaXMgZmFsc2UKLVBBU1MgYXhFbGVtZW50Mi5p
c0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvZm9ybS1jb250cm9sLXZhbHVlLXNldHRhYmxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9mb3JtLWNvbnRyb2wtdmFsdWUtc2V0dGFibGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU2YzhmMmQ4MmVjNDdjNTU1ODkz
YTc0NDlmMTgxNjdkYjEzZTRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9mb3JtLWNvbnRyb2wtdmFs
dWUtc2V0dGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhRE9DVFlQ
RSBIVE1MPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08ZGl2PgotICA8aW5wdXQgaWQ9InRleHQxIiB0eXBl
PSJ0ZXh0IiB2YWx1ZT0iVmFsdWUiPgotICA8aW5wdXQgaWQ9ImNoZWNrYm94MSIgdHlwZT0iY2hl
Y2tib3giIGNoZWNrZWQ+Ci0gIDxpbnB1dCBpZD0ibnVtYmVyMSIgdHlwZT0ibnVtYmVyIiB2YWx1
ZT0iMTIzIj4KLSAgPGlucHV0IGlkPSJyYWRpbzEiIHR5cGU9InJhZGlvIiBjaGVja2VkPgotICA8
aW5wdXQgaWQ9InNsaWRlcjEiIHR5cGU9InJhbmdlIiBtaW49IjEiIG1heD0iMTAiIHZhbHVlPSI1
Ij4KLSAgPGlucHV0IGlkPSJzdWJtaXQxIiB0eXBlPSJzdWJtaXQiPgotICA8c2VsZWN0IGlkPSJj
b21ib2JveDEiPjxvcHRpb24+MTxvcHRpb24gc2VsZWN0ZWQ+Mjwvc2VsZWN0PgotICA8c2VsZWN0
IG11bHRpcGxlIGlkPSJsaXN0Ym94MSI+PG9wdGlvbj4xPG9wdGlvbiBzZWxlY3RlZD4yPC9zZWxl
Y3Q+Ci0gIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5UZXh0YXJlYTwvdGV4dGFyZWE+Ci08L2Rp
dj4KLQotPGRpdiBjb250ZW50RWRpdGFibGU+Ci0gIDxpbnB1dCBpZD0idGV4dDIiIHR5cGU9InRl
eHQiIHZhbHVlPSJWYWx1ZSI+Ci0gIDxpbnB1dCBpZD0iY2hlY2tib3gyIiB0eXBlPSJjaGVja2Jv
eCIgY2hlY2tlZD4KLSAgPGlucHV0IGlkPSJudW1iZXIyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIx
MjMiPgotICA8aW5wdXQgaWQ9InJhZGlvMiIgdHlwZT0icmFkaW8iIGNoZWNrZWQ+Ci0gIDxpbnB1
dCBpZD0ic2xpZGVyMiIgdHlwZT0icmFuZ2UiIG1pbj0iMSIgbWF4PSIxMCIgdmFsdWU9IjUiPgot
ICA8aW5wdXQgaWQ9InN1Ym1pdDIiIHR5cGU9InN1Ym1pdCI+Ci0gIDxzZWxlY3QgaWQ9ImNvbWJv
Ym94MiI+PG9wdGlvbj4xPG9wdGlvbiBzZWxlY3RlZD4yPC9zZWxlY3Q+Ci0gIDxzZWxlY3QgbXVs
dGlwbGUgaWQ9Imxpc3Rib3gyIj48b3B0aW9uPjE8b3B0aW9uIHNlbGVjdGVkPjI8L3NlbGVjdD4K
LSAgPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTIiPlRleHRhcmVhPC90ZXh0YXJlYT4KLTwvZGl2Pgot
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB3aGV0aGVyIEFYVmFsdWUgaXMgd3JpdGFibGUgZm9yIHZhcmlvdXMgZm9ybSBjb250cm9s
cy4iKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIGZ1
bmN0aW9uIGNoZWNrKGlkMSwgaWQyLCBleHBlY3RlZDEpIHsKLSAgICAgICAgZGVidWcoaWQxKTsK
LSAgICAgICAgd2luZG93LmVsZW1lbnQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQxKTsK
LSAgICAgICAgZWxlbWVudDEuZm9jdXMoKTsKLSAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEiLCAidHJ1ZSIpOwotICAgICAgICB3aW5kb3cuYXhFbGVt
ZW50MSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotCi0gICAgICAg
IGRlYnVnKGlkMik7Ci0gICAgICAgIHdpbmRvdy5lbGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkMik7Ci0gICAgICAgIGVsZW1lbnQyLmZvY3VzKCk7Ci0gICAgICAgIHNob3VsZEJl
KCJkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQyIiwgInRydWUiKTsKLSAgICAgICAg
d2luZG93LmF4RWxlbWVudDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dDsKLQotICAgICAgICBzaG91bGRCZSgiYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdB
WFZhbHVlJykiLCBTdHJpbmcoZXhwZWN0ZWQxKSk7Ci0gICAgICAgIC8vIElmIGNvbnRlbnRFZGl0
YWJsZSwgQVhWYWx1ZSBpcyBhbHdheXMgd3JpdGFibGUuCi0gICAgICAgIHNob3VsZEJlKCJheEVs
ZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSIsICJ0cnVlIik7Ci0gICAgICAg
IGRlYnVnKCIiKTsKLSAgICB9Ci0KLSAgICAvLyBBbGwgdGV4dC1saWtlIGZvcm0gY29udHJvbHMg
c2hvdWxkIGhhdmUgYSB3cml0YWJsZSBBWFZhbHVlLgotICAgIGNoZWNrKCJ0ZXh0MSIsICJ0ZXh0
MiIsIHRydWUpOwotICAgIGNoZWNrKCJudW1iZXIxIiwgIm51bWJlcjIiLCB0cnVlKTsKLSAgICBj
aGVjaygidGV4dGFyZWExIiwgInRleHRhcmVhMiIsIHRydWUpOwotCi0gICAgLy8gQSBzbGlkZXIg
Y2FuIHNldCBBWFZhbHVlLgotICAgIGNoZWNrKCJzbGlkZXIxIiwgInNsaWRlcjIiLCB0cnVlKTsK
LQotICAgIC8vIE90aGVyIGZvcm0gY29udHJvbHMsIGV2ZW4gdG9nZ2xlYWJsZSBvbmVzLCBzaG91
bGQgaGF2ZSBhIHJlYWQtb25seSBBWFZhbHVlIC0KLSAgICAvLyB1bmxlc3MgdGhleSdyZSBpbnNp
ZGUgY29udGVudEVkaXRhYmxlLCB0aGVuIGV2ZXJ5dGhpbmcgc2hvdWxkIGhhdmUgd3JpdGFibGUg
QVhWYWx1ZS4KLSAgICBjaGVjaygiY2hlY2tib3gxIiwgImNoZWNrYm94MiIsIGZhbHNlKTsKLSAg
ICBjaGVjaygicmFkaW8xIiwgInJhZGlvMiIsIGZhbHNlKTsKLSAgICBjaGVjaygic3VibWl0MSIs
ICJzdWJtaXQyIiwgZmFsc2UpOwotICAgIGNoZWNrKCJjb21ib2JveDEiLCAiY29tYm9ib3gyIiwg
ZmFsc2UpOwotICAgIGNoZWNrKCJsaXN0Ym94MSIsICJsaXN0Ym94MiIsIGZhbHNlKTsKLX0KLQot
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYWU3MmI2ZjhkNzFkODgwMDFjZWRmMzhiODg2ZDBmN2Y4MmQ0
OTFjOS4uN2JmYWVjMDZmOTRlMzMxODQ5YmEyOWQzYjZmNjQxZmUwMjRlMmNiZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NTAsNyArMTg1MCw2IEBA
IHdlYmtpdC5vcmcvYi83Mzc2NiBjc3MzL3VuaWNvZGUtYmlkaS1pc29sYXRlLWFoYXJvbi1mYWls
aW5nLmh0bWwgWyBJbWFnZU9ubHlGYWlsCiAKICMgTmVlZCBwbGF0Zm9ybSBzcGVjaWZpYyB1cGRh
dGUgdG8gdGVzdCB0byBtYWtlIGl0IHJ1bi4KIAotd2Via2l0Lm9yZy9iLzk4MzU3IGFjY2Vzc2li
aWxpdHkvYXJpYS1yZWFkb25seS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNjMg
YWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC0yLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi85ODM3MiBhY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCBb
IEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4Mzc3IGFjY2Vzc2liaWxpdHkvdGV4dGFyZWEtaW5z
ZXJ0aW9uLXBvaW50LWxpbmUtbnVtYmVyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Zvcm0tY29udHJvbC12YWx1ZS1z
ZXR0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9mb3JtLWNvbnRyb2wtdmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBhYjAxZGQ5YmRlYzI3ZTMwYjhmMzFiYzFkYTM2NGViNzQzZjY4OWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9mb3JtLWNvbnRyb2wt
dmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzQgQEAKKyAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgCitUaGlzIHRlc3RzIHdoZXRoZXIgQVhWYWx1ZSBpcyB3cml0
YWJsZSBmb3IgdmFyaW91cyBmb3JtIGNvbnRyb2xzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKwordGV4dDEKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MSBp
cyB0cnVlCit0ZXh0MgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1lbnQyIGlz
IHRydWUKK1BBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVlJykgaXMg
dHJ1ZQorUEFTUyBheEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBpcyB0
cnVlCisKK251bWJlcjEKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MSBp
cyB0cnVlCitudW1iZXIyCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDIg
aXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQxLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBp
cyB0cnVlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlz
IHRydWUKKwordGV4dGFyZWExCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVu
dDEgaXMgdHJ1ZQordGV4dGFyZWEyCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxl
bWVudDIgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQxLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFs
dWUnKSBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1
ZScpIGlzIHRydWUKKworc2xpZGVyMQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVs
ZW1lbnQxIGlzIHRydWUKK3NsaWRlcjIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBl
bGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhW
YWx1ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZh
bHVlJykgaXMgdHJ1ZQorCitjaGVja2JveDEKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9
PSBlbGVtZW50MSBpcyB0cnVlCitjaGVja2JveDIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJs
ZSgnQVhWYWx1ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxl
KCdBWFZhbHVlJykgaXMgdHJ1ZQorCityYWRpbzEKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCA9PSBlbGVtZW50MSBpcyB0cnVlCityYWRpbzIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJs
ZSgnQVhWYWx1ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxl
KCdBWFZhbHVlJykgaXMgdHJ1ZQorCitzdWJtaXQxCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgPT0gZWxlbWVudDEgaXMgdHJ1ZQorc3VibWl0MgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50ID09IGVsZW1lbnQyIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRh
YmxlKCdBWFZhbHVlJykgaXMgZmFsc2UKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRh
YmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQorCitjb21ib2JveDEKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCA9PSBlbGVtZW50MSBpcyB0cnVlCitjb21ib2JveDIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1
dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0
ZVNldHRhYmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQorCitsaXN0Ym94MQorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50ID09IGVsZW1lbnQxIGlzIHRydWUKK2xpc3Rib3gyCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDIgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQxLmlzQXR0
cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRy
aWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS90YWJsZS1kZXRlY3Rpb24tZXhw
ZWN0ZWQudHh0CmluZGV4IDIyNDI3NDVmMGNmOWI2NmZmYjUzZDE4NGUyNzc0MmQzNTcyOGNiNjAu
LjIwMWU2YjM1NDQxN2RkMGMwMjk0YTc5ODg3MWViNGFiYWRhOGZhZjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3RhYmxlLWRldGVjdGlvbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvdGFi
bGUtZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMjg1LDYgKzI4NSw3IEBAIEFYUG9zaXRpb246
IHsgOC4wMDAwMDAsIDMzMi4wMDAwMDAgfQogQVhTaXplOiB7IDY0LjAwMDAwMCwgMjYuMDAwMDAw
IH0KIEFYVGl0bGU6IAogQVhEZXNjcmlwdGlvbjogCitBWFZhbHVlOiBhc2RmCWFzZGY8XG4+CiBB
WEZvY3VzYWJsZTogMQogQVhGb2N1c2VkOiAwCiBBWFNlbGVjdGFibGU6IDAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2Zvcm0tY29udHJvbC12YWx1
ZS1zZXR0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9mb3JtLWNvbnRyb2wtdmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk5NDYxMzhlMjQzMzA2ODQxMGQ1YzJkODUyNDU3ODJiNTdiOWU3YjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9mb3JtLWNvbnRy
b2wtdmFsdWUtc2V0dGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzQgQEAKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAKK1RoaXMgdGVzdHMgd2hldGhlciBBWFZhbHVlIGlz
IHdyaXRhYmxlIGZvciB2YXJpb3VzIGZvcm0gY29udHJvbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCit0ZXh0MQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1l
bnQxIGlzIHRydWUKK3RleHQyCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVu
dDIgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQxLmlzQXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUn
KSBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScp
IGlzIHRydWUKKworbnVtYmVyMQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGVsZW1l
bnQxIGlzIHRydWUKK251bWJlcjIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVt
ZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1
ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxlKCdBWFZhbHVl
JykgaXMgdHJ1ZQorCit0ZXh0YXJlYTEKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBl
bGVtZW50MSBpcyB0cnVlCit0ZXh0YXJlYTIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9
PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVTZXR0YWJsZSgn
QVhWYWx1ZScpIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNldHRhYmxlKCdB
WFZhbHVlJykgaXMgdHJ1ZQorCitzbGlkZXIxCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQg
PT0gZWxlbWVudDEgaXMgdHJ1ZQorc2xpZGVyMgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
ID09IGVsZW1lbnQyIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNldHRhYmxl
KCdBWFZhbHVlJykgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQyLmlzQXR0cmlidXRlU2V0dGFibGUo
J0FYVmFsdWUnKSBpcyB0cnVlCisKK2NoZWNrYm94MQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50ID09IGVsZW1lbnQxIGlzIHRydWUKK2NoZWNrYm94MgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50ID09IGVsZW1lbnQyIGlzIHRydWUKK1BBU1MgYXhFbGVtZW50MS5pc0F0dHJpYnV0ZVNl
dHRhYmxlKCdBWFZhbHVlJykgaXMgZmFsc2UKK1BBU1MgYXhFbGVtZW50Mi5pc0F0dHJpYnV0ZVNl
dHRhYmxlKCdBWFZhbHVlJykgaXMgdHJ1ZQorCityYWRpbzEKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCA9PSBlbGVtZW50MSBpcyB0cnVlCityYWRpbzIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1dGVT
ZXR0YWJsZSgnQVhWYWx1ZScpIGlzIGZhbHNlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1dGVT
ZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKKworc3VibWl0MQorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50ID09IGVsZW1lbnQxIGlzIHRydWUKK3N1Ym1pdDIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVudDEuaXNBdHRyaWJ1
dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIGZhbHNlCitQQVNTIGF4RWxlbWVudDIuaXNBdHRyaWJ1
dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKKworY29tYm9ib3gxCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEgaXMgdHJ1ZQorY29tYm9ib3gyCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDIgaXMgdHJ1ZQorUEFTUyBheEVsZW1lbnQxLmlz
QXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBpcyBmYWxzZQorUEFTUyBheEVsZW1lbnQyLmlz
QXR0cmlidXRlU2V0dGFibGUoJ0FYVmFsdWUnKSBpcyB0cnVlCisKK2xpc3Rib3gxCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZWxlbWVudDEgaXMgdHJ1ZQorbGlzdGJveDIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBlbGVtZW50MiBpcyB0cnVlCitQQVNTIGF4RWxlbWVu
dDEuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIGZhbHNlCitQQVNTIGF4RWxlbWVu
dDIuaXNBdHRyaWJ1dGVTZXR0YWJsZSgnQVhWYWx1ZScpIGlzIHRydWUKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>