<?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>248926</bug_id>
          
          <creation_ts>2022-12-07 19:53:01 -0800</creation_ts>
          <short_desc>AX ITM: Fix for tests concerning CaretBrowsing and PreventKeyboardEventDispatch in isolated tree mode.</short_desc>
          <delta_ts>2022-12-09 10:48:03 -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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1917460</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-12-07 19:53:01 -0800</bug_when>
    <thetext>Fix for 4 tests in ITM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917461</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-12-07 19:53:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/103101568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917464</commentid>
    <comment_count>2</comment_count>
      <attachid>463931</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-12-07 19:59:58 -0800</bug_when>
    <thetext>Created attachment 463931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917474</commentid>
    <comment_count>3</comment_count>
      <attachid>463931</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-12-07 20:41:55 -0800</bug_when>
    <thetext>Comment on attachment 463931
Patch

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

Nice work!

&gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:101
&gt; +        setProperty(AXPropertyName::PreventKeyboardDOMEventDispatch, value);

Is it required to set this property on the main-thread? Or could we do it on the secondary thread? I think the latter option would be better to yield the main-thread as soon as possible.

And as a follow-up, performFunctionOnMainThread calls into `callOnMainThreadAndWait`. Would it be safe to use something else that calls into `callOnMainThread` or `ensureOnMainThread` (which are async) here to free up the secondary thread immediately for serving requests? Same comment for setCaretBrowsingEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917554</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-12-08 05:25:35 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Comment on attachment 463931 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=463931&amp;action=review
&gt; 
&gt; Nice work!
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:101
&gt; &gt; +        setProperty(AXPropertyName::PreventKeyboardDOMEventDispatch, value);
&gt; 
&gt; Is it required to set this property on the main-thread? Or could we do it on
&gt; the secondary thread? I think the latter option would be better to yield the
&gt; main-thread as soon as possible.
&gt; 
&gt; And as a follow-up, performFunctionOnMainThread calls into
&gt; `callOnMainThreadAndWait`. Would it be safe to use something else that calls
&gt; into `callOnMainThread` or `ensureOnMainThread` (which are async) here to
&gt; free up the secondary thread immediately for serving requests? Same comment
&gt; for setCaretBrowsingEnabled.

setProperty accesses m_propertyMap which is accessed in both threads. So we need to call it on each thread when the other is blocked. getOrRetrievePropertyValue is currently calling setProperty on the main thread, so that&apos;s why I opted for doing so in this case. Maybe we can move setProperty to the AX thread including also the call in getOrRetrievePropertyValue, except for the initialization of the object, but that would be a separate change. At this point the safest option is to do the same as getOrRetrievePropertyValue. Given this, callOnMainThreadAndWait is required to block the AX thread while we call setProperty on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917988</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-12-09 10:48:01 -0800</bug_when>
    <thetext>Committed 257638@main (f198a4dc27e9): &lt;https://commits.webkit.org/257638@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 463931.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463931</attachid>
            <date>2022-12-07 19:59:58 -0800</date>
            <delta_ts>2022-12-09 10:48:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-248926-20221207225956.patch</filename>
            <type>text/plain</type>
            <size>36510</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA1ZDM4YjRkODgxNTdkY2ZhNGY5MTUwYTQzMmJhNGI1N2MxNzdjYzkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDcgRGVjIDIwMjIgMjA6MDg6NDEgLTA1MDAKU3ViamVjdDogW1BBVENIXSBB
WCBJVE06IEZpeCBmb3IgdGVzdHMgY29uY2VybmluZyBDYXJldEJyb3dzaW5nIGFuZAogUHJldmVu
dEtleWJvYXJkRXZlbnREaXNwYXRjaCBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4OTI2IDxyZGFyOi8vcHJvYmxlbS8xMDMx
MDE1Njg+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClByb3Blcmx5IGltcGxlbWVudGVk
IHRoZSBwcm9wZXJ0aWVzIENhcmV0QnJvd3NpbmdFbmFibGVkIGFuZCBQcmV2ZW50S2V5Ym9hcmRE
T01FdmVudERpc3BhdGNoIGluIEFYSXNvbGF0ZWRPYmplY3QuIFJld3JvdGUgdGhlIHRlc3RzIHRv
IGNvbWZvcm0gdG8gdGhlIElUTSBzdGFuZGFyZC4KCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS1pc29sYXRlZC10cmVlL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctdGFiLXNlbGVjdGlvbi1leHBlY3RlZC50eHQ6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctdGFiLXNlbGVjdGlvbi5o
dG1sOgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jlc291cmNlcy9hY2Nlc3NpYmls
aXR5LWhlbHBlci5qczoKKGNsZWFyU2VsZWN0aW9uQW5kRm9jdXNPbldlYkFyZWEpOgoqIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLWFycm93LW5hdi1leHBlY3Rl
ZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJy
b3ctbmF2Lmh0bWw6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3Np
bmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9jYXJldC1icm93c2luZy1hdHRyaWJ1dGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dDoKKiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3Bh
dGNoLmh0bWw6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHA6CihXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRDYXJldEJy
b3dzaW5nRW5hYmxlZCk6IE1vdmVkIHRvIHRoZSBtYWMgZmlsZS4KKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMu
bW06CihXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0
aWVzKToKKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2
ZW50RGlzcGF0Y2gpOgooV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6c2V0Q2FyZXRCcm93c2lu
Z0VuYWJsZWQpOgooV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmVudEtleWJvYXJkRE9N
RXZlbnREaXNwYXRjaCBjb25zdCk6IElubGluZSBpbiBoZWFkZXIuCi0tLQogLi4uL2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAgICAgIHwgICA5IC0tCiAuLi4vaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRlZHRy
ZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0gICB8ICAyOSArKy0tCiAuLi4vVGVzdEV4cGVj
dGF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgLQogLi4uL21hYy9jYXJldC1i
cm93c2luZy1hcnJvdy1uYXYtZXhwZWN0ZWQudHh0IHwgIDM3ICsrKy0tCiAuLi4vbWFjL2NhcmV0
LWJyb3dzaW5nLWFycm93LW5hdi5odG1sICAgICAgICAgfCAxMzEgKysrKysrKysrLS0tLS0tLS0t
CiAuLi4vbWFjL2NhcmV0LWJyb3dzaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgfCAgIDggKy0K
IC4uLi9tYWMvY2FyZXQtYnJvd3NpbmctYXR0cmlidXRlLmh0bWwgICAgICAgICB8ICAzMyArKy0t
LQogLi4uL2NhcmV0LWJyb3dzaW5nLXRhYi1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0IHwgIDI1ICsr
LS0KIC4uLi9tYWMvY2FyZXQtYnJvd3NpbmctdGFiLXNlbGVjdGlvbi5odG1sICAgICB8ICA3OSAr
KysrKystLS0tLQogLi4uZXZlbnQta2V5Ym9hcmQtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0
IHwgIDQyICsrKy0tLQogLi4uL21hYy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3BhdGNoLmh0
bWwgIHwgIDg4ICsrKysrKy0tLS0tLQogLi4uL21hYy9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1o
ZWxwZXIuanMgICAgIHwgICA0ICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAyMzUgaW5zZXJ0aW9ucygr
KSwgMjU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggODE0
M2JkYTgxODYyLi5lNGYyYWMzMjQ2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBA
IC02ODcsMTUgKzY4Nyw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0
UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHZhbHVlKQogICAgIH0pOwogfQogCi0jaWYgUExB
VEZPUk0oQ09DT0EpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBBWElzb2xhdGVkT2Jq
ZWN0OjpzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sIHZhbHVlKQotewotICAgIHBlcmZvcm1G
dW5jdGlvbk9uTWFpblRocmVhZChbJnZhbHVlXShBWENvcmVPYmplY3QqIG9iamVjdCkgewotICAg
ICAgICBvYmplY3QtPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKHZhbHVlKTsKLSAgICB9KTsKLX0K
LSNlbmRpZgotCiBTdHJpbmcgQVhJc29sYXRlZE9iamVjdDo6Y29tcHV0ZWRMYWJlbCgpCiB7CiAg
ICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgYnkgdGhlIHdlYiBpbnNwZWN0b3IgdGhhdCBjYWxscyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZExhYmVsKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKaW5kZXggNjBkODQ5MGE4ZGNmLi5kOGIyYmVjZWZhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmgKQEAgLTM1Myw3ICszNTMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBkb2N1bWVudFVS
SSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBkb2N1bWVudEVuY29kaW5nKCkgY29uc3Qg
b3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYm9vbCBwcmV2ZW50S2V5Ym9hcmRE
T01FdmVudERpc3BhdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBwcmV2ZW50S2V5Ym9h
cmRET01FdmVudERpc3BhdGNoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0
ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsg
fQogI2VuZGlmCiAKICAgICAvLyBQbGFpblRleHRSYW5nZSBzdXBwb3J0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRP
YmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9t
YWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQppbmRleCA1NjQ5N2EyNjFmNTcuLmRjZTE2YTQ0ZGU1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
bWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KQEAgLTM0LDE0ICsz
NCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6
aW5pdGlhbGl6ZVBsYXRmb3JtUHJvcGVydGllcyhjb25zdCBSZWY8Y29uc3QgQVhDb3JlT2JqZWN0
PiYgb2JqZWN0LCBJc1Jvb3QgaXNSb290KQordm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFs
aXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IFJlZjxjb25zdCBBWENvcmVPYmplY3Q+JiBvYmpl
Y3QsIElzUm9vdCkKIHsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQ
REZBbm5vdGF0aW9uQXR0cmlidXRlLCBvYmplY3QtPmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlZWNoSGludCwgb2Jq
ZWN0LT5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7Ci0gICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJvd3NpbmdFbmFibGVkLCBvYmplY3QtPmNh
cmV0QnJvd3NpbmdFbmFibGVkKCkpOwogCi0gICAgaWYgKGlzUm9vdCA9PSBJc1Jvb3Q6OlllcykK
KyAgICBpZiAob2JqZWN0LT5pc1dlYkFyZWEoKSkgewogICAgICAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LT5wcmV2
ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKCkpOworICAgICAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6Q2FyZXRCcm93c2luZ0VuYWJsZWQsIG9iamVjdC0+Y2FyZXRCcm93c2luZ0Vu
YWJsZWQoKSk7CisgICAgfQogCiAgICAgaWYgKG9iamVjdC0+aXNTY3JvbGxWaWV3KCkpIHsKICAg
ICAgICAgbV9wbGF0Zm9ybVdpZGdldCA9IG9iamVjdC0+cGxhdGZvcm1XaWRnZXQoKTsKQEAgLTkw
LDE3ICs5MSwyNSBAQCBBWFRleHRNYXJrZXJSYW5nZVJlZiBBWElzb2xhdGVkT2JqZWN0Ojp0ZXh0
TWFya2VyUmFuZ2VGb3JOU1JhbmdlKGNvbnN0IE5TUmFuZ2UmCiAgICAgfSk7CiB9CiAKLWJvb2wg
QVhJc29sYXRlZE9iamVjdDo6cHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCgpIGNvbnN0
Cit2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0
Y2goYm9vbCB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgp
KQotICAgICAgICByZXR1cm4gcm9vdC0+Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzV2ViQXJlYSgpKTsKKwor
ICAgIHBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChbJnZhbHVlLCB0aGlzXShBWENvcmVPYmpl
Y3QqIG9iamVjdCkgeworICAgICAgICBvYmplY3QtPnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50
RGlzcGF0Y2godmFsdWUpOworICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6UHJl
dmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgdmFsdWUpOworICAgIH0pOwogfQogCi12b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9v
bCB2YWx1ZSkKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQo
Ym9vbCB2YWx1ZSkKIHsKLSAgICBwZXJmb3JtRnVuY3Rpb25Pbk1haW5UaHJlYWQoWyZ2YWx1ZV0o
QVhDb3JlT2JqZWN0KiBvYmplY3QpIHsKLSAgICAgICAgb2JqZWN0LT5zZXRQcmV2ZW50S2V5Ym9h
cmRET01FdmVudERpc3BhdGNoKHZhbHVlKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNXZWJBcmVhKCkpOworCisgICAgcGVyZm9ybUZ1bmN0aW9uT25NYWluVGhy
ZWFkKFsmdmFsdWUsIHRoaXNdKEFYQ29yZU9iamVjdCogb2JqZWN0KSB7CisgICAgICAgIG9iamVj
dC0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQodmFsdWUpOworICAgICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6Q2FyZXRCcm93c2luZ0VuYWJsZWQsIHZhbHVlKTsKICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5LWlzb2xhdGVkLXRyZWUv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAzOTBmZmFjYTdkMjguLjA0MzY1NjYxZTY0NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTEzLDE1ICsxMywxMSBAQCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1m
b3ItYWN0aW9ucy1taW1pYy1yZWFsLWtleS1ldmVudHMuaHRtbCBbIEZhaWx1cmUgXQogYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1pbmNyZW1lbnQtYWN0aW9ucy5odG1sIFsgRmFp
bHVyZSBdCiBhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC5odG1sIFsgRmFp
bHVyZSBdCiBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXRyZWUuaHRtbCBbIEZhaWx1cmUgXQotYWNj
ZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2Lmh0bWwgWyBGYWlsdXJlIF0K
LWFjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLWF0dHJpYnV0ZS5odG1sCi1hY2Nlc3Np
YmlsaXR5L21hYy9jYXJldC1icm93c2luZy10YWItc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0K
IGFjY2Vzc2liaWxpdHkvbWFjL2NyYXNoLWludmFsaWQtdGV4dC1tYXJrZXItbm9kZS5odG1sIFsg
RmFpbHVyZSBdCiBhY2Nlc3NpYmlsaXR5L21hYy9kb2N1bWVudC1hdHRyaWJ1dGVzLmh0bWwgWyBG
YWlsdXJlIF0KIGFjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNy
b25pemluZy1ub3QtY2xlYXJpbmcuaHRtbCBbIEZhaWx1cmUgXQogYWNjZXNzaWJpbGl0eS9tYWMv
ZnJhbWUtd2l0aC10aXRsZS5odG1sIFsgRmFpbHVyZSBdCiBhY2Nlc3NpYmlsaXR5L21hYy9wcmVz
cy1hY3Rpb24tbm90LWV4cG9zZWQtZm9yLWV2ZW50LWRlbGVnYXRpb24uaHRtbCBbIEZhaWx1cmUg
XQotYWNjZXNzaWJpbGl0eS9tYWMvcHJldmVudC1rZXlib2FyZC1ldmVudC1kaXNwYXRjaC5odG1s
IFsgRmFpbHVyZSBdCiBhY2Nlc3NpYmlsaXR5L21hYy9wc2V1ZG8tZWxlbWVudC10ZXh0LW1hcmtl
cnMuaHRtbCBbIEZhaWx1cmUgXQogYWNjZXNzaWJpbGl0eS9tYWMvcnVieS1oaWVyYXJjaHktcm9s
ZXMuaHRtbCBbIEZhaWx1cmUgXQogYWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXByZWRpY2F0ZS1m
cm9tLWlnbm9yZWQtZWxlbWVudC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy1hcnJvdy1uYXYtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ct
bmF2LWV4cGVjdGVkLnR4dAppbmRleCBjZjUwMTE5OGI1NzcuLmFkMzFiMjhiNTM2OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ct
bmF2LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJl
dC1icm93c2luZy1hcnJvdy1uYXYtZXhwZWN0ZWQudHh0CkBAIC0xLDI2ICsxLDIzIEBACi1Gb28K
LUJhcgotQmF6CiBUaGlzIHRlc3RzIGNhcmV0IGJyb3dzaW5nIHdoZW4gYSBrZXlkb3duIGhhbmRs
ZXIgbW92ZXMgZm9jdXMuCiAKLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQorUEFTUzogd2Vi
QXJlYS5yb2xlID09PSAnQVhSb2xlOiBBWFdlYkFyZWEnCitQQVNTOiBjYXJldEJyb3dzaW5nRW5h
YmxlZCh3ZWJBcmVhKSA9PT0gZmFsc2UKK1BBU1M6IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVu
aGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQgPT09IHRydWUKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0
TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0g
J0FYVmFsdWU6IEZvbycKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRN
YXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FYVmFsdWU6IEJhcicKK1BBU1M6
IGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5z
dHJpbmdWYWx1ZSA9PT0gJ0FYVmFsdWU6IEJheicKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFya2Vy
T2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FYVmFs
dWU6IEZvbycKK1BBU1M6IGNhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEpID09PSB0cnVlCitQ
QVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJl
YSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVlOiBGb28nCitQQVNTOiBlbGVtZW50QXRTdGFydE1h
cmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgPT09ICdB
WFZhbHVlOiBGb28nCitQQVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVlOiBGb28nCitQQVNTOiBl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUgPT09ICdBWFZhbHVlOiBCYXInCitQQVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9m
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVl
OiBGb28nCitQQVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVlOiBCYXInCiAKLVBBU1Mgd2ViQXJl
YS5yb2xlIGlzICdBWFJvbGU6IEFYV2ViQXJlYScKLVBBU1MgY2FyZXRCcm93c2luZ0VuYWJsZWQo
d2ViQXJlYSkgaXMgZmFsc2UKLVBBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5RW5hYmxlZCBpcyB0cnVlCi1QQVNTIGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTog
Rm9vJwotUEFTUyBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uo
d2ViQXJlYSkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IEJhcicKLVBBU1MgZWxlbWVudEF0U3Rh
cnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIGlz
ICdBWFZhbHVlOiBCYXonCi1QQVNTIGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRN
YXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogRm9vJwotUEFTUyBj
YXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSBpcyB0cnVlCi1QQVNTIGVsZW1lbnRBdFN0YXJ0
TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSBpcyAn
QVhWYWx1ZTogRm9vJwotUEFTUyBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IEZvbycKLVBBU1MgZWxl
bWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmlu
Z1ZhbHVlIGlzICdBWFZhbHVlOiBGb28nCi1QQVNTIGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxl
Y3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogQmFy
JwotUEFTUyBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2Vi
QXJlYSkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IEZvbycKLVBBU1MgZWxlbWVudEF0U3RhcnRN
YXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIGlzICdB
WFZhbHVlOiBCYXInCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKLQorRm9vCitCYXIKK0JhegpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy1hcnJvdy1uYXYuaHRtbAppbmRleCBlNGRhMmJi
MTg0ZWEuLjQ2MDcwYzQzYzNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2Lmh0bWwKQEAgLTEsODQgKzEs
ODUgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hY2Nlc3NpYmlsaXR5
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmls
aXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FjY2Vzc2li
aWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJib2R5IiBvbmtl
eWRvd249ImtleWRvd24oZXZlbnQpIj4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiBr
ZXlkb3duKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZTsKLSAg
ICAgICAgICAgIHZhciBjdXJyZW50SWQgPSBwYXJzZUludChkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmlkKTsKLSAgICAgICAgICAgIGlmIChpc05hTihjdXJyZW50SWQpKSB7IGN1cnJlbnRJZCA9IDA7
IH0KLSAgICAgICAgICAgIGlmIChrZXkgPT0gMzkpIHsgY3VycmVudElkKys7IH0KLSAgICAgICAg
ICAgIGlmIChjdXJyZW50SWQgPCAxKSB7IGN1cnJlbnRJZCA9IDM7IH0gCi0gICAgICAgICAgICBl
bHNlIGlmIChjdXJyZW50SWQgPiAzKSB7IGN1cnJlbnRJZCA9IDE7IH0KLSAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGN1cnJlbnRJZCkuZm9jdXMoKTsKLSAgICAgICAgfQotICAg
IDwvc2NyaXB0PgotICAgIDxkaXY+Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICAgIDxsaT48YSBp
ZD0iMSIgaHJlZj0iIj5Gb288L2E+PC9saT4KLSAgICAgICAgICAgIDxsaT48YSBpZD0iMiIgaHJl
Zj0iIj5CYXI8L2E+PC9saT4KLSAgICAgICAgICAgIDxsaT48YSBpZD0iMyIgaHJlZj0iIj5CYXo8
L2E+PC9saT4KLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLSAgICA8c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNhcmV0
IGJyb3dzaW5nIHdoZW4gYSBrZXlkb3duIGhhbmRsZXIgbW92ZXMgZm9jdXMuIik7Ci0gICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Cis8ZGl2PgorICAgIDx1bD4KKyAgICAgICAgPGxpPjxhIGlkPSIxIiBocmVmPSIiPkZvbzwvYT48
L2xpPgorICAgICAgICA8bGk+PGEgaWQ9IjIiIGhyZWY9IiI+QmFyPC9hPjwvbGk+CisgICAgICAg
IDxsaT48YSBpZD0iMyIgaHJlZj0iIj5CYXo8L2E+PC9saT4KKyAgICA8L3VsPgorPC9kaXY+CiAK
LSAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlciAmJiB3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24ga2V5ZG93bihldmVudCkgeworICAg
ICAgICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZTsKKyAgICAgICAgdmFyIGN1cnJlbnRJZCA9IHBh
cnNlSW50KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQpOworICAgICAgICBpZiAoaXNOYU4oY3Vy
cmVudElkKSkKKyAgICAgICAgICAgIGN1cnJlbnRJZCA9IDA7CisgICAgICAgIGlmIChrZXkgPT0g
MzkpCisgICAgICAgICAgICBjdXJyZW50SWQrKzsKKyAgICAgICAgaWYgKGN1cnJlbnRJZCA8IDEp
CisgICAgICAgICAgICBjdXJyZW50SWQgPSAzOworICAgICAgICBlbHNlIGlmIChjdXJyZW50SWQg
PiAzKQorICAgICAgICAgICAgY3VycmVudElkID0gMTsKIAotICAgICAgICAgICAgdmFyIHdlYkFy
ZWEgPSBjbGVhclNlbGVjdGlvbkFuZEZvY3VzT25XZWJBcmVhKCk7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGN1cnJlbnRJZCkuZm9jdXMoKTsKKyAgICB9CisKKyAgICBpZiAod2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgeworICAg
ICAgICB2YXIgb3V0cHV0ID0gIlRoaXMgdGVzdHMgY2FyZXQgYnJvd3Npbmcgd2hlbiBhIGtleWRv
d24gaGFuZGxlciBtb3ZlcyBmb2N1cy5cblxuIjsKKyAgICAgICAgdmFyIHdlYkFyZWEgPSBjbGVh
clNlbGVjdGlvbkFuZEZvY3VzT25XZWJBcmVhKCk7CisKKyAgICAgICAgLy8gRW5hYmxlIGVuaGFu
Y2VkIGFjY2Vzc2liaWxpdHkgKG5lY2Vzc2FyeSBmb3IgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBz
ZWxlY3Rpb24gaGFuZGxpbmcpLgorICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFi
bGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisgICAgICAgIG91dHB1dCArPSBleHBlY3Qo
ImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQiLCAi
dHJ1ZSIpOwogCi0gICAgICAgICAgICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAo
bmVjZXNzYXJ5IGZvciBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZyku
Ci0gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkodHJ1ZSk7Ci0gICAgICAgICAgICBzaG91bGRCZSgiYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCIsICJ0cnVlIik7CisgICAgICAgIC8v
IEZvY3VzIGludG8gZmlyc3QgbGluaworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdo
dEFycm93Iik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImVsZW1lbnRBdFN0YXJ0TWFya2Vy
T2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICInQVhWYWx1
ZTogRm9vJyIpOwogCi0gICAgICAgICAgICAvLyBGb2N1cyBpbnRvIGZpcnN0IGxpbmsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2Vi
QXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEZvbyciKTsKKyAgICAgICAgLy8gTmF2aWdh
dGluZyB3aXRoIGFycm93cywgd2l0aG91dCBjYXJldCBicm93c2luZywgd2lsbCBwdWxsIHNlbGVj
dGlvbiBpbnRvIHRoZSBkaWZmZXJlbnQgbGlua3MKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigicmlnaHRBcnJvdyIpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJlbGVtZW50QXRTdGFy
dE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAi
J0FYVmFsdWU6IEJhciciKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJv
dyIpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEJh
eiciKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAg
ICBvdXRwdXQgKz0gZXhwZWN0KCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEZvbyciKTsKIAotICAg
ICAgICAgICAgLy8gTmF2aWdhdGluZyB3aXRoIGFycm93cywgd2l0aG91dCBjYXJldCBicm93c2lu
Zywgd2lsbCBwdWxsIHNlbGVjdGlvbiBpbnRvIHRoZSBkaWZmZXJlbnQgbGlua3MKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJl
YSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEJhciciKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50
QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFs
dWUiLCAiJ0FYVmFsdWU6IEJheiciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
InJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtl
ck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFs
dWU6IEZvbyciKTsKKyAgICAgICAgLy8gRG8gaXQgYWdhaW4gd2l0aCBjYXJldCBicm93c2luZyBv
bgorICAgICAgICBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhLCB0cnVlKTsKKyAgICAg
ICAgb3V0cHV0ICs9IGV4cGVjdCgiY2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSkiLCAidHJ1
ZSIpOwogCi0gICAgICAgICAgICAvLyBEbyBpdCBhZ2FpbiB3aXRoIGNhcmV0IGJyb3dzaW5nIG9u
Ci0gICAgICAgICAgICBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhLCB0cnVlKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJjYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSIsICJ0cnVl
Iik7CisgICAgICAgIC8vIEFycm93IHRvIHRoZSBzdGFydCBvZiBGb28KKyAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
ImxlZnRBcnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsK
IAotICAgICAgICAgICAgLy8gQXJyb3cgdG8gdGhlIHN0YXJ0IG9mIEZvbwotICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7Ci0gICAgICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
ImxlZnRBcnJvdyIpOworICAgICAgICAvLyBOYXZpZ2F0aW5nIHdpdGggYXJyb3dzLCB3aXRoIGNh
cmV0IGJyb3dzaW5nLCB3aWxsIG1vdmUgdGhlIGNhcmV0IHRocm91Z2ggdGhlIGNoYXJhY3RlcnMg
b2YgdGhlIGVsZW1lbnQgYmVmb3JlIG1vdmluZyB0byB0aGUgbmV4dCBlbGVtZW50CisgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4
cGVjdCgiZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFy
ZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBGb28nIik7CisgICAgICAgIGV2ZW50U2VuZGVy
LmtleURvd24oInJpZ2h0QXJyb3ciKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZWxlbWVu
dEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1Zh
bHVlIiwgIidBWFZhbHVlOiBGb28nIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJp
Z2h0QXJyb3ciKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZWxlbWVudEF0U3RhcnRNYXJr
ZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZh
bHVlOiBGb28nIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVk
VGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBCYXInIik7
CiAKLSAgICAgICAgICAgIC8vIE5hdmlnYXRpbmcgd2l0aCBhcnJvd3MsIHdpdGggY2FyZXQgYnJv
d3NpbmcsIHdpbGwgbW92ZSB0aGUgY2FyZXQgdGhyb3VnaCB0aGUgY2hhcmFjdGVycyBvZiB0aGUg
ZWxlbWVudCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0IGVsZW1lbnQKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEZvbyciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oInJpZ2h0QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFy
dE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAi
J0FYVmFsdWU6IEZvbyciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0
QXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEZv
byciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEJhciciKTsKKyAgICAg
ICAgLy8gVXAgJiBkb3duIGFycm93cyBzaG91bGQgbW92ZSB0aHJvdWdoIHRoZSBsaXN0IGl0ZW1z
CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgb3V0cHV0
ICs9IGV4cGVjdCgiZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdl
KHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBGb28nIik7CisgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUiLCAiJ0FYVmFsdWU6IEJhciciKTsKIAotICAgICAgICAgICAgLy8gVXAgJiBkb3du
IGFycm93cyBzaG91bGQgbW92ZSB0aHJvdWdoIHRoZSBsaXN0IGl0ZW1zCi0gICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgiZWxl
bWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmlu
Z1ZhbHVlIiwgIidBWFZhbHVlOiBGb28nIik7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCJkb3duQXJyb3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1h
cmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FY
VmFsdWU6IEJhciciKTsKKyAgICAgICAgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSwg
ZmFsc2UpOwogCi0gICAgICAgICAgICBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhLCBm
YWxzZSk7Ci0gICAgICAgIH0KKyAgICAgICAgZGVidWcob3V0cHV0KTsKICAgICB9Ci0gICAgPC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXR0
cmlidXRlLWV4cGVjdGVkLnR4dAppbmRleCBlZDdlNWFkNTkxZDEuLmVkZDZmY2RlZWQxOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXR0
cmlidXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9j
YXJldC1icm93c2luZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKLVRo
aXMgdGVzdHMgc2V0dGluZyBjYXJldCBicm93c2luZyBwcmVmZXJlbmNlIHZpYSBheCBhcGkuCitU
aGlzIHRlc3RzIHNldHRpbmcgY2FyZXQgYnJvd3NpbmcgcHJlZmVyZW5jZSB2aWEgQVggQVBJLgog
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCitQQVNTOiBjYXJldEJyb3dzaW5nRW5hYmxlZCh3
ZWJBcmVhKSA9PT0gdHJ1ZQorUEFTUzogY2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSkgPT09
IGZhbHNlCiAKLQotUEFTUyBjYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSBpcyB0cnVlCi1Q
QVNTIGNhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEpIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLWF0dHJpYnV0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXR0cmlidXRlLmh0bWwK
aW5kZXggY2UwZTBmNTYzMThjLi5hNDA4OTc3Yjg0M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLWF0dHJpYnV0ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLWF0dHJpYnV0ZS5odG1s
CkBAIC0xLDI4ICsxLDI1IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
YWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBp
ZD0iYm9keSI+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2V0dGluZyBjYXJl
dCBicm93c2luZyBwcmVmZXJlbmNlIHZpYSBheCBhcGkuIik7Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLQotICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzxib2R5PgogCi0gIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBsZXQgb3V0cHV0ID0gIlRoaXMgdGVz
dHMgc2V0dGluZyBjYXJldCBicm93c2luZyBwcmVmZXJlbmNlIHZpYSBBWCBBUEkuXG5cbiI7Cisg
ICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQu
Y2hpbGRBdEluZGV4KDApOwogCi0gICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHNldENhcmV0QnJvd3Np
bmdFbmFibGVkKHdlYkFyZWEsIHRydWUpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJjYXJl
dEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSIsICJ0cnVlIik7CiAKLSAgICBzZXRDYXJldEJyb3dz
aW5nRW5hYmxlZCh3ZWJBcmVhLCB0cnVlKTsKLSAgICBzaG91bGRCZSgiY2FyZXRCcm93c2luZ0Vu
YWJsZWQod2ViQXJlYSkiLCAidHJ1ZSIpOworICAgICAgICBzZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZCh3ZWJBcmVhLCBmYWxzZSk7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImNhcmV0QnJvd3Np
bmdFbmFibGVkKHdlYkFyZWEpIiwgImZhbHNlIik7CiAKLSAgICBzZXRDYXJldEJyb3dzaW5nRW5h
YmxlZCh3ZWJBcmVhLCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUoImNhcmV0QnJvd3NpbmdFbmFibGVk
KHdlYkFyZWEpIiwgImZhbHNlIik7Ci0gIH0KLX0KKyAgICAgICAgZGVidWcob3V0cHV0KTsKKyAg
ICB9CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9j
YXJldC1icm93c2luZy10YWItc2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLXRhYi1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0
CmluZGV4IGIxM2I3ZDljMTg4NC4uMjU5ZWNlODhiMWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy10YWItc2VsZWN0aW9uLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy10
YWItc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSwyMSArMSwxOCBAQAotZm9vCi1BIHBhcmFn
cmFwaCB3aXRoIGEgc2luZ2xlIGxpbmUKLQotYmFyCiBUaGlzIHRlc3RzIGNhcmV0IGJyb3dzaW5n
IGZvciBodG1sIHNlbGVjdCBlbGVtZW50cy4KIAotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
UEFTUzogd2ViQXJlYS5yb2xlID09PSAnQVhSb2xlOiBBWFdlYkFyZWEnCitQQVNTOiBjYXJldEJy
b3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSA9PT0gZmFsc2UKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFy
a2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FY
VmFsdWU6IGZvbycKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FYVmFsdWU6IGZvbycKK1BBU1M6IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQgPT09IHRy
dWUKK1BBU1M6IGNhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEpID09PSB0cnVlCitQQVNTOiBl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUgPT09ICdBWFZhbHVlOiBmb28nCitQQVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9m
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVl
OiBiYXInCiAKLQotUEFTUyB3ZWJBcmVhLnJvbGUgaXMgJ0FYUm9sZTogQVhXZWJBcmVhJwotUEFT
UyBjYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSBpcyBmYWxzZQotUEFTUyBlbGVtZW50QXRT
dGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUg
aXMgJ0FYVmFsdWU6IGZvbycKLVBBU1MgZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBmb28nCi1QQVNT
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQgaXMg
dHJ1ZQotUEFTUyBjYXJldEJyb3dzaW5nRW5hYmxlZCh3ZWJBcmVhKSBpcyB0cnVlCi1QQVNTIGVs
ZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJp
bmdWYWx1ZSBpcyAnQVhWYWx1ZTogZm9vJwotUEFTUyBlbGVtZW50QXRTdGFydE1hcmtlck9mU2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFsdWU6IGJh
cicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQorZm9v
CitBIHBhcmFncmFwaCB3aXRoIGEgc2luZ2xlIGxpbmUKIAorYmFyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy10YWItc2VsZWN0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2luZy10YWItc2Vs
ZWN0aW9uLmh0bWwKaW5kZXggY2I0NDg3NmRjZWI4Li5kYTgwZWEzODI3ZGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NhcmV0LWJyb3dzaW5nLXRhYi1zZWxlY3Rp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jYXJldC1icm93c2lu
Zy10YWItc2VsZWN0aW9uLmh0bWwKQEAgLTEsNDcgKzEsNDYgQEAKIDwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFRh
YnNUb0xpbmtzPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KLTxib2R5IGlkPSJib2R5Ij4KLSAgICA8YSBocmVmPSIiPmZvbzwvYT4KLSAgICA8cCBpZD0i
cGFyMSI+QSBwYXJhZ3JhcGggd2l0aCBhIHNpbmdsZSBsaW5lPC9wPgotICAgIDxhIGhyZWY9IiI+
YmFyPC9hPgotICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICAgIDxzY3JpcHQ+Ci0gICAg
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2FyZXQgYnJvd3NpbmcgZm9yIGh0bWwgc2VsZWN0IGVs
ZW1lbnRzLiIpOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLQotICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgewotCi0gICAgICAgICAgICB2YXIgd2ViQXJl
YSA9IGNsZWFyU2VsZWN0aW9uQW5kRm9jdXNPbldlYkFyZWEoKTsKLQotICAgICAgICAgICAgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGZhbHNlKTsK
LQotICAgICAgICAgICAgLy8gVGFiIChzaG91bGQgTk9UIG1vdmUgc2VsZWN0aW9uIGJlZm9yZSBl
bmhhbmNlZCBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQpLgotICAgICAgICAgICAgc2hvdWxkQmUo
ImVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5z
dHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogZm9vJyIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiXHQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtl
ck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFs
dWU6IGZvbyciKTsKLQotICAgICAgICAgICAgLy8gRW5hYmxlIGVuaGFuY2VkIGFjY2Vzc2liaWxp
dHkgKG5lY2Vzc2FyeSBmb3IgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBzZWxlY3Rpb24gaGFuZGxp
bmcpLgotICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5KHRydWUpOwotICAgICAgICAgICAgc2hvdWxkQmUoImFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQiLCAidHJ1ZSIpOwotCi0gICAg
ICAgICAgICAvLyBFbmFibGUgY2FyZXQgYnJvd3Npbmcgc28gdGhhdCB0YWJiaW5nIHdpbGwgbW9k
aWZ5IHNlbGVjdGlvbgotICAgICAgICAgICAgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJl
YSwgdHJ1ZSk7Ci0gICAgICAgICAgICBzaG91bGRCZSgiY2FyZXRCcm93c2luZ0VuYWJsZWQod2Vi
QXJlYSkiLCAidHJ1ZSIpOwotCi0gICAgICAgICAgICAvLyBUYWIgdG8gbW92ZSBmb2N1cyB0byBu
ZXh0IGxpbmsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IGZv
byciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlx0Iik7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgiZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdl
KHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBiYXInIik7Ci0KLSAgICAgICAgICAg
IHNldENhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEsIGZhbHNlKTsKLSAgICAgICAgfQorPGJv
ZHk+CisKKzxhIGhyZWY9IiI+Zm9vPC9hPgorPHAgaWQ9InBhcjEiPkEgcGFyYWdyYXBoIHdpdGgg
YSBzaW5nbGUgbGluZTwvcD4KKzxhIGhyZWY9IiI+YmFyPC9hPgorCis8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgICAgIHZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0cyBjYXJldCBicm93c2luZyBmb3IgaHRt
bCBzZWxlY3QgZWxlbWVudHMuXG5cbiI7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSBjbGVhclNl
bGVjdGlvbkFuZEZvY3VzT25XZWJBcmVhKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGZhbHNlKTsKKworICAgICAgICAvLyBU
YWIgKHNob3VsZCBOT1QgbW92ZSBzZWxlY3Rpb24gYmVmb3JlIGVuaGFuY2VkIGFjY2Vzc2liaWxp
dHkgaXMgZW5hYmxlZCkuCisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImVsZW1lbnRBdFN0YXJ0
TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICIn
QVhWYWx1ZTogZm9vJyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJcdCIpOworICAg
ICAgICBvdXRwdXQgKz0gZXhwZWN0KCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IGZvbyciKTsKKwor
ICAgICAgICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAobmVjZXNzYXJ5IGZvciBh
Y2Nlc3NpYmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZykuCisgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKyAg
ICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5RW5hYmxlZCIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gRW5hYmxlIGNhcmV0
IGJyb3dzaW5nIHNvIHRoYXQgdGFiYmluZyB3aWxsIG1vZGlmeSBzZWxlY3Rpb24KKyAgICAgICAg
c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSwgdHJ1ZSk7CisgICAgICAgIG91dHB1dCAr
PSBleHBlY3QoImNhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEpIiwgInRydWUiKTsKKworICAg
ICAgICAvLyBUYWIgdG8gbW92ZSBmb2N1cyB0byBuZXh0IGxpbmsKKyAgICAgICAgb3V0cHV0ICs9
IGV4cGVjdCgiZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdl
YkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiBmb28nIik7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oIlx0Iik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImVsZW1lbnRBdFN0
YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIs
ICInQVhWYWx1ZTogYmFyJyIpOworCisgICAgICAgIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKHdl
YkFyZWEsIGZhbHNlKTsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOwogICAgIH0KLSAgICA8L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3ByZXZlbnQta2V5Ym9hcmQtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcHJldmVudC1rZXli
b2FyZC1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKaW5kZXggYjRkNmI4MmU5Yzg2Li40MTlj
NWM4MzJkMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3ByZXZl
bnQta2V5Ym9hcmQtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3ByZXZlbnQta2V5Ym9hcmQtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0
ZWQudHh0CkBAIC0xLDI5ICsxLDI3IEBACi0xCi0KLTIKLQotMgotCiBUaGlzIHRlc3RzIGlnbm9y
aW5nIGphdmFzY3JpcHQga2V5IGhhbmRsZXJzIHRoYXQgY29uc3VtZSBrZXkgZXZlbnRzLgogCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KK1BBU1M6IHdlYkFyZWEucm9sZSA9PT0gJ0FYUm9s
ZTogQVhXZWJBcmVhJworUEFTUzogY2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSkgPT09IGZh
bHNlCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmhhbmNlZEFjY2Vzc2liaWxpdHlF
bmFibGVkID09PSBmYWxzZQorUEFTUzogcHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh3
ZWJBcmVhKSA9PT0gZmFsc2UKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FYVmFsdWU6IDEnCitQQVNT
OiBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSku
c3RyaW5nVmFsdWUgPT09ICdBWFZhbHVlOiAxJworUEFTUzogZWxlbWVudEF0U3RhcnRNYXJrZXJP
ZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlID09PSAnQVhWYWx1
ZTogMScKK1BBU1M6IGtleWNvdW50KCkgPT09ICcyJworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCA9PT0gdHJ1ZQorUEFTUzogcHJldmVu
dEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh3ZWJBcmVhKSA9PT0gdHJ1ZQorUEFTUzogZWxlbWVu
dEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1Zh
bHVlID09PSAnQVhWYWx1ZTogMScKK1BBU1M6IGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSA9PT0gJ0FYVmFsdWU6IDEnCitQ
QVNTOiBlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJl
YSkuc3RyaW5nVmFsdWUgPT09ICdBWFZhbHVlOiAyJworUEFTUzoga2V5Y291bnQoKSA9PT0gJzIn
CiAKLVBBU1Mgd2ViQXJlYS5yb2xlIGlzICdBWFJvbGU6IEFYV2ViQXJlYScKLVBBU1MgY2FyZXRC
cm93c2luZ0VuYWJsZWQod2ViQXJlYSkgaXMgZmFsc2UKLVBBU1MgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCBpcyBmYWxzZQotUEFTUyBwcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEpIGlzIGZhbHNlCi1QQVNTIGVsZW1lbnRB
dFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1
ZSBpcyAnQVhWYWx1ZTogMScKLVBBU1MgZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiAxJwotUEFTUyBl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUgaXMgJ0FYVmFsdWU6IDEnCi1QQVNTIGtleWNvdW50KCkgaXMgJzInCi1QQVNTIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQgaXMgdHJ1
ZQotUEFTUyBwcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEpIGlzIHRydWUK
LVBBU1MgZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFy
ZWEpLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiAxJwotUEFTUyBlbGVtZW50QXRTdGFydE1hcmtl
ck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUgaXMgJ0FYVmFs
dWU6IDEnCi1QQVNTIGVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5n
ZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSBpcyAnQVhWYWx1ZTogMicKLVBBU1Mga2V5Y291bnQoKSBp
cyAnMicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQor
MQorCisyCisKKzIKKwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3BhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3BhdGNoLmh0bWwKaW5kZXgg
ZDZlNWJiMDAyZDFlLi40MjNmNzliMDBkNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3ByZXZlbnQta2V5Ym9hcmQtZXZlbnQtZGlzcGF0Y2guaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9wcmV2ZW50LWtleWJvYXJkLWV2ZW50LWRpc3Bh
dGNoLmh0bWwKQEAgLTEsMTEgKzEsMTkgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiIG9ua2V5ZG93bj0icmV0
dXJuIGtleWRvd24oKTsiPgotICAgIDxzY3JpcHQ+CisKKzxkaXY+CisgICAgPHA+MTwvcD4KKyAg
ICA8cD4yPC9wPgorICAgIDxwIGlkPSJrZXlkb3duY291bnQiPjA8cD4KKzwvZGl2PgorCis8c2Ny
aXB0PgogICAgIGZ1bmN0aW9uIHByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2god2ViQXJl
YSkgewogICAgICAgICByZXR1cm4gd2ViQXJlYS5ib29sQXR0cmlidXRlVmFsdWUoIkFYUHJldmVu
dEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCIpOwogICAgIH0KQEAgLTIwLDU4ICsyOCw0NiBAQAog
ICAgIGZ1bmN0aW9uIGtleWNvdW50KCkgewogICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImtleWRvd25jb3VudCIpLmlubmVySFRNTDsKICAgICB9Ci0gICAgPC9zY3JpcHQ+
Ci0gICAgPGRpdj4KLSAgICAgICAgPHA+MTwvcD4KLSAgICAgICAgPHA+MjwvcD4KLSAgICAgICAg
PHAgaWQ9ImtleWRvd25jb3VudCI+MDxwPgotICAgIDwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotICAgIDxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgaWdu
b3JpbmcgamF2YXNjcmlwdCBrZXkgaGFuZGxlcnMgdGhhdCBjb25zdW1lIGtleSBldmVudHMuIik7
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlciAm
JiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB2YXIgb3V0cHV0ID0gIlRo
aXMgdGVzdHMgaWdub3JpbmcgamF2YXNjcmlwdCBrZXkgaGFuZGxlcnMgdGhhdCBjb25zdW1lIGtl
eSBldmVudHMuXG5cbiI7CisgICAgICAgIHZhciB3ZWJBcmVhID0gY2xlYXJTZWxlY3Rpb25BbmRG
b2N1c09uV2ViQXJlYSgpOworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVF
bmhhbmNlZEFjY2Vzc2liaWxpdHkoZmFsc2UpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkIiwgImZh
bHNlIik7CisgICAgICAgIHNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2god2ViQXJl
YSwgZmFsc2UpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJwcmV2ZW50S2V5Ym9hcmRET01F
dmVudERpc3BhdGNoKHdlYkFyZWEpIiwgImZhbHNlIik7CiAKLSAgICAgICAgICAgIHZhciB3ZWJB
cmVhID0gY2xlYXJTZWxlY3Rpb25BbmRGb2N1c09uV2ViQXJlYSgpOwotICAgICAgICAgICAgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGZhbHNlKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmhhbmNlZEFj
Y2Vzc2liaWxpdHlFbmFibGVkIiwgImZhbHNlIik7Ci0gICAgICAgICAgICBzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEsIGZhbHNlKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJwcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEpIiwgImZhbHNlIik7
CisgICAgICAgIC8vIEFycm93aW5nIGJlZm9yZSBlbmFibGluZyBBWCBhbmQgaWdub3JlIGRvbSBo
YW5kbGVycyB3b24ndCBtb3ZlIHRoZSBjYXJldAorICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJl
bGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3Ry
aW5nVmFsdWUiLCAiJ0FYVmFsdWU6IDEnIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
InJpZ2h0QXJyb3ciKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZWxlbWVudEF0U3RhcnRN
YXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwgIidB
WFZhbHVlOiAxJyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7
CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogMSciKTsK
IAotICAgICAgICAgICAgLy8gQXJyb3dpbmcgYmVmb3JlIGVuYWJsaW5nIEFYIGFuZCBpZ25vcmUg
ZG9tIGhhbmRsZXJzIHdvbid0IG1vdmUgdGhlIGNhcmV0Ci0gICAgICAgICAgICBzaG91bGRCZSgi
ZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0
cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiAxJyIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigicmlnaHRBcnJvdyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImVsZW1lbnRBdFN0YXJ0
TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICIn
QVhWYWx1ZTogMSciKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJy
b3ciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IDEnIik7
CisgICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIGhhbmRsZXIgcmVjZWl2ZWQgMiBrZXlzIGV2
ZW50cworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJrZXljb3VudCgpIiwgIicyJyIpOwogCi0g
ICAgICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBoYW5kbGVyIHJlY2VpdmVkIDIga2V5cyBl
dmVudHMKLSAgICAgICAgICAgIHNob3VsZEJlKCJrZXljb3VudCgpIiwgIicyJyIpOworICAgICAg
ICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAobmVjZXNzYXJ5IGZvciBhY2Nlc3Np
YmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZykuCisgICAgICAgIGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKyAgICAgICAg
b3V0cHV0ICs9IGV4cGVjdCgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5oYW5jZWRBY2Nlc3Np
YmlsaXR5RW5hYmxlZCIsICJ0cnVlIik7CiAKLSAgICAgICAgICAgIC8vIEVuYWJsZSBlbmhhbmNl
ZCBhY2Nlc3NpYmlsaXR5IChuZWNlc3NhcnkgZm9yIGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMgc2Vs
ZWN0aW9uIGhhbmRsaW5nKS4KLSAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVu
YWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkIiwgInRy
dWUiKTsKKyAgICAgICAgLy8gRW5hYmxlIElnbm9yZURPTUtleUV2ZW50SGFuZGxlcnMgc28gdGhh
dCB0aGUgamF2YXNjcmlwdCBoYW5kbGVyIHdpbGwgYmUgc2tpcHBlZAorICAgICAgICBzZXRQcmV2
ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEsIHRydWUpOworICAgICAgICBvdXRw
dXQgKz0gZXhwZWN0KCJwcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEpIiwg
InRydWUiKTsKIAotICAgICAgICAgICAgLy8gRW5hYmxlIElnbm9yZURPTUtleUV2ZW50SGFuZGxl
cnMgc28gdGhhdCB0aGUgamF2YXNjcmlwdCBoYW5kbGVyIHdpbGwgYmUgc2tpcHBlZAotICAgICAg
ICAgICAgc2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh3ZWJBcmVhLCB0cnVlKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJwcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdl
YkFyZWEpIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZWxlbWVudEF0U3Rh
cnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0cmluZ1ZhbHVlIiwg
IidBWFZhbHVlOiAxJyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93
Iik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImVsZW1lbnRBdFN0YXJ0TWFya2VyT2ZTZWxl
Y3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICInQVhWYWx1ZTogMSci
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICBv
dXRwdXQgKz0gZXhwZWN0KCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IDInIik7CiAKLSAgICAgICAg
ICAgIHNob3VsZEJlKCJlbGVtZW50QXRTdGFydE1hcmtlck9mU2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2Uod2ViQXJlYSkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IDEnIik7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgi
ZWxlbWVudEF0U3RhcnRNYXJrZXJPZlNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKHdlYkFyZWEpLnN0
cmluZ1ZhbHVlIiwgIidBWFZhbHVlOiAxJyIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigicmlnaHRBcnJvdyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImVsZW1lbnRBdFN0YXJ0
TWFya2VyT2ZTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSh3ZWJBcmVhKS5zdHJpbmdWYWx1ZSIsICIn
QVhWYWx1ZTogMiciKTsKKyAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgaGFuZGxlciBkaWRu
J3QgcmVjZWl2ZSBhbnkgbW9yZSBrZXkgZXZlbnRzCisgICAgICAgIG91dHB1dCArPSBleHBlY3Qo
ImtleWNvdW50KCkiLCAiJzInIik7CiAKLSAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhl
IGhhbmRsZXIgZGlkbid0IHJlY2VpdmUgYW55IG1vcmUga2V5IGV2ZW50cwotICAgICAgICAgICAg
c2hvdWxkQmUoImtleWNvdW50KCkiLCAiJzInIik7CisgICAgICAgIHNldFByZXZlbnRLZXlib2Fy
ZERPTUV2ZW50RGlzcGF0Y2god2ViQXJlYSwgZmFsc2UpOwogCi0gICAgICAgICAgICBzZXRQcmV2
ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKHdlYkFyZWEsIGZhbHNlKTsKLSAgICAgICAgfQor
ICAgICAgICBkZWJ1ZyhvdXRwdXQpOwogICAgIH0KLSAgICA8L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcwppbmRleCA5
NzM1MTQ1MWEyMDUuLjI1OWNkNzI1YmUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5q
cwpAQCAtMiw4ICsyLDggQEAgZnVuY3Rpb24gY2xlYXJTZWxlY3Rpb25BbmRGb2N1c09uV2ViQXJl
YSgpIHsKICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQu
Y2hpbGRBdEluZGV4KDApOwogICAgIHdlYkFyZWEucmVzZXRTZWxlY3RlZFRleHRNYXJrZXJSYW5n
ZSgpOwogICAgIHNldENhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEsIGZhbHNlKTsKLSAgICBz
aG91bGRCZSgid2ViQXJlYS5yb2xlIiwgIidBWFJvbGU6IEFYV2ViQXJlYSciKTsKLSAgICBzaG91
bGRCZSgiY2FyZXRCcm93c2luZ0VuYWJsZWQod2ViQXJlYSkiLCAiZmFsc2UiKTsKKyAgICBvdXRw
dXQgKz0gZXhwZWN0KCJ3ZWJBcmVhLnJvbGUiLCAiJ0FYUm9sZTogQVhXZWJBcmVhJyIpOworICAg
IG91dHB1dCArPSBleHBlY3QoImNhcmV0QnJvd3NpbmdFbmFibGVkKHdlYkFyZWEpIiwgImZhbHNl
Iik7CiAgICAgcmV0dXJuIHdlYkFyZWE7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>