<?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>158634</bug_id>
          
          <creation_ts>2016-06-10 13:56:35 -0700</creation_ts>
          <short_desc>AX: Form label text should be exposed as static text if it contains only static text</short_desc>
          <delta_ts>2016-06-14 14:27:05 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Doug Russell">d_russell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1201366</commentid>
    <comment_count>0</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 13:56:35 -0700</bug_when>
    <thetext>LabelRole is currently exposed as a group, but would be more appropriate as static text if all the elements it contains are static text. This will save AT the complexity of evaluating the labels subtree and stitching the text manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201370</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-10 13:58:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/26747020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201379</commentid>
    <comment_count>2</comment_count>
      <attachid>281045</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 14:07:36 -0700</bug_when>
    <thetext>Created attachment 281045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201380</commentid>
    <comment_count>3</comment_count>
      <attachid>281045</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-10 14:14:32 -0700</bug_when>
    <thetext>Comment on attachment 281045
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Use AccessibilityLabel to represent HTMLLabelElement to AT.

AT -&gt; assistive technologies

&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:71
&gt; +        if (!child-&gt;accessibilityIsIgnored() &amp;&amp; !child-&gt;isDetached()) {

I think we&apos;re guaranteed to only have unignored children in m_children

The same might be true of detached children

&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:76
&gt; +                    staticText = true;

Seems like you don&apos;t need to keep track of staticText. As soon as you get a failure can you can just return false

Then you can return true at the end of it right

Also, you could probably cache this value and then update when children are updated

&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:92
&gt; +    return WebCore::containsOnlyStaticText(m_children);

This WebCore:: prefix is probably unnecessary

&gt; Source/WebCore/accessibility/AccessibilityLabel.h:41
&gt; +    AccessibilityRole roleValue() const override { return LabelRole; }

Add a final to these

roleValue and stringValue() can probably be private

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2237
&gt; +    if (role == LabelRole &amp;&amp; is&lt;AccessibilityLabel&gt;(*m_object) &amp;&amp; downcast&lt;AccessibilityLabel&gt;(*m_object).containsOnlyStaticText())

This check 
role == LabelRole

Is probably not necessary since is&lt;AccessibilityLabel&gt; guarantees role = Label</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201385</commentid>
    <comment_count>4</comment_count>
      <attachid>281045</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 14:19:40 -0700</bug_when>
    <thetext>Comment on attachment 281045
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:76
&gt;&gt; +                    staticText = true;
&gt; 
&gt; Seems like you don&apos;t need to keep track of staticText. As soon as you get a failure can you can just return false
&gt; 
&gt; Then you can return true at the end of it right
&gt; 
&gt; Also, you could probably cache this value and then update when children are updated

Having bool staticText means I don&apos;t have to check if children is empty. I could switch to size == 0 at the top.

Caching seemed tricky given there seem to be a lot of cases where the funnels aren&apos;t used and m_children.append() is used directly. And this method needs to be const to be called from stringValue() so calculating lazily and caching is tricky.

&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:92
&gt;&gt; +    return WebCore::containsOnlyStaticText(m_children);
&gt; 
&gt; This WebCore:: prefix is probably unnecessary

You need it to disambiguate from AccessibilityLabel::containsOnlyStaticText() (the compiler gets huffy without it)

&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.h:41
&gt;&gt; +    AccessibilityRole roleValue() const override { return LabelRole; }
&gt; 
&gt; Add a final to these
&gt; 
&gt; roleValue and stringValue() can probably be private

Will do on final.

I&apos;ll see about role and string.

&gt;&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2237
&gt;&gt; +    if (role == LabelRole &amp;&amp; is&lt;AccessibilityLabel&gt;(*m_object) &amp;&amp; downcast&lt;AccessibilityLabel&gt;(*m_object).containsOnlyStaticText())
&gt; 
&gt; This check 
&gt; role == LabelRole
&gt; 
&gt; Is probably not necessary since is&lt;AccessibilityLabel&gt; guarantees role = Label

It&apos;s not strictly necessary, but it seemed likely that role == Label was cheaper than calling is&lt;&gt; on every m_object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201386</commentid>
    <comment_count>5</comment_count>
      <attachid>281045</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-10 14:23:09 -0700</bug_when>
    <thetext>Comment on attachment 281045
Patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:76
&gt;&gt;&gt; +                    staticText = true;
&gt;&gt; 
&gt;&gt; Seems like you don&apos;t need to keep track of staticText. As soon as you get a failure can you can just return false
&gt;&gt; 
&gt;&gt; Then you can return true at the end of it right
&gt;&gt; 
&gt;&gt; Also, you could probably cache this value and then update when children are updated
&gt; 
&gt; Having bool staticText means I don&apos;t have to check if children is empty. I could switch to size == 0 at the top.
&gt; 
&gt; Caching seemed tricky given there seem to be a lot of cases where the funnels aren&apos;t used and m_children.append() is used directly. And this method needs to be const to be called from stringValue() so calculating lazily and caching is tricky.

&gt;&gt; I could switch to size == 0 at the top.

That seems better to me

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:92
&gt;&gt;&gt; +    return WebCore::containsOnlyStaticText(m_children);
&gt;&gt; 
&gt;&gt; This WebCore:: prefix is probably unnecessary
&gt; 
&gt; You need it to disambiguate from AccessibilityLabel::containsOnlyStaticText() (the compiler gets huffy without it)

Might be better named

objectsContainOnlyStaticText or elementsContainOnlyStaticText

Since children is no longer accurate, the method being static rattan than an instance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201388</commentid>
    <comment_count>6</comment_count>
      <attachid>281045</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 14:25:06 -0700</bug_when>
    <thetext>Comment on attachment 281045
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:92
&gt;&gt;&gt;&gt; +    return WebCore::containsOnlyStaticText(m_children);
&gt;&gt;&gt; 
&gt;&gt;&gt; This WebCore:: prefix is probably unnecessary
&gt;&gt; 
&gt;&gt; You need it to disambiguate from AccessibilityLabel::containsOnlyStaticText() (the compiler gets huffy without it)
&gt; 
&gt; Might be better named
&gt; 
&gt; objectsContainOnlyStaticText or elementsContainOnlyStaticText
&gt; 
&gt; Since children is no longer accurate, the method being static rattan than an instance

The argument type is const AccessibilityObject::AccessibilityChildrenVector&amp; so I think children is fair to use. I&apos;ll rename is childrenContainOnlyStaticText.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201395</commentid>
    <comment_count>7</comment_count>
      <attachid>281050</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 14:53:01 -0700</bug_when>
    <thetext>Created attachment 281050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201461</commentid>
    <comment_count>8</comment_count>
      <attachid>281067</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 17:44:31 -0700</bug_when>
    <thetext>Created attachment 281067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201464</commentid>
    <comment_count>9</comment_count>
      <attachid>281067</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-10 17:51:53 -0700</bug_when>
    <thetext>Comment on attachment 281067
Patch

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

&gt; Source/WebCore/CMakeLists.txt:1049
&gt; +    accessibility/AccessibilityLabel.cpp

Do we need to all to AccessibilityAllInOne.cpp for windows builds?

&gt; Source/WebCore/accessibility/AccessibilityLabel.h:46
&gt; +    AccessibilityRole roleValue() const final { return LabelRole; }

These should have the override keyword on them? Or does final take care of that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201465</commentid>
    <comment_count>10</comment_count>
      <attachid>281067</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-10 17:56:40 -0700</bug_when>
    <thetext>Comment on attachment 281067
Patch

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

&gt;&gt; Source/WebCore/CMakeLists.txt:1049
&gt;&gt; +    accessibility/AccessibilityLabel.cpp
&gt; 
&gt; Do we need to all to AccessibilityAllInOne.cpp for windows builds?

I believe so. I could try submitting the patch without it.

&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.h:46
&gt;&gt; +    AccessibilityRole roleValue() const final { return LabelRole; }
&gt; 
&gt; These should have the override keyword on them? Or does final take care of that

My understanding is that final implies override.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201779</commentid>
    <comment_count>11</comment_count>
      <attachid>281154</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-12 20:58:01 -0700</bug_when>
    <thetext>Created attachment 281154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201790</commentid>
    <comment_count>12</comment_count>
      <attachid>281154</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-12 22:39:24 -0700</bug_when>
    <thetext>Comment on attachment 281154
Patch

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

We should add to these tests so we check that if
A) &lt;label&gt; element does not contain only text children we do not concat values
B) when elements inside &lt;label&gt; change we are validating that we get the correct data

&gt; LayoutTests/accessibility/mac/label-element-with-link-string-value.html:21
&gt; +    description(&quot;This tests that if a label element contains text children it&apos;s AXValue will be their concatenated AXValues.&quot;);

This description is the same as the previous test (LayoutTests/accessibility/mac/label-element-all-text-string-value.html) - seems like it should be different</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202228</commentid>
    <comment_count>13</comment_count>
      <attachid>281154</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-14 10:53:25 -0700</bug_when>
    <thetext>Comment on attachment 281154
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:100
&gt; +    m_containsOnlyStaticTextDirty = false;

Shouldn&apos;t this one be set to true (m_containsOnlyStaticTextDirty) because we&apos;ve just cleared the children and we want to recalculate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202256</commentid>
    <comment_count>14</comment_count>
      <attachid>281154</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-06-14 11:42:52 -0700</bug_when>
    <thetext>Comment on attachment 281154
Patch

Were any of my comments addressed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202265</commentid>
    <comment_count>15</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-14 11:59:41 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 281154 [details]
&gt; Patch
&gt; 
&gt; Were any of my comments addressed?

Forgot to hit submit before sending it back. Fixing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202268</commentid>
    <comment_count>16</comment_count>
      <attachid>281154</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-14 12:01:56 -0700</bug_when>
    <thetext>Comment on attachment 281154
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityLabel.cpp:100
&gt;&gt; +    m_containsOnlyStaticTextDirty = false;
&gt; 
&gt; Shouldn&apos;t this one be set to true (m_containsOnlyStaticTextDirty) because we&apos;ve just cleared the children and we want to recalculate?

No, it should be false because there are no children so m_containsOnlyStaticText is definitely false and we don&apos;t need to recalculate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202269</commentid>
    <comment_count>17</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-14 12:09:05 -0700</bug_when>
    <thetext>
&gt; We should add to these tests so we check that if
&gt; A) &lt;label&gt; element does not contain only text children we do not concat
&gt; values

label-element-with-link-string-value.html addresses this

&gt; B) when elements inside &lt;label&gt; change we are validating that we get the
&gt; correct data

I&apos;ll add a test for that

&gt; 
&gt; &gt; LayoutTests/accessibility/mac/label-element-with-link-string-value.html:21
&gt; &gt; +    description(&quot;This tests that if a label element contains text children it&apos;s AXValue will be their concatenated AXValues.&quot;);
&gt; 
&gt; This description is the same as the previous test
&gt; (LayoutTests/accessibility/mac/label-element-all-text-string-value.html) -
&gt; seems like it should be different

Fixed in my next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202305</commentid>
    <comment_count>18</comment_count>
      <attachid>281279</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2016-06-14 13:58:33 -0700</bug_when>
    <thetext>Created attachment 281279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202317</commentid>
    <comment_count>19</comment_count>
      <attachid>281279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-14 14:27:00 -0700</bug_when>
    <thetext>Comment on attachment 281279
Patch

Clearing flags on attachment: 281279

Committed r202063: &lt;http://trac.webkit.org/changeset/202063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202318</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-14 14:27:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281045</attachid>
            <date>2016-06-10 14:07:36 -0700</date>
            <delta_ts>2016-06-10 14:52:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158634-20160610140906.patch</filename>
            <type>text/plain</type>
            <size>21186</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2UxOGFjYmI2NDgxMjAy
NjNiMzdlNjlkMmU3ZWE4YzVkZTM0N2ZkOC4uOTk4Y2U5NzkzN2VkZDA3ZjU3ZmY5NDU2ZjBmNjRj
YjJlYmMyNWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA2LTEwICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVs
IHRleHQgc2hvdWxkIGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25s
eSBzdGF0aWMgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIEFjY2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVu
dCB0byBBVC4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpjb250YWluc09ubHlTdGF0aWNU
ZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0ZSAKKyAgICAgICAgaWYgYWxs
IGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpz
dHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRpY1RleHQoKSBhbmQgcmV0dXJu
cworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4KKyAgICAgICAgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGljVGV4dCgp
IGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9sZSBmb3IgTGFiZWxSb2xlIGlm
IHRydWUuCisgICAgICAgIAorICAgICAgICBFeGlzdGluZyB0ZXN0cyB1cGRhdGVkLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9t
UmVuZGVyZXIpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OkFjY2Vzc2li
aWxpdHlMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6On5BY2Nl
c3NpYmlsaXR5TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFi
ZWw6OnN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zT25seVN0YXRpY1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpjb250YWluc09ubHlT
dGF0aWNUZXh0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5o
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzTGFiZWwpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
OgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlXSk6CisKIDIw
MTYtMDYtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAog
ICAgICAgICBPcmlnaW4gaGVhZGVyIGlzIG5vdCBpbmNsdWRlZCBpbiBDT1JTIHJlcXVlc3RzIGZv
ciBwcmVsb2FkZWQgY3Jvc3Mtb3JpZ2luIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc0MDE0MjVhZDI1M2FlN2M0
YmVkN2YzYTAzZTQ3Y2I3MzcxMjRiMTAuLjIwNmQ1MmRiODlmYTM3MWM2Mzc2MmZkODU0YTg0ZmVk
YTIzZWEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY3NzIsNiArNjc3Miw3IEBACiAJCUY1MDY2NEY3MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2
NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNF
QTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1
MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OworCQlGNTJBOEZENzFEMEE4
RDBFMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBB
Y2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYg
LyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICov
OyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLzsgfTsKQEAgLTE0ODY1LDYgKzE0ODY2LDggQEAKIAkJRjUyM0QyNzkwMkRF
NDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlc291cmNlRGVjb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0
MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJRjUyQThGRDUxRDBBODgwMTAwNzNDRjQy
IC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTJBOEZENjFEMEE4ODAxMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMYWJlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1w
dHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5
Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MTQsNiArMTY1MTcsOCBAQAogCQkJCTI5MTRFMzA2MUNB
QjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oICovLAogCQkJCTI5ODFD
QUEwMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCAqLywK
IAkJCQkyOUE4MTIxRDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
ay5oICovLAorCQkJCUY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwICovLAorCQkJCUY1MkE4RkQ2MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5
TGFiZWwuaCAqLywKIAkJCQkyOTgxQ0FBMTEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0
eUxpc3QuY3BwICovLAogCQkJCTI5QTgxMjBFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5TGlzdC5oICovLAogCQkJCTI5ODFDQUEyMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHAgKi8sCkBAIC0yOTc2Niw2ICsyOTc3MSw3IEBACiAJCQkJRkU2OTM4QjYx
MDQ1RDY3RTAwOEVBQkI2IC8qIEV2ZW50SGFuZGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzQzA5QTdGMEIwNjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXJNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTJBOEZENzFEMEE4RDBFMDA3M0NGNDIgLyogQWNjZXNz
aWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM0MDBEMTA5MThGMUM4RjYwMDkw
RDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1MDE4
QkU5ODQ5MDA2Q0VCQ0MgLyogRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI2RjQwRDRBMTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IDRmNWJkZjEzNmEyNTUzODAxZjNkYmIyZDAxNWE0YjlkYTkzOGFjZTUuLjA2
ZDc4ZGMzZmRmMTc2OWFlMWNmNzkyZGRhYmVkNDljMGJkZjE1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5o
IgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMaXN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIgpAQCAtNDI4LDYgKzQyOSw5IEBAIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSIpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5kZXJlcik7CisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgLy8gbWVkaWEgY29udHJvbHMKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc01lZGlhQ29u
dHJvbEVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxhYmVsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODEwM2ZjMjM5MWMyYTRkODhkOGY3MWVj
MzBjMDZmZTZjZjNjM2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitBY2Nlc3NpYmlsaXR5TGFiZWw6OkFj
Y2Vzc2liaWxpdHlMYWJlbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorICAgIDogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikKK3sKK30KKworQWNjZXNzaWJpbGl0eUxhYmVsOjp+
QWNjZXNzaWJpbGl0eUxhYmVsKCkKK3sKK30KKworUmVmPEFjY2Vzc2liaWxpdHlMYWJlbD4gQWNj
ZXNzaWJpbGl0eUxhYmVsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TGFiZWwocmVuZGVyZXIpKTsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOwor
fQorCitTdHJpbmcgQWNjZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKGNvbnRhaW5zT25seVN0YXRpY1RleHQoKSkKKyAgICAgICAgcmV0dXJuIHRleHRVbmRl
ckVsZW1lbnQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1Zh
bHVlKCk7Cit9CisKK3N0YXRpYyBib29sIGNvbnRhaW5zT25seVN0YXRpY1RleHQoY29uc3QgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikK
K3sKKyAgICBib29sIHN0YXRpY1RleHQgPSBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNo
aWxkIDogY2hpbGRyZW4pIHsKKyAgICAgICAgLy8gQ2hlY2tpbmcgYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCBjYW4gY2F1c2UgY2hpbGQgdG8gZGV0YWNoLAorICAgICAgICAvLyBzbyB3ZSBoYXZlIHRv
IGNvbnN1bHQgaXNEZXRhY2hlZCBiZWZvcmUgcHJvY2VlZGluZworICAgICAgICBpZiAoIWNoaWxk
LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgJiYgIWNoaWxkLT5pc0RldGFjaGVkKCkpIHsKKyAg
ICAgICAgICAgIGlmIChjaGlsZC0+cm9sZVZhbHVlKCkgPT0gU3RhdGljVGV4dFJvbGUpCisgICAg
ICAgICAgICAgICAgc3RhdGljVGV4dCA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmIChjaGls
ZC0+cm9sZVZhbHVlKCkgPT0gR3JvdXBSb2xlKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRh
aW5zT25seVN0YXRpY1RleHQoY2hpbGQtPmNoaWxkcmVuKCkpKQorICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNUZXh0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgc3RhdGljVGV4dCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHN0YXRpY1RleHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3RhdGljVGV4dDsKK30KKworYm9vbCBB
Y2Nlc3NpYmlsaXR5TGFiZWw6OmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSBjb25zdAoreworICAg
IHJldHVybiBXZWJDb3JlOjpjb250YWluc09ubHlTdGF0aWNUZXh0KG1fY2hpbGRyZW4pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmFmZTk0YzMzOWYyMjUyZTEx
ODdkMzgzZDQ2OTJjMTBhNzMwNGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApAQCAtMCwwICsxLDU1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNz
aWJpbGl0eUxhYmVsX2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eUxhYmVsX2gKKworI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IAorY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVsIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUxhYmVs
PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUxhYmVs
KCk7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gTGFiZWxSb2xlOyB9CisgICAgYm9vbCBpc0xhYmVsKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGNvbnN0OworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMYWJlbChSZW5kZXJPYmplY3QqKTsKKyAgICBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQUNDRVNT
SUJJTElUWShBY2Nlc3NpYmlsaXR5TGFiZWwsIGlzTGFiZWwoKSkKKworI2VuZGlmIC8vIEFjY2Vz
c2liaWxpdHlMYWJlbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE0ODQwZjM2MmViNTMyNDYzYTc2OTE1NjY3NWY3NWIz
OWQ5NTNmMjMuLjFkYmRkOTg0MGFiMDAzNjQ2ODMwY2EzNTk5NTZiYThmYmM4NmZlNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CkBAIC01MTIsNiArNTEyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlclRo
dW1iKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dFNs
aWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ29udHJv
bCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTGFiZWwoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVGFibGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAw
NDVhYWYwYzFiN2RiYjI4MTFlMDQzNjljNmMwODAwMmZmNzBmZmY1Li4yY2RmNGYyY2I2NDViM2Qz
ZTIzYmM0YzQ5MjFlNWQ4NTM1NjRhZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQpAQCAtMzMsNiArMzMsNyBAQAogCiAjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgi
CiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCIKKyNpbXBvcnQgIkFjY2Vzc2li
aWxpdHlMYWJlbC5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUxpc3QuaCIKICNpbXBvcnQgIkFj
Y2Vzc2liaWxpdHlMaXN0Qm94LmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgiCkBAIC0yMjMyLDYgKzIyMzMsMTAgQEAgc3RhdGljIE5TU3RyaW5nKiByb2xlVmFsdWVUb05T
U3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgICAgICByZXR1cm4gW1tzZWxmIGF0
dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5
Um9sZUF0dHJpYnV0ZV07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKKworICAgIGlmIChyb2xl
ID09IExhYmVsUm9sZSAmJiBpczxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkgJiYgZG93
bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3QpLmNvbnRhaW5zT25seVN0YXRpY1Rl
eHQoKSkKKyAgICAgICAgcm9sZSA9IFN0YXRpY1RleHRSb2xlOworCiAgICAgaWYgKHJvbGUgPT0g
Q2FudmFzUm9sZSAmJiBtX29iamVjdC0+Y2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkpCiAgICAg
ICAgIHJvbGUgPSBHcm91cFJvbGU7CiAgICAgTlNTdHJpbmcqIHN0cmluZyA9IHJvbGVWYWx1ZVRv
TlNTdHJpbmcocm9sZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDIyMDA4NGI2NjJhMWIwZTgzNDVlNDlkZDExN2RlOTdj
YmE4ZmYwZC4uYzE0ZTUzN2NhMDRjYjk1M2Q4ZjQyMjUzNjUwODczMTE1OWQ0NjgzMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTEwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVsIHRleHQgc2hvdWxkIGJlIGV4cG9zZWQg
YXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25seSBzdGF0aWMgdGV4dAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NjM0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEFjY2Vzc2liaWxpdHlM
YWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVudCB0byBBVC4KKyAgICAgICAgQWNjZXNz
aWJpbGl0eUxhYmVsOjpjb250YWluc09ubHlTdGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3Vi
dHJlZSB0byBldmFsdWF0ZSAKKyAgICAgICAgaWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4
dC4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNv
bnRhaW5zT25seVN0YXRpY1RleHQoKSBhbmQgcmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVt
ZW50KCkgaWYgdHJ1ZS4KKyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMg
Y29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAg
ICBTdGF0aWNUZXh0Um9sZSBmb3IgTGFiZWxSb2xlIGlmIHRydWUuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29u
dHJvbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxl
bWVudC13aXRoLWhpZGRlbi1jb250cm9sLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbDoK
KwogMjAxNi0wNi0xMCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJl
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRi
eS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0CmluZGV4IGZiOWMyZDM3YTgxNTliMjkxZDgy
ZDg1YWZjNDM2MDkwNmZkNzNhZGEuLmEzNDIyYzg2YTAyODIzOTc3ZmE1ZmIxM2UzZDZkMDIxZDA2
MGRmODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxl
ZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dApAQCAt
NSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyBwbGF0Zm9ybVZhbHVl
Rm9yVzNDTmFtZSh0ZXh0KSBpcyAiU2h1dCBkb3duIGNvbXB1dGVyIGFmdGVyIDEwIG1pbnV0ZXMi
CiBQQVNTIHRleHQudGl0bGVVSUVsZW1lbnQoKSAhPSBudWxsICYmIHRleHQudGl0bGVVSUVsZW1l
bnQoKS5pc1ZhbGlkIGlzIGZhbHNlCi1MYWJlbCBlbGVtZW50IHJvbGUgaXM6IEFYUm9sZTogQVhH
cm91cAorTGFiZWwgZWxlbWVudCByb2xlIGlzOiBBWFJvbGU6IEFYU3RhdGljVGV4dAogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNv
bnRyb2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwt
ZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4dAppbmRleCAxN2NhNmRiNDNl
OGFkN2UxOTBhYmU0OTA4ZTExN2E5Y2ZhM2Q1Mzg4Li44Njk0MjI0NmY2NDdkNDFhODZiZGM0YjJm
ZjAzZTUzYmVhYmNlZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29u
dHJvbC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRoaXMgdGVzdHMgdGhhdCBpZiBhIGxh
YmVsIGVsZW1lbnQgcmVmZXJlbmNlcyBhIGhpZGRlbiBjb250cm9sLCBpdCBpcyBzdGlsbCB2aXNp
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBjb250YWluZXIuY2hpbGRBdElu
ZGV4KCcwJykucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3VwJworUEFTUyBjb250YWluZXIuY2hpbGRB
dEluZGV4KCcwJykucm9sZSBpcyAnQVhSb2xlOiBBWFN0YXRpY1RleHQnCiBQQVNTIGNvbnRhaW5l
ci5jaGlsZEF0SW5kZXgoJzAnKS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWFN0
YXRpY1RleHQnCiBQQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5jaGlsZEF0SW5kZXgo
MCkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IFRlc3QgbGFiZWwxJwogUEFTUyBjb250YWluZXIu
Y2hpbGRBdEluZGV4KCcyJykucm9sZSBpcyAnQVhSb2xlOiBBWENoZWNrQm94JwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRl
bi1jb250cm9sLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVt
ZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wuaHRtbAppbmRleCAwM2Q2ZjVkMWQzM2NhNmJkZWY2NDlk
MjM4ZTE5OGNjMWI5NTY5YTljLi40YzU4MTQxOTlhMTQxOWRmNDZiMjRjYWNhMGFlNGQwZWVjNTZh
OGExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVt
ZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wuaHRtbApAQCAtMjEsNyAr
MjEsNyBAQAogICAgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Ym9keSIpOwogICAgICAgICAgICAgYm9keS5mb2N1cygpOwogICAgICAgICAgICAgdmFyIGNvbnRh
aW5lciA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRl
eCgwKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJyku
cm9sZSIsICInQVhSb2xlOiBBWEdyb3VwJyIpOyAgICAgICAgICAgIAorICAgICAgICAgICAgc2hv
dWxkQmUoImNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xlIiwgIidBWFJvbGU6IEFYU3Rh
dGljVGV4dCciKTsgICAgICAgICAgICAKICAgICAgICAgICAgIHNob3VsZEJlKCJjb250YWluZXIu
Y2hpbGRBdEluZGV4KCcwJykuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhTdGF0
aWNUZXh0JyIpOyAgICAgICAgICAgIAogICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRhaW5lci5j
aGlsZEF0SW5kZXgoJzAnKS5jaGlsZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6
IFRlc3QgbGFiZWwxJyIpOyAgICAgICAgICAgIAogICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRh
aW5lci5jaGlsZEF0SW5kZXgoJzInKS5yb2xlIiwgIidBWFJvbGU6IEFYQ2hlY2tCb3gnIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRp
dGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA3Yzg0
YWQzZDE3YjQ3ZWRmZWI0YjljYTkzODZjOTM0MGE1YjEwNDNiLi5mNjI5ZmY4MzYyNGRlZTk4ZWVj
NTIwMWZhNzUxOGI0NDQ3MjIyYmI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxl
bWVudC1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiAKIAogUEFTUyBzbGlkZXIudGl0bGVVSUVsZW1lbnQoKS5pc0VxdWFsKHRpdGxlKSBpcyB0cnVl
Ci1QQVNTIHRpdGxlLnJvbGUgaXMgJ0FYUm9sZTogQVhHcm91cCcKK1BBU1MgdGl0bGUucm9sZSBp
cyAnQVhSb2xlOiBBWFN0YXRpY1RleHQnCiBQQVNTIHRpdGxlLmNoaWxkQXRJbmRleCgwKS5yb2xl
IGlzICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFs
bG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbAppbmRleCBiNDBkODEzMzk2OWVm
NDc3NTIzNWYzMzdhOTE1Y2U5MzFiOGE1NDI3Li5hZjRmMWRkYmMwMWU4ZTlhMjE1ODYzY2UzNTE2
OTI0YWExODhlZDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
bGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbApAQCAtMjQs
NyArMjQsNyBAQAogICAgICAgICB2YXIgdGl0bGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5y
b290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgw
KTsKIAogICAgICAgICBzaG91bGRCZVRydWUoInNsaWRlci50aXRsZVVJRWxlbWVudCgpLmlzRXF1
YWwodGl0bGUpIik7Ci0gICAgICAgIHNob3VsZEJlKCJ0aXRsZS5yb2xlIiwgIidBWFJvbGU6IEFY
R3JvdXAnIik7CisgICAgICAgIHNob3VsZEJlKCJ0aXRsZS5yb2xlIiwgIidBWFJvbGU6IEFYU3Rh
dGljVGV4dCciKTsKICAgICAgICAgc2hvdWxkQmUoInRpdGxlLmNoaWxkQXRJbmRleCgwKS5yb2xl
IiwgIidBWFJvbGU6IEFYU3RhdGljVGV4dCciKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281050</attachid>
            <date>2016-06-10 14:53:01 -0700</date>
            <delta_ts>2016-06-10 17:44:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158634-20160610145431.patch</filename>
            <type>text/plain</type>
            <size>22051</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVlYzAzNGVlZWE1YTgy
MWE4MzYwOGY1OGJhZDQ5ODE3MDE1OWJlZi4uOTM5YTNiZDEwZDM2N2Q0OTAwNjQ4Yjk4YzcyODVj
OWVjZWIwZmFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE2LTA2LTEwICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVs
IHRleHQgc2hvdWxkIGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25s
eSBzdGF0aWMgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIEFjY2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVu
dCB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0
ZSAKKyAgICAgICAgaWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBhbmQgcmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4K
KyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFp
bnNPbmx5U3RhdGljVGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9s
ZSBmb3IgTGFiZWxSb2xlIGlmIHRydWUuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgdXBkYXRl
ZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6QWNjZXNzaWJpbGl0eUxhYmVsKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6fkFjY2Vzc2liaWxpdHlMYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6c3RyaW5nVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y2hpbGRyZW5Db250YWluT25seVN0YXRpY1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpjb250YWluc09ubHlTdGF0aWNUZXh0KToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oOiBBZGRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzTGFiZWwpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlXSk6CisKIDIwMTYtMDYtMTAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2Ug
V1RGOjpVbmlxdWVSZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzNlNjI1NWQ1NDc5OThhMTRj
MGZmMWJkNjk4NzE0ZGU1ODRkNzIxYS4uODliODQ2NmVhODZhZGEwYjUzZThlM2MwNWIwNzE3ODI1
YzZiODQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNDYsNiArMTA0Niw3IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5jcHAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcAogICAg
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAKKyAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMaXN0LmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3Bw
CiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
NDAxNDI1YWQyNTNhZTdjNGJlZDdmM2EwM2U0N2NiNzM3MTI0YjEwLi4yMDZkNTJkYjg5ZmEzNzFj
NjM3NjJmZDg1NGE4NGZlZGEyM2VhMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NzcyLDYgKzY3NzIsNyBAQAogCQlGNTA2
NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsK
KwkJRjUyQThGRDcxRDBBOEQwRTAwNzNDRjQyIC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBOEZENTFEMEE4
ODAxMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCAqLzsgfTsKIAkJRjUyQUQ1RTQx
NTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1w
dHlDbGllbnRzLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07
CiAJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07CkBAIC0xNDg2NSw2ICsxNDg2Niw4IEBA
CiAJCUY1MjNEMjc5MDJERTQzRDcwMTg2MzVDQSAvKiBUZXh0UmVzb3VyY2VEZWNvZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRSZXNv
dXJjZURlY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5n
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUY1MkE4RkQ1
MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUxhYmVsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUyQThGRDYxRDBBODgwMTAwNzNDRjQyIC8qIEFjY2Vzc2li
aWxpdHlMYWJlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmls
aXR5TGFiZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1
RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2Nh
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NTE0LDYgKzE2NTE3LDggQEAK
IAkJCQkyOTE0RTMwNjFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQu
aCAqLywKIAkJCQkyOTgxQ0FBMDEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5jcHAgKi8sCiAJCQkJMjlBODEyMUQwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbmsuaCAqLywKKwkJCQlGNTJBOEZENTFEMEE4ODAxMDA3M0NGNDIgLyog
QWNjZXNzaWJpbGl0eUxhYmVsLmNwcCAqLywKKwkJCQlGNTJBOEZENjFEMEE4ODAxMDA3M0NGNDIg
LyogQWNjZXNzaWJpbGl0eUxhYmVsLmggKi8sCiAJCQkJMjk4MUNBQTExMzE4MjJFQzAwRDEyRjJB
IC8qIEFjY2Vzc2liaWxpdHlMaXN0LmNwcCAqLywKIAkJCQkyOUE4MTIwRTBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eUxpc3QuaCAqLywKIAkJCQkyOTgxQ0FBMjEzMTgyMkVDMDBEMTJG
MkEgLyogQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwICovLApAQCAtMjk3NjYsNiArMjk3NzEsNyBA
QAogCQkJCUZFNjkzOEI2MTA0NUQ2N0UwMDhFQUJCNiAvKiBFdmVudEhhbmRsZXJJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCQk5M0MwOUE3RjBCMDY0RUVGMDA1QUJENEQgLyogRXZlbnRIYW5kbGVy
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ0NDk1RjMxNDFGQzA4OTAwNTQxRURGIC8qIEV2
ZW50TGlzdGVuZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjUyQThGRDcxRDBBOEQwRTAw
NzNDRjQyIC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNDAw
RDEwOTE4RjFDOEY2MDA5MEQ4NjMgLyogRXZlbnRMb29wSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTlDQzBCNTAxOEJFOTg0OTAwNkNFQkNDIC8qIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNkY0MEQ0QTE0OTA0QTYzMDBDQTY3QzQgLyogRXZl
bnRMb29wSU9TLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA0ZjViZGYxMzZhMjU1MzgwMWYzZGJiMmQwMTVh
NGI5ZGE5MzhhY2U1Li4wNmQ3OGRjM2ZkZjE3NjlhZTFjZjc5MmRkYWJlZDQ5YzBiZGYxNTk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCIKICNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGFiZWwuaCIKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5TGlzdC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0Qm94
LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCIKQEAgLTQyOCw2ICs0
MjksOSBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJl
cihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJl
ZWl0ZW0iKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUcmVlSXRlbTo6Y3JlYXRlKHJl
bmRlcmVyKTsKIAorICAgIGlmIChub2RlICYmIGlzPEhUTUxMYWJlbEVsZW1lbnQ+KG5vZGUpKQor
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxhYmVsOjpjcmVhdGUocmVuZGVyZXIpOworCiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIC8vIG1lZGlhIGNvbnRyb2xzCiAgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aXNNZWRpYUNvbnRyb2xFbGVtZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAKaW5kZXggNDU0YmM0NGU1
ZmMxYzk0OGQwZTdlMzU0MjdjZThjYjVlY2M1YzY3NS4uZjc1NGUxNDc4ODU1MTE5MGZlOWQwMzM2
ODg1MWY0ZGYzZjk0ZjFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eUF0dGFjaG1lbnQuY3BwIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3Bw
IgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJlbC5jcHAiCiAjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eUxpc3QuY3BwIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcCIKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk4
NGM5NGRmNDg3NTgyODJjNWNjZWExNDRjOWIwN2IwZjM5OWEyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcApAQCAt
MCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGFiZWwuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwor
QWNjZXNzaWJpbGl0eUxhYmVsOjpBY2Nlc3NpYmlsaXR5TGFiZWwoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7Cit9CisK
K0FjY2Vzc2liaWxpdHlMYWJlbDo6fkFjY2Vzc2liaWxpdHlMYWJlbCgpCit7Cit9CisKK1JlZjxB
Y2Nlc3NpYmlsaXR5TGFiZWw+IEFjY2Vzc2liaWxpdHlMYWJlbDo6Y3JlYXRlKFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxh
YmVsKHJlbmRlcmVyKSk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUxhYmVsOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWRCeURlZmF1bHQoKTsKK30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlMYWJlbDo6c3Ry
aW5nVmFsdWUoKSBjb25zdAoreworICAgIGlmIChjb250YWluc09ubHlTdGF0aWNUZXh0KCkpCisg
ICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSgpOworfQorCitzdGF0aWMgYm9vbCBjaGlsZHJlbkNv
bnRhaW5Pbmx5U3RhdGljVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKQoreworICAgIGlmICghY2hpbGRyZW4uc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuKSB7CisgICAgICAgIGlmIChjaGlsZC0+cm9sZVZhbHVlKCkgPT0gU3RhdGljVGV4dFJv
bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGNoaWxkLT5yb2xlVmFsdWUo
KSA9PSBHcm91cFJvbGUpIHsKKyAgICAgICAgICAgIGlmICghY2hpbGRyZW5Db250YWluT25seVN0
YXRpY1RleHQoY2hpbGQtPmNoaWxkcmVuKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y29udGFpbnNPbmx5
U3RhdGljVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNoaWxkcmVuQ29udGFpbk9ubHlTdGF0
aWNUZXh0KG1fY2hpbGRyZW4pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZWYyNTdhNDYxZjMwYjVlMDhkMGQ4ZGM1YjhkYjljNjU0NjU5NjA2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eUxhYmVsX2gKKyNkZWZpbmUgQWNjZXNzaWJp
bGl0eUxhYmVsX2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVsIGZpbmFs
IDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8QWNjZXNzaWJpbGl0eUxhYmVsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eUxhYmVsKCk7CisgICAgCisgICAgYm9vbCBjb250YWluc09ubHlT
dGF0aWNUZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0
eUxhYmVsKFJlbmRlck9iamVjdCopOworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBMYWJlbFJvbGU7IH0KKyAgICBib29sIGlzTGFiZWwoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3Qg
ZmluYWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQUNDRVNTSUJJTElUWShBY2Nlc3NpYmlsaXR5TGFiZWwsIGlzTGFiZWwoKSkKKworI2Vu
ZGlmIC8vIEFjY2Vzc2liaWxpdHlMYWJlbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE0ODQwZjM2MmViNTMyNDYzYTc2
OTE1NjY3NWY3NWIzOWQ5NTNmMjMuLjFkYmRkOTg0MGFiMDAzNjQ2ODMwY2EzNTk5NTZiYThmYmM4
NmZlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC01MTIsNiArNTEyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1NsaWRlclRodW1iKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNJbnB1dFNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IGlzTGFiZWwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xp
c3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVGFibGUoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQppbmRleCAwNDVhYWYwYzFiN2RiYjI4MTFlMDQzNjljNmMwODAwMmZmNzBmZmY1Li4yY2Rm
NGYyY2I2NDViM2QzZTIzYmM0YzQ5MjFlNWQ4NTM1NjRhZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMzMsNiArMzMsNyBAQAogCiAjaW1wb3J0ICJBWE9i
amVjdENhY2hlLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCIKKyNpbXBv
cnQgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUxpc3QuaCIK
ICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlMaXN0Qm94LmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgiCkBAIC0yMjMyLDYgKzIyMzMsMTAgQEAgc3RhdGljIE5TU3RyaW5nKiBy
b2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgICAgICByZXR1
cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNB
Y2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKKwor
ICAgIGlmIChyb2xlID09IExhYmVsUm9sZSAmJiBpczxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29i
amVjdCkgJiYgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3QpLmNvbnRhaW5z
T25seVN0YXRpY1RleHQoKSkKKyAgICAgICAgcm9sZSA9IFN0YXRpY1RleHRSb2xlOworCiAgICAg
aWYgKHJvbGUgPT0gQ2FudmFzUm9sZSAmJiBtX29iamVjdC0+Y2FudmFzSGFzRmFsbGJhY2tDb250
ZW50KCkpCiAgICAgICAgIHJvbGUgPSBHcm91cFJvbGU7CiAgICAgTlNTdHJpbmcqIHN0cmluZyA9
IHJvbGVWYWx1ZVRvTlNTdHJpbmcocm9sZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjNhZDJmZjJjMjk5M2M5ZjUzZDkx
M2NjZjg5OGUyZDU1Y2EwMzFkOS4uNzJjYzVlZGRhZTk4MTdhYTlkYzVkNWQ3MjRhNWY1MWM3ZDg1
NDJmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTEwICBEb3VnIFJ1c3NlbGwgIDxk
X3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVsIHRleHQgc2hvdWxk
IGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25seSBzdGF0aWMgdGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NjM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEFj
Y2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVudCB0byBhc3Npc3Rp
dmUgdGVjaG5vbG9neS4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpjb250YWluc09ubHlT
dGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0ZSAKKyAgICAgICAg
aWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxh
YmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRpY1RleHQoKSBhbmQg
cmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4KKyAgICAgICAgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGlj
VGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9sZSBmb3IgTGFiZWxS
b2xlIGlmIHRydWUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1v
dmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLmh0
bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1l
bGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXIt
YWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbDoKKwogMjAxNi0wNi0xMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIElEQiBsZWFrIHRlc3QuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVy
cmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dAppbmRleCBmYjljMmQzN2E4
MTU5YjI5MWQ4MmQ4NWFmYzQzNjA5MDZmZDczYWRhLi5hMzQyMmM4NmEwMjgyMzk3N2ZhNWZiMTNl
M2Q2ZDAyMWQwNjBkZjgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3Rl
ZC50eHQKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgcGxh
dGZvcm1WYWx1ZUZvclczQ05hbWUodGV4dCkgaXMgIlNodXQgZG93biBjb21wdXRlciBhZnRlciAx
MCBtaW51dGVzIgogUEFTUyB0ZXh0LnRpdGxlVUlFbGVtZW50KCkgIT0gbnVsbCAmJiB0ZXh0LnRp
dGxlVUlFbGVtZW50KCkuaXNWYWxpZCBpcyBmYWxzZQotTGFiZWwgZWxlbWVudCByb2xlIGlzOiBB
WFJvbGU6IEFYR3JvdXAKK0xhYmVsIGVsZW1lbnQgcm9sZSBpczogQVhSb2xlOiBBWFN0YXRpY1Rl
eHQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRo
LWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQKaW5kZXgg
MTdjYTZkYjQzZThhZDdlMTkwYWJlNDkwOGUxMTdhOWNmYTNkNTM4OC4uODY5NDIyNDZmNjQ3ZDQx
YTg2YmRjNGIyZmYwM2U1M2JlYWJjZWUxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgt
aGlkZGVuLWNvbnRyb2wtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUaGlzIHRlc3RzIHRo
YXQgaWYgYSBsYWJlbCBlbGVtZW50IHJlZmVyZW5jZXMgYSBoaWRkZW4gY29udHJvbCwgaXQgaXMg
c3RpbGwgdmlzaQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgY29udGFpbmVy
LmNoaWxkQXRJbmRleCgnMCcpLnJvbGUgaXMgJ0FYUm9sZTogQVhHcm91cCcKK1BBU1MgY29udGFp
bmVyLmNoaWxkQXRJbmRleCgnMCcpLnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0aWNUZXh0JwogUEFT
UyBjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJykuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FY
Um9sZTogQVhTdGF0aWNUZXh0JwogUEFTUyBjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJykuY2hp
bGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBUZXN0IGxhYmVsMScKIFBBU1Mg
Y29udGFpbmVyLmNoaWxkQXRJbmRleCgnMicpLnJvbGUgaXMgJ0FYUm9sZTogQVhDaGVja0JveCcK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQt
d2l0aC1oaWRkZW4tY29udHJvbC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
bGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLmh0bWwKaW5kZXggMDNkNmY1ZDFkMzNj
YTZiZGVmNjQ5ZDIzOGUxOThjYzFiOTU2OWE5Yy4uNGM1ODE0MTk5YTE0MTlkZjQ2YjI0Y2FjYTBh
ZTRkMGVlYzU2YThhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
bGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLmh0bWwK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImJvZHkiKTsKICAgICAgICAgICAgIGJvZHkuZm9jdXMoKTsKICAgICAgICAgICAg
IHZhciBjb250YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJ
bmRleCgnMCcpLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91cCciKTsgICAgICAgICAgICAKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJykucm9sZSIsICInQVhS
b2xlOiBBWFN0YXRpY1RleHQnIik7ICAgICAgICAgICAgCiAgICAgICAgICAgICBzaG91bGRCZSgi
Y29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLmNoaWxkQXRJbmRleCgwKS5yb2xlIiwgIidBWFJv
bGU6IEFYU3RhdGljVGV4dCciKTsgICAgICAgICAgICAKICAgICAgICAgICAgIHNob3VsZEJlKCJj
b250YWluZXIuY2hpbGRBdEluZGV4KCcwJykuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlIiwg
IidBWFZhbHVlOiBUZXN0IGxhYmVsMSciKTsgICAgICAgICAgICAKICAgICAgICAgICAgIHNob3Vs
ZEJlKCJjb250YWluZXIuY2hpbGRBdEluZGV4KCcyJykucm9sZSIsICInQVhSb2xlOiBBWENoZWNr
Qm94JyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVy
LWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC1leHBlY3RlZC50eHQK
aW5kZXggN2M4NGFkM2QxN2I0N2VkZmViNGI5Y2E5Mzg2YzkzNDBhNWIxMDQzYi4uZjYyOWZmODM2
MjRkZWU5OGVlYzUyMDFmYTc1MThiNDQ0NzIyMmJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRp
dGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiAKIFBBU1Mgc2xpZGVyLnRpdGxlVUlFbGVtZW50KCkuaXNFcXVhbCh0aXRs
ZSkgaXMgdHJ1ZQotUEFTUyB0aXRsZS5yb2xlIGlzICdBWFJvbGU6IEFYR3JvdXAnCitQQVNTIHRp
dGxlLnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0aWNUZXh0JwogUEFTUyB0aXRsZS5jaGlsZEF0SW5k
ZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWFN0YXRpY1RleHQnCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWwKaW5kZXggYjQw
ZDgxMzM5NjllZjQ3NzUyMzVmMzM3YTkxNWNlOTMxYjhhNTQyNy4uYWY0ZjFkZGJjMDFlOGU5YTIx
NTg2M2NlMzUxNjkyNGFhMTg4ZWQ0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50Lmh0
bWwKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAgICAgdmFyIHRpdGxlID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgwKS5jaGls
ZEF0SW5kZXgoMCk7CiAKICAgICAgICAgc2hvdWxkQmVUcnVlKCJzbGlkZXIudGl0bGVVSUVsZW1l
bnQoKS5pc0VxdWFsKHRpdGxlKSIpOwotICAgICAgICBzaG91bGRCZSgidGl0bGUucm9sZSIsICIn
QVhSb2xlOiBBWEdyb3VwJyIpOworICAgICAgICBzaG91bGRCZSgidGl0bGUucm9sZSIsICInQVhS
b2xlOiBBWFN0YXRpY1RleHQnIik7CiAgICAgICAgIHNob3VsZEJlKCJ0aXRsZS5jaGlsZEF0SW5k
ZXgoMCkucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1RleHQnIik7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281067</attachid>
            <date>2016-06-10 17:44:31 -0700</date>
            <delta_ts>2016-06-12 20:57:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158634-20160610174601.patch</filename>
            <type>text/plain</type>
            <size>26769</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg2MDhlN2I1ZjNjZTgy
YzhlNzM0NzQzNWNlNzI2ZGNiN2Y2ZTcyZi4uMzJiOGIyNmYwN2E1MTE2ZDQzNWIzZTg3ZmQ1YzFj
YzI4ZmY5YjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA2LTEwICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVs
IHRleHQgc2hvdWxkIGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25s
eSBzdGF0aWMgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIEFjY2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVu
dCB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0
ZSAKKyAgICAgICAgaWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBhbmQgcmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4K
KyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFp
bnNPbmx5U3RhdGljVGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9s
ZSBmb3IgTGFiZWxSb2xlIGlmIHRydWUuCisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtYWxsLXRleHQtc3RyaW5nLXZhbHVlLmh0bWwKKyAgICAgICAgICAg
ICAgIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1
ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZyb21SZW5kZXJlcik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OkFjY2Vzc2liaWxpdHlMYWJlbCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6On5BY2Nlc3NpYmlsaXR5TGFiZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OnN0cmluZ1ZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNoaWxkcmVuQ29udGFpbk9ubHlTdGF0aWNUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6Y29udGFpbnNPbmx5U3RhdGljVGV4dCk6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaDogQWRkZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0xhYmVsKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZV0pOgorCiAyMDE2LTA2LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNl
IFJlc291cmNlUmVzcG9uc2UgY29weWluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3M2U2MjU1
ZDU0Nzk5OGExNGMwZmYxYmQ2OTg3MTRkZTU4NGQ3MjFhLi44OWI4NDY2ZWE4NmFkYTBiNTNlOGUz
YzA1YjA3MTc4MjVjNmI4NDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA0Niw2ICsxMDQ2
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1l
bnQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAor
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcAogICAgIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveC5jcHAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDc0MDE0MjVhZDI1M2FlN2M0YmVkN2YzYTAzZTQ3Y2I3MzcxMjRiMTAuLjIwNmQ1
MmRiODlmYTM3MWM2Mzc2MmZkODU0YTg0ZmVkYTIzZWEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY3NzIsNiArNjc3Miw3
IEBACiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1
MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1
MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVu
dC5oICovOyB9OworCQlGNTJBOEZENzFEMEE4RDBFMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxh
YmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovOyB9Owog
CQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxl
LmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4
NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKQEAgLTE0ODY1LDYg
KzE0ODY2LDggQEAKIAkJRjUyM0QyNzkwMkRFNDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURl
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGV4dFJlc291cmNlRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJh
bmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
KwkJRjUyQThGRDUxRDBBODgwMTAwNzNDRjQyIC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGFiZWwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTJBOEZENjFEMEE4ODAxMDA3M0NGNDIg
LyogQWNjZXNzaWJpbGl0eUxhYmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlMYWJlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTJB
RDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNB
OCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MTQsNiAr
MTY1MTcsOCBAQAogCQkJCTI5MTRFMzA2MUNBQjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5
QXR0YWNobWVudC5oICovLAogCQkJCTI5ODFDQUEwMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3Np
YmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCAqLywKIAkJCQkyOUE4MTIxRDBGQkI5QzFEMDA1MTAyOTMg
LyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oICovLAorCQkJCUY1MkE4RkQ1MUQwQTg4MDEw
MDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovLAorCQkJCUY1MkE4RkQ2MUQwQTg4
MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFiZWwuaCAqLywKIAkJCQkyOTgxQ0FBMTEzMTgy
MkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0eUxpc3QuY3BwICovLAogCQkJCTI5QTgxMjBFMEZC
QjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovLAogCQkJCTI5ODFDQUEyMTMx
ODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgKi8sCkBAIC0yOTc2Niw2
ICsyOTc3MSw3IEBACiAJCQkJRkU2OTM4QjYxMDQ1RDY3RTAwOEVBQkI2IC8qIEV2ZW50SGFuZGxl
cklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQzA5QTdGMEIwNjRFRUYwMDVBQkQ0RCAvKiBF
dmVudEhhbmRsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBRDQ0OTVGMzE0MUZDMDg5MDA1
NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTJBOEZE
NzFEMEE4RDBFMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUM0MDBEMTA5MThGMUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5OUNDMEI1MDE4QkU5ODQ5MDA2Q0VCQ0MgLyogRXZlbnRMb29wSW5w
dXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2RjQwRDRBMTQ5MDRBNjMwMENB
NjdDNCAvKiBFdmVudExvb3BJT1MubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDRmNWJkZjEzNmEyNTUzODAx
ZjNkYmIyZDAxNWE0YjlkYTkzOGFjZTUuLjA2ZDc4ZGMzZmRmMTc2OWFlMWNmNzkyZGRhYmVkNDlj
MGJkZjE1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdy5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAi
QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJl
bC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eUxpc3RCb3guaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIgpA
QCAtNDI4LDYgKzQyOSw5IEBAIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRl
RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgaWYgKG5vZGVIYXNSb2xl
KG5vZGUsICJ0cmVlaXRlbSIpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVt
OjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAgaWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVu
dD4obm9kZSkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5k
ZXJlcik7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgLy8gbWVkaWEgY29udHJvbHMKICAgICBp
ZiAobm9kZSAmJiBub2RlLT5pc01lZGlhQ29udHJvbEVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcAppbmRl
eCA0NTRiYzQ0ZTVmYzFjOTQ4ZDBlN2UzNTQyN2NlOGNiNWVjYzVjNjc1Li5mNzU0ZTE0Nzg4NTUx
MTkwZmU5ZDAzMzY4ODUxZjRkZjNmOTRmMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5jcHAiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCIKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5TGlzdC5jcHAiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3gu
Y3BwIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOTg0Yzk0ZGY0ODc1ODI4MmM1Y2NlYTE0NGM5YjA3YjBmMzk5YTI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMYWJlbC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOworCitBY2Nlc3NpYmlsaXR5TGFiZWw6OkFjY2Vzc2liaWxpdHlMYWJlbChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQorICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJl
cikKK3sKK30KKworQWNjZXNzaWJpbGl0eUxhYmVsOjp+QWNjZXNzaWJpbGl0eUxhYmVsKCkKK3sK
K30KKworUmVmPEFjY2Vzc2liaWxpdHlMYWJlbD4gQWNjZXNzaWJpbGl0eUxhYmVsOjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nl
c3NpYmlsaXR5TGFiZWwocmVuZGVyZXIpKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TGFiZWw6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOworfQorCitTdHJpbmcgQWNjZXNzaWJpbGl0
eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSkKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKKyAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCk7Cit9CisKK3N0YXRpYyBib29s
IGNoaWxkcmVuQ29udGFpbk9ubHlTdGF0aWNUZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pCit7CisgICAgaWYgKCFjaGls
ZHJlbi5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IGNoaWxkIDogY2hpbGRyZW4pIHsKKyAgICAgICAgaWYgKGNoaWxkLT5yb2xlVmFsdWUoKSA9PSBT
dGF0aWNUZXh0Um9sZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoY2hpbGQt
PnJvbGVWYWx1ZSgpID09IEdyb3VwUm9sZSkgeworICAgICAgICAgICAgaWYgKCFjaGlsZHJlbkNv
bnRhaW5Pbmx5U3RhdGljVGV4dChjaGlsZC0+Y2hpbGRyZW4oKSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2hpbGRyZW5Db250
YWluT25seVN0YXRpY1RleHQobV9jaGlsZHJlbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxhYmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJl
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlZjI1N2E0NjFmMzBiNWUwOGQwZDhkYzViOGRiOWM2NTQ2NTk2MDYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMYWJlbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBY2Nlc3NpYmlsaXR5TGFiZWxfaAorI2RlZmlu
ZSBBY2Nlc3NpYmlsaXR5TGFiZWxfaAorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBBY2Nlc3NpYmlsaXR5
TGFiZWwgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IGNyZWF0ZShSZW5kZXJPYmplY3Qq
KTsKKyAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TGFiZWwoKTsKKyAgICAKKyAgICBib29sIGNv
bnRhaW5zT25seVN0YXRpY1RleHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBB
Y2Nlc3NpYmlsaXR5TGFiZWwoUmVuZGVyT2JqZWN0Kik7CisgICAgYm9vbCBjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IGZpbmFsOworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJv
bGVWYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIExhYmVsUm9sZTsgfQorICAgIGJvb2wgaXNM
YWJlbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBTdHJpbmcgc3RyaW5nVmFs
dWUoKSBjb25zdCBmaW5hbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklMSVRZKEFjY2Vzc2liaWxpdHlMYWJlbCwgaXNMYWJl
bCgpKQorCisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eUxhYmVsX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMTQ4NDBmMzYy
ZWI1MzI0NjNhNzY5MTU2Njc1Zjc1YjM5ZDk1M2YyMy4uMWRiZGQ5ODQwYWIwMDM2NDY4MzBjYTM1
OTk1NmJhOGZiYzg2ZmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTUxMiw2ICs1MTIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzU2xpZGVyVGh1bWIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0lucHV0U2xpZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNMYWJlbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzVGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Rh
dGFUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDA0NWFhZjBjMWI3ZGJiMjgxMWUwNDM2OWM2YzA4MDAyZmY3
MGZmZjUuLjJjZGY0ZjJjYjY0NWIzZDNlMjNiYzRjNDkyMWU1ZDg1MzU2NGFmMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNp
bXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUxhYmVsLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmls
aXR5TGlzdC5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNpbXBvcnQgIkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKQEAgLTIyMzIsNiArMjIzMywxMCBAQCBzdGF0aWMg
TlNTdHJpbmcqIHJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAg
ICAgICAgIHJldHVybiBbW3NlbGYgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlXTsKICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVW
YWx1ZSgpOworCisgICAgaWYgKHJvbGUgPT0gTGFiZWxSb2xlICYmIGlzPEFjY2Vzc2liaWxpdHlM
YWJlbD4oKm1fb2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVj
dCkuY29udGFpbnNPbmx5U3RhdGljVGV4dCgpKQorICAgICAgICByb2xlID0gU3RhdGljVGV4dFJv
bGU7CisKICAgICBpZiAocm9sZSA9PSBDYW52YXNSb2xlICYmIG1fb2JqZWN0LT5jYW52YXNIYXNG
YWxsYmFja0NvbnRlbnQoKSkKICAgICAgICAgcm9sZSA9IEdyb3VwUm9sZTsKICAgICBOU1N0cmlu
Zyogc3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0cmluZyhyb2xlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiM2FkMmZmMmMy
OTkzYzlmNTNkOTEzY2NmODk4ZTJkNTVjYTAzMWQ5Li44NTU3ZTk5YmZiMDkxODRmNDM2NmE0Nzdk
YWRjNjFhMjExNGU0OWI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMDYtMTAgIERvdWcg
UnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEZvcm0gbGFiZWwg
dGV4dCBzaG91bGQgYmUgZXhwb3NlZCBhcyBzdGF0aWMgdGV4dCBpZiBpdCBjb250YWlucyBvbmx5
IHN0YXRpYyB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTg2MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVc2UgQWNjZXNzaWJpbGl0eUxhYmVsIHRvIHJlcHJlc2VudCBIVE1MTGFiZWxFbGVtZW50
IHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LgorICAgICAgICBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNv
bnRhaW5zT25seVN0YXRpY1RleHQoKSBzZWFyY2hlcyBsYWJlbCBzdWJ0cmVlIHRvIGV2YWx1YXRl
IAorICAgICAgICBpZiBhbGwgY2hpbGRyZW4gYXJlIHN0YXRpYyB0ZXh0LgorICAgICAgICBBY2Nl
c3NpYmlsaXR5TGFiZWw6OnN0cmluZ1ZhbHVlKCkgY29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGlj
VGV4dCgpIGFuZCByZXR1cm5zCisgICAgICAgIHRleHRVbmRlckVsZW1lbnQoKSBpZiB0cnVlLgor
ICAgICAgICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYyBjb25zdWx0cyBjb250YWlu
c09ubHlTdGF0aWNUZXh0KCkgYW5kIHN1YnN0aXR1dGVzCisgICAgICAgIFN0YXRpY1RleHRSb2xl
IGZvciBMYWJlbFJvbGUgaWYgdHJ1ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1s
YWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1hbGwtdGV4dC1zdHJpbmctdmFsdWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFs
bC10ZXh0LXN0cmluZy12YWx1ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJv
bC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1s
aW5rLXN0cmluZy12YWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1h
bGxvd3MtdGl0bGUtdWktZWxlbWVudC5odG1sOgorCiAyMDE2LTA2LTEwICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gSURCIGxlYWsgdGVzdC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJy
aWRlcy1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
bGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0CmluZGV4IGZiOWMyZDM3YTgx
NTliMjkxZDgyZDg1YWZjNDM2MDkwNmZkNzNhZGEuLmEzNDIyYzg2YTAyODIzOTc3ZmE1ZmIxM2Uz
ZDZkMDIxZDA2MGRmODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVk
LnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyBwbGF0
Zm9ybVZhbHVlRm9yVzNDTmFtZSh0ZXh0KSBpcyAiU2h1dCBkb3duIGNvbXB1dGVyIGFmdGVyIDEw
IG1pbnV0ZXMiCiBQQVNTIHRleHQudGl0bGVVSUVsZW1lbnQoKSAhPSBudWxsICYmIHRleHQudGl0
bGVVSUVsZW1lbnQoKS5pc1ZhbGlkIGlzIGZhbHNlCi1MYWJlbCBlbGVtZW50IHJvbGUgaXM6IEFY
Um9sZTogQVhHcm91cAorTGFiZWwgZWxlbWVudCByb2xlIGlzOiBBWFJvbGU6IEFYU3RhdGljVGV4
dAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFsbC10
ZXh0LXN0cmluZy12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9sYWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM0NDBjOWMwNDFiMTU0ZGYwZmUyYjhkNjUyZTQ1NTE4MDg3YjE1MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQt
YWxsLXRleHQtc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisgZmly
c3QgY2hvaWNlCitUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50IGNvbnRhaW5zIHRl
eHQgY2hpbGRyZW4gaXQncyBBWFZhbHVlIHdpbGwgYmUgdGhlaXIgY29uY2F0ZW5hdGVkIEFYVmFs
dWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYWJlbC5yb2xlIGlz
ICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKK1BBU1MgbGFiZWwuc3RyaW5nVmFsdWUgaXMgJ0FYVmFs
dWU6IGZpcnN0IGNob2ljZScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9s
YWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1hbGwtdGV4dC1zdHJpbmctdmFsdWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZGQ1YThiN2Y2YTY1YTAzNGQ5MmI2MzljNDE3YThkNjdlMGJiZTQzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVu
dC1hbGwtdGV4dC1zdHJpbmctdmFsdWUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9ImlucHV0IiAv
PgorPGxhYmVsIGZvcj0iaW5wdXQiIGlkPSJsYWJlbCI+CisJPHNwYW4+Zmlyc3Q8L3NwYW4+CisJ
PHNwYW4+Y2hvaWNlPC9zcGFuPgorPC9sYWJlbD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworCXZhciBsYWJlbCA9IDA7
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCBj
b250YWlucyB0ZXh0IGNoaWxkcmVuIGl0J3MgQVhWYWx1ZSB3aWxsIGJlIHRoZWlyIGNvbmNhdGVu
YXRlZCBBWFZhbHVlcy4iKTsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisg
ICAgICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7Cisg
ICAgICAgICAgICBib2R5LmZvY3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxhYmVs
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJsYWJlbCIp
OworICAgICAgICAgICAgc2hvdWxkQmUoImxhYmVsLnJvbGUiLCAiJ0FYUm9sZTogQVhTdGF0aWNU
ZXh0JyIpOworICAgICAgICAgICAgc2hvdWxkQmUoImxhYmVsLnN0cmluZ1ZhbHVlIiwgIidBWFZh
bHVlOiBmaXJzdCBjaG9pY2UnIik7ICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVu
LWNvbnRyb2wtZXhwZWN0ZWQudHh0CmluZGV4IDE3Y2E2ZGI0M2U4YWQ3ZTE5MGFiZTQ5MDhlMTE3
YTljZmEzZDUzODguLjg2OTQyMjQ2ZjY0N2Q0MWE4NmJkYzRiMmZmMDNlNTNiZWFiY2VlMTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0
aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4dApA
QCAtNCw3ICs0LDcgQEAgVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCByZWZlcmVu
Y2VzIGEgaGlkZGVuIGNvbnRyb2wsIGl0IGlzIHN0aWxsIHZpc2kKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1QQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xlIGlzICdB
WFJvbGU6IEFYR3JvdXAnCitQQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xlIGlz
ICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1MgY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcp
LmNoaWxkQXRJbmRleCgwKS5yb2xlIGlzICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1MgY29u
dGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZSBpcyAn
QVhWYWx1ZTogVGVzdCBsYWJlbDEnCiBQQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzInKS5y
b2xlIGlzICdBWFJvbGU6IEFYQ2hlY2tCb3gnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wuaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29u
dHJvbC5odG1sCmluZGV4IDAzZDZmNWQxZDMzY2E2YmRlZjY0OWQyMzhlMTk4Y2MxYjk1NjlhOWMu
LjRjNTgxNDE5OWExNDE5ZGY0NmIyNGNhY2EwYWU0ZDBlZWM1NmE4YTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29u
dHJvbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1l
bnQtd2l0aC1oaWRkZW4tY29udHJvbC5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgICAg
ICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7CiAgICAgICAgICAg
ICBib2R5LmZvY3VzKCk7CiAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAg
c2hvdWxkQmUoImNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xlIiwgIidBWFJvbGU6IEFY
R3JvdXAnIik7ICAgICAgICAgICAgCisgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNo
aWxkQXRJbmRleCgnMCcpLnJvbGUiLCAiJ0FYUm9sZTogQVhTdGF0aWNUZXh0JyIpOyAgICAgICAg
ICAgIAogICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5j
aGlsZEF0SW5kZXgoMCkucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1RleHQnIik7ICAgICAgICAg
ICAgCiAgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLmNo
aWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogVGVzdCBsYWJlbDEnIik7ICAg
ICAgICAgICAgCiAgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJbmRleCgn
MicpLnJvbGUiLCAiJ0FYUm9sZTogQVhDaGVja0JveCciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVt
ZW50LXdpdGgtbGluay1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNWRj
NzYxZDJkMTYxNmFlMjk0NzhiOTE3MGU4NGU4NzhkNzZkYTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtbGluay1zdHJp
bmctdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKyBmaXJzdCBjaG9pY2UKK1Ro
aXMgdGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQgY29udGFpbnMgdGV4dCBjaGlsZHJlbiBp
dCdzIEFYVmFsdWUgd2lsbCBiZSB0aGVpciBjb25jYXRlbmF0ZWQgQVhWYWx1ZXMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxhYmVsLnJvbGUgaXMgJ0FYUm9sZTogQVhH
cm91cCcKK1BBU1MgbGFiZWwuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6ICcKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtbGluay1zdHJpbmct
dmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQt
d2l0aC1saW5rLXN0cmluZy12YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ODc1YWZiNTAxMjQwYmE2
NzM5YTVhOWNlZjEwZjYzMmFkZjVkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtbGluay1zdHJpbmctdmFsdWUuaHRt
bApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxp
bnB1dCB0eXBlPSJyYWRpbyIgaWQ9ImlucHV0IiAvPgorPGxhYmVsIGZvcj0iaW5wdXQiIGlkPSJs
YWJlbCI+CisJPHNwYW4+Zmlyc3Q8L3NwYW4+CisJPHNwYW4+PGEgaHJlZj0iIj5jaG9pY2U8L2E+
PC9zcGFuPgorPC9sYWJlbD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworCXZhciBsYWJlbCA9IDA7CisKKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCBjb250YWlucyB0ZXh0
IGNoaWxkcmVuIGl0J3MgQVhWYWx1ZSB3aWxsIGJlIHRoZWlyIGNvbmNhdGVuYXRlZCBBWFZhbHVl
cy4iKTsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgICAgICB2
YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7CisgICAgICAgICAgICBi
b2R5LmZvY3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxhYmVsID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJsYWJlbCIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoImxhYmVsLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91cCciKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJsYWJlbC5zdHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogJyIpOyAgICAgICAg
ICAKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxl
LXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA3Yzg0YWQz
ZDE3YjQ3ZWRmZWI0YjljYTkzODZjOTM0MGE1YjEwNDNiLi5mNjI5ZmY4MzYyNGRlZTk4ZWVjNTIw
MWZhNzUxOGI0NDQ3MjIyYmI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVu
dC1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IAogUEFTUyBzbGlkZXIudGl0bGVVSUVsZW1lbnQoKS5pc0VxdWFsKHRpdGxlKSBpcyB0cnVlCi1Q
QVNTIHRpdGxlLnJvbGUgaXMgJ0FYUm9sZTogQVhHcm91cCcKK1BBU1MgdGl0bGUucm9sZSBpcyAn
QVhSb2xlOiBBWFN0YXRpY1RleHQnCiBQQVNTIHRpdGxlLmNoaWxkQXRJbmRleCgwKS5yb2xlIGlz
ICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93
cy10aXRsZS11aS1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
bGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbAppbmRleCBiNDBkODEzMzk2OWVmNDc3
NTIzNWYzMzdhOTE1Y2U5MzFiOGE1NDI3Li5hZjRmMWRkYmMwMWU4ZTlhMjE1ODYzY2UzNTE2OTI0
YWExODhlZDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zbGlk
ZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQuaHRtbApAQCAtMjQsNyAr
MjQsNyBAQAogICAgICAgICB2YXIgdGl0bGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290
RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgwKTsK
IAogICAgICAgICBzaG91bGRCZVRydWUoInNsaWRlci50aXRsZVVJRWxlbWVudCgpLmlzRXF1YWwo
dGl0bGUpIik7Ci0gICAgICAgIHNob3VsZEJlKCJ0aXRsZS5yb2xlIiwgIidBWFJvbGU6IEFYR3Jv
dXAnIik7CisgICAgICAgIHNob3VsZEJlKCJ0aXRsZS5yb2xlIiwgIidBWFJvbGU6IEFYU3RhdGlj
VGV4dCciKTsKICAgICAgICAgc2hvdWxkQmUoInRpdGxlLmNoaWxkQXRJbmRleCgwKS5yb2xlIiwg
IidBWFJvbGU6IEFYU3RhdGljVGV4dCciKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281154</attachid>
            <date>2016-06-12 20:58:01 -0700</date>
            <delta_ts>2016-06-14 13:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158634-20160612205934.patch</filename>
            <type>text/plain</type>
            <size>28079</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg2MDhlN2I1ZjNjZTgy
YzhlNzM0NzQzNWNlNzI2ZGNiN2Y2ZTcyZi4uYTg0NmYwODVjMTQ5NmZlYTczY2Q4YTAxNDJkNjM4
OGNmN2U1NmVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTEyICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVs
IHRleHQgc2hvdWxkIGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25s
eSBzdGF0aWMgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIEFjY2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVu
dCB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0
ZSAKKyAgICAgICAgaWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBhbmQgcmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4K
KyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFp
bnNPbmx5U3RhdGljVGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9s
ZSBmb3IgTGFiZWxSb2xlIGlmIHRydWUuCisgICAgICAgIENhY2hlIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBpbiB0aGUgY29tbW9uIGNhc2Ugd2hlbiB1cGRhdGluZyBjaGlsZHJlbi4KKworICAg
ICAgICBUZXN0czogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1hbGwtdGV4dC1zdHJp
bmctdmFsdWUuaHRtbAorICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxl
bWVudC13aXRoLWxpbmstc3RyaW5nLXZhbHVlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6QWNj
ZXNzaWJpbGl0eUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6
fkFjY2Vzc2liaWxpdHlMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFi
ZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlMYWJlbDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hpbGRyZW5Db250YWlu
T25seVN0YXRpY1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlM
YWJlbDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TGFiZWw6OmNsZWFyQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUxhYmVsOjppbnNlcnRDaGlsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGFiZWwuaDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c0xhYmVsKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgcm9sZV0pOgorCiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIFJlc291cmNlUmVzcG9uc2UgY29weWluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3M2U2MjU1ZDU0Nzk5OGExNGMwZmYxYmQ2OTg3MTRkZTU4
NGQ3MjFhLi44OWI4NDY2ZWE4NmFkYTBiNTNlOGUzYzA1YjA3MTc4MjVjNmI4NDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTA0Niw2ICsxMDQ2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcAogICAgIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxhYmVsLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCiAg
ICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKICAgICBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc0MDE0MjVhZDI1M2FlN2M0
YmVkN2YzYTAzZTQ3Y2I3MzcxMjRiMTAuLjIwNmQ1MmRiODlmYTM3MWM2Mzc2MmZkODU0YTg0ZmVk
YTIzZWEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY3NzIsNiArNjc3Miw3IEBACiAJCUY1MDY2NEY3MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2
NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNF
QTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1
MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OworCQlGNTJBOEZENzFEMEE4
RDBFMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBB
Y2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYg
LyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICov
OyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLzsgfTsKQEAgLTE0ODY1LDYgKzE0ODY2LDggQEAKIAkJRjUyM0QyNzkwMkRF
NDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlc291cmNlRGVjb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0
MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJRjUyQThGRDUxRDBBODgwMTAwNzNDRjQy
IC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTJBOEZENjFEMEE4ODAxMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMYWJlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1w
dHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5
Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MTQsNiArMTY1MTcsOCBAQAogCQkJCTI5MTRFMzA2MUNB
QjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oICovLAogCQkJCTI5ODFD
QUEwMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCAqLywK
IAkJCQkyOUE4MTIxRDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
ay5oICovLAorCQkJCUY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwICovLAorCQkJCUY1MkE4RkQ2MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5
TGFiZWwuaCAqLywKIAkJCQkyOTgxQ0FBMTEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0
eUxpc3QuY3BwICovLAogCQkJCTI5QTgxMjBFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5TGlzdC5oICovLAogCQkJCTI5ODFDQUEyMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHAgKi8sCkBAIC0yOTc2Niw2ICsyOTc3MSw3IEBACiAJCQkJRkU2OTM4QjYx
MDQ1RDY3RTAwOEVBQkI2IC8qIEV2ZW50SGFuZGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzQzA5QTdGMEIwNjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXJNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTJBOEZENzFEMEE4RDBFMDA3M0NGNDIgLyogQWNjZXNz
aWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM0MDBEMTA5MThGMUM4RjYwMDkw
RDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1MDE4
QkU5ODQ5MDA2Q0VCQ0MgLyogRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI2RjQwRDRBMTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IDRmNWJkZjEzNmEyNTUzODAxZjNkYmIyZDAxNWE0YjlkYTkzOGFjZTUuLjA2
ZDc4ZGMzZmRmMTc2OWFlMWNmNzkyZGRhYmVkNDljMGJkZjE1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5o
IgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMaXN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIgpAQCAtNDI4LDYgKzQyOSw5IEBAIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSIpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5kZXJlcik7CisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgLy8gbWVkaWEgY29udHJvbHMKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc01lZGlhQ29u
dHJvbEVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcAppbmRleCA0NTRiYzQ0ZTVmYzFjOTQ4ZDBlN2UzNTQy
N2NlOGNiNWVjYzVjNjc1Li5mNzU0ZTE0Nzg4NTUxMTkwZmU5ZDAzMzY4ODUxZjRkZjNmOTRmMWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QWxsSW5PbmUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAi
CiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAiCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eUxhYmVsLmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGlzdC5jcHAiCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMaXN0Qm94T3B0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmQ1MDM4ODQ5MzY1OTRhOTk2
OTFlYWU4YTk2ZjQxMDE2ZWRkZTFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCkBAIC0wLDAgKzEsMTA5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGFiZWwuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQWNjZXNzaWJpbGl0eUxh
YmVsOjpBY2Nlc3NpYmlsaXR5TGFiZWwoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKKyAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7Cit9CisKK0FjY2Vzc2liaWxpdHlM
YWJlbDo6fkFjY2Vzc2liaWxpdHlMYWJlbCgpCit7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5TGFi
ZWw+IEFjY2Vzc2liaWxpdHlMYWJlbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxhYmVsKHJlbmRlcmVyKSk7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUxhYmVsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1
bHQoKTsKK30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlMYWJlbDo6c3RyaW5nVmFsdWUoKSBjb25z
dAoreworICAgIGlmIChjb250YWluc09ubHlTdGF0aWNUZXh0KCkpCisgICAgICAgIHJldHVybiB0
ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpz
dHJpbmdWYWx1ZSgpOworfQorCitzdGF0aWMgYm9vbCBjaGlsZHJlbkNvbnRhaW5Pbmx5U3RhdGlj
VGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImIGNoaWxkcmVuKQoreworICAgIGlmICghY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKSB7CisgICAg
ICAgIGlmIChjaGlsZC0+cm9sZVZhbHVlKCkgPT0gU3RhdGljVGV4dFJvbGUpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKGNoaWxkLT5yb2xlVmFsdWUoKSA9PSBHcm91cFJvbGUp
IHsKKyAgICAgICAgICAgIGlmICghY2hpbGRyZW5Db250YWluT25seVN0YXRpY1RleHQoY2hpbGQt
PmNoaWxkcmVuKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGNv
bnN0Cit7CisgICAgaWYgKG1fY29udGFpbnNPbmx5U3RhdGljVGV4dERpcnR5KQorICAgICAgICBy
ZXR1cm4gY2hpbGRyZW5Db250YWluT25seVN0YXRpY1RleHQobV9jaGlsZHJlbik7CisgICAgcmV0
dXJuIG1fY29udGFpbnNPbmx5U3RhdGljVGV4dDsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TGFi
ZWw6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKQoreworICAgIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKTsKKyAgICBpZiAobV9jb250YWlu
c09ubHlTdGF0aWNUZXh0RGlydHkpCisgICAgICAgIG1fY29udGFpbnNPbmx5U3RhdGljVGV4dCA9
IGNoaWxkcmVuQ29udGFpbk9ubHlTdGF0aWNUZXh0KG1fY2hpbGRyZW4pOworICAgIG1fY29udGFp
bnNPbmx5U3RhdGljVGV4dERpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUxh
YmVsOjpjbGVhckNoaWxkcmVuKCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpj
bGVhckNoaWxkcmVuKCk7CisgICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0ID0gZmFsc2U7Cisg
ICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGlydHkgPSBmYWxzZTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5TGFiZWw6Omluc2VydENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwg
dW5zaWduZWQgaW5kZXgpCit7CisgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5zZXJ0
Q2hpbGQob2JqZWN0LCBpbmRleCk7CisgICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGlydHkg
PSB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDMwNmVj
ZDBiNjA5ZWMyYTA0MDYwNGVhOTA3ZTAyMmJmODcwYWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQWNjZXNzaWJpbGl0eUxhYmVsX2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eUxhYmVsX2gK
KworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVsIGZpbmFsIDogcHVibGljIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eUxhYmVsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eUxhYmVsKCk7CisgICAgCisgICAgYm9vbCBjb250YWluc09ubHlTdGF0aWNUZXh0KCkg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxhYmVsKFJlbmRl
ck9iamVjdCopOworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBmaW5hbDsKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBMYWJlbFJvbGU7IH0KKyAgICBib29sIGlzTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAg
dm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgZmluYWw7CisgICAgdm9pZCBjbGVhckNo
aWxkcmVuKCkgZmluYWw7CisgICAgdm9pZCBpbnNlcnRDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgdW5zaWduZWQpIGZpbmFsOworICAgIGJvb2wgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGly
dHkgOiAxOworICAgIGJvb2wgbV9jb250YWluc09ubHlTdGF0aWNUZXh0IDogMTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklM
SVRZKEFjY2Vzc2liaWxpdHlMYWJlbCwgaXNMYWJlbCgpKQorCisjZW5kaWYgLy8gQWNjZXNzaWJp
bGl0eUxhYmVsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMTQ4NDBmMzYyZWI1MzI0NjNhNzY5MTU2Njc1Zjc1YjM5ZDk1
M2YyMy4uMWRiZGQ5ODQwYWIwMDM2NDY4MzBjYTM1OTk1NmJhOGZiYzg2ZmU1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAg
LTUxMiw2ICs1MTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyVGh1bWIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0U2xpZGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGFibGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDA0NWFh
ZjBjMWI3ZGJiMjgxMWUwNDM2OWM2YzA4MDAyZmY3MGZmZjUuLjJjZGY0ZjJjYjY0NWIzZDNlMjNi
YzRjNDkyMWU1ZDg1MzU2NGFmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bXBvcnQgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0
eUxhYmVsLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5TGlzdC5oIgogI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eUxpc3RCb3guaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIK
QEAgLTIyMzIsNiArMjIzMywxMCBAQCBzdGF0aWMgTlNTdHJpbmcqIHJvbGVWYWx1ZVRvTlNTdHJp
bmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgICAgIHJldHVybiBbW3NlbGYgYXR0YWNo
bWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xl
QXR0cmlidXRlXTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1ZSgpOworCisgICAgaWYgKHJvbGUgPT0g
TGFiZWxSb2xlICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KSAmJiBkb3duY2Fz
dDxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkuY29udGFpbnNPbmx5U3RhdGljVGV4dCgp
KQorICAgICAgICByb2xlID0gU3RhdGljVGV4dFJvbGU7CisKICAgICBpZiAocm9sZSA9PSBDYW52
YXNSb2xlICYmIG1fb2JqZWN0LT5jYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSkKICAgICAgICAg
cm9sZSA9IEdyb3VwUm9sZTsKICAgICBOU1N0cmluZyogc3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0
cmluZyhyb2xlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBiM2FkMmZmMmMyOTkzYzlmNTNkOTEzY2NmODk4ZTJkNTVjYTAz
MWQ5Li43ZGUxZGFhNDhjNzQ5ODhlOGEzN2RlNTFjZjEwNDNhMzdmNmIyZGRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTYtMDYtMTIgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5j
b20+CisKKyAgICAgICAgQVg6IEZvcm0gbGFiZWwgdGV4dCBzaG91bGQgYmUgZXhwb3NlZCBhcyBz
dGF0aWMgdGV4dCBpZiBpdCBjb250YWlucyBvbmx5IHN0YXRpYyB0ZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQWNjZXNzaWJpbGl0eUxhYmVs
IHRvIHJlcHJlc2VudCBIVE1MTGFiZWxFbGVtZW50IHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5Lgor
ICAgICAgICBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSBzZWFy
Y2hlcyBsYWJlbCBzdWJ0cmVlIHRvIGV2YWx1YXRlIAorICAgICAgICBpZiBhbGwgY2hpbGRyZW4g
YXJlIHN0YXRpYyB0ZXh0LgorICAgICAgICBBY2Nlc3NpYmlsaXR5TGFiZWw6OnN0cmluZ1ZhbHVl
KCkgY29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGFuZCByZXR1cm5zCisgICAgICAg
IHRleHRVbmRlckVsZW1lbnQoKSBpZiB0cnVlLgorICAgICAgICBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYyBjb25zdWx0cyBjb250YWluc09ubHlTdGF0aWNUZXh0KCkgYW5kIHN1YnN0
aXR1dGVzCisgICAgICAgIFN0YXRpY1RleHRSb2xlIGZvciBMYWJlbFJvbGUgaWYgdHJ1ZS4KKyAg
ICAgICAgQ2FjaGUgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGluIHRoZSBjb21tb24gY2FzZSB3
aGVuIHVwZGF0aW5nIGNoaWxkcmVuLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxh
YmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtYWxs
LXRleHQtc3RyaW5nLXZhbHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9s
Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWxp
bmstc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWxpbmstc3RyaW5nLXZhbHVlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxl
bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFs
bG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWw6CisKIDIwMTYtMDYtMTAgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBJREIgbGVhayB0ZXN0LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJp
ZGVzLWxhYmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1s
YWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQKaW5kZXggZmI5YzJkMzdhODE1
OWIyOTFkODJkODVhZmM0MzYwOTA2ZmQ3M2FkYS4uYTM0MjJjODZhMDI4MjM5NzdmYTVmYjEzZTNk
NmQwMjFkMDYwZGY4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQu
dHh0CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIHBsYXRm
b3JtVmFsdWVGb3JXM0NOYW1lKHRleHQpIGlzICJTaHV0IGRvd24gY29tcHV0ZXIgYWZ0ZXIgMTAg
bWludXRlcyIKIFBBU1MgdGV4dC50aXRsZVVJRWxlbWVudCgpICE9IG51bGwgJiYgdGV4dC50aXRs
ZVVJRWxlbWVudCgpLmlzVmFsaWQgaXMgZmFsc2UKLUxhYmVsIGVsZW1lbnQgcm9sZSBpczogQVhS
b2xlOiBBWEdyb3VwCitMYWJlbCBlbGVtZW50IHJvbGUgaXM6IEFYUm9sZTogQVhTdGF0aWNUZXh0
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtYWxsLXRl
eHQtc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtYWxsLXRleHQtc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzQ0MGM5YzA0MWIxNTRkZjBmZTJiOGQ2NTJlNDU1MTgwODdiMTUwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1h
bGwtdGV4dC1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKyBmaXJz
dCBjaG9pY2UKK1RoaXMgdGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQgY29udGFpbnMgdGV4
dCBjaGlsZHJlbiBpdCdzIEFYVmFsdWUgd2lsbCBiZSB0aGVpciBjb25jYXRlbmF0ZWQgQVhWYWx1
ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxhYmVsLnJvbGUgaXMg
J0FYUm9sZTogQVhTdGF0aWNUZXh0JworUEFTUyBsYWJlbC5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1
ZTogZmlyc3QgY2hvaWNlJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xh
YmVsLWVsZW1lbnQtYWxsLXRleHQtc3RyaW5nLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBkZDVhOGI3ZjZhNjVhMDM0ZDkyYjYzOWM0MTdhOGQ2N2UwYmJlNDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50
LWFsbC10ZXh0LXN0cmluZy12YWx1ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iaW5wdXQiIC8+
Cis8bGFiZWwgZm9yPSJpbnB1dCIgaWQ9ImxhYmVsIj4KKwk8c3Bhbj5maXJzdDwvc3Bhbj4KKwk8
c3Bhbj5jaG9pY2U8L3NwYW4+Cis8L2xhYmVsPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisJdmFyIGxhYmVsID0gMDsK
KworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50IGNv
bnRhaW5zIHRleHQgY2hpbGRyZW4gaXQncyBBWFZhbHVlIHdpbGwgYmUgdGhlaXIgY29uY2F0ZW5h
dGVkIEFYVmFsdWVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAg
ICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsKKyAg
ICAgICAgICAgIGJvZHkuZm9jdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFiZWwg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxhYmVsIik7
CisgICAgICAgICAgICBzaG91bGRCZSgibGFiZWwucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1Rl
eHQnIik7CisgICAgICAgICAgICBzaG91bGRCZSgibGFiZWwuc3RyaW5nVmFsdWUiLCAiJ0FYVmFs
dWU6IGZpcnN0IGNob2ljZSciKTsgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9Cis8L3Njcmlw
dD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4t
Y29udHJvbC1leHBlY3RlZC50eHQKaW5kZXggMTdjYTZkYjQzZThhZDdlMTkwYWJlNDkwOGUxMTdh
OWNmYTNkNTM4OC4uODY5NDIyNDZmNjQ3ZDQxYTg2YmRjNGIyZmYwM2U1M2JlYWJjZWUxNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRo
LWhpZGRlbi1jb250cm9sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wtZXhwZWN0ZWQudHh0CkBA
IC00LDcgKzQsNyBAQCBUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50IHJlZmVyZW5j
ZXMgYSBoaWRkZW4gY29udHJvbCwgaXQgaXMgc3RpbGwgdmlzaQogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLnJvbGUgaXMgJ0FY
Um9sZTogQVhHcm91cCcKK1BBU1MgY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLnJvbGUgaXMg
J0FYUm9sZTogQVhTdGF0aWNUZXh0JwogUEFTUyBjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJyku
Y2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0aWNUZXh0JwogUEFTUyBjb250
YWluZXIuY2hpbGRBdEluZGV4KCcwJykuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlIGlzICdB
WFZhbHVlOiBUZXN0IGxhYmVsMScKIFBBU1MgY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMicpLnJv
bGUgaXMgJ0FYUm9sZTogQVhDaGVja0JveCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250
cm9sLmh0bWwKaW5kZXggMDNkNmY1ZDFkMzNjYTZiZGVmNjQ5ZDIzOGUxOThjYzFiOTU2OWE5Yy4u
NGM1ODE0MTk5YTE0MTlkZjQ2YjI0Y2FjYTBhZTRkMGVlYzU2YThhMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250
cm9sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVu
dC13aXRoLWhpZGRlbi1jb250cm9sLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgICAg
IHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsKICAgICAgICAgICAg
IGJvZHkuZm9jdXMoKTsKICAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgICAgICBz
aG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLnJvbGUiLCAiJ0FYUm9sZTogQVhH
cm91cCciKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIHNob3VsZEJlKCJjb250YWluZXIuY2hp
bGRBdEluZGV4KCcwJykucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1RleHQnIik7ICAgICAgICAg
ICAgCiAgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLmNo
aWxkQXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYU3RhdGljVGV4dCciKTsgICAgICAgICAg
ICAKICAgICAgICAgICAgIHNob3VsZEJlKCJjb250YWluZXIuY2hpbGRBdEluZGV4KCcwJykuY2hp
bGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBUZXN0IGxhYmVsMSciKTsgICAg
ICAgICAgICAKICAgICAgICAgICAgIHNob3VsZEJlKCJjb250YWluZXIuY2hpbGRBdEluZGV4KCcy
Jykucm9sZSIsICInQVhSb2xlOiBBWENoZWNrQm94JyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWxpbmstc3RyaW5nLXZhbHVl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1l
bnQtd2l0aC1saW5rLXN0cmluZy12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE1ZGM3
NjFkMmQxNjE2YWUyOTQ3OGI5MTcwZTg0ZTg3OGQ3NmRhOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmlu
Zy12YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorIGZpcnN0IGNob2ljZQorVGhp
cyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCBjb250YWlucyB0ZXh0IGNoaWxkcmVuIGl0
J3MgQVhWYWx1ZSB3aWxsIGJlIHRoZWlyIGNvbmNhdGVuYXRlZCBBWFZhbHVlcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGFiZWwucm9sZSBpcyAnQVhSb2xlOiBBWEdy
b3VwJworUEFTUyBsYWJlbC5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogJworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12
YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13
aXRoLWxpbmstc3RyaW5nLXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg4NzVhZmI1MDEyNDBiYTY3
MzlhNWE5Y2VmMTBmNjMyYWRmNWQzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1ZS5odG1s
CkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGlu
cHV0IHR5cGU9InJhZGlvIiBpZD0iaW5wdXQiIC8+Cis8bGFiZWwgZm9yPSJpbnB1dCIgaWQ9Imxh
YmVsIj4KKwk8c3Bhbj5maXJzdDwvc3Bhbj4KKwk8c3Bhbj48YSBocmVmPSIiPmNob2ljZTwvYT48
L3NwYW4+Cis8L2xhYmVsPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisJdmFyIGxhYmVsID0gMDsKKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50IGNvbnRhaW5zIHRleHQg
Y2hpbGRyZW4gaXQncyBBWFZhbHVlIHdpbGwgYmUgdGhlaXIgY29uY2F0ZW5hdGVkIEFYVmFsdWVz
LiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICAgICAgIHZh
ciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsKKyAgICAgICAgICAgIGJv
ZHkuZm9jdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFiZWwgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxhYmVsIik7CisgICAgICAgICAg
ICBzaG91bGRCZSgibGFiZWwucm9sZSIsICInQVhSb2xlOiBBWEdyb3VwJyIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoImxhYmVsLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiAnIik7ICAgICAgICAg
IAorICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUt
dWktZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
bGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDdjODRhZDNk
MTdiNDdlZGZlYjRiOWNhOTM4NmM5MzQwYTViMTA0M2IuLmY2MjlmZjgzNjI0ZGVlOThlZWM1MjAx
ZmE3NTE4YjQ0NDcyMjJiYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
CiBQQVNTIHNsaWRlci50aXRsZVVJRWxlbWVudCgpLmlzRXF1YWwodGl0bGUpIGlzIHRydWUKLVBB
U1MgdGl0bGUucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3VwJworUEFTUyB0aXRsZS5yb2xlIGlzICdB
WFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1MgdGl0bGUuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMg
J0FYUm9sZTogQVhTdGF0aWNUZXh0JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dz
LXRpdGxlLXVpLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Ns
aWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC5odG1sCmluZGV4IGI0MGQ4MTMzOTY5ZWY0Nzc1
MjM1ZjMzN2E5MTVjZTkzMWI4YTU0MjcuLmFmNGYxZGRiYzAxZThlOWEyMTU4NjNjZTM1MTY5MjRh
YTE4OGVkNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRl
ci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxlbWVudC5odG1sCkBAIC0yNCw3ICsy
NCw3IEBACiAgICAgICAgIHZhciB0aXRsZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RF
bGVtZW50LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApOwog
CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2xpZGVyLnRpdGxlVUlFbGVtZW50KCkuaXNFcXVhbCh0
aXRsZSkiKTsKLSAgICAgICAgc2hvdWxkQmUoInRpdGxlLnJvbGUiLCAiJ0FYUm9sZTogQVhHcm91
cCciKTsKKyAgICAgICAgc2hvdWxkQmUoInRpdGxlLnJvbGUiLCAiJ0FYUm9sZTogQVhTdGF0aWNU
ZXh0JyIpOwogICAgICAgICBzaG91bGRCZSgidGl0bGUuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAi
J0FYUm9sZTogQVhTdGF0aWNUZXh0JyIpOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281279</attachid>
            <date>2016-06-14 13:58:33 -0700</date>
            <delta_ts>2016-06-14 14:27:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158634-20160614140009.patch</filename>
            <type>text/plain</type>
            <size>33367</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg2MDhlN2I1ZjNjZTgy
YzhlNzM0NzQzNWNlNzI2ZGNiN2Y2ZTcyZi4uYTg0NmYwODVjMTQ5NmZlYTczY2Q4YTAxNDJkNjM4
OGNmN2U1NmVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA2LTEyICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBGb3JtIGxhYmVs
IHRleHQgc2hvdWxkIGJlIGV4cG9zZWQgYXMgc3RhdGljIHRleHQgaWYgaXQgY29udGFpbnMgb25s
eSBzdGF0aWMgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIEFjY2Vzc2liaWxpdHlMYWJlbCB0byByZXByZXNlbnQgSFRNTExhYmVsRWxlbWVu
dCB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS4KKyAgICAgICAgQWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KCkgc2VhcmNoZXMgbGFiZWwgc3VidHJlZSB0byBldmFsdWF0
ZSAKKyAgICAgICAgaWYgYWxsIGNoaWxkcmVuIGFyZSBzdGF0aWMgdGV4dC4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdWYWx1ZSgpIGNvbnN1bHRzIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBhbmQgcmV0dXJucworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCkgaWYgdHJ1ZS4K
KyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMgY29uc3VsdHMgY29udGFp
bnNPbmx5U3RhdGljVGV4dCgpIGFuZCBzdWJzdGl0dXRlcworICAgICAgICBTdGF0aWNUZXh0Um9s
ZSBmb3IgTGFiZWxSb2xlIGlmIHRydWUuCisgICAgICAgIENhY2hlIGNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSBpbiB0aGUgY29tbW9uIGNhc2Ugd2hlbiB1cGRhdGluZyBjaGlsZHJlbi4KKworICAg
ICAgICBUZXN0czogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1hbGwtdGV4dC1zdHJp
bmctdmFsdWUuaHRtbAorICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxl
bWVudC13aXRoLWxpbmstc3RyaW5nLXZhbHVlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBbGxJbk9uZS5jcHA6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6QWNj
ZXNzaWJpbGl0eUxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMYWJlbDo6
fkFjY2Vzc2liaWxpdHlMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFi
ZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlMYWJlbDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hpbGRyZW5Db250YWlu
T25seVN0YXRpY1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxhYmVsOjpj
b250YWluc09ubHlTdGF0aWNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlM
YWJlbDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TGFiZWw6OmNsZWFyQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUxhYmVsOjppbnNlcnRDaGlsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGFiZWwuaDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c0xhYmVsKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgcm9sZV0pOgorCiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIFJlc291cmNlUmVzcG9uc2UgY29weWluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3M2U2MjU1ZDU0Nzk5OGExNGMwZmYxYmQ2OTg3MTRkZTU4
NGQ3MjFhLi44OWI4NDY2ZWE4NmFkYTBiNTNlOGUzYzA1YjA3MTc4MjVjNmI4NDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTA0Niw2ICsxMDQ2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcAogICAgIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuY3BwCiAgICAgYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxhYmVsLmNwcAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCiAg
ICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKICAgICBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc0MDE0MjVhZDI1M2FlN2M0
YmVkN2YzYTAzZTQ3Y2I3MzcxMjRiMTAuLjIwNmQ1MmRiODlmYTM3MWM2Mzc2MmZkODU0YTg0ZmVk
YTIzZWEwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY3NzIsNiArNjc3Miw3IEBACiAJCUY1MDY2NEY3MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2
NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNF
QTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1
MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OworCQlGNTJBOEZENzFEMEE4
RDBFMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBB
Y2Nlc3NpYmlsaXR5TGFiZWwuY3BwICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYg
LyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICov
OyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLzsgfTsKQEAgLTE0ODY1LDYgKzE0ODY2LDggQEAKIAkJRjUyM0QyNzkwMkRF
NDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlc291cmNlRGVjb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0
MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJRjUyQThGRDUxRDBBODgwMTAwNzNDRjQy
IC8qIEFjY2Vzc2liaWxpdHlMYWJlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGFiZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTJBOEZENjFEMEE4ODAxMDA3M0NGNDIgLyogQWNjZXNzaWJpbGl0eUxhYmVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMYWJlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1w
dHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5
Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MTQsNiArMTY1MTcsOCBAQAogCQkJCTI5MTRFMzA2MUNB
QjVBNDQwMDQ5OTY2RiAvKiBBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5oICovLAogCQkJCTI5ODFD
QUEwMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcCAqLywK
IAkJCQkyOUE4MTIxRDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
ay5oICovLAorCQkJCUY1MkE4RkQ1MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5TGFi
ZWwuY3BwICovLAorCQkJCUY1MkE4RkQ2MUQwQTg4MDEwMDczQ0Y0MiAvKiBBY2Nlc3NpYmlsaXR5
TGFiZWwuaCAqLywKIAkJCQkyOTgxQ0FBMTEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0
eUxpc3QuY3BwICovLAogCQkJCTI5QTgxMjBFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5TGlzdC5oICovLAogCQkJCTI5ODFDQUEyMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHAgKi8sCkBAIC0yOTc2Niw2ICsyOTc3MSw3IEBACiAJCQkJRkU2OTM4QjYx
MDQ1RDY3RTAwOEVBQkI2IC8qIEV2ZW50SGFuZGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzQzA5QTdGMEIwNjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXJNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBRDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTJBOEZENzFEMEE4RDBFMDA3M0NGNDIgLyogQWNjZXNz
aWJpbGl0eUxhYmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM0MDBEMTA5MThGMUM4RjYwMDkw
RDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1MDE4
QkU5ODQ5MDA2Q0VCQ0MgLyogRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI2RjQwRDRBMTQ5MDRBNjMwMENBNjdDNCAvKiBFdmVudExvb3BJT1MubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IDRmNWJkZjEzNmEyNTUzODAxZjNkYmIyZDAxNWE0YjlkYTkzOGFjZTUuLjA2
ZDc4ZGMzZmRmMTc2OWFlMWNmNzkyZGRhYmVkNDljMGJkZjE1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5o
IgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMYWJlbC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMaXN0LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIgpAQCAtNDI4LDYgKzQyOSw5IEBAIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSIpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCisgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShyZW5kZXJlcik7CisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgLy8gbWVkaWEgY29udHJvbHMKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc01lZGlhQ29u
dHJvbEVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFsbEluT25lLmNwcAppbmRleCA0NTRiYzQ0ZTVmYzFjOTQ4ZDBlN2UzNTQy
N2NlOGNiNWVjYzVjNjc1Li5mNzU0ZTE0Nzg4NTUxMTkwZmU5ZDAzMzY4ODUxZjRkZjNmOTRmMWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QWxsSW5PbmUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHAi
CiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAiCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eUxhYmVsLmNwcCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGlzdC5jcHAiCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlMaXN0Qm94T3B0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmQ1MDM4ODQ5MzY1OTRhOTk2
OTFlYWU4YTk2ZjQxMDE2ZWRkZTFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCkBAIC0wLDAgKzEsMTA5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGFiZWwuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQWNjZXNzaWJpbGl0eUxh
YmVsOjpBY2Nlc3NpYmlsaXR5TGFiZWwoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKKyAgICA6IEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7Cit9CisKK0FjY2Vzc2liaWxpdHlM
YWJlbDo6fkFjY2Vzc2liaWxpdHlMYWJlbCgpCit7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5TGFi
ZWw+IEFjY2Vzc2liaWxpdHlMYWJlbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxhYmVsKHJlbmRlcmVyKSk7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUxhYmVsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1
bHQoKTsKK30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlMYWJlbDo6c3RyaW5nVmFsdWUoKSBjb25z
dAoreworICAgIGlmIChjb250YWluc09ubHlTdGF0aWNUZXh0KCkpCisgICAgICAgIHJldHVybiB0
ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpz
dHJpbmdWYWx1ZSgpOworfQorCitzdGF0aWMgYm9vbCBjaGlsZHJlbkNvbnRhaW5Pbmx5U3RhdGlj
VGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImIGNoaWxkcmVuKQoreworICAgIGlmICghY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKSB7CisgICAg
ICAgIGlmIChjaGlsZC0+cm9sZVZhbHVlKCkgPT0gU3RhdGljVGV4dFJvbGUpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKGNoaWxkLT5yb2xlVmFsdWUoKSA9PSBHcm91cFJvbGUp
IHsKKyAgICAgICAgICAgIGlmICghY2hpbGRyZW5Db250YWluT25seVN0YXRpY1RleHQoY2hpbGQt
PmNoaWxkcmVuKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGNv
bnN0Cit7CisgICAgaWYgKG1fY29udGFpbnNPbmx5U3RhdGljVGV4dERpcnR5KQorICAgICAgICBy
ZXR1cm4gY2hpbGRyZW5Db250YWluT25seVN0YXRpY1RleHQobV9jaGlsZHJlbik7CisgICAgcmV0
dXJuIG1fY29udGFpbnNPbmx5U3RhdGljVGV4dDsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TGFi
ZWw6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKQoreworICAgIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKTsKKyAgICBpZiAobV9jb250YWlu
c09ubHlTdGF0aWNUZXh0RGlydHkpCisgICAgICAgIG1fY29udGFpbnNPbmx5U3RhdGljVGV4dCA9
IGNoaWxkcmVuQ29udGFpbk9ubHlTdGF0aWNUZXh0KG1fY2hpbGRyZW4pOworICAgIG1fY29udGFp
bnNPbmx5U3RhdGljVGV4dERpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUxh
YmVsOjpjbGVhckNoaWxkcmVuKCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpj
bGVhckNoaWxkcmVuKCk7CisgICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0ID0gZmFsc2U7Cisg
ICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGlydHkgPSBmYWxzZTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5TGFiZWw6Omluc2VydENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwg
dW5zaWduZWQgaW5kZXgpCit7CisgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5zZXJ0
Q2hpbGQob2JqZWN0LCBpbmRleCk7CisgICAgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGlydHkg
PSB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDMwNmVj
ZDBiNjA5ZWMyYTA0MDYwNGVhOTA3ZTAyMmJmODcwYWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQWNjZXNzaWJpbGl0eUxhYmVsX2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eUxhYmVsX2gK
KworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0eUxhYmVsIGZpbmFsIDogcHVibGljIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eUxhYmVsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eUxhYmVsKCk7CisgICAgCisgICAgYm9vbCBjb250YWluc09ubHlTdGF0aWNUZXh0KCkg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxhYmVsKFJlbmRl
ck9iamVjdCopOworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBmaW5hbDsKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBMYWJlbFJvbGU7IH0KKyAgICBib29sIGlzTGFiZWwoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAg
dm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgZmluYWw7CisgICAgdm9pZCBjbGVhckNo
aWxkcmVuKCkgZmluYWw7CisgICAgdm9pZCBpbnNlcnRDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgdW5zaWduZWQpIGZpbmFsOworICAgIGJvb2wgbV9jb250YWluc09ubHlTdGF0aWNUZXh0RGly
dHkgOiAxOworICAgIGJvb2wgbV9jb250YWluc09ubHlTdGF0aWNUZXh0IDogMTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BQ0NFU1NJQklM
SVRZKEFjY2Vzc2liaWxpdHlMYWJlbCwgaXNMYWJlbCgpKQorCisjZW5kaWYgLy8gQWNjZXNzaWJp
bGl0eUxhYmVsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMTQ4NDBmMzYyZWI1MzI0NjNhNzY5MTU2Njc1Zjc1YjM5ZDk1
M2YyMy4uMWRiZGQ5ODQwYWIwMDM2NDY4MzBjYTM1OTk1NmJhOGZiYzg2ZmU1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAg
LTUxMiw2ICs1MTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyVGh1bWIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0U2xpZGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGFibGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDA0NWFh
ZjBjMWI3ZGJiMjgxMWUwNDM2OWM2YzA4MDAyZmY3MGZmZjUuLjJjZGY0ZjJjYjY0NWIzZDNlMjNi
YzRjNDkyMWU1ZDg1MzU2NGFmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bXBvcnQgIkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0
eUxhYmVsLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5TGlzdC5oIgogI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eUxpc3RCb3guaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIK
QEAgLTIyMzIsNiArMjIzMywxMCBAQCBzdGF0aWMgTlNTdHJpbmcqIHJvbGVWYWx1ZVRvTlNTdHJp
bmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgICAgIHJldHVybiBbW3NlbGYgYXR0YWNo
bWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xl
QXR0cmlidXRlXTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1ZSgpOworCisgICAgaWYgKHJvbGUgPT0g
TGFiZWxSb2xlICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KSAmJiBkb3duY2Fz
dDxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkuY29udGFpbnNPbmx5U3RhdGljVGV4dCgp
KQorICAgICAgICByb2xlID0gU3RhdGljVGV4dFJvbGU7CisKICAgICBpZiAocm9sZSA9PSBDYW52
YXNSb2xlICYmIG1fb2JqZWN0LT5jYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSkKICAgICAgICAg
cm9sZSA9IEdyb3VwUm9sZTsKICAgICBOU1N0cmluZyogc3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0
cmluZyhyb2xlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBiM2FkMmZmMmMyOTkzYzlmNTNkOTEzY2NmODk4ZTJkNTVjYTAz
MWQ5Li43ZGUxZGFhNDhjNzQ5ODhlOGEzN2RlNTFjZjEwNDNhMzdmNmIyZGRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTYtMDYtMTIgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5j
b20+CisKKyAgICAgICAgQVg6IEZvcm0gbGFiZWwgdGV4dCBzaG91bGQgYmUgZXhwb3NlZCBhcyBz
dGF0aWMgdGV4dCBpZiBpdCBjb250YWlucyBvbmx5IHN0YXRpYyB0ZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg2MzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQWNjZXNzaWJpbGl0eUxhYmVs
IHRvIHJlcHJlc2VudCBIVE1MTGFiZWxFbGVtZW50IHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2d5Lgor
ICAgICAgICBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSBzZWFy
Y2hlcyBsYWJlbCBzdWJ0cmVlIHRvIGV2YWx1YXRlIAorICAgICAgICBpZiBhbGwgY2hpbGRyZW4g
YXJlIHN0YXRpYyB0ZXh0LgorICAgICAgICBBY2Nlc3NpYmlsaXR5TGFiZWw6OnN0cmluZ1ZhbHVl
KCkgY29uc3VsdHMgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGFuZCByZXR1cm5zCisgICAgICAg
IHRleHRVbmRlckVsZW1lbnQoKSBpZiB0cnVlLgorICAgICAgICBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYyBjb25zdWx0cyBjb250YWluc09ubHlTdGF0aWNUZXh0KCkgYW5kIHN1YnN0
aXR1dGVzCisgICAgICAgIFN0YXRpY1RleHRSb2xlIGZvciBMYWJlbFJvbGUgaWYgdHJ1ZS4KKyAg
ICAgICAgQ2FjaGUgY29udGFpbnNPbmx5U3RhdGljVGV4dCgpIGluIHRoZSBjb21tb24gY2FzZSB3
aGVuIHVwZGF0aW5nIGNoaWxkcmVuLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxh
YmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtYWxs
LXRleHQtc3RyaW5nLXZhbHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9s
Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWxp
bmstc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWxpbmstc3RyaW5nLXZhbHVlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxl
bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFs
bG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWw6CisKIDIwMTYtMDYtMTAgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBJREIgbGVhayB0ZXN0LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJp
ZGVzLWxhYmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1s
YWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQKaW5kZXggZmI5YzJkMzdhODE1
OWIyOTFkODJkODVhZmM0MzYwOTA2ZmQ3M2FkYS4uYTM0MjJjODZhMDI4MjM5NzdmYTVmYjEzZTNk
NmQwMjFkMDYwZGY4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQu
dHh0CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIHBsYXRm
b3JtVmFsdWVGb3JXM0NOYW1lKHRleHQpIGlzICJTaHV0IGRvd24gY29tcHV0ZXIgYWZ0ZXIgMTAg
bWludXRlcyIKIFBBU1MgdGV4dC50aXRsZVVJRWxlbWVudCgpICE9IG51bGwgJiYgdGV4dC50aXRs
ZVVJRWxlbWVudCgpLmlzVmFsaWQgaXMgZmFsc2UKLUxhYmVsIGVsZW1lbnQgcm9sZSBpczogQVhS
b2xlOiBBWEdyb3VwCitMYWJlbCBlbGVtZW50IHJvbGUgaXM6IEFYUm9sZTogQVhTdGF0aWNUZXh0
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtYWxsLXRl
eHQtc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2xhYmVsLWVsZW1lbnQtYWxsLXRleHQtc3RyaW5nLXZhbHVlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzQ0MGM5YzA0MWIxNTRkZjBmZTJiOGQ2NTJlNDU1MTgwODdiMTUwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1h
bGwtdGV4dC1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKyBmaXJz
dCBjaG9pY2UKK1RoaXMgdGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQgY29udGFpbnMgdGV4
dCBjaGlsZHJlbiBpdCdzIEFYVmFsdWUgd2lsbCBiZSB0aGVpciBjb25jYXRlbmF0ZWQgQVhWYWx1
ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxhYmVsLnJvbGUgaXMg
J0FYUm9sZTogQVhTdGF0aWNUZXh0JworUEFTUyBsYWJlbC5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1
ZTogZmlyc3QgY2hvaWNlJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xh
YmVsLWVsZW1lbnQtYWxsLXRleHQtc3RyaW5nLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWFsbC10ZXh0LXN0cmluZy12YWx1ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5NmMzNjMxZTI3NWZkM2NkMGEwYTAzM2Q4OTljN2EyYWU1MzNkNzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50
LWFsbC10ZXh0LXN0cmluZy12YWx1ZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iaW5wdXQiIC8+
Cis8bGFiZWwgZm9yPSJpbnB1dCIgaWQ9ImxhYmVsIj4KKyAgICA8c3Bhbj5maXJzdDwvc3Bhbj4K
KyAgICA8c3Bhbj5jaG9pY2U8L3NwYW4+Cis8L2xhYmVsPgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgdmFyIGxh
YmVsID0gMDsKKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBl
bGVtZW50IGNvbnRhaW5zIHRleHQgY2hpbGRyZW4gaXQncyBBWFZhbHVlIHdpbGwgYmUgdGhlaXIg
Y29uY2F0ZW5hdGVkIEFYVmFsdWVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisKKyAgICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
ZHkiKTsKKyAgICAgICAgICAgIGJvZHkuZm9jdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbGFiZWwgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImxhYmVsIik7CisgICAgICAgICAgICBzaG91bGRCZSgibGFiZWwucm9sZSIsICInQVhSb2xlOiBB
WFN0YXRpY1RleHQnIik7CisgICAgICAgICAgICBzaG91bGRCZSgibGFiZWwuc3RyaW5nVmFsdWUi
LCAiJ0FYVmFsdWU6IGZpcnN0IGNob2ljZSciKTsgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1jaGFuZ2luZy1jaGlsZHJlbi1zdHJpbmct
dmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwt
ZWxlbWVudC1jaGFuZ2luZy1jaGlsZHJlbi1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJmYjI4YmY5MzVmYTQxNDQ2NmM0ODc3ODI5YmY2MDQ2MDI2NmM1OWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWNo
YW5naW5nLWNoaWxkcmVuLXN0cmluZy12YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorIGZpcnN0Zm9vIGNob2ljZQorVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCdz
IGNoaWxkcmVuIGNoYW5nZSwgdGhlIHN0cmluZyB2YWx1ZSB1cGRhdGVzCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxhYmVsLnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0aWNU
ZXh0JworUEFTUyBpbml0aWFsU3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IGZpcnN0IGNob2ljZScK
K1BBU1MgbXV0YXRlZFN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBmaXJzdCBmb28gY2hvaWNlJwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtY2hhbmdp
bmctY2hpbGRyZW4tc3RyaW5nLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9sYWJlbC1lbGVtZW50LWNoYW5naW5nLWNoaWxkcmVuLXN0cmluZy12YWx1ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk1YmJkYmFmODI4YjE5NWU0MTI1NWU0OTE5NDBiMWFlNzU2NTllMTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50
LWNoYW5naW5nLWNoaWxkcmVuLXN0cmluZy12YWx1ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGlucHV0IHR5cGU9InJhZGlvIiBpZD0i
aW5wdXQiIC8+Cis8bGFiZWwgZm9yPSJpbnB1dCIgaWQ9ImxhYmVsIj4KKyAgICA8c3BhbiBpZD0i
Zmlyc3QiPmZpcnN0PC9zcGFuPgorICAgIDxzcGFuPmNob2ljZTwvc3Bhbj4KKzwvbGFiZWw+CisK
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgbGFiZWwgPSAwOworICAgIHZhciBpbml0aWFsU3RyaW5nVmFsdWUg
PSAwOworICAgIHZhciBtdXRhdGVkU3RyaW5nVmFsdWUgPSAwOworCisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQncyBjaGlsZHJlbiBjaGFuZ2UsIHRo
ZSBzdHJpbmcgdmFsdWUgdXBkYXRlcyIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisKKyAgICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
ZHkiKTsKKyAgICAgICAgICAgIGJvZHkuZm9jdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbGFiZWwgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImxhYmVsIik7CisgICAgICAgICAgICBpbml0aWFsU3RyaW5nVmFsdWUgPSBsYWJlbC5zdHJpbmdW
YWx1ZTsKKyAgICAgICAgICAgIHZhciBmaXJzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJm
aXJzdCIpCisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICAgICAgICAgIHZhciBmb28gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
Zm9vIik7CisgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGZvbyk7CisgICAgICAgICAg
ICBmaXJzdC5hcHBlbmRDaGlsZChmb28pOworICAgICAgICAgICAgbXV0YXRlZFN0cmluZ1ZhbHVl
ID0gbGFiZWwuc3RyaW5nVmFsdWU7CisKKyAgICAgICAgICAgIHNob3VsZEJlKCJsYWJlbC5yb2xl
IiwgIidBWFJvbGU6IEFYU3RhdGljVGV4dCciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbml0
aWFsU3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IGZpcnN0IGNob2ljZSciKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJtdXRhdGVkU3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IGZpcnN0IGZvbyBjaG9p
Y2UnIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1j
aGFuZ2luZy10ZXh0Y29udGVudC1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1jaGFuZ2luZy10ZXh0Y29udGVudC1z
dHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NTg4MDBjYzgwY2IzNDBmYzYw
ODY2ODlmN2RkZTIwMzEzMDA4NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWNoYW5naW5nLXRleHRjb250ZW50LXN0cmluZy12
YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorIHNlY29uZCBjaG9pY2UKK1RoaXMg
dGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQncyBjaGlsZHJlbidzIHRleHRDb250ZW50IGNo
YW5nZXMsIHRoZSBzdHJpbmcgdmFsdWUgdXBkYXRlcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBsYWJlbC5yb2xlIGlzICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKK1BBU1Mg
aW5pdGlhbFN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBmaXJzdCBjaG9pY2UnCitQQVNTIG11dGF0
ZWRTdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogc2Vjb25kIGNob2ljZScKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LWNoYW5naW5nLXRleHRjb250ZW50
LXN0cmluZy12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwt
ZWxlbWVudC1jaGFuZ2luZy10ZXh0Y29udGVudC1zdHJpbmctdmFsdWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMjQ2MGY4ODQwNDUxNDNhNmQyMWVjZjJlNDc4MThiNzA2NzUzNjFhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC1jaGFuZ2lu
Zy10ZXh0Y29udGVudC1zdHJpbmctdmFsdWUuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9ImlucHV0
IiAvPgorPGxhYmVsIGZvcj0iaW5wdXQiIGlkPSJsYWJlbCI+CisgICAgPHNwYW4gaWQ9ImZpcnN0
Ij5maXJzdDwvc3Bhbj4KKyAgICA8c3Bhbj5jaG9pY2U8L3NwYW4+Cis8L2xhYmVsPgorCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorCisgICAgdmFyIGxhYmVsID0gMDsKKyAgICB2YXIgaW5pdGlhbFN0cmluZ1ZhbHVlID0gMDsK
KyAgICB2YXIgbXV0YXRlZFN0cmluZ1ZhbHVlID0gMDsKKworICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50J3MgY2hpbGRyZW4ncyB0ZXh0Q29udGVudCBj
aGFuZ2VzLCB0aGUgc3RyaW5nIHZhbHVlIHVwZGF0ZXMiKTsKKyAgICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworCisgICAgICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJib2R5Iik7CisgICAgICAgICAgICBib2R5LmZvY3VzKCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGxhYmVsID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJsYWJlbCIpOworICAgICAgICAgICAgaW5pdGlhbFN0cmluZ1ZhbHVlID0gbGFi
ZWwuc3RyaW5nVmFsdWU7CisgICAgICAgICAgICB2YXIgZmlyc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZmlyc3QiKQorICAgICAgICAgICAgZmlyc3QudGV4dENvbnRlbnQgPSAic2Vjb25k
IjsKKyAgICAgICAgICAgIG11dGF0ZWRTdHJpbmdWYWx1ZSA9IGxhYmVsLnN0cmluZ1ZhbHVlOwor
CisgICAgICAgICAgICBzaG91bGRCZSgibGFiZWwucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1Rl
eHQnIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW5pdGlhbFN0cmluZ1ZhbHVlIiwgIidBWFZh
bHVlOiBmaXJzdCBjaG9pY2UnIik7CisgICAgICAgICAgICBzaG91bGRCZSgibXV0YXRlZFN0cmlu
Z1ZhbHVlIiwgIidBWFZhbHVlOiBzZWNvbmQgY2hvaWNlJyIpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgt
aGlkZGVuLWNvbnRyb2wtZXhwZWN0ZWQudHh0CmluZGV4IDE3Y2E2ZGI0M2U4YWQ3ZTE5MGFiZTQ5
MDhlMTE3YTljZmEzZDUzODguLjg2OTQyMjQ2ZjY0N2Q0MWE4NmJkYzRiMmZmMDNlNTNiZWFiY2Vl
MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1l
bnQtd2l0aC1oaWRkZW4tY29udHJvbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRoLWhpZGRlbi1jb250cm9sLWV4cGVjdGVk
LnR4dApAQCAtNCw3ICs0LDcgQEAgVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbGFiZWwgZWxlbWVudCBy
ZWZlcmVuY2VzIGEgaGlkZGVuIGNvbnRyb2wsIGl0IGlzIHN0aWxsIHZpc2kKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xl
IGlzICdBWFJvbGU6IEFYR3JvdXAnCitQQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5y
b2xlIGlzICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBBU1MgY29udGFpbmVyLmNoaWxkQXRJbmRl
eCgnMCcpLmNoaWxkQXRJbmRleCgwKS5yb2xlIGlzICdBWFJvbGU6IEFYU3RhdGljVGV4dCcKIFBB
U1MgY29udGFpbmVyLmNoaWxkQXRJbmRleCgnMCcpLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1
ZSBpcyAnQVhWYWx1ZTogVGVzdCBsYWJlbDEnCiBQQVNTIGNvbnRhaW5lci5jaGlsZEF0SW5kZXgo
JzInKS5yb2xlIGlzICdBWFJvbGU6IEFYQ2hlY2tCb3gnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtaGlkZGVuLWNvbnRyb2wuaHRt
bCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRk
ZW4tY29udHJvbC5odG1sCmluZGV4IDAzZDZmNWQxZDMzY2E2YmRlZjY0OWQyMzhlMTk4Y2MxYjk1
NjlhOWMuLjRjNTgxNDE5OWExNDE5ZGY0NmIyNGNhY2EwYWU0ZDBlZWM1NmE4YTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1oaWRk
ZW4tY29udHJvbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVs
LWVsZW1lbnQtd2l0aC1oaWRkZW4tY29udHJvbC5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAg
ICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7CiAgICAg
ICAgICAgICBib2R5LmZvY3VzKCk7CiAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwotICAgICAg
ICAgICAgc2hvdWxkQmUoImNvbnRhaW5lci5jaGlsZEF0SW5kZXgoJzAnKS5yb2xlIiwgIidBWFJv
bGU6IEFYR3JvdXAnIik7ICAgICAgICAgICAgCisgICAgICAgICAgICBzaG91bGRCZSgiY29udGFp
bmVyLmNoaWxkQXRJbmRleCgnMCcpLnJvbGUiLCAiJ0FYUm9sZTogQVhTdGF0aWNUZXh0JyIpOyAg
ICAgICAgICAgIAogICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRhaW5lci5jaGlsZEF0SW5kZXgo
JzAnKS5jaGlsZEF0SW5kZXgoMCkucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1RleHQnIik7ICAg
ICAgICAgICAgCiAgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJbmRleCgn
MCcpLmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogVGVzdCBsYWJlbDEn
Iik7ICAgICAgICAgICAgCiAgICAgICAgICAgICBzaG91bGRCZSgiY29udGFpbmVyLmNoaWxkQXRJ
bmRleCgnMicpLnJvbGUiLCAiJ0FYUm9sZTogQVhDaGVja0JveCciKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmlu
Zy12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJl
bC1lbGVtZW50LXdpdGgtbGluay1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNhZDkxZDBjY2EyN2Q1ZmM2OTViMzc4NGU4MTgzOGI0OWJjNGRjNjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9sYWJlbC1lbGVtZW50LXdpdGgtbGlu
ay1zdHJpbmctdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKyBmaXJzdCBjaG9p
Y2UKK1RoaXMgdGVzdHMgdGhhdCBpZiBhIGxhYmVsIGVsZW1lbnQgY29udGFpbnMgYSBsaW5rIGl0
IHdpbGwgYmUgZXhwb3NlZCBhcyBhIGdyb3VwIHdpdGggbm8gQVhWYWx1ZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGFiZWwucm9sZSBpcyAnQVhSb2xlOiBBWEdyb3Vw
JworUEFTUyBsYWJlbC5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogJworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1
ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvbGFiZWwtZWxlbWVudC13aXRo
LWxpbmstc3RyaW5nLXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM4YjQ3ZDQ1Zjk3NWZmNmY2YjRh
N2NkNDc4MzJkNmE0ZWZlZjlhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2xhYmVsLWVsZW1lbnQtd2l0aC1saW5rLXN0cmluZy12YWx1ZS5odG1sCkBA
IC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGlucHV0
IHR5cGU9InJhZGlvIiBpZD0iaW5wdXQiIC8+Cis8bGFiZWwgZm9yPSJpbnB1dCIgaWQ9ImxhYmVs
Ij4KKwk8c3Bhbj5maXJzdDwvc3Bhbj4KKwk8c3Bhbj48YSBocmVmPSIiPmNob2ljZTwvYT48L3Nw
YW4+Cis8L2xhYmVsPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisJdmFyIGxhYmVsID0gMDsKKworICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIHRoYXQgaWYgYSBsYWJlbCBlbGVtZW50IGNvbnRhaW5zIGEgbGluayBp
dCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBncm91cCB3aXRoIG5vIEFYVmFsdWUuIik7CisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpOworICAgICAgICAgICAgYm9keS5mb2N1cygpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBsYWJlbCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgibGFiZWwiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJs
YWJlbC5yb2xlIiwgIidBWFJvbGU6IEFYR3JvdXAnIik7CisgICAgICAgICAgICBzaG91bGRCZSgi
bGFiZWwuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6ICciKTsgICAgICAgICAgCisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3Mt
dGl0bGUtdWktZWxlbWVudC1leHBlY3RlZC50eHQKaW5kZXggN2M4NGFkM2QxN2I0N2VkZmViNGI5
Y2E5Mzg2YzkzNDBhNWIxMDQzYi4uZjYyOWZmODM2MjRkZWU5OGVlYzUyMDFmYTc1MThiNDQ0NzIy
MmJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFs
bG93cy10aXRsZS11aS1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9zbGlkZXItYWxsb3dzLXRpdGxlLXVpLWVsZW1lbnQtZXhwZWN0ZWQudHh0
CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1Mgc2xpZGVy
LnRpdGxlVUlFbGVtZW50KCkuaXNFcXVhbCh0aXRsZSkgaXMgdHJ1ZQotUEFTUyB0aXRsZS5yb2xl
IGlzICdBWFJvbGU6IEFYR3JvdXAnCitQQVNTIHRpdGxlLnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0
aWNUZXh0JwogUEFTUyB0aXRsZS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWFN0
YXRpY1RleHQnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NsaWRlci1hbGxvd3MtdGl0bGUtdWktZWxl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10
aXRsZS11aS1lbGVtZW50Lmh0bWwKaW5kZXggYjQwZDgxMzM5NjllZjQ3NzUyMzVmMzM3YTkxNWNl
OTMxYjhhNTQyNy4uYWY0ZjFkZGJjMDFlOGU5YTIxNTg2M2NlMzUxNjkyNGFhMTg4ZWQ0MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xpZGVyLWFsbG93cy10aXRs
ZS11aS1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2xp
ZGVyLWFsbG93cy10aXRsZS11aS1lbGVtZW50Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAg
ICAgdmFyIHRpdGxlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCk7CiAKICAgICAgICAgc2hv
dWxkQmVUcnVlKCJzbGlkZXIudGl0bGVVSUVsZW1lbnQoKS5pc0VxdWFsKHRpdGxlKSIpOwotICAg
ICAgICBzaG91bGRCZSgidGl0bGUucm9sZSIsICInQVhSb2xlOiBBWEdyb3VwJyIpOworICAgICAg
ICBzaG91bGRCZSgidGl0bGUucm9sZSIsICInQVhSb2xlOiBBWFN0YXRpY1RleHQnIik7CiAgICAg
ICAgIHNob3VsZEJlKCJ0aXRsZS5jaGlsZEF0SW5kZXgoMCkucm9sZSIsICInQVhSb2xlOiBBWFN0
YXRpY1RleHQnIik7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>