<?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>164865</bug_id>
          
          <creation_ts>2016-11-17 05:33:39 -0800</creation_ts>
          <short_desc>AX: [ATK] Implement selection interface and states for elements supporting aria-selected and for menu roles</short_desc>
          <delta_ts>2016-11-19 13:12:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Joanmarie Diggs">jdiggs</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</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>1252278</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-17 05:33:39 -0800</bug_when>
    <thetext>The aria-selected attribute is supported on gridcell, option, row, tab, columnheader, rowheader, and treeitem. As a result, AtkSelection should be implemented on the element with the required context role, and ATK_STATE_SELECTABLE and ATK_STATE_SELECTED should be supported on the selectable elements. With the exception of listbox and their children, this is not the case.

In addition, ATK/AT-SPI2 menubars and menus are expected to have the aforementioned support. While aria-selected is not supported on menuitem roles, aria-activedescendant and focused state can be used instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252279</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-11-17 05:33:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/29309753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252281</commentid>
    <comment_count>2</comment_count>
      <attachid>295049</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-17 05:58:29 -0800</bug_when>
    <thetext>Created attachment 295049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252282</commentid>
    <comment_count>3</comment_count>
      <attachid>295049</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-17 06:04:31 -0800</bug_when>
    <thetext>Comment on attachment 295049
Patch

Chris: I&apos;m tossing this at EWS before officially asking for review. But if you could take a look when you have several spare moments, as opposed to just one. ;) 

1. I took several guesses about what was right for your platform and the resulting changes can be seen in the Mac -expected.txt files.

2. I marked a couple of items with FIXME comments because there is code that seems deliberate (TableRole supports selected children, isChecked() is being called to find the selected tab), but whose correctness I question.

Thanks much in advance!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252300</commentid>
    <comment_count>4</comment_count>
      <attachid>295049</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-17 08:57:26 -0800</bug_when>
    <thetext>Comment on attachment 295049
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3298
&gt; +    default:
&gt; +        return false;

There’s a pattern where we omit the &quot;default&quot; case from a switch and instead put the default behavior after the switch statement. The pattern works in a natural way when a switch has return statements instead of break statements in each case. Doing it that way makes it so that we get compiler warnings if we forget to list any enumeration values, especially useful in cases where we add a new enumeration value and don’t think about this function.

Would that be a good choice here? Or is it better to just count on test coverage to make sure we get this right?

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3388
&gt; +    default:
&gt; +        return;

Same comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252310</commentid>
    <comment_count>5</comment_count>
      <attachid>295049</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-17 09:34:55 -0800</bug_when>
    <thetext>Comment on attachment 295049
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3298
&gt;&gt; +        return false;
&gt; 
&gt; There’s a pattern where we omit the &quot;default&quot; case from a switch and instead put the default behavior after the switch statement. The pattern works in a natural way when a switch has return statements instead of break statements in each case. Doing it that way makes it so that we get compiler warnings if we forget to list any enumeration values, especially useful in cases where we add a new enumeration value and don’t think about this function.
&gt; 
&gt; Would that be a good choice here? Or is it better to just count on test coverage to make sure we get this right?

In this particular case, I don&apos;t think it would be a good choice. There are (currently) 134 AccessibilityRole values.

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3388
&gt;&gt; +        return;
&gt; 
&gt; Same comment.

Similar response: 134 values. However, in this case, there&apos;s an early return. So what would make sense is to make the default case ASSERT_NOT_REACHED().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253056</commentid>
    <comment_count>6</comment_count>
      <attachid>295049</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-11-19 00:16:29 -0800</bug_when>
    <thetext>Comment on attachment 295049
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:2180
&gt; +    // Elements that are considered selectable by assistive technologies

this comment is probably superfluous

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:520
&gt; +    for (AccessibilityObject* parent = parentObject(); parent; parent = parent-&gt;parentObject()) {

you could save like two lines by using

return AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject&amp; object) { return object.roleValue() == role; });

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3359
&gt; +    if (!canHaveSelectedChildren() &amp;&amp; role != TableRole)

I think we can remove table here, especially if no tests fail.
on Mac, tables can have selected children. maybe that&apos;s why it was added here, but I also don&apos;t think we can have selected children
if no layout tests fail, then I think we&apos;re good here

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3388
&gt;&gt;&gt; +        return;
&gt;&gt; 
&gt;&gt; Same comment.
&gt; 
&gt; Similar response: 134 values. However, in this case, there&apos;s an early return. So what would make sense is to make the default case ASSERT_NOT_REACHED().

yea we shouldn&apos;t hit the default case here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253068</commentid>
    <comment_count>7</comment_count>
      <attachid>295262</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-19 02:40:44 -0800</bug_when>
    <thetext>Created attachment 295262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253069</commentid>
    <comment_count>8</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-11-19 02:47:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 295049 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=295049&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:2180
&gt; &gt; +    // Elements that are considered selectable by assistive technologies
&gt; 
&gt; this comment is probably superfluous

Removed.
 
&gt; you could save like two lines by using
&gt; 
&gt; return AccessibilityObject::matchedParent(*this, false, [] (const
&gt; AccessibilityObject&amp; object) { return object.roleValue() == role; });
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3359
&gt; &gt; +    if (!canHaveSelectedChildren() &amp;&amp; role != TableRole)

Done.

&gt; I think we can remove table here, especially if no tests fail.
&gt; on Mac, tables can have selected children. maybe that&apos;s why it was added
&gt; here, but I also don&apos;t think we can have selected children
&gt; if no layout tests fail, then I think we&apos;re good here

Tables can have selected children on my platform too. But the sorts of tables that can are equivalent to what gets assigned the GridRole AccessibilityRole.

Anyway, thank you for the explanation and suggestion. No tests failed on my Mac. Tossing it at EWS to see if anything else has failures as a result of removing table.

&gt; &gt; Similar response: 134 values. However, in this case, there&apos;s an early return. So what would make sense is to make the default case ASSERT_NOT_REACHED().
&gt; 
&gt; yea we shouldn&apos;t hit the default case here

ASSERT_NOT_REACHED() added.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253105</commentid>
    <comment_count>9</comment_count>
      <attachid>295262</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-19 13:12:33 -0800</bug_when>
    <thetext>Comment on attachment 295262
Patch

Clearing flags on attachment: 295262

Committed r208929: &lt;http://trac.webkit.org/changeset/208929&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253106</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-19 13:12:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295049</attachid>
            <date>2016-11-17 05:58:29 -0800</date>
            <delta_ts>2016-11-19 02:40:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164865-20161117085823.patch</filename>
            <type>text/plain</type>
            <size>31581</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE4ZWVkYmVjYWY0ZmYw
ZDRlNGI5ZTE4YjBjMzE5MTQ5YjFlYzgxZC4uZGVlMjQzNzNjNzY1MGE2MDQ0YWVjYmQzMmRiOTY3
MDE2Mjg4ZjY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTExLTE3ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBBWDogW0FUS10gSW1w
bGVtZW50IHNlbGVjdGlvbiBpbnRlcmZhY2UgYW5kIHN0YXRlcyBmb3IgZWxlbWVudHMgc3VwcG9y
dGluZyBhcmlhLXNlbGVjdGVkIGFuZCBmb3IgbWVudSByb2xlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEF0a1NlbGVjdGlvbiBhbmQg
c3VwcG9ydCBBVEtfU1RBVEVfU0VMRUNUQUJMRSBhbmQgQVRLX1NUQVRFX1NFTEVDVEVECisgICAg
ICAgIGZvciBlbGVtZW50cyBzdXBwb3J0aW5nIGFyaWEtc2VsZWN0ZWQgYW5kIGZvciBtZW51LXJl
bGF0ZWQgcm9sZXMuIEFsc28gZW5hYmxlIHRoZQorICAgICAgICBlcXVpdmFsZW50IHN1cHBvcnQg
Zm9yIHRoZSBNYWMgYmVjYXVzZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmli
dXRlIGlzCisgICAgICAgIGluY2x1ZGVkIGFzIHN1cHBvcnRlZCBvbiB0aGUgc2FtZSByb2xlcy4K
KworICAgICAgICBJbiBhZGRpdGlvbiwgZml4IHNldmVyYWwgYnVncyBkaXNjb3ZlcmVkIGFsb25n
IHRoZSB3YXk6IENhbGwgaXNTZWxlY3RlZCgpIG9uIHJvbGUKKyAgICAgICAgdGFiLCBiZWNhdXNl
IHRhYiBzdXBwb3J0cyBhcmlhLXNlbGVjdGVkOyBub3QgYXJpYS1jaGVja2VkLiBDb3JyZWN0IEFU
SyBtYXBwaW5nCisgICAgICAgIG9mIExpc3RCb3hSb2xlIGFuZCBMaXN0Qm94T3B0aW9uUm9sZSBm
b3IgY29tYm9ib3ggZGVzY2VuZGFudHMuIEFsd2F5cyBkZWZlciB0bworICAgICAgICBXZWJDb3Jl
IGZvciBpbmNsdXNpb24vZXhjbHVzaW9uIGRlY2lzaW9ucyByZWxhdGVkIHRvIGVsZW1lbnRzIHdp
dGggYW4gZXhwbGljaXQKKyAgICAgICAgQVJJQSByb2xlLgorCisgICAgICAgIFRlc3RzOiBhY2Nl
c3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtaGllcmFyY2h5Lmh0bWwKKyAgICAgICAgICAgICAgIGFj
Y2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLmh0bWwKKyAgICAgICAgICAgICAg
IGFjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpzZWxlY3RlZFRhYkl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNEZXNjZW5kYW50T2ZSb2xlKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENoaWxkcmVuKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNTZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxl
Y3RlZENoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKHdl
YmtpdEFjY2Vzc2libGVTZWxlY3Rpb25HZXRTZWxlY3Rpb25Db3VudCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAo
YXRrUm9sZSk6CisgICAgICAgIChnZXRJbnRlcmZhY2VNYXNrRnJvbU9iamVjdCk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpdKToKKwogMjAxNi0xMS0xNSAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFs
ZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBXYXJuaW5nIGFkZGVkIGluIHIyMDg1NDIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKaW5kZXggMmIwNjM0OTZlYjM5NTFiNWY5ZGE4Zjg2Y2YyNjc0MjA2OTQyODQ1Mi4u
MjA2NTA2NGY2ZTI3OTYxZGNiOTVhMGI0NTFlMzU2OGFmNTI3OGMwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKQEAgLTkzMywxMiArOTMzLDEzIEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpzZWxlY3RlZFRhYkl0ZW0oKQogICAgIGlmICghaXNUYWJMaXN0KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgLy8gRklYTUU6IElzIHRoaXMgdmFsaWQ/IEFS
SUEgdGFiIGl0ZW1zIHN1cHBvcnQgYXJpYS1zZWxlY3RlZDsgbm90IGFyaWEtY2hlY2tlZC4KICAg
ICAvLyBGaW5kIHRoZSBjaGlsZCB0YWIgaXRlbSB0aGF0IGlzIHNlbGVjdGVkIChpZS4gdGhlIGlu
dFZhbHVlID09IDEpLgogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciB0YWJzOwogICAgIHRhYkNoaWxkcmVuKHRhYnMpOwogCiAgICAgZm9yIChjb25z
dCBhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc1RhYkl0
ZW0oKSAmJiBjaGlsZC0+aXNDaGVja2VkKCkpCisgICAgICAgIGlmIChjaGlsZC0+aXNUYWJJdGVt
KCkgJiYgKGNoaWxkLT5pc0NoZWNrZWQoKSB8fCBjaGlsZC0+aXNTZWxlY3RlZCgpKSkKICAgICAg
ICAgICAgIHJldHVybiBjaGlsZC5nZXQoKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0yMTc2LDYgKzIxNzcsMTAgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuU2V0
U2VsZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdAogICAgIGNhc2UgVHJlZUdyaWRSb2xlOgogICAgIGNh
c2UgVHJlZUl0ZW1Sb2xlOgogICAgIGNhc2UgVHJlZVJvbGU6CisgICAgLy8gRWxlbWVudHMgdGhh
dCBhcmUgY29uc2lkZXJlZCBzZWxlY3RhYmxlIGJ5IGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMKKyAg
ICBjYXNlIE1lbnVJdGVtQ2hlY2tib3hSb2xlOgorICAgIGNhc2UgTWVudUl0ZW1SYWRpb1JvbGU6
CisgICAgY2FzZSBNZW51SXRlbVJvbGU6CiAgICAgICAgIHJldHVybiBpc0VuYWJsZWQoKTsKICAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA5YTU1NWE0MzRi
OWRlZmI2NjU3OWU5NTBjYzJhMzcxZTBhNjI1MjBhLi5jZDExOTE4NDVhZTAzYjljNjAwOGIxMmUy
NmM4NzZjNDM0ZjAzMzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTUxMSw2ICs1MTEsMjAgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJv
bU5vZGUoY29uc3QgTm8KICAgICByZXR1cm4gYWNjZXNzaWJsZU9iamVjdDsKIH0KIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Rlc2NlbmRhbnRPZlJvbGUoQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkgY29uc3QKK3sKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9IHBhcmVudE9iamVjdCgpOyBwYXJlbnQ7IHBhcmVu
dCA9IHBhcmVudC0+cGFyZW50T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKHBhcmVudC0+cm9sZVZh
bHVlKCkgPT0gcm9sZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogc3RhdGljIHZvaWQgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKIHsKICAgICAvLyBGaW5kIHRoZSBuZXh0IGRl
c2NlbmRhbnQgb2YgdGhpcyBhdHRhY2htZW50IG9iamVjdCBzbyBzZWFyY2ggY2FuIGNvbnRpbnVl
IHRocm91Z2ggZnJhbWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBkYWVhMGY1YjQwYTEwNzgyOTMyY2E2MTRmMzI5MWQ0
YzgzNmZjMmI5Li44OWJmOWJmOTI2YzIwYzM1ZTdiOGE4NmQzYjY2NmUxNWQ2YmIxMWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNjg2LDYgKzY4Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9i
amVjdCogZmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJvbU5vZGUoY29uc3QgTm9kZSopOwogICAgIHZv
aWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEqLCBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNEZXNjZW5kYW50
T2ZCYXJyZW5QYXJlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgYm9vbCBpc0Rl
c2NlbmRhbnRPZlJvbGUoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwogICAgIAogICAgIC8vIFRl
eHQgc2VsZWN0aW9uCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZU9mU3RyaW5nQ2xvc2VzdFRvUmFu
Z2VJbkRpcmVjdGlvbihSYW5nZSosIEFjY2Vzc2liaWxpdHlTZWFyY2hEaXJlY3Rpb24sIFZlY3Rv
cjxTdHJpbmc+JikgY29uc3Q7CkBAIC04MTgsNiArODIwLDcgQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWRGcm9tUGFyZW50KCkgeyByZXR1cm4gZmFsc2U7IH0K
IAorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHZpc2libGVDaGlsZHJl
bihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGFi
Q2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCA1YWUwNjhlYTllNmQ3ZDRmNzI1MTM3MzhiZDRlY2RjNmMzM2FlNmM3Li5hYjBh
YTgyMmQ4OWM4ZGJmM2VhOGFlYTgyYzJlZjI4NzA1ZDIzNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTE2MjEsNiArMTYyMSwxMCBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmlzU2VsZWN0ZWQoKSBjb25zdAogICAgIGlmIChpc1RhYkl0ZW0oKSAmJiBpc1RhYkl0ZW1TZWxl
Y3RlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIC8vIE1lbnUgaXRlbXMgYXJlIGNv
bnNpZGVyZWQgc2VsZWN0YWJsZSBieSBhc3Npc3RpdmUgdGVjaG5vbG9naWVzCisgICAgaWYgKGlz
TWVudUl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIGlzRm9jdXNlZCgpIHx8IHBhcmVudE9iamVjdFVu
aWdub3JlZCgpLT5hY3RpdmVEZXNjZW5kYW50KCkgPT0gdGhpczsKKwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApAQCAtMzI3NCw2ICszMjc4LDI2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YXJpYUxpdmVSZWdpb25CdXN5KCkgY29uc3QKIHsKICAgICByZXR1cm4gZWxlbWVudEF0
dHJpYnV0ZVZhbHVlKGFyaWFfYnVzeUF0dHIpOyAgICAKIH0KKworYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChyb2xlVmFsdWUoKSkgeworICAgIC8vIFRoZXNlIHJvbGVzIGFyZSBjb250YWluZXJzIHdo
b3NlIGNoaWxkcmVuIHN1cHBvcnQgYXJpYS1zZWxlY3RlZDoKKyAgICBjYXNlIEdyaWRSb2xlOgor
ICAgIGNhc2UgTGlzdEJveFJvbGU6CisgICAgY2FzZSBUYWJMaXN0Um9sZToKKyAgICBjYXNlIFRy
ZWVSb2xlOgorICAgIGNhc2UgVHJlZUdyaWRSb2xlOgorICAgIC8vIFRoZXNlIHJvbGVzIGFyZSBj
b250YWluZXJzIHdob3NlIGNoaWxkcmVuIGFyZSB0cmVhdGVkIGFzIHNlbGVjdGVkIGJ5IGFzc2lz
dGl2ZQorICAgIC8vIHRlY2hub2xvZ2llcy4gV2UgY2FuIGdldCB0aGUgInNlbGVjdGVkIiBpdGVt
IHZpYSBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgb3IgdGhlCisgICAgLy8gZm9jdXNlZCBlbGVtZW50
LgorICAgIGNhc2UgTWVudVJvbGU6CisgICAgY2FzZSBNZW51QmFyUm9sZToKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
ICAgICAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYVNlbGVjdGVkUm93cyhB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdCkKIHsKQEAgLTMzMjcsMTIgKzMzNTEs
NDIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZENoaWxkcmVuKEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmUKIHsKICAgICBBU1NFUlQocmVzdWx0LmlzRW1w
dHkoKSk7CiAKLSAgICAvLyBvbmx5IGxpc3Rib3hlcyBzaG91bGQgYmUgYXNrZWQgZm9yIHRoZWly
IHNlbGVjdGVkIGNoaWxkcmVuLiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZh
bHVlKCk7Ci0gICAgaWYgKHJvbGUgPT0gTGlzdEJveFJvbGUpIC8vIG5hdGl2ZSBsaXN0IGJveGVz
IHdvdWxkIGJlIEFjY2Vzc2liaWxpdHlMaXN0Qm94ZXMsIHNvIG9ubHkgY2hlY2sgZm9yIGFyaWEg
bGlzdCBib3hlcworCisgICAgLy8gRklYTUU6IFRhYmxlUm9sZSBpcyBpbmNsdWRlZCBoZXJlIGJl
Y2F1c2UgaXQgd2FzIGJlZm9yZS4gSG93ZXZlciwgaXQgaXMgbm90CisgICAgLy8gaW5jbHVkZWQg
aW4gY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSBiZWNhdXNlIG5vbi1HcmlkUm9sZSB0YWJsZXMg
ZG8gbm90CisgICAgLy8gdHlwaWNhbGx5IHN1cHBvcnQgcm93IG9yIGNlbGwgc2VsZWN0aW9uIChy
aWdodD8pLgorICAgIGlmICghY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSAmJiByb2xlICE9IFRh
YmxlUm9sZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChyb2xlKSB7CisgICAgY2Fz
ZSBMaXN0Qm94Um9sZToKKyAgICAgICAgLy8gbmF0aXZlIGxpc3QgYm94ZXMgd291bGQgYmUgQWNj
ZXNzaWJpbGl0eUxpc3RCb3hlcywgc28gb25seSBjaGVjayBmb3IgYXJpYSBsaXN0IGJveGVzCiAg
ICAgICAgIGFyaWFMaXN0Ym94U2VsZWN0ZWRDaGlsZHJlbihyZXN1bHQpOwotICAgIGVsc2UgaWYg
KHJvbGUgPT0gVHJlZVJvbGUgfHwgcm9sZSA9PSBUcmVlR3JpZFJvbGUgfHwgcm9sZSA9PSBUYWJs
ZVJvbGUgfHwgcm9sZSA9PSBHcmlkUm9sZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgR3Jp
ZFJvbGU6CisgICAgY2FzZSBUYWJsZVJvbGU6CisgICAgY2FzZSBUcmVlUm9sZToKICAgICAgICAg
YXJpYVNlbGVjdGVkUm93cyhyZXN1bHQpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBUYWJM
aXN0Um9sZToKKyAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QqIHNlbGVjdGVkVGFiID0g
c2VsZWN0ZWRUYWJJdGVtKCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNlbGVjdGVkVGFi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTWVudVJvbGU6CisgICAgY2FzZSBNZW51QmFy
Um9sZToKKyAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QqIGRlc2NlbmRhbnQgPSBhY3Rp
dmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY2VuZGFudCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFjY2Vzc2liaWxp
dHlPYmplY3QqIGZvY3VzZWRFbGVtZW50ID0gZm9jdXNlZFVJRWxlbWVudCgpKSB7CisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKGZvY3VzZWRFbGVtZW50KTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
OworICAgIH0KIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGlzdGJv
eFZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdCkgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMTk2ZWFhOGNmN2VkNjc4ZDkyNGU2ZjYzNTZhZjNlYzhi
YWE4MjUzMS4uMTFiOGVlNTcwOTY0MGFiYWQ5NjA2ZGNmNzU1NjI0MDA5YWVlNmExMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0Q2hh
bmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICBi
b29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY2FuSGF2ZVNl
bGVjdGVkQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNlbGVjdGVkQ2hpbGRy
ZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB2aXNp
YmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0YWJDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxp
dHlPYmplY3RBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAKaW5kZXggNjc1N2M4NTNhNGRjNzIzODQxMTRjYzE0OTg2YzVl
NDU1YTIxNTViYy4uMjM4MjQ4NDMwZDIzNzYxYjJhNTZjNjgyMWU3MmVkZDNlYWMyNDc2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9i
amVjdEF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAKQEAgLTQ1LDYgKzQ1LDEwIEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5j
bHVkZXNPCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7
CiAKKyAgICAvLyBJZiB0aGUgYXV0aG9yIGhhcyBwcm92aWRlZCBhIHJvbGUsIHBsYXRmb3JtLXNw
ZWNpZmljIGluY2x1c2lvbiBsaWtlbHkgZG9lc24ndCBhcHBseS4KKyAgICBpZiAoYXJpYVJvbGVB
dHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlv
cjsKKwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICAvLyBX
ZSBleHBvc2UgdGhlIHNsaWRlciBhcyBhIHdob2xlIGJ1dCBub3QgaXRzIHZhbHVlIGluZGljYXRv
ci4KICAgICBpZiAocm9sZSA9PSBTbGlkZXJUaHVtYlJvbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCmluZGV4IGE0NDk4YTRmY2VmZTc2YzM5NWIwN2VmZDVm
MGE2OTUwM2RjM2VlMGMuLmVjN2Y4Y2FhNTQ1ZGU4ZWJmYTY4OWFhYTViYWQ0YTMzMzM4NWVlNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCkBAIC0xNzUs
MTIgKzE3NSw2IEBAIHN0YXRpYyBnaW50IHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rpb25HZXRTZWxl
Y3Rpb25Db3VudChBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbikKICAgICBpZiAoIWNvcmVTZWxlY3Rp
b24gfHwgIWNvcmVTZWxlY3Rpb24tPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIGlmIChjb3JlU2VsZWN0aW9uLT5pc0xpc3RCb3goKSkgewot
ICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
c2VsZWN0ZWRJdGVtczsKLSAgICAgICAgY29yZVNlbGVjdGlvbi0+c2VsZWN0ZWRDaGlsZHJlbihz
ZWxlY3RlZEl0ZW1zKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdpbnQ+KHNlbGVjdGVk
SXRlbXMuc2l6ZSgpKTsKLSAgICB9Ci0KICAgICBpZiAoY29yZVNlbGVjdGlvbi0+aXNNZW51TGlz
dCgpKSB7CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb3JlU2VsZWN0aW9uLT5y
ZW5kZXJlcigpOwogICAgICAgICBpZiAoIXJlbmRlcmVyKQpAQCAtMTkwLDcgKzE4NCw5IEBAIHN0
YXRpYyBnaW50IHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rpb25HZXRTZWxlY3Rpb25Db3VudChBdGtT
ZWxlY3Rpb24qIHNlbGVjdGlvbikKICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXggPj0gMCAm
JiBzZWxlY3RlZEluZGV4IDwgc3RhdGljX2Nhc3Q8aW50Pihkb3duY2FzdDxIVE1MU2VsZWN0RWxl
bWVudD4ocmVuZGVyZXItPm5vZGUoKSktPmxpc3RJdGVtcygpLnNpemUoKSk7CiAgICAgfQogCi0g
ICAgcmV0dXJuIDA7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIHNlbGVjdGVkSXRlbXM7CisgICAgY29yZVNlbGVjdGlvbi0+c2VsZWN0ZWRDaGls
ZHJlbihzZWxlY3RlZEl0ZW1zKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z2ludD4oc2VsZWN0
ZWRJdGVtcy5zaXplKCkpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVNl
bGVjdGlvbklzQ2hpbGRTZWxlY3RlZChBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbiwgZ2ludCBpbmRl
eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCBjMzczYWVhMDU2ZjMxYzliZmI5
MzMyYjkxMjhlZmEzYzU1ZDE2M2Q5Li42YWJmZTc5MzA5ODFiNDE5YjJjODAwM2MxNTI1NTRhMTc2
ZGM5YzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJL
aXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCkBAIC01ODIsMTEgKzU4Miwx
MiBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmpl
Y3QpCiAgICAgY2FzZSBIZWFkaW5nUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0hFQURJ
Tkc7CiAgICAgY2FzZSBMaXN0Qm94Um9sZToKLSAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xJU1Rf
Qk9YOworICAgICAgICAvLyBodHRwczovL3Jhd2dpdC5jb20vdzNjL2FyaWEvbWFzdGVyL2NvcmUt
YWFtL2NvcmUtYWFtLmh0bWwjcm9sZS1tYXAtbGlzdGJveAorICAgICAgICByZXR1cm4gY29yZU9i
amVjdC0+aXNEZXNjZW5kYW50T2ZSb2xlKENvbWJvQm94Um9sZSkgPyBBVEtfUk9MRV9NRU5VIDog
QVRLX1JPTEVfTElTVF9CT1g7CiAgICAgY2FzZSBMaXN0SXRlbVJvbGU6CiAgICAgICAgIHJldHVy
biBjb3JlT2JqZWN0LT5pbmhlcml0c1ByZXNlbnRhdGlvbmFsUm9sZSgpID8gQVRLX1JPTEVfU0VD
VElPTiA6IEFUS19ST0xFX0xJU1RfSVRFTTsKICAgICBjYXNlIExpc3RCb3hPcHRpb25Sb2xlOgot
ICAgICAgICByZXR1cm4gQVRLX1JPTEVfTElTVF9JVEVNOworICAgICAgICByZXR1cm4gY29yZU9i
amVjdC0+aXNEZXNjZW5kYW50T2ZSb2xlKENvbWJvQm94Um9sZSkgPyBBVEtfUk9MRV9NRU5VX0lU
RU0gOiBBVEtfUk9MRV9MSVNUX0lURU07CiAgICAgY2FzZSBQYXJhZ3JhcGhSb2xlOgogICAgICAg
ICByZXR1cm4gQVRLX1JPTEVfUEFSQUdSQVBIOwogICAgIGNhc2UgTGFiZWxSb2xlOgpAQCAtMTA4
Miw3ICsxMDgzLDcgQEAgc3RhdGljIGd1aW50MTYgZ2V0SW50ZXJmYWNlTWFza0Zyb21PYmplY3Qo
QWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCkKICAgICBpbnRlcmZhY2VNYXNrIHw9IDEg
PDwgV0FJQWN0aW9uOwogCiAgICAgLy8gU2VsZWN0aW9uCi0gICAgaWYgKGNvcmVPYmplY3QtPmlz
TGlzdEJveCgpIHx8IGNvcmVPYmplY3QtPmlzTWVudUxpc3QoKSkKKyAgICBpZiAoY29yZU9iamVj
dC0+Y2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSB8fCBjb3JlT2JqZWN0LT5pc01lbnVMaXN0KCkp
CiAgICAgICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlTZWxlY3Rpb247CiAKICAgICAvLyBH
ZXQgcmVuZGVyZXIgaWYgYXZhaWxhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQppbmRleCAzMWYwMTljM2JhMmU5YzkwNWUyYmViOTAwNGYxOGJiY2QwZTQxYmYyLi41
NzVlZjlmMDkxZGVkNzMwYzU0ZDZhMTI0MzZmOTVmY2QyMTdkZmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjcwNCw3ICsyNzA0LDcgQEAgLSAoaWQpYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyopYXR0cmlidXRlTmFtZQogICAgIH0K
ICAgICAKICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXSkgewotICAgICAgICBpZiAobV9vYmplY3Qt
PmlzTGlzdEJveCgpKSB7CisgICAgICAgIGlmIChtX29iamVjdC0+Y2FuSGF2ZVNlbGVjdGVkQ2hp
bGRyZW4oKSkgewogICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2hpbGRyZW5Db3B5OwogICAgICAgICAgICAgbV9vYmpl
Y3QtPnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRDaGlsZHJlbkNvcHkpOwogICAgICAgICAgICAg
cmV0dXJuIGNvbnZlcnRUb05TQXJyYXkoc2VsZWN0ZWRDaGlsZHJlbkNvcHkpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ2
ODA2NDZlMTg4NTcwYWQzYWQzYjY0YTdmZjg2ZGJhMjhhNTc2YzAuLjZlZjg3NzRiN2I4Y2FmZTU0
YWZjNjY0NGVkNTJlZGY1YTZlN2QyZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNi0xMS0x
NyAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgQVg6IFtB
VEtdIEltcGxlbWVudCBzZWxlY3Rpb24gaW50ZXJmYWNlIGFuZCBzdGF0ZXMgZm9yIGVsZW1lbnRz
IHN1cHBvcnRpbmcgYXJpYS1zZWxlY3RlZCBhbmQgZm9yIG1lbnUgcm9sZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg2NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyBmb3IgdGhlIGFk
ZGVkIHN1cHBvcnQuIEluIGFkZGl0aW9uLCB1cGRhdGUgdGhlIGV4cGVjdGF0aW9ucyBmb3IKKyAg
ICAgICAgYXJpYS1jb21ib2JveC5odG1sIHRvIHJlZmxlY3QgdGhlIGNvcnJlY3RlZCBBVEsgbWFw
cGluZyBvZiBMaXN0Qm94Um9sZSBmb3IKKyAgICAgICAgY29tYm9ib3ggZGVzY2VuZGFudHMuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtZXhwZWN0ZWQudHh0OiBVcGRh
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHkuaHRt
bDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLW1lbnUtaXRl
bXMuaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtY29t
Ym9ib3gtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVt
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2FyaWEtY29tYm9ib3gtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0
ZWQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE2LTExLTE1ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UHJldmlldyBvdGhlciBDU1MgQG1lZGlhIGluIGJyb3dzZXIgd2luZG93IChwcmludCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtZXhwZWN0ZWQudHh0
CmluZGV4IDFjZDhmOGI3M2FkOWZmOWI4ZjA5NmNlMWE2ZThhZDM5ODJkNzVhYjguLjM3YTBjM2M3
ZjRmYjYzZTJiNDEzZmNmMDA1ODQ0Mzc3ZDE1YzdiZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFJvbGU6IEFYUm9sZTogQVhDb21ib0JveAogUEFT
UyBjb21ib2JveC5pc0V4cGFuZGVkIGlzIGZhbHNlCiBQQVNTIGNvbWJvYm94LmlzRXhwYW5kZWQg
aXMgZmFsc2UKLVJvbGU6IEFYUm9sZTogQVhMaXN0SXRlbQorUm9sZTogQVhSb2xlOiBBWE1lbnUK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWhpZXJhcmNoeS5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWhpZXJhcmNoeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNiMDI4YTIzY2NiMTQ0NjEyMTVkM2M5MGE2NWNjMzliZTE5ODRhZjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9i
b3gtaGllcmFyY2h5Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBpZD0iYm9keSI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgPGRpdiBpZD0iY29tYm9ib3giIHRh
YmluZGV4PSIwIiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iVHJ1ZSI+CisgICAgPGRp
diByb2xlPSJsaXN0Ym94Ij4KKyAgICAgIDxkaXYgcm9sZT0ib3B0aW9uIj5vcHRpb24gMTwvZGl2
PgorICAgICAgPGRpdiByb2xlPSJvcHRpb24iPm9wdGlvbiAyPC9kaXY+CisgICAgPC9kaXY+Cisg
IDwvZGl2PgorPC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxwcmUgaWQ9InRyZWUi
PjwvcHJlPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHZlcmlmaWVzIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgb2YgQVJJQSBjb21ib2Jv
eGVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAg
ICAgdmFyIGF4Q29tYm9ib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoImNvbWJvYm94Iik7CisgICAgICAgIHZhciBzdG9wRWxlbWVudCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic3RvcEVsZW1lbnQiKTsKKyAg
ICAgICAgZHVtcEFjY2Vzc2liaWxpdHlUcmVlKGF4Q29tYm9ib3gsIHN0b3BFbGVtZW50LCAwKTsK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLW1lbnUtaXRlbXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lODdhOGQzMWQyMDI0NjJiYjJjYTJmOWJkY2ExMTJhODVmNDVkODcw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVj
dGVkLW1lbnUtaXRlbXMuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IGlkPSJib2R5Ij4KKyAgPGRpdiBpZD0iY29udGVudCI+CisgICAgPGRpdiBpZD0ibWVudTEi
IHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9IkZpcnN0IG1lbnUiPgorICAgICAgPGRpdiByb2xlPSJt
ZW51aXRlbSIgaWQ9Iml0ZW0xIiBhcmlhLWxhYmVsPSJpdGVtIDEiIHRhYmluZGV4PSItMSI+TWVu
dSBpdGVtIDE8L2Rpdj4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW0iIGlkPSJpdGVtMiIgYXJp
YS1sYWJlbD0iaXRlbSAyIiB0YWJpbmRleD0iMCI+TWVudSBpdGVtIDI8L2Rpdj4KKyAgICAgIDxk
aXYgcm9sZT0ibWVudWl0ZW0iIGlkPSJpdGVtMyIgYXJpYS1sYWJlbD0iaXRlbSAzIiB0YWJpbmRl
eD0iLTEiPk1lbnUgaXRlbSAzPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ibWVudTIi
IHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9IlNlY29uZCBtZW51IiBhcmlhLWFjdGl2ZWRlc2NlbmRh
bnQ9Iml0ZW01Ij4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW1jaGVja2JveCIgaWQ9Iml0ZW00
IiBhcmlhLWxhYmVsPSJpdGVtIDQiIHRhYmluZGV4PSItMSI+TWVudSBpdGVtIDQ8L2Rpdj4KKyAg
ICAgIDxkaXYgcm9sZT0ibWVudWl0ZW1jaGVja2JveCIgaWQ9Iml0ZW01IiBhcmlhLWxhYmVsPSJp
dGVtIDUiIHRhYmluZGV4PSItMSI+TWVudSBpdGVtIDU8L2Rpdj4KKyAgICAgIDxkaXYgcm9sZT0i
bWVudWl0ZW1jaGVja2JveCIgaWQ9Iml0ZW02IiBhcmlhLWxhYmVsPSJpdGVtIDYiIHRhYmluZGV4
PSItMSI+TWVudSBpdGVtIDY8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJtZW51YmFy
MSIgcm9sZT0ibWVudWJhciIgYXJpYS1sYWJlbD0iRmlyc3QgbWVudWJhciI+CisgICAgICA8ZGl2
IHJvbGU9Im1lbnVpdGVtIiBpZD0iaXRlbTciIGFyaWEtbGFiZWw9IkZpbGUiIHRhYmluZGV4PSIt
MSI+RmlsZTwvZGl2PgorICAgICAgPGRpdiByb2xlPSJtZW51aXRlbSIgaWQ9Iml0ZW04IiBhcmlh
LWxhYmVsPSJFZGl0IiB0YWJpbmRleD0iMCI+RWRpdDwvZGl2PgorICAgICAgPGRpdiByb2xlPSJt
ZW51aXRlbSIgaWQ9Iml0ZW05IiBhcmlhLWxhYmVsPSJWaWV3IiB0YWJpbmRleD0iLTEiPlZpZXc8
L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJtZW51YmFyMiIgcm9sZT0ibWVudWJhciIg
YXJpYS1sYWJlbD0iU2Vjb25kIG1lbnViYXIiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0iaXRlbTEy
Ij4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW0iIGlkPSJpdGVtMTAiIGFyaWEtbGFiZWw9IkZp
bGUiIHRhYmluZGV4PSItMSI+RmlsZTwvZGl2PgorICAgICAgPGRpdiByb2xlPSJtZW51aXRlbSIg
aWQ9Iml0ZW0xMSIgYXJpYS1sYWJlbD0iRWRpdCIgdGFiaW5kZXg9Ii0xIj5FZGl0PC9kaXY+Cisg
ICAgICA8ZGl2IHJvbGU9Im1lbnVpdGVtIiBpZD0iaXRlbTEyIiBhcmlhLWxhYmVsPSJWaWV3IiB0
YWJpbmRleD0iLTEiPlZpZXc8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBm
dW5jdGlvbiBzZWxlY3RlZENoaWxkSW5mbyhheEVsZW1lbnQpIHsKKyAgICAgICAgaWYgKCFheEVs
ZW1lbnQpCisgICAgICAgICAgICBkZWJ1ZygiRWxlbWVudCBub3QgZXhwb3NlZCIpOworCisgICAg
ICAgIHZhciBjb3VudCA9IGF4RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291bnQ7CisgICAgICAg
IGRlYnVnKHBsYXRmb3JtVmFsdWVGb3JXM0NOYW1lKGF4RWxlbWVudCkgKyAiIGhhcyAiICsgY291
bnQgKyAiIHNlbGVjdGVkIGNoaWxkKHJlbikiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBheEVsZW1lbnQuc2VsZWN0
ZWRDaGlsZEF0SW5kZXgoaSk7CisgICAgICAgICAgICByZXN1bHQgPSAiXHQiICsgcGxhdGZvcm1W
YWx1ZUZvclczQ05hbWUoY2hpbGQpICsgIiAoIiArIGNoaWxkLnJvbGUgKyAiKSI7CisgICAgICAg
ICAgICByZXN1bHQgKz0gIiBpc1NlbGVjdGFibGU6ICIgKyBjaGlsZC5pc1NlbGVjdGFibGUgKyAi
IGlzU2VsZWN0ZWQ6ICIgKyBjaGlsZC5pc1NlbGVjdGVkOworICAgICAgICAgICAgZGVidWcocmVz
dWx0KTsKKwl9CisgICB9CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGZvY3Vz
ZWQvYWN0aXZlIG1lbnUgaXRlbXMgYXJlIHJlcG9ydGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9m
IHRoZSBwYXJlbnQgY29udGFpbmVyLiIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbTIiKS5m
b2N1cygpOworICAgICAgICBzZWxlY3RlZENoaWxkSW5mbyh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJtZW51MSIpKTsKKyAgICAgICAgc2VsZWN0
ZWRDaGlsZEluZm8od2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgibWVudTIiKSk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpdGVt
OCIpLmZvY3VzKCk7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIm1lbnViYXIxIikpOworICAgICAg
ICBzZWxlY3RlZENoaWxkSW5mbyh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJtZW51YmFyMiIpKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgfQorCis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLXNlbGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtc2VsZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWU3YjAzNDExZDg1ZmUxMjlmYzZjNzZmZGEx
NzM1YzEyM2RiOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLXNlbGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBpZD0iYm9keSI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgPGRpdiByb2xlPSJ0YWJsaXN0
IiBpZD0idGFibGlzdCIgdGFiaW5kZXg9IjAiPgorICAgIDxkaXYgcm9sZT0idGFiIiBhcmlhLWxh
YmVsPSJmaXJzdCI+MTwvZGl2PgorICAgIDxkaXYgcm9sZT0idGFiIiBhcmlhLWxhYmVsPSJzZWNv
bmQiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPjI8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InRhYiIgYXJp
YS1sYWJlbD0idGhpcmQiPjM8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgcm9sZT0idHJlZSIgaWQ9
InRyZWUiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIiB0YWJpbmRleD0iMCI+CisgICAgPGRp
diByb2xlPSJ0cmVlaXRlbSIgYXJpYS1sYWJlbD0iZmlyc3QiIGFyaWEtc2VsZWN0ZWQ9InRydWUi
PjE8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InRyZWVpdGVtIiBhcmlhLWxhYmVsPSJzZWNvbmQiPjI8
L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InRyZWVpdGVtIiBhcmlhLWxhYmVsPSJ0aGlyZCIgYXJpYS1z
ZWxlY3RlZD0idHJ1ZSI+MzwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiByb2xlPSJncmlkIiBpZD0i
Z3JpZCIgdGFiaW5kZXg9IjAiPgorICAgIDxkaXYgcm9sZT0icm93IiBhcmlhLWxhYmVsPSJmaXJz
dCI+PHNwYW4gcm9sZT0iZ3JpZGNlbGwiPjE8L3NwYW4+PC9kaXY+CisgICAgPGRpdiByb2xlPSJy
b3ciIGFyaWEtbGFiZWw9InNlY29uZCIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+PHNwYW4gcm9sZT0i
Z3JpZGNlbGwiPjI8L3NwYW4+PC9kaXY+CisgICAgPGRpdiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9
InRoaXJkIj48c3BhbiByb2xlPSJncmlkY2VsbCI+Mzwvc3Bhbj48L2Rpdj4KKyAgPC9kaXY+Cisg
IDxkaXYgdGFiaW5kZXg9IjAiIHJvbGU9InRyZWVncmlkIiBpZD0idHJlZWdyaWQiIGFyaWEtYWN0
aXZlZGVzY2VuZGFudD0icm93MSI+CisgICAgPGRpdiByb2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEi
IGFyaWEtbGFiZWw9ImZpcnN0IC0gbGV2ZWwgMSIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+CisgICAg
ICA8ZGl2IHJvbGU9ImdyaWRjZWxsIiB0YWJpbmRleD0iMCI+LSBFeHBhbmRlZDwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxkaXYgcm9sZT0icm93IiBhcmlhLWxhYmVsPSJmaXJzdCAtIGxldmVsIDIi
IGFyaWEtbGV2ZWw9IjIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPgorICAgICAgPGRpdiByb2xlPSJn
cmlkY2VsbCI+RGF0YSAxPC9kaXY+PGRpdiByb2xlPSJncmlkY2VsbCI+RGF0YSAyPC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9InNlY29uZCAtIGxldmVs
IDIiIGFyaWEtbGV2ZWw9IjIiPgorICAgICAgPGRpdiByb2xlPSJncmlkY2VsbCI+RGF0YSAzPC9k
aXY+PGRpdiByb2xlPSJncmlkY2VsbCI+RGF0YSA0PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diByb2xlPSJyb3ciIGFyaWEtbGFiZWw9InRoaXJkIC0gbGV2ZWwgMiIgYXJpYS1sZXZlbD0iMiIg
YXJpYS1zZWxlY3RlZD0idHJ1ZSI+CisgICAgICA8ZGl2IHJvbGU9ImdyaWRjZWxsIj5EYXRhIDQ8
L2Rpdj48ZGl2IHJvbGU9ImdyaWRjZWxsIj5EYXRhIDU8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IHJvbGU9InJvdyIgYXJpYS1sZXZlbD0iMSIgYXJpYS1sYWJlbD0ic2Vjb25kIC0gbGV2ZWwg
MSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPgorICAgICAgPGRpdiByb2xlPSJncmlkY2VsbCIgdGFi
aW5kZXg9IjAiPisgRXhwYW5kIG1lPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KKyAgICBmdW5jdGlvbiBzZWxlY3RlZENoaWxkSW5mbyhheEVsZW1lbnQpIHsKKyAgICAg
ICAgaWYgKCFheEVsZW1lbnQpCisgICAgICAgICAgICBkZWJ1ZygiRWxlbWVudCBub3QgZXhwb3Nl
ZCIpOworCisgICAgICAgIHZhciBjb3VudCA9IGF4RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291
bnQ7CisgICAgICAgIGRlYnVnKGF4RWxlbWVudC5yb2xlICsgIiBoYXMgIiArIGNvdW50ICsgIiBz
ZWxlY3RlZCBjaGlsZChyZW4pIik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7
IGkrKykgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gYXhFbGVtZW50LnNlbGVjdGVkQ2hpbGRB
dEluZGV4KGkpOworICAgICAgICAgICAgcmVzdWx0ID0gKCJcdCIgKyBwbGF0Zm9ybVZhbHVlRm9y
VzNDTmFtZShjaGlsZCkgKyAiICgiICsgY2hpbGQucm9sZSArICIpIikKKyAgICAgICAgICAgIHJl
c3VsdCArPSAiIGlzU2VsZWN0YWJsZTogIiArIGNoaWxkLmlzU2VsZWN0YWJsZSArICIgaXNTZWxl
Y3RlZDogIiArIGNoaWxkLmlzU2VsZWN0ZWQ7CisgICAgICAgICAgICBkZWJ1ZyhyZXN1bHQpOwor
CX0KKyAgIH0KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaXRlbXMgd2l0aCBh
cmlhLXNlbGVjdGVkIGFyZSByZXBvcnRlZCBhcyBzZWxlY3RlZCBjaGlsZHJlbiBvZiB0aGUgcGFy
ZW50IGNvbnRhaW5lci4iKTsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRhYmxpc3QiKSk7CisgICAgICAgIHNlbGVjdGVk
Q2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoInRyZWUiKSk7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKSk7CisgICAgICAg
IHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoInRyZWVncmlkIikpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICB9Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVy
YXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYjY5MWZmZTllZTM0ZDUxYWQxZTc5MTYy
OWRiNDc4M2UwMDBiMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWhpZXJhcmNoeS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorVGhpcyB2ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIG9mIEFS
SUEgY29tYm9ib3hlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0FYUm9sZTog
QVhDb21ib0JveCBBWFZhbHVlOiBvcHRpb24gMTxcbj5vcHRpb24gMjxcbj4KKyAgICBBWFJvbGU6
IEFYTWVudSAKKyAgICAgICAgQVhSb2xlOiBBWE1lbnVJdGVtIEFYVmFsdWU6IG9wdGlvbiAxCisg
ICAgICAgIEFYUm9sZTogQVhNZW51SXRlbSBBWFZhbHVlOiBvcHRpb24gMgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3Rl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEwODExNmY4NjMwMTJiNGUwZDU5ZDgxNjVlYjYw
MjcxNmY2OThmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAK
K1RoaXMgdGVzdHMgdGhhdCBpdGVtcyB3aXRoIGFyaWEtc2VsZWN0ZWQgYXJlIHJlcG9ydGVkIGFz
IHNlbGVjdGVkIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworQVhSb2xlOiBBWFRhYkdyb3VwIGhhcyAxIHNlbGVjdGVkIGNo
aWxkKHJlbikKKwlzZWNvbmQgKEFYUm9sZTogQVhUYWIpIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1Nl
bGVjdGVkOiB0cnVlCitBWFJvbGU6IEFYVHJlZSBoYXMgMiBzZWxlY3RlZCBjaGlsZChyZW4pCisJ
Zmlyc3QgKEFYUm9sZTogQVhUcmVlSXRlbSkgaXNTZWxlY3RhYmxlOiB0cnVlIGlzU2VsZWN0ZWQ6
IHRydWUKKwl0aGlyZCAoQVhSb2xlOiBBWFRyZWVJdGVtKSBpc1NlbGVjdGFibGU6IHRydWUgaXNT
ZWxlY3RlZDogdHJ1ZQorQVhSb2xlOiBBWFRhYmxlIGhhcyAxIHNlbGVjdGVkIGNoaWxkKHJlbikK
KwlzZWNvbmQgKEFYUm9sZTogQVhSb3cpIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0
cnVlCitBWFJvbGU6IEFYVGFibGUgaGFzIDIgc2VsZWN0ZWQgY2hpbGQocmVuKQorCWZpcnN0IC0g
bGV2ZWwgMiAoQVhSb2xlOiBBWFJvdykgaXNTZWxlY3RhYmxlOiB0cnVlIGlzU2VsZWN0ZWQ6IHRy
dWUKKwl0aGlyZCAtIGxldmVsIDIgKEFYUm9sZTogQVhSb3cpIGlzU2VsZWN0YWJsZTogdHJ1ZSBp
c1NlbGVjdGVkOiB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZjYTcxZDY3NTVmOTMwYjEwYjczMjg5MWIzNTk3M2M3ZDVh
Yzc4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorVGhpcyB0ZXN0cyB0aGF0IGZvY3VzZWQvYWN0aXZlIG1lbnUgaXRlbXMgYXJlIHJlcG9y
dGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmlyc3QgbWVudSBoYXMgMSBzZWxlY3RlZCBjaGls
ZChyZW4pCisJaXRlbSAyIChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0YWJsZTogdHJ1ZSBp
c1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVudSBoYXMgMSBzZWxlY3RlZCBjaGlsZChyZW4pCisJ
aXRlbSA1IChBWFJvbGU6IEFYQ2hlY2tNZW51SXRlbSkgaXNTZWxlY3RhYmxlOiB0cnVlIGlzU2Vs
ZWN0ZWQ6IHRydWUKK0ZpcnN0IG1lbnViYXIgaGFzIDEgc2VsZWN0ZWQgY2hpbGQocmVuKQorCUVk
aXQgKEFYUm9sZTogQVhNZW51SXRlbSkgaXNTZWxlY3RhYmxlOiB0cnVlIGlzU2VsZWN0ZWQ6IHRy
dWUKK1NlY29uZCBtZW51YmFyIGhhcyAxIHNlbGVjdGVkIGNoaWxkKHJlbikKKwlWaWV3IChBWFJv
bGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1o
aWVyYXJjaHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNk
ZWExOWFmZTI0MmVkZmU3MTU2YWUwNWM1YzkxZjcxN2ZlMjcxMWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWhp
ZXJhcmNoeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB2ZXJpZmllcyB0aGUg
YWNjZXNzaWJpbGl0eSB0cmVlIG9mIEFSSUEgY29tYm9ib3hlcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0FYUm9sZTogQVhDb21ib0JveCBBWFZhbHVlOiBvcHRpb24gMQorb3B0
aW9uIDIKKworICAgIEFYUm9sZTogQVhMaXN0IEFYVmFsdWU6IAorICAgICAgICBBWFJvbGU6IEFY
U3RhdGljVGV4dCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1
ZTogCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1z
ZWxlY3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9hcmlhLXNlbGVjdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjQzMGRmYTBmNGM2
ZThmYWNhMDI0M2U2OThlNzUxYWVjYWY5MTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1zIHdpdGggYXJpYS1zZWxlY3Rl
ZCBhcmUgcmVwb3J0ZWQgYXMgc2VsZWN0ZWQgY2hpbGRyZW4gb2YgdGhlIHBhcmVudCBjb250YWlu
ZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitBWFJvbGU6IEFYVGFiR3JvdXAg
aGFzIDEgc2VsZWN0ZWQgY2hpbGQocmVuKQorCXNlY29uZCAoQVhSb2xlOiBBWFJhZGlvQnV0dG9u
KSBpc1NlbGVjdGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorQVhSb2xlOiBBWE91dGxpbmUg
aGFzIDIgc2VsZWN0ZWQgY2hpbGQocmVuKQorCWZpcnN0IChBWFJvbGU6IEFYUm93KSBpc1NlbGVj
dGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorCXRoaXJkIChBWFJvbGU6IEFYUm93KSBpc1Nl
bGVjdGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorQVhSb2xlOiBBWFRhYmxlIGhhcyAxIHNl
bGVjdGVkIGNoaWxkKHJlbikKKwlzZWNvbmQgKEFYUm9sZTogQVhSb3cpIGlzU2VsZWN0YWJsZTog
dHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitBWFJvbGU6IEFYVGFibGUgaGFzIDIgc2VsZWN0ZWQgY2hp
bGQocmVuKQorCWZpcnN0IC0gbGV2ZWwgMiAoQVhSb2xlOiBBWFJvdykgaXNTZWxlY3RhYmxlOiB0
cnVlIGlzU2VsZWN0ZWQ6IHRydWUKKwl0aGlyZCAtIGxldmVsIDIgKEFYUm9sZTogQVhSb3cpIGlz
U2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0
ZWQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUwMWI1ZTgyNDJjZTQwZGYx
NTA3OTI5MDEzNmE5YTZmMWUwZGFmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0cyB0aGF0IGZvY3VzZWQvYWN0aXZlIG1l
bnUgaXRlbXMgYXJlIHJlcG9ydGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQg
Y29udGFpbmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmlyc3QgbWVudSBo
YXMgMSBzZWxlY3RlZCBjaGlsZChyZW4pCisJaXRlbSAyIChBWFJvbGU6IEFYTWVudUl0ZW0pIGlz
U2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVudSBoYXMgMSBzZWxl
Y3RlZCBjaGlsZChyZW4pCisJaXRlbSA1IChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0YWJs
ZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitGaXJzdCBtZW51YmFyIGhhcyAxIHNlbGVjdGVkIGNo
aWxkKHJlbikKKwlFZGl0IChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0YWJsZTogdHJ1ZSBp
c1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVudWJhciBoYXMgMSBzZWxlY3RlZCBjaGlsZChyZW4p
CisJVmlldyAoQVhSb2xlOiBBWE1lbnVJdGVtKSBpc1NlbGVjdGFibGU6IHRydWUgaXNTZWxlY3Rl
ZDogdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295262</attachid>
            <date>2016-11-19 02:40:44 -0800</date>
            <delta_ts>2016-11-19 13:12:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164865-20161119054035.patch</filename>
            <type>text/plain</type>
            <size>31251</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VhMmQ3NDZmZTE0MjYw
MmRkNjI3N2U1MDEzNWQ0ZGUzNTc3OTIyZi4uNWZmZTcyOTA5NDMxODExMTgxZWNmYTcyY2M3OTIw
ZjNmOTM4Mzg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE2LTExLTE5ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAorICAgICAgICBBWDogW0FUS10gSW1w
bGVtZW50IHNlbGVjdGlvbiBpbnRlcmZhY2UgYW5kIHN0YXRlcyBmb3IgZWxlbWVudHMgc3VwcG9y
dGluZyBhcmlhLXNlbGVjdGVkIGFuZCBmb3IgbWVudSByb2xlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEF0a1NlbGVjdGlvbiBhbmQg
c3VwcG9ydCBBVEtfU1RBVEVfU0VMRUNUQUJMRSBhbmQgQVRLX1NUQVRFX1NFTEVDVEVECisgICAg
ICAgIGZvciBlbGVtZW50cyBzdXBwb3J0aW5nIGFyaWEtc2VsZWN0ZWQgYW5kIGZvciBtZW51LXJl
bGF0ZWQgcm9sZXMuIEFsc28gZW5hYmxlIHRoZQorICAgICAgICBlcXVpdmFsZW50IHN1cHBvcnQg
Zm9yIHRoZSBNYWMgYmVjYXVzZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmli
dXRlIGlzCisgICAgICAgIGluY2x1ZGVkIGFzIHN1cHBvcnRlZCBvbiB0aGUgc2FtZSByb2xlcy4K
KworICAgICAgICBJbiBhZGRpdGlvbiwgZml4IHNldmVyYWwgYnVncyBkaXNjb3ZlcmVkIGFsb25n
IHRoZSB3YXk6IENhbGwgaXNTZWxlY3RlZCgpIG9uIHJvbGUKKyAgICAgICAgdGFiLCBiZWNhdXNl
IHRhYiBzdXBwb3J0cyBhcmlhLXNlbGVjdGVkOyBub3QgYXJpYS1jaGVja2VkLiBDb3JyZWN0IEFU
SyBtYXBwaW5nCisgICAgICAgIG9mIExpc3RCb3hSb2xlIGFuZCBMaXN0Qm94T3B0aW9uUm9sZSBm
b3IgY29tYm9ib3ggZGVzY2VuZGFudHMuIEFsd2F5cyBkZWZlciB0bworICAgICAgICBXZWJDb3Jl
IGZvciBpbmNsdXNpb24vZXhjbHVzaW9uIGRlY2lzaW9ucyByZWxhdGVkIHRvIGVsZW1lbnRzIHdp
dGggYW4gZXhwbGljaXQKKyAgICAgICAgQVJJQSByb2xlLgorCisgICAgICAgIFRlc3RzOiBhY2Nl
c3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtaGllcmFyY2h5Lmh0bWwKKyAgICAgICAgICAgICAgIGFj
Y2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLmh0bWwKKyAgICAgICAgICAgICAg
IGFjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpzZWxlY3RlZFRhYkl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNEZXNjZW5kYW50T2ZSb2xlKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENoaWxkcmVuKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNTZWxlY3RlZCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxl
Y3RlZENoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKHdl
YmtpdEFjY2Vzc2libGVTZWxlY3Rpb25HZXRTZWxlY3Rpb25Db3VudCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAo
YXRrUm9sZSk6CisgICAgICAgIChnZXRJbnRlcmZhY2VNYXNrRnJvbU9iamVjdCk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpdKToKKworMjAxNi0xMS0xOSAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dz
QGlnYWxpYS5jb20+CisKICAgICAgICAgQVg6IFtBVEtdIEV4cG9zZSBhcmlhLWJ1c3kgdmlhIEFU
S19TVEFURV9CVVNZCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQ5MDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAyYjA2MzQ5NmViMzk1MWI1ZjlkYThm
ODZjZjI2NzQyMDY5NDI4NDUyLi4wNjI1OWMwYWMwMGMyZTkzNzc4YTI5MDQ4OGVhOGNjOGFkYjI1
MmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtOTMzLDEyICs5MzMsMTMgQEAgQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnNlbGVjdGVkVGFiSXRlbSgpCiAgICAg
aWYgKCFpc1RhYkxpc3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICAvLyBGSVhN
RTogSXMgdGhpcyB2YWxpZD8gQVJJQSB0YWIgaXRlbXMgc3VwcG9ydCBhcmlhLXNlbGVjdGVkOyBu
b3QgYXJpYS1jaGVja2VkLgogICAgIC8vIEZpbmQgdGhlIGNoaWxkIHRhYiBpdGVtIHRoYXQgaXMg
c2VsZWN0ZWQgKGllLiB0aGUgaW50VmFsdWUgPT0gMSkuCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHRhYnM7CiAgICAgdGFiQ2hpbGRyZW4odGFi
cyk7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkgewotICAgICAg
ICBpZiAoY2hpbGQtPmlzVGFiSXRlbSgpICYmIGNoaWxkLT5pc0NoZWNrZWQoKSkKKyAgICAgICAg
aWYgKGNoaWxkLT5pc1RhYkl0ZW0oKSAmJiAoY2hpbGQtPmlzQ2hlY2tlZCgpIHx8IGNoaWxkLT5p
c1NlbGVjdGVkKCkpKQogICAgICAgICAgICAgcmV0dXJuIGNoaWxkLmdldCgpOwogICAgIH0KICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTIxNzYsNiArMjE3Nyw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29uc3QKICAgICBjYXNlIFRy
ZWVHcmlkUm9sZToKICAgICBjYXNlIFRyZWVJdGVtUm9sZToKICAgICBjYXNlIFRyZWVSb2xlOgor
ICAgIGNhc2UgTWVudUl0ZW1DaGVja2JveFJvbGU6CisgICAgY2FzZSBNZW51SXRlbVJhZGlvUm9s
ZToKKyAgICBjYXNlIE1lbnVJdGVtUm9sZToKICAgICAgICAgcmV0dXJuIGlzRW5hYmxlZCgpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGE2YWNmNTBm
YjZjODdhMjk5ZGM3Mjk0NWNkMjZkYzYwNGM4NTkwNGYuLjg2YjFlZWNhMzA2ZWY5MjdkM2M2OGM2
OTg2NzQwNTI5YmQ5MzVmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNTExLDYgKzUxMSwxMyBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpmaXJzdEFjY2Vzc2libGVPYmplY3RG
cm9tTm9kZShjb25zdCBObwogICAgIHJldHVybiBhY2Nlc3NpYmxlT2JqZWN0OwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzRGVzY2VuZGFudE9mUm9sZShBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlKSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjptYXRjaGVk
UGFyZW50KCp0aGlzLCBmYWxzZSwgWyZyb2xlXSAoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYg
b2JqZWN0KSB7CisgICAgICAgIHJldHVybiBvYmplY3Qucm9sZVZhbHVlKCkgPT0gcm9sZTsKKyAg
ICB9KSAhPSBudWxscHRyOworfQorCiBzdGF0aWMgdm9pZCBhcHBlbmRBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRzKQogewogICAgIC8vIEZpbmQgdGhlIG5l
eHQgZGVzY2VuZGFudCBvZiB0aGlzIGF0dGFjaG1lbnQgb2JqZWN0IHNvIHNlYXJjaCBjYW4gY29u
dGludWUgdGhyb3VnaCBmcmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDRlOGQ4YTE5Y2U3ZGQ0Zjk5ZDBlODg3Mjc4
NTE2OTEyMTJhM2JkMTEuLmY4MzA5ZDBkMmJiMDhkYmQ0Y2Q4YzJjYWMxZGI1OWMxMDY1ODA1MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC02ODYsNiArNjg2LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZShjb25zdCBOb2RlKik7CiAg
ICAgdm9pZCBmaW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSos
IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rlc2Nl
bmRhbnRPZkJhcnJlblBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBib29s
IGlzRGVzY2VuZGFudE9mUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSkgY29uc3Q7CiAgICAgCiAgICAg
Ly8gVGV4dCBzZWxlY3Rpb24KICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlT2ZTdHJpbmdDbG9zZXN0
VG9SYW5nZUluRGlyZWN0aW9uKFJhbmdlKiwgQWNjZXNzaWJpbGl0eVNlYXJjaERpcmVjdGlvbiwg
VmVjdG9yPFN0cmluZz4mKSBjb25zdDsKQEAgLTgxOCw2ICs4MjAsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB2aXJ0dWFsIGJvb2wgaXNEZXRhY2hlZEZyb21QYXJlbnQoKSB7IHJldHVybiBmYWxz
ZTsgfQogCisgICAgdmlydHVhbCBib29sIGNhbkhhdmVTZWxlY3RlZENoaWxkcmVuKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdmlzaWJsZUNo
aWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCB0YWJDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCmluZGV4IDNlNmIyYzE5NDM4ZWY1ZDQxNzk5ZDcwMGM3Zjc2MDlmOTBlYjE3NmQu
LjI5ZjVkMjkwZGMxYWE1ZDBiMjExYTg0Yjg4ZDdhZDcwNjZiM2U2MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcApAQCAtMTYyMSw2ICsxNjIxLDEwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNTZWxlY3RlZCgpIGNvbnN0CiAgICAgaWYgKGlzVGFiSXRlbSgpICYmIGlzVGFiSXRl
bVNlbGVjdGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gTWVudSBpdGVtcyBh
cmUgY29uc2lkZXJlZCBzZWxlY3RhYmxlIGJ5IGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMKKyAgICBp
ZiAoaXNNZW51SXRlbSgpKQorICAgICAgICByZXR1cm4gaXNGb2N1c2VkKCkgfHwgcGFyZW50T2Jq
ZWN0VW5pZ25vcmVkKCktPmFjdGl2ZURlc2NlbmRhbnQoKSA9PSB0aGlzOworCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCkBAIC0zMjc0LDYgKzMyNzgsMjYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojppc0J1c3koKSBjb25zdAogewogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRl
VmFsdWUoYXJpYV9idXN5QXR0cik7ICAgIAogfQorCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNhbkhhdmVTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHJv
bGVWYWx1ZSgpKSB7CisgICAgLy8gVGhlc2Ugcm9sZXMgYXJlIGNvbnRhaW5lcnMgd2hvc2UgY2hp
bGRyZW4gc3VwcG9ydCBhcmlhLXNlbGVjdGVkOgorICAgIGNhc2UgR3JpZFJvbGU6CisgICAgY2Fz
ZSBMaXN0Qm94Um9sZToKKyAgICBjYXNlIFRhYkxpc3RSb2xlOgorICAgIGNhc2UgVHJlZVJvbGU6
CisgICAgY2FzZSBUcmVlR3JpZFJvbGU6CisgICAgLy8gVGhlc2Ugcm9sZXMgYXJlIGNvbnRhaW5l
cnMgd2hvc2UgY2hpbGRyZW4gYXJlIHRyZWF0ZWQgYXMgc2VsZWN0ZWQgYnkgYXNzaXN0aXZlCisg
ICAgLy8gdGVjaG5vbG9naWVzLiBXZSBjYW4gZ2V0IHRoZSAic2VsZWN0ZWQiIGl0ZW0gdmlhIGFy
aWEtYWN0aXZlZGVzY2VuZGFudCBvciB0aGUKKyAgICAvLyBmb2N1c2VkIGVsZW1lbnQuCisgICAg
Y2FzZSBNZW51Um9sZToKKyAgICBjYXNlIE1lbnVCYXJSb2xlOgorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogICAgIAog
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhU2VsZWN0ZWRSb3dzKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0KQogewpAQCAtMzMyNywxMiArMzM1MSwzNiBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJiByZQogewogICAgIEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsK
IAotICAgIC8vIG9ubHkgbGlzdGJveGVzIHNob3VsZCBiZSBhc2tlZCBmb3IgdGhlaXIgc2VsZWN0
ZWQgY2hpbGRyZW4uIAotICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsK
LSAgICBpZiAocm9sZSA9PSBMaXN0Qm94Um9sZSkgLy8gbmF0aXZlIGxpc3QgYm94ZXMgd291bGQg
YmUgQWNjZXNzaWJpbGl0eUxpc3RCb3hlcywgc28gb25seSBjaGVjayBmb3IgYXJpYSBsaXN0IGJv
eGVzCisgICAgaWYgKCFjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpKQorICAgICAgICByZXR1cm47
CisKKyAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBMaXN0Qm94Um9sZToKKyAg
ICAgICAgLy8gbmF0aXZlIGxpc3QgYm94ZXMgd291bGQgYmUgQWNjZXNzaWJpbGl0eUxpc3RCb3hl
cywgc28gb25seSBjaGVjayBmb3IgYXJpYSBsaXN0IGJveGVzCiAgICAgICAgIGFyaWFMaXN0Ym94
U2VsZWN0ZWRDaGlsZHJlbihyZXN1bHQpOwotICAgIGVsc2UgaWYgKHJvbGUgPT0gVHJlZVJvbGUg
fHwgcm9sZSA9PSBUcmVlR3JpZFJvbGUgfHwgcm9sZSA9PSBUYWJsZVJvbGUgfHwgcm9sZSA9PSBH
cmlkUm9sZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgR3JpZFJvbGU6CisgICAgY2FzZSBU
cmVlUm9sZToKICAgICAgICAgYXJpYVNlbGVjdGVkUm93cyhyZXN1bHQpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBUYWJMaXN0Um9sZToKKyAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHNlbGVjdGVkVGFiID0gc2VsZWN0ZWRUYWJJdGVtKCkpCisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKHNlbGVjdGVkVGFiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTWVudVJvbGU6
CisgICAgY2FzZSBNZW51QmFyUm9sZToKKyAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGRlc2NlbmRhbnQgPSBhY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoZGVzY2VuZGFudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRFbGVtZW50ID0gZm9jdXNlZFVJRWxl
bWVudCgpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGZvY3VzZWRFbGVtZW50KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogfQogCiB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFMaXN0Ym94VmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0KSAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCBi
MWNkZjU2MzEwYzUwODVlYTExM2IyZTk2YmM1MmE2NDI5YWMwNjUwLi5jY2NiMzllYmVkMWQ3MjY5
ODFkYjMxNGEzMWU2ZjhmZjI0MDgzZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMTUyLDYgKzE1
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHRhYkNoaWxkcmVuKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAppbmRl
eCA2NzU3Yzg1M2E0ZGM3MjM4NDExNGNjMTQ5ODZjNWU0NTVhMjE1NWJjLi4yMzgyNDg0MzBkMjM3
NjFiMmE1NmM2ODIxZTcyZWRkM2VhYzI0NzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApAQCAt
NDUsNiArNDUsMTAgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc08KICAgICBpZiAoIXBhcmVudCkK
ICAgICAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKIAorICAgIC8vIElmIHRoZSBhdXRob3Ig
aGFzIHByb3ZpZGVkIGEgcm9sZSwgcGxhdGZvcm0tc3BlY2lmaWMgaW5jbHVzaW9uIGxpa2VseSBk
b2Vzbid0IGFwcGx5LgorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xl
KQorICAgICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOworCiAgICAgQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIC8vIFdlIGV4cG9zZSB0aGUgc2xpZGVyIGFzIGEg
d2hvbGUgYnV0IG5vdCBpdHMgdmFsdWUgaW5kaWNhdG9yLgogICAgIGlmIChyb2xlID09IFNsaWRl
clRodW1iUm9sZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHAK
aW5kZXggYTQ0OThhNGZjZWZlNzZjMzk1YjA3ZWZkNWYwYTY5NTAzZGMzZWUwYy4uZWM3ZjhjYWE1
NDVkZThlYmZhNjg5YWFhNWJhZDRhMzMzMzg1ZWU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZUludGVyZmFjZVNlbGVjdGlvbi5jcHAKQEAgLTE3NSwxMiArMTc1LDYgQEAgc3RhdGljIGdpbnQg
d2Via2l0QWNjZXNzaWJsZVNlbGVjdGlvbkdldFNlbGVjdGlvbkNvdW50KEF0a1NlbGVjdGlvbiog
c2VsZWN0aW9uKQogICAgIGlmICghY29yZVNlbGVjdGlvbiB8fCAhY29yZVNlbGVjdGlvbi0+aXNB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYg
KGNvcmVTZWxlY3Rpb24tPmlzTGlzdEJveCgpKSB7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZEl0ZW1zOwotICAgICAgICBj
b3JlU2VsZWN0aW9uLT5zZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Z2ludD4oc2VsZWN0ZWRJdGVtcy5zaXplKCkpOwotICAgIH0KLQog
ICAgIGlmIChjb3JlU2VsZWN0aW9uLT5pc01lbnVMaXN0KCkpIHsKICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGNvcmVTZWxlY3Rpb24tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICgh
cmVuZGVyZXIpCkBAIC0xOTAsNyArMTg0LDkgQEAgc3RhdGljIGdpbnQgd2Via2l0QWNjZXNzaWJs
ZVNlbGVjdGlvbkdldFNlbGVjdGlvbkNvdW50KEF0a1NlbGVjdGlvbiogc2VsZWN0aW9uKQogICAg
ICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleCA+PSAwICYmIHNlbGVjdGVkSW5kZXggPCBzdGF0aWNf
Y2FzdDxpbnQ+KGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50PihyZW5kZXJlci0+bm9kZSgpKS0+
bGlzdEl0ZW1zKCkuc2l6ZSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRJdGVtczsK
KyAgICBjb3JlU2VsZWN0aW9uLT5zZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxnaW50PihzZWxlY3RlZEl0ZW1zLnNpemUoKSk7CiB9CiAKIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRBY2Nlc3NpYmxlU2VsZWN0aW9uSXNDaGlsZFNlbGVjdGVkKEF0
a1NlbGVjdGlvbiogc2VsZWN0aW9uLCBnaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJB
dGsuY3BwCmluZGV4IDQ0YmIxZGVjM2U0YmJmOGI3NmFiZWE0NGY2MTE4ZjdjOWZiZjFkNTguLmY3
YjA1ZjExODI0ZDU5NGY3NGFkMzIzNDg4YTQ5ZGFkMGI1ODcyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxl
V3JhcHBlckF0ay5jcHAKQEAgLTU4MiwxMSArNTgyLDEyIEBAIHN0YXRpYyBBdGtSb2xlIGF0a1Jv
bGUoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCkKICAgICBjYXNlIEhlYWRpbmdSb2xl
OgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfSEVBRElORzsKICAgICBjYXNlIExpc3RCb3hSb2xl
OgotICAgICAgICByZXR1cm4gQVRLX1JPTEVfTElTVF9CT1g7CisgICAgICAgIC8vIGh0dHBzOi8v
cmF3Z2l0LmNvbS93M2MvYXJpYS9tYXN0ZXIvY29yZS1hYW0vY29yZS1hYW0uaHRtbCNyb2xlLW1h
cC1saXN0Ym94CisgICAgICAgIHJldHVybiBjb3JlT2JqZWN0LT5pc0Rlc2NlbmRhbnRPZlJvbGUo
Q29tYm9Cb3hSb2xlKSA/IEFUS19ST0xFX01FTlUgOiBBVEtfUk9MRV9MSVNUX0JPWDsKICAgICBj
YXNlIExpc3RJdGVtUm9sZToKICAgICAgICAgcmV0dXJuIGNvcmVPYmplY3QtPmluaGVyaXRzUHJl
c2VudGF0aW9uYWxSb2xlKCkgPyBBVEtfUk9MRV9TRUNUSU9OIDogQVRLX1JPTEVfTElTVF9JVEVN
OwogICAgIGNhc2UgTGlzdEJveE9wdGlvblJvbGU6Ci0gICAgICAgIHJldHVybiBBVEtfUk9MRV9M
SVNUX0lURU07CisgICAgICAgIHJldHVybiBjb3JlT2JqZWN0LT5pc0Rlc2NlbmRhbnRPZlJvbGUo
Q29tYm9Cb3hSb2xlKSA/IEFUS19ST0xFX01FTlVfSVRFTSA6IEFUS19ST0xFX0xJU1RfSVRFTTsK
ICAgICBjYXNlIFBhcmFncmFwaFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVJBR1JB
UEg7CiAgICAgY2FzZSBMYWJlbFJvbGU6CkBAIC0xMDg1LDcgKzEwODYsNyBAQCBzdGF0aWMgZ3Vp
bnQxNiBnZXRJbnRlcmZhY2VNYXNrRnJvbU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3Jl
T2JqZWN0KQogICAgIGludGVyZmFjZU1hc2sgfD0gMSA8PCBXQUlBY3Rpb247CiAKICAgICAvLyBT
ZWxlY3Rpb24KLSAgICBpZiAoY29yZU9iamVjdC0+aXNMaXN0Qm94KCkgfHwgY29yZU9iamVjdC0+
aXNNZW51TGlzdCgpKQorICAgIGlmIChjb3JlT2JqZWN0LT5jYW5IYXZlU2VsZWN0ZWRDaGlsZHJl
bigpIHx8IGNvcmVPYmplY3QtPmlzTWVudUxpc3QoKSkKICAgICAgICAgaW50ZXJmYWNlTWFzayB8
PSAxIDw8IFdBSVNlbGVjdGlvbjsKIAogICAgIC8vIEdldCByZW5kZXJlciBpZiBhdmFpbGFibGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDU4NzE2Njg5YmY0
NDk3MmViYWRmOTNlNjEwZjJiZjE2NDJjNWJmNjEuLjQwZGRjNDFmOWE3YTYzOTQzNTcyYTU3MDA4
MDhkNWUyMDY0MDc5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
CkBAIC0yNzA0LDcgKzI3MDQsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
KE5TU3RyaW5nKilhdHRyaWJ1dGVOYW1lCiAgICAgfQogICAgIAogICAgIGlmIChbYXR0cmlidXRl
TmFtZSBpc0VxdWFsVG9TdHJpbmc6IE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdKSB7Ci0gICAgICAgIGlmIChtX29iamVjdC0+aXNMaXN0Qm94KCkpIHsKKyAgICAgICAg
aWYgKG1fb2JqZWN0LT5jYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpKSB7CiAgICAgICAgICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRD
aGlsZHJlbkNvcHk7CiAgICAgICAgICAgICBtX29iamVjdC0+c2VsZWN0ZWRDaGlsZHJlbihzZWxl
Y3RlZENoaWxkcmVuQ29weSk7CiAgICAgICAgICAgICByZXR1cm4gY29udmVydFRvTlNBcnJheShz
ZWxlY3RlZENoaWxkcmVuQ29weSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWMzYzRjZDM3MjNjNzMzNzQ0NzczOWMwYThi
OWJiNmUwZjlhZTVjYi4uYTUwZDE4OGJkYTdkN2M2MDFhZDNmMWJkZjM2YWM4OTVhZGNjZDZhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE2LTExLTE5ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGln
Z3NAaWdhbGlhLmNvbT4KIAorICAgICAgICBBWDogW0FUS10gSW1wbGVtZW50IHNlbGVjdGlvbiBp
bnRlcmZhY2UgYW5kIHN0YXRlcyBmb3IgZWxlbWVudHMgc3VwcG9ydGluZyBhcmlhLXNlbGVjdGVk
IGFuZCBmb3IgbWVudSByb2xlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0ODY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTmV3IHRlc3RzIGZvciB0aGUgYWRkZWQgc3VwcG9ydC4gSW4gYWRkaXRpb24s
IHVwZGF0ZSB0aGUgZXhwZWN0YXRpb25zIGZvcgorICAgICAgICBhcmlhLWNvbWJvYm94Lmh0bWwg
dG8gcmVmbGVjdCB0aGUgY29ycmVjdGVkIEFUSyBtYXBwaW5nIG9mIExpc3RCb3hSb2xlIGZvcgor
ICAgICAgICBjb21ib2JveCBkZXNjZW5kYW50cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
YXJpYS1jb21ib2JveC1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9hcmlhLWNvbWJvYm94LWhpZXJhcmNoeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNl
bGVjdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJj
aHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9hcmlhLXNlbGVjdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKKzIwMTYtMTEtMTkgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEu
Y29tPgorCiAgICAgICAgIEFYOiBbQVRLXSBFeHBvc2UgYXJpYS1idXN5IHZpYSBBVEtfU1RBVEVf
QlVTWQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
OTA5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2Jv
eC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9ib3gt
ZXhwZWN0ZWQudHh0CmluZGV4IDFjZDhmOGI3M2FkOWZmOWI4ZjA5NmNlMWE2ZThhZDM5ODJkNzVh
YjguLjM3YTBjM2M3ZjRmYjYzZTJiNDEzZmNmMDA1ODQ0Mzc3ZDE1YzdiZGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFJvbGU6IEFYUm9sZTogQVhD
b21ib0JveAogUEFTUyBjb21ib2JveC5pc0V4cGFuZGVkIGlzIGZhbHNlCiBQQVNTIGNvbWJvYm94
LmlzRXhwYW5kZWQgaXMgZmFsc2UKLVJvbGU6IEFYUm9sZTogQVhMaXN0SXRlbQorUm9sZTogQVhS
b2xlOiBBWE1lbnUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94
LWhpZXJhcmNoeS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94
LWhpZXJhcmNoeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMDI4YTIzY2NiMTQ0NjEyMTVkM2M5MGE2NWNj
MzliZTE5ODRhZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtY29tYm9ib3gtaGllcmFyY2h5Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgPGRpdiBpZD0i
Y29tYm9ib3giIHRhYmluZGV4PSIwIiByb2xlPSJjb21ib2JveCIgYXJpYS1leHBhbmRlZD0iVHJ1
ZSI+CisgICAgPGRpdiByb2xlPSJsaXN0Ym94Ij4KKyAgICAgIDxkaXYgcm9sZT0ib3B0aW9uIj5v
cHRpb24gMTwvZGl2PgorICAgICAgPGRpdiByb2xlPSJvcHRpb24iPm9wdGlvbiAyPC9kaXY+Cisg
ICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxw
cmUgaWQ9InRyZWUiPjwvcHJlPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHZlcmlmaWVzIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgb2Yg
QVJJQSBjb21ib2JveGVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgdmFyIGF4Q29tYm9ib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNvbWJvYm94Iik7CisgICAgICAgIHZhciBzdG9wRWxlbWVu
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgic3RvcEVs
ZW1lbnQiKTsKKyAgICAgICAgZHVtcEFjY2Vzc2liaWxpdHlUcmVlKGF4Q29tYm9ib3gsIHN0b3BF
bGVtZW50LCAwKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5z
dHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQt
bWVudS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVk
LW1lbnUtaXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODdhOGQzMWQyMDI0NjJiYjJjYTJmOWJkY2Ex
MTJhODVmNDVkODcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLXNlbGVjdGVkLW1lbnUtaXRlbXMuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKyAgPGRpdiBpZD0iY29udGVudCI+CisgICAgPGRp
diBpZD0ibWVudTEiIHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9IkZpcnN0IG1lbnUiPgorICAgICAg
PGRpdiByb2xlPSJtZW51aXRlbSIgaWQ9Iml0ZW0xIiBhcmlhLWxhYmVsPSJpdGVtIDEiIHRhYmlu
ZGV4PSItMSI+TWVudSBpdGVtIDE8L2Rpdj4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW0iIGlk
PSJpdGVtMiIgYXJpYS1sYWJlbD0iaXRlbSAyIiB0YWJpbmRleD0iMCI+TWVudSBpdGVtIDI8L2Rp
dj4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW0iIGlkPSJpdGVtMyIgYXJpYS1sYWJlbD0iaXRl
bSAzIiB0YWJpbmRleD0iLTEiPk1lbnUgaXRlbSAzPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBpZD0ibWVudTIiIHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9IlNlY29uZCBtZW51IiBhcmlhLWFj
dGl2ZWRlc2NlbmRhbnQ9Iml0ZW01Ij4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW1jaGVja2Jv
eCIgaWQ9Iml0ZW00IiBhcmlhLWxhYmVsPSJpdGVtIDQiIHRhYmluZGV4PSItMSI+TWVudSBpdGVt
IDQ8L2Rpdj4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW1jaGVja2JveCIgaWQ9Iml0ZW01IiBh
cmlhLWxhYmVsPSJpdGVtIDUiIHRhYmluZGV4PSItMSI+TWVudSBpdGVtIDU8L2Rpdj4KKyAgICAg
IDxkaXYgcm9sZT0ibWVudWl0ZW1jaGVja2JveCIgaWQ9Iml0ZW02IiBhcmlhLWxhYmVsPSJpdGVt
IDYiIHRhYmluZGV4PSItMSI+TWVudSBpdGVtIDY8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJtZW51YmFyMSIgcm9sZT0ibWVudWJhciIgYXJpYS1sYWJlbD0iRmlyc3QgbWVudWJhciI+
CisgICAgICA8ZGl2IHJvbGU9Im1lbnVpdGVtIiBpZD0iaXRlbTciIGFyaWEtbGFiZWw9IkZpbGUi
IHRhYmluZGV4PSItMSI+RmlsZTwvZGl2PgorICAgICAgPGRpdiByb2xlPSJtZW51aXRlbSIgaWQ9
Iml0ZW04IiBhcmlhLWxhYmVsPSJFZGl0IiB0YWJpbmRleD0iMCI+RWRpdDwvZGl2PgorICAgICAg
PGRpdiByb2xlPSJtZW51aXRlbSIgaWQ9Iml0ZW05IiBhcmlhLWxhYmVsPSJWaWV3IiB0YWJpbmRl
eD0iLTEiPlZpZXc8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJtZW51YmFyMiIgcm9s
ZT0ibWVudWJhciIgYXJpYS1sYWJlbD0iU2Vjb25kIG1lbnViYXIiIGFyaWEtYWN0aXZlZGVzY2Vu
ZGFudD0iaXRlbTEyIj4KKyAgICAgIDxkaXYgcm9sZT0ibWVudWl0ZW0iIGlkPSJpdGVtMTAiIGFy
aWEtbGFiZWw9IkZpbGUiIHRhYmluZGV4PSItMSI+RmlsZTwvZGl2PgorICAgICAgPGRpdiByb2xl
PSJtZW51aXRlbSIgaWQ9Iml0ZW0xMSIgYXJpYS1sYWJlbD0iRWRpdCIgdGFiaW5kZXg9Ii0xIj5F
ZGl0PC9kaXY+CisgICAgICA8ZGl2IHJvbGU9Im1lbnVpdGVtIiBpZD0iaXRlbTEyIiBhcmlhLWxh
YmVsPSJWaWV3IiB0YWJpbmRleD0iLTEiPlZpZXc8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KKyAgICBmdW5jdGlvbiBzZWxlY3RlZENoaWxkSW5mbyhheEVsZW1lbnQpIHsKKyAgICAg
ICAgaWYgKCFheEVsZW1lbnQpCisgICAgICAgICAgICBkZWJ1ZygiRWxlbWVudCBub3QgZXhwb3Nl
ZCIpOworCisgICAgICAgIHZhciBjb3VudCA9IGF4RWxlbWVudC5zZWxlY3RlZENoaWxkcmVuQ291
bnQ7CisgICAgICAgIGRlYnVnKHBsYXRmb3JtVmFsdWVGb3JXM0NOYW1lKGF4RWxlbWVudCkgKyAi
IGhhcyAiICsgY291bnQgKyAiIHNlbGVjdGVkIGNoaWxkKHJlbikiKTsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBheEVs
ZW1lbnQuc2VsZWN0ZWRDaGlsZEF0SW5kZXgoaSk7CisgICAgICAgICAgICByZXN1bHQgPSAiXHQi
ICsgcGxhdGZvcm1WYWx1ZUZvclczQ05hbWUoY2hpbGQpICsgIiAoIiArIGNoaWxkLnJvbGUgKyAi
KSI7CisgICAgICAgICAgICByZXN1bHQgKz0gIiBpc1NlbGVjdGFibGU6ICIgKyBjaGlsZC5pc1Nl
bGVjdGFibGUgKyAiIGlzU2VsZWN0ZWQ6ICIgKyBjaGlsZC5pc1NlbGVjdGVkOworICAgICAgICAg
ICAgZGVidWcocmVzdWx0KTsKKwl9CisgICB9CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IGZvY3VzZWQvYWN0aXZlIG1lbnUgaXRlbXMgYXJlIHJlcG9ydGVkIGFzIHNlbGVjdGVk
IGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLiIpOworCisgICAgaWYgKHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaXRlbTIiKS5mb2N1cygpOworICAgICAgICBzZWxlY3RlZENoaWxkSW5mbyh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJtZW51MSIpKTsKKyAg
ICAgICAgc2VsZWN0ZWRDaGlsZEluZm8od2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgibWVudTIiKSk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpdGVtOCIpLmZvY3VzKCk7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIm1lbnViYXIx
IikpOworICAgICAgICBzZWxlY3RlZENoaWxkSW5mbyh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJtZW51YmFyMiIpKTsKKyAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWU3YjAzNDExZDg1ZmUx
MjlmYzZjNzZmZGExNzM1YzEyM2RiOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgPGRpdiBy
b2xlPSJ0YWJsaXN0IiBpZD0idGFibGlzdCIgdGFiaW5kZXg9IjAiPgorICAgIDxkaXYgcm9sZT0i
dGFiIiBhcmlhLWxhYmVsPSJmaXJzdCI+MTwvZGl2PgorICAgIDxkaXYgcm9sZT0idGFiIiBhcmlh
LWxhYmVsPSJzZWNvbmQiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPjI8L2Rpdj4KKyAgICA8ZGl2IHJv
bGU9InRhYiIgYXJpYS1sYWJlbD0idGhpcmQiPjM8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgcm9s
ZT0idHJlZSIgaWQ9InRyZWUiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIiB0YWJpbmRleD0i
MCI+CisgICAgPGRpdiByb2xlPSJ0cmVlaXRlbSIgYXJpYS1sYWJlbD0iZmlyc3QiIGFyaWEtc2Vs
ZWN0ZWQ9InRydWUiPjE8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InRyZWVpdGVtIiBhcmlhLWxhYmVs
PSJzZWNvbmQiPjI8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InRyZWVpdGVtIiBhcmlhLWxhYmVsPSJ0
aGlyZCIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+MzwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiByb2xl
PSJncmlkIiBpZD0iZ3JpZCIgdGFiaW5kZXg9IjAiPgorICAgIDxkaXYgcm9sZT0icm93IiBhcmlh
LWxhYmVsPSJmaXJzdCI+PHNwYW4gcm9sZT0iZ3JpZGNlbGwiPjE8L3NwYW4+PC9kaXY+CisgICAg
PGRpdiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9InNlY29uZCIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+
PHNwYW4gcm9sZT0iZ3JpZGNlbGwiPjI8L3NwYW4+PC9kaXY+CisgICAgPGRpdiByb2xlPSJyb3ci
IGFyaWEtbGFiZWw9InRoaXJkIj48c3BhbiByb2xlPSJncmlkY2VsbCI+Mzwvc3Bhbj48L2Rpdj4K
KyAgPC9kaXY+CisgIDxkaXYgdGFiaW5kZXg9IjAiIHJvbGU9InRyZWVncmlkIiBpZD0idHJlZWdy
aWQiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0icm93MSI+CisgICAgPGRpdiByb2xlPSJyb3ciIGFy
aWEtbGV2ZWw9IjEiIGFyaWEtbGFiZWw9ImZpcnN0IC0gbGV2ZWwgMSIgYXJpYS1leHBhbmRlZD0i
dHJ1ZSI+CisgICAgICA8ZGl2IHJvbGU9ImdyaWRjZWxsIiB0YWJpbmRleD0iMCI+LSBFeHBhbmRl
ZDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgcm9sZT0icm93IiBhcmlhLWxhYmVsPSJmaXJz
dCAtIGxldmVsIDIiIGFyaWEtbGV2ZWw9IjIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPgorICAgICAg
PGRpdiByb2xlPSJncmlkY2VsbCI+RGF0YSAxPC9kaXY+PGRpdiByb2xlPSJncmlkY2VsbCI+RGF0
YSAyPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9InNl
Y29uZCAtIGxldmVsIDIiIGFyaWEtbGV2ZWw9IjIiPgorICAgICAgPGRpdiByb2xlPSJncmlkY2Vs
bCI+RGF0YSAzPC9kaXY+PGRpdiByb2xlPSJncmlkY2VsbCI+RGF0YSA0PC9kaXY+CisgICAgPC9k
aXY+CisgICAgPGRpdiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9InRoaXJkIC0gbGV2ZWwgMiIgYXJp
YS1sZXZlbD0iMiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+CisgICAgICA8ZGl2IHJvbGU9ImdyaWRj
ZWxsIj5EYXRhIDQ8L2Rpdj48ZGl2IHJvbGU9ImdyaWRjZWxsIj5EYXRhIDU8L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IHJvbGU9InJvdyIgYXJpYS1sZXZlbD0iMSIgYXJpYS1sYWJlbD0ic2Vj
b25kIC0gbGV2ZWwgMSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPgorICAgICAgPGRpdiByb2xlPSJn
cmlkY2VsbCIgdGFiaW5kZXg9IjAiPisgRXhwYW5kIG1lPC9kaXY+CisgICAgPC9kaXY+CisgIDwv
ZGl2PgorPC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBzZWxlY3RlZENoaWxkSW5mbyhheEVsZW1l
bnQpIHsKKyAgICAgICAgaWYgKCFheEVsZW1lbnQpCisgICAgICAgICAgICBkZWJ1ZygiRWxlbWVu
dCBub3QgZXhwb3NlZCIpOworCisgICAgICAgIHZhciBjb3VudCA9IGF4RWxlbWVudC5zZWxlY3Rl
ZENoaWxkcmVuQ291bnQ7CisgICAgICAgIGRlYnVnKGF4RWxlbWVudC5yb2xlICsgIiBoYXMgIiAr
IGNvdW50ICsgIiBzZWxlY3RlZCBjaGlsZChyZW4pIik7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gYXhFbGVtZW50LnNl
bGVjdGVkQ2hpbGRBdEluZGV4KGkpOworICAgICAgICAgICAgcmVzdWx0ID0gKCJcdCIgKyBwbGF0
Zm9ybVZhbHVlRm9yVzNDTmFtZShjaGlsZCkgKyAiICgiICsgY2hpbGQucm9sZSArICIpIikKKyAg
ICAgICAgICAgIHJlc3VsdCArPSAiIGlzU2VsZWN0YWJsZTogIiArIGNoaWxkLmlzU2VsZWN0YWJs
ZSArICIgaXNTZWxlY3RlZDogIiArIGNoaWxkLmlzU2VsZWN0ZWQ7CisgICAgICAgICAgICBkZWJ1
ZyhyZXN1bHQpOworCX0KKyAgIH0KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQg
aXRlbXMgd2l0aCBhcmlhLXNlbGVjdGVkIGFyZSByZXBvcnRlZCBhcyBzZWxlY3RlZCBjaGlsZHJl
biBvZiB0aGUgcGFyZW50IGNvbnRhaW5lci4iKTsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRhYmxpc3QiKSk7CisgICAg
ICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoInRyZWUiKSk7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQi
KSk7CisgICAgICAgIHNlbGVjdGVkQ2hpbGRJbmZvKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRyZWVncmlkIikpOworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
KyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1j
b21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYjY5MWZmZTllZTM0
ZDUxYWQxZTc5MTYyOWRiNDc4M2UwMDBiMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWhpZXJhcmNoeS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB2ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0
eSB0cmVlIG9mIEFSSUEgY29tYm9ib3hlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK0FYUm9sZTogQVhDb21ib0JveCBBWFZhbHVlOiBvcHRpb24gMTxcbj5vcHRpb24gMjxcbj4K
KyAgICBBWFJvbGU6IEFYTWVudSAKKyAgICAgICAgQVhSb2xlOiBBWE1lbnVJdGVtIEFYVmFsdWU6
IG9wdGlvbiAxCisgICAgICAgIEFYUm9sZTogQVhNZW51SXRlbSBBWFZhbHVlOiBvcHRpb24gMgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS1zZWxlY3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEwODExNmY4NjMwMTJiNGUw
ZDU5ZDgxNjVlYjYwMjcxNmY2OThmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTkgQEAKK1RoaXMgdGVzdHMgdGhhdCBpdGVtcyB3aXRoIGFyaWEtc2VsZWN0ZWQgYXJl
IHJlcG9ydGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQVhSb2xlOiBBWFRhYkdyb3VwIGhhcyAx
IHNlbGVjdGVkIGNoaWxkKHJlbikKKwlzZWNvbmQgKEFYUm9sZTogQVhUYWIpIGlzU2VsZWN0YWJs
ZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitBWFJvbGU6IEFYVHJlZSBoYXMgMiBzZWxlY3RlZCBj
aGlsZChyZW4pCisJZmlyc3QgKEFYUm9sZTogQVhUcmVlSXRlbSkgaXNTZWxlY3RhYmxlOiB0cnVl
IGlzU2VsZWN0ZWQ6IHRydWUKKwl0aGlyZCAoQVhSb2xlOiBBWFRyZWVJdGVtKSBpc1NlbGVjdGFi
bGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorQVhSb2xlOiBBWFRhYmxlIGhhcyAxIHNlbGVjdGVk
IGNoaWxkKHJlbikKKwlzZWNvbmQgKEFYUm9sZTogQVhSb3cpIGlzU2VsZWN0YWJsZTogdHJ1ZSBp
c1NlbGVjdGVkOiB0cnVlCitBWFJvbGU6IEFYVGFibGUgaGFzIDIgc2VsZWN0ZWQgY2hpbGQocmVu
KQorCWZpcnN0IC0gbGV2ZWwgMiAoQVhSb2xlOiBBWFJvdykgaXNTZWxlY3RhYmxlOiB0cnVlIGlz
U2VsZWN0ZWQ6IHRydWUKKwl0aGlyZCAtIGxldmVsIDIgKEFYUm9sZTogQVhSb3cpIGlzU2VsZWN0
YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0ZW1zLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVu
dS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZjYTcxZDY3NTVmOTMwYjEwYjczMjg5
MWIzNTk3M2M3ZDVhYzc4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0cyB0aGF0IGZvY3VzZWQvYWN0aXZlIG1lbnUgaXRl
bXMgYXJlIHJlcG9ydGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9mIHRoZSBwYXJlbnQgY29udGFp
bmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmlyc3QgbWVudSBoYXMgMSBz
ZWxlY3RlZCBjaGlsZChyZW4pCisJaXRlbSAyIChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0
YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVudSBoYXMgMSBzZWxlY3RlZCBj
aGlsZChyZW4pCisJaXRlbSA1IChBWFJvbGU6IEFYQ2hlY2tNZW51SXRlbSkgaXNTZWxlY3RhYmxl
OiB0cnVlIGlzU2VsZWN0ZWQ6IHRydWUKK0ZpcnN0IG1lbnViYXIgaGFzIDEgc2VsZWN0ZWQgY2hp
bGQocmVuKQorCUVkaXQgKEFYUm9sZTogQVhNZW51SXRlbSkgaXNTZWxlY3RhYmxlOiB0cnVlIGlz
U2VsZWN0ZWQ6IHRydWUKK1NlY29uZCBtZW51YmFyIGhhcyAxIHNlbGVjdGVkIGNoaWxkKHJlbikK
KwlWaWV3IChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVk
OiB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJp
YS1jb21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNkZWExOWFmZTI0MmVkZmU3MTU2YWUwNWM1YzkxZjcxN2ZlMjcxMWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlh
LWNvbWJvYm94LWhpZXJhcmNoeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB2
ZXJpZmllcyB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIG9mIEFSSUEgY29tYm9ib3hlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0FYUm9sZTogQVhDb21ib0JveCBBWFZhbHVlOiBv
cHRpb24gMQorb3B0aW9uIDIKKworICAgIEFYUm9sZTogQVhMaXN0IEFYVmFsdWU6IAorICAgICAg
ICBBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiAKKyAgICAgICAgQVhSb2xlOiBBWFN0YXRp
Y1RleHQgQVhWYWx1ZTogCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvYXJpYS1zZWxlY3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNlbGVjdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
ZjQzMGRmYTBmNGM2ZThmYWNhMDI0M2U2OThlNzUxYWVjYWY5MTQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0cyB0aGF0IGl0ZW1zIHdpdGgg
YXJpYS1zZWxlY3RlZCBhcmUgcmVwb3J0ZWQgYXMgc2VsZWN0ZWQgY2hpbGRyZW4gb2YgdGhlIHBh
cmVudCBjb250YWluZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitBWFJvbGU6
IEFYVGFiR3JvdXAgaGFzIDEgc2VsZWN0ZWQgY2hpbGQocmVuKQorCXNlY29uZCAoQVhSb2xlOiBB
WFJhZGlvQnV0dG9uKSBpc1NlbGVjdGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorQVhSb2xl
OiBBWE91dGxpbmUgaGFzIDIgc2VsZWN0ZWQgY2hpbGQocmVuKQorCWZpcnN0IChBWFJvbGU6IEFY
Um93KSBpc1NlbGVjdGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorCXRoaXJkIChBWFJvbGU6
IEFYUm93KSBpc1NlbGVjdGFibGU6IHRydWUgaXNTZWxlY3RlZDogdHJ1ZQorQVhSb2xlOiBBWFRh
YmxlIGhhcyAxIHNlbGVjdGVkIGNoaWxkKHJlbikKKwlzZWNvbmQgKEFYUm9sZTogQVhSb3cpIGlz
U2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitBWFJvbGU6IEFYVGFibGUgaGFzIDIg
c2VsZWN0ZWQgY2hpbGQocmVuKQorCWZpcnN0IC0gbGV2ZWwgMiAoQVhSb2xlOiBBWFJvdykgaXNT
ZWxlY3RhYmxlOiB0cnVlIGlzU2VsZWN0ZWQ6IHRydWUKKwl0aGlyZCAtIGxldmVsIDIgKEFYUm9s
ZTogQVhSb3cpIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZWxlY3RlZC1tZW51LWl0
ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2FyaWEtc2VsZWN0ZWQtbWVudS1pdGVtcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUwMWI1
ZTgyNDJjZTQwZGYxNTA3OTI5MDEzNmE5YTZmMWUwZGFmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2VsZWN0ZWQtbWVudS1p
dGVtcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0cyB0aGF0IGZvY3Vz
ZWQvYWN0aXZlIG1lbnUgaXRlbXMgYXJlIHJlcG9ydGVkIGFzIHNlbGVjdGVkIGNoaWxkcmVuIG9m
IHRoZSBwYXJlbnQgY29udGFpbmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Rmlyc3QgbWVudSBoYXMgMSBzZWxlY3RlZCBjaGlsZChyZW4pCisJaXRlbSAyIChBWFJvbGU6IEFY
TWVudUl0ZW0pIGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVu
dSBoYXMgMSBzZWxlY3RlZCBjaGlsZChyZW4pCisJaXRlbSA1IChBWFJvbGU6IEFYTWVudUl0ZW0p
IGlzU2VsZWN0YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitGaXJzdCBtZW51YmFyIGhhcyAx
IHNlbGVjdGVkIGNoaWxkKHJlbikKKwlFZGl0IChBWFJvbGU6IEFYTWVudUl0ZW0pIGlzU2VsZWN0
YWJsZTogdHJ1ZSBpc1NlbGVjdGVkOiB0cnVlCitTZWNvbmQgbWVudWJhciBoYXMgMSBzZWxlY3Rl
ZCBjaGlsZChyZW4pCisJVmlldyAoQVhSb2xlOiBBWE1lbnVJdGVtKSBpc1NlbGVjdGFibGU6IHRy
dWUgaXNTZWxlY3RlZDogdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>