<?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>164762</bug_id>
          
          <creation_ts>2016-11-14 20:16:46 -0800</creation_ts>
          <short_desc>UIScriptController: script with no async tasks fails if an earlier script registered a callback</short_desc>
          <delta_ts>2016-11-16 15:05:10 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>164766</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251337</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-14 20:16:46 -0800</bug_when>
    <thetext>If one UI script registers a callback:

        function getScrollDownUIScript(scrollX, scrollY)
        {
            return `(function() {
                uiController.didEndScrollingCallback = function() {
                    uiController.uiScriptComplete();
                };
                uiController.scrollToOffset(${scrollX}, ${scrollY}, function() {});
            })();`;
        }


then a later one just wants to return data:

        function getResultsUIScript()
        {
            return `(function() {
                var results = {
                    zoomScale : uiController.zoomScale,
                    visibleRect : uiController.contentVisibleRect,
                    scrollingTree : uiController.scrollingTreeAsText
                };

                return JSON.stringify(results);
            })();`;
        }

that later one never returns because UIScriptContext::runUIScript() thinks there&apos;s an outstanding task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251356</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-14 21:15:21 -0800</bug_when>
    <thetext>Partial fix:

diff --git a/Tools/TestRunnerShared/UIScriptContext/UIScriptContext.cpp b/Tools/TestRunnerShared/UIScriptContext/UIScriptContext.cpp
index e2e7b0d1375c4def7e0592faf02c4d65fd9ed887..bb5c9e8becaea698f785a3e5bde20842e6549af7 100644
--- a/Tools/TestRunnerShared/UIScriptContext/UIScriptContext.cpp
+++ b/Tools/TestRunnerShared/UIScriptContext/UIScriptContext.cpp
@@ -117,6 +117,9 @@ unsigned UIScriptContext::registerCallback(JSValueRef taskCallback, CallbackType
     if (m_callbacks.contains(type))
         unregisterCallback(type);
 
+    if (JSValueIsUndefined(m_context.get(), taskCallback))
+        return 0;
+
     return prepareForAsyncTask(taskCallback, type);
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251699</commentid>
    <comment_count>2</comment_count>
      <attachid>294893</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-15 16:10:40 -0800</bug_when>
    <thetext>Created attachment 294893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251712</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-15 16:25:24 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/208770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251899</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-16 10:00:10 -0800</bug_when>
    <thetext>Reverted r208770 for reason:

The test added with this change is timing out on mac-wk1.

Committed r208795: &lt;http://trac.webkit.org/changeset/208795&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251901</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-16 10:03:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Reverted r208770 for reason:
&gt; 
&gt; The test added with this change is timing out on mac-wk1.
&gt; 
&gt; Committed r208795: &lt;http://trac.webkit.org/changeset/208795&gt;

The test added with this change was timing out on mac-wk1 and causing false positives for other patches. It also looks like the original change was landed before EWS had a chance to complete testing in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251915</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-16 10:22:23 -0800</bug_when>
    <thetext>The test should be skipped on mac WK1. I&apos;ll fix and re-land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251962</commentid>
    <comment_count>7</comment_count>
      <attachid>294961</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-16 12:29:23 -0800</bug_when>
    <thetext>Created attachment 294961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252039</commentid>
    <comment_count>8</comment_count>
      <attachid>294961</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-16 15:05:06 -0800</bug_when>
    <thetext>Comment on attachment 294961
Patch

Clearing flags on attachment: 294961

Committed r208816: &lt;http://trac.webkit.org/changeset/208816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252040</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-16 15:05:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294893</attachid>
            <date>2016-11-15 16:10:40 -0800</date>
            <delta_ts>2016-11-16 12:29:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164762-20161115161038.patch</filename>
            <type>text/plain</type>
            <size>5841</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NzM5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWUzZGZlNTFlMWU0Mjk2NjA1YzRhYmUyOGZhNjNkNDk1
Yjg5ZDk3NC4uODM2NTMxNWE2YjY0ZDFkNmE2OWU3ZTRlNjkwMDk3MDk3YzU4M2QzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIx
IEBACiAyMDE2LTExLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CisgICAgICAgIFVJU2NyaXB0Q29udHJvbGxlcjogc2NyaXB0IHdpdGggbm8gYXN5bmMgdGFza3Mg
ZmFpbHMgaWYgYW4gZWFybGllciBzY3JpcHQgcmVnaXN0ZXJlZCBhIGNhbGxiYWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3NjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVJU2NyaXB0
Q29udGV4dDo6cnVuVUlTY3JpcHQoKSBjb25zaWRlcnMgYSBzY3JpcHQgdG8gYmUgImltbWVkaWF0
ZSIgaWYgdGhhdCBzY3JpcHQgZG9lc24ndAorICAgICAgICBxdWV1ZSBhbnkgYXN5bmMgdGFza3Mu
IEhvd2V2ZXIsIGlmIGFuIGVhcmxpZXIgVUkgc2NyaXB0IHJlZ2lzdGVyZWQgYSBjYWxsYmFjaywg
VUlTY3JpcHRDb250ZXh0OjpydW5VSVNjcmlwdCgpCisgICAgICAgIHdvdWxkIGNvbnNpZGVyIHRo
YXQgYW4gb3V0c3RhbmRpbmcgdGFzay4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSB1bnJlZ2lz
dGVyaW5nIGFueSBjYWxsYmFja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IFVJIHNjcmlw
dCB3aGVuIHVpU2NyaXB0Q29tcGxldGUoKSBpcyBjYWxsZWQuCisKKyAgICAgICAgKiBUZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwOgorICAgICAgICAo
VUlTY3JpcHRDb250ZXh0Ojp0cnlUb0NvbXBsZXRlVUlTY3JpcHRGb3JDdXJyZW50UGFyZW50Q2Fs
bGJhY2spOgorCisyMDE2LTExLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgorCiAgICAgICAgIFVJU2NyaXB0Q29udHJvbGxlcjogc2V0dGluZyBhIGNhbGxiYWNrIHRv
IHVuZGVmaW5lZCBzaG91bGQgdW5yZWdpc3RlciBpdAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Nzk2CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5jcHAgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwCmluZGV4
IGJiNWM5ZThiZWNhZWE2OThmNzg1YTNlNWJkZTIwODQyZTY1NDlhZjcuLjYyZDRmMzBmOTYzM2Vk
NGM2Zjg0OWI5ZDEyNWIwZjIyZWQwMGExYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmNwcApAQCAtMTcy
LDYgKzE3MiwxMiBAQCB2b2lkIFVJU2NyaXB0Q29udGV4dDo6dHJ5VG9Db21wbGV0ZVVJU2NyaXB0
Rm9yQ3VycmVudFBhcmVudENhbGxiYWNrKCkKICAgICBTdHJpbmcgc2NyaXB0UmVzdWx0KEpTU3Ry
aW5nR2V0Q2hhcmFjdGVyc1B0cihyZXN1bHQpLCBKU1N0cmluZ0dldExlbmd0aChyZXN1bHQpKTsK
IAogICAgIG1fZGVsZWdhdGUudWlTY3JpcHREaWRDb21wbGV0ZShzY3JpcHRSZXN1bHQsIG1fY3Vy
cmVudFNjcmlwdENhbGxiYWNrSUQpOworICAgIAorICAgIC8vIFVucmVnaXN0ZXIgdGFza3MgYXNz
b2NpYXRlZCB3aXRoIHRoaXMgY2FsbGJhY2sKKyAgICBtX2NhbGxiYWNrcy5yZW1vdmVJZihbJl0o
YXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLnBh
cmVudFNjcmlwdENhbGxiYWNrSUQgPT0gbV9jdXJyZW50U2NyaXB0Q2FsbGJhY2tJRDsKKyAgICB9
KTsKKyAgICAKICAgICBtX2N1cnJlbnRTY3JpcHRDYWxsYmFja0lEID0gMDsKICAgICBpZiAocmVz
dWx0KQogICAgICAgICBKU1N0cmluZ1JlbGVhc2UocmVzdWx0KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWQxZDlhMWFk
YjhjZDM5Yjg0OGY5MjM1Yzk1MWU1MjRkMTVjMTY4Li5kNTNkMTcwODg0MDBiMmQ2YTUxOGMzNjg3
ZWRlZDg0MzU1NzgzMWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMTEtMTUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgVUlTY3JpcHRDb250
cm9sbGVyOiBzY3JpcHQgd2l0aCBubyBhc3luYyB0YXNrcyBmYWlscyBpZiBhbiBlYXJsaWVyIHNj
cmlwdCByZWdpc3RlcmVkIGEgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0LXdpdGgtY2Fs
bGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvdWktc2lk
ZS1zY3JpcHQtd2l0aC1jYWxsYmFjay5odG1sOiBBZGRlZC4KKworMjAxNi0xMS0xNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBVSVNjcmlwdENvbnRy
b2xsZXI6IHNldHRpbmcgYSBjYWxsYmFjayB0byB1bmRlZmluZWQgc2hvdWxkIHVucmVnaXN0ZXIg
aXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc5
NgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHQt
d2l0aC1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWkt
c2lkZS1zY3JpcHQtd2l0aC1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMxYjAx
NDk1NTcxYmEwNGM5YTBjNTMwNGUyZTQ2NzFlYmMwYjZiMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC13aXRoLWNhbGxiYWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgYSBzZWNvbmQgaW1tZWRpYXRlIFVJ
IHNjcmlwdCByZXR1cm5zIGlmIGFuIGVhcmxpZXIgc2NyaXB0IHJlZ2lzdGVyZWQgYSBjYWxsYmFj
aworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzY3JpcHRSZXN1bHQgaXMg
ImFzeW5jIHRhc2sgY29tcGxldGUiCitQQVNTIHNjcmlwdFJlc3VsdCBpcyAiaW1tZWRpYXRlIHNj
cmlwdCBjb21wbGV0ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1z
Y3JpcHQtd2l0aC1jYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VpLXNp
ZGUtc2NyaXB0LXdpdGgtY2FsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTNlNDhiMzdlYWYzYmMw
YWY3ZDQ2OTk1YTQxYjk2OTE0ODRiNmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0LXdpdGgtY2FsbGJhY2suaHRtbApAQCAtMCwwICsx
LDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICAKKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAK
KyAgICAgICAgZnVuY3Rpb24gZ2V0QXN5bmNUYXNrU2NyaXB0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LndpbGxCZWdpblpvb21pbmdDYWxsYmFjayA9IGZ1bmN0aW9uKCkge307CisKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCdhc3luYyB0YXNrIGNvbXBsZXRl
Jyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2A7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBnZXRJbW1lZGlhdGVTY3JpcHQoKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2lt
bWVkaWF0ZSBzY3JpcHQgY29tcGxldGUnOworICAgICAgICAgICAgfSkoKTtgOworICAgICAgICB9
CisgICAgCisgICAgICAgIHZhciBzY3JpcHRSZXN1bHQ7CisgICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB0aGF0IGEgc2Vj
b25kIGltbWVkaWF0ZSBVSSBzY3JpcHQgcmV0dXJucyBpZiBhbiBlYXJsaWVyIHNjcmlwdCByZWdp
c3RlcmVkIGEgY2FsbGJhY2snKTsKKworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5l
cicpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7CisgICAgICAgICAgICAgICAgZGVidWco
J1RoaXMgdGVzdCByZXF1aXJlcyBydW5VSVNjcmlwdCcpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXRBc3luY1Rhc2tTY3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
c2NyaXB0UmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnc2NyaXB0UmVzdWx0JywgJ2FzeW5jIHRhc2sgY29tcGxldGUnKTsKKworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0SW1tZWRpYXRlU2NyaXB0KCksIGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRSZXN1bHQgPSByZXN1bHQ7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnc2NyaXB0UmVzdWx0
JywgJ2ltbWVkaWF0ZSBzY3JpcHQgY29tcGxldGUnKTsKKyAgICAgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZh
bHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cHJlIGlkPSJyZXN1bHRz
Ij48L3ByZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294961</attachid>
            <date>2016-11-16 12:29:23 -0800</date>
            <delta_ts>2016-11-16 15:05:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164762-20161116122920.patch</filename>
            <type>text/plain</type>
            <size>30095</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Nzk3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTQ5OTc3NTE5MmMxZGUyNTlmZWRiMTY5OGZlMzJhNzc2
MDUyZDBmYS4uNTZlNDkzM2YxMWIzNjg4NTVmYzc4NTY0YWRiNDAzNjAyZmIyOWJkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE2LTExLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFVJU2NyaXB0Q29udHJvbGxlcjogc2NyaXB0IHdpdGggbm8gYXN5bmMgdGFza3Mg
ZmFpbHMgaWYgYW4gZWFybGllciBzY3JpcHQgcmVnaXN0ZXJlZCBhIGNhbGxiYWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3NjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE1ha2UgVGVz
dFJ1bm5lcjo6Y2FsbFVJU2NyaXB0Q2FsbGJhY2soKSBhc3luYyBpbiBEdW1wUmVuZGVyVHJlZSB0
byBtYXRjaCBXZWJLaXRUZXN0UnVubmVyIGJlaGF2aW9yLgorICAgICAgICBUaGlzIGZpeGVzIHVp
LXNpZGUtc2NyaXB0LXdpdGgtY2FsbGJhY2suaHRtbCBpbiBXSzEsIHdoaWNoIGZhaWxlZCBiZWNh
dXNlIHRoZSBzZWNvbmQgcnVuVUlTY3JpcHQoKQorICAgICAgICB3b3VsZCBvY2N1ciBpbnNpZGUg
dGhlIGNvbXBsZXRpb24gY2FsbGJhY2sgZnJvbSB0aGUgZmlyc3QuIFRoaXMgbm8gbG9uZ2VyIGhh
cHBlbnMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OmNhbGxVSVNjcmlwdENhbGxiYWNrKToKKyAgICAgICAgKiBUZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwOgorICAgICAgICAo
VUlTY3JpcHRDb250ZXh0Ojp0cnlUb0NvbXBsZXRlVUlTY3JpcHRGb3JDdXJyZW50UGFyZW50Q2Fs
bGJhY2spOgorCiAyMDE2LTExLTE2ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDg3NzAuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDM2NjFhNGEwMWRjMmU5YzA1YmFkMTQ5YjBkMDJmNzNm
NThjNmFmZTcuLmE3NzFlN2MzZjJhZjM3MzRhYWQyZGU0MmE3MTBmZjNiYmQ5MThiOGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8
d3RmL0xvZ2dpbmdBY2N1bXVsYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC0yMzkyLDkgKzIzOTMsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpydW5VSVNjcmlwdChKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU1ZhbHVlUmUKIAogdm9pZCBU
ZXN0UnVubmVyOjpjYWxsVUlTY3JpcHRDYWxsYmFjayh1bnNpZ25lZCBjYWxsYmFja0lELCBKU1N0
cmluZ1JlZiByZXN1bHQpCiB7Ci0gICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBtYWluRnJhbWVK
U0NvbnRleHQoKTsKLSAgICBKU1ZhbHVlUmVmIHJlc3VsdFZhbHVlID0gSlNWYWx1ZU1ha2VTdHJp
bmcoY29udGV4dCwgcmVzdWx0KTsKLSAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKGNhbGxiYWNr
SUQsIDEsICZyZXN1bHRWYWx1ZSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByb3Rl
Y3RlZFJlc3VsdChyZXN1bHQpOworICAgIAorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFja0lELCBwcm90ZWN0ZWRSZXN1
bHRdKCkgbXV0YWJsZSB7CisgICAgICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gcHJvdGVjdGVk
VGhpcy0+bWFpbkZyYW1lSlNDb250ZXh0KCk7CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0VmFs
dWUgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBwcm90ZWN0ZWRSZXN1bHQuZ2V0KCkpOwor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jYWxsVGVzdFJ1bm5lckNhbGxiYWNrKGNhbGxiYWNrSUQs
IDEsICZyZXN1bHRWYWx1ZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6dWlTY3Jp
cHREaWRDb21wbGV0ZShjb25zdCBTdHJpbmcmIHJlc3VsdCwgdW5zaWduZWQgY2FsbGJhY2tJRCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udGV4dC5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRleHQuY3BwCmluZGV4IGJiNWM5ZThiZWNhZWE2OThmNzg1YTNlNWJkZTIwODQy
ZTY1NDlhZjcuLjYyZDRmMzBmOTYzM2VkNGM2Zjg0OWI5ZDEyNWIwZjIyZWQwMGExYjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250ZXh0LmNwcApAQCAtMTcyLDYgKzE3MiwxMiBAQCB2b2lkIFVJU2NyaXB0Q29udGV4
dDo6dHJ5VG9Db21wbGV0ZVVJU2NyaXB0Rm9yQ3VycmVudFBhcmVudENhbGxiYWNrKCkKICAgICBT
dHJpbmcgc2NyaXB0UmVzdWx0KEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihyZXN1bHQpLCBKU1N0
cmluZ0dldExlbmd0aChyZXN1bHQpKTsKIAogICAgIG1fZGVsZWdhdGUudWlTY3JpcHREaWRDb21w
bGV0ZShzY3JpcHRSZXN1bHQsIG1fY3VycmVudFNjcmlwdENhbGxiYWNrSUQpOworICAgIAorICAg
IC8vIFVucmVnaXN0ZXIgdGFza3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2FsbGJhY2sKKyAgICBt
X2NhbGxiYWNrcy5yZW1vdmVJZihbJl0oYXV0byYga2V5QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0
dXJuIGtleUFuZFZhbHVlLnZhbHVlLnBhcmVudFNjcmlwdENhbGxiYWNrSUQgPT0gbV9jdXJyZW50
U2NyaXB0Q2FsbGJhY2tJRDsKKyAgICB9KTsKKyAgICAKICAgICBtX2N1cnJlbnRTY3JpcHRDYWxs
YmFja0lEID0gMDsKICAgICBpZiAocmVzdWx0KQogICAgICAgICBKU1N0cmluZ1JlbGVhc2UocmVz
dWx0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA4ZGViZmYxYzg1OWI4N2E2OWExMDlhZDk2MjNmNzUyY2JiMDY5ZmZhLi5k
YWEzY2U4OTk4YWYzN2IwNGRiNWI1YTkzMWE0NThiZjkxZGZiZTQwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTYtMTEtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgVUlTY3JpcHRDb250cm9sbGVyOiBzY3JpcHQgd2l0aCBubyBhc3luYyB0YXNr
cyBmYWlscyBpZiBhbiBlYXJsaWVyIHNjcmlwdCByZWdpc3RlcmVkIGEgY2FsbGJhY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTW92ZSB0
aGUgdGVzdHMgdGhhdCB1c2UgcnVuVUlTY3JpcHQgaW50byB0aGVpciBvd24gZGlyZWN0b3J5IGZv
ciBlYXNpZXIgVGVzdEV4cGVjdGF0aW9ucyBtYW5hZ2VtZW50LAorICAgICAgICBhbmQgZml4IFRl
c3RFeHBlY3RhdGlvbnMgdG8gbWF0Y2guCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIGZhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvY29uY3VycmVudC11aS1z
aWRlLXNjcmlwdHMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL2NvbmN1cnJlbnQtdWktc2lkZS1zY3JpcHRzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBmYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL2NvbmN1cnJlbnQtdWktc2lkZS1zY3Jp
cHRzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvY29uY3VycmVu
dC11aS1zaWRlLXNjcmlwdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvdWlzY3JpcHRj
b250cm9sbGVyL3VpLXNpZGUtc2NyaXB0LXVucmVnaXN0ZXItY2FsbGJhY2stZXhwZWN0ZWQudHh0
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHQtdW5y
ZWdpc3Rlci1jYWxsYmFjay1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9oYXJuZXNzL3Vp
c2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVyLWNhbGxiYWNrLmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC11bnJl
Z2lzdGVyLWNhbGxiYWNrLmh0bWwuCisgICAgICAgICogZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29u
dHJvbGxlci91aS1zaWRlLXNjcmlwdC13aXRoLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVy
LWNhbGxiYWNrLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvdWlzY3JpcHRj
b250cm9sbGVyL3VpLXNpZGUtc2NyaXB0LXdpdGgtY2FsbGJhY2suaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVyLWNhbGxi
YWNrLmh0bWwuCisgICAgICAgICogZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1z
aWRlLXNjcmlwdHMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3VpLXNpZGUtc2NyaXB0cy1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9oYXJu
ZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlwdHMuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdHMuaHRtbC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0xMS0xNiAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB0ZXN0IHNhbmRib3gtc2hv
dWxkLW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24uaHRtbCBtb3JlIHJlcHJlc2VudGF0aXZlIG9m
IHJlYWwtd29ybGQgc2NlbmFyaW8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgyNTQ2NzM5NDRjZDFi
ZGZlYjk1M2VkMTFiYjhmZWM3Y2IyNzE3ZjcuLjgwY2JiOGEyYjc3YjhlZjg3YjBmNDZjOGI5YmY1
ZTE0ZDVhZjYyYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTYsOCArNTYsNyBAQCBodHRwL3Rl
c3RzL2FwcGNhY2hlL2RlY2lkZS1uYXZpZ2F0aW9uLXBvbGljeS1hZnRlci1kZWxheS5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3Qtd2l0aC1jbGllbnQtcHJv
dmlkZWQtaHR0cC1ib2R5Lmh0bWwgWyBTa2lwIF0KIAogIyBPbmx5IE1hYyBhbmQgaU9TIGhhdmUg
YW4gaW1wbGVtZW50YXRpb24gb2YgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzaygpLgot
ZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0cy5odG1sIFsgU2tpcCBdCi1mYXN0L2hhcm5lc3Mv
Y29uY3VycmVudC11aS1zaWRlLXNjcmlwdHMuaHRtbCBbIFNraXAgXQorZmFzdC9oYXJuZXNzL3Vp
c2NyaXB0Y29udHJvbGxlciBbIFNraXAgXQogCiAjIFRoaXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNl
IG9uIE1hYwogZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVzaXplLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9jb25jdXJyZW50LXVpLXNpZGUt
c2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvY29uY3VycmVu
dC11aS1zaWRlLXNjcmlwdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NjU2ZmIxOTJmMTM1Y2Q3M2IyNTM0MGYyNTYwZmU3MDc4NmRlZTQ3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy9jb25jdXJyZW50LXVpLXNpZGUtc2NyaXB0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLVNjcmlwdCAyOgotUnVubmluZyBVSS1zaWRlIHNjcmlwdCAyCi1D
b21wbGV0ZWQgYXN5bmMgdGFzayAyLjEuIFNjcmlwdCBkb25lLgotU2NyaXB0IDE6Ci1SdW5uaW5n
IFVJLXNpZGUgc2NyaXB0IDEKLUNvbXBsZXRlZCBhc3luYyB0YXNrIDEuMS4KLUNvbXBsZXRlZCBh
c3luYyB0YXNrIDEuMi4KLUNvbXBsZXRlZCBhc3luYyB0YXNrIDEuMy4gU2NyaXB0IGRvbmUuCi0u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvY29uY3VycmVudC11aS1zaWRl
LXNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9jb25jdXJyZW50LXVpLXNp
ZGUtc2NyaXB0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOWFkODFmNjgz
YTcyN2MyODI0MjJkNDQyZGUxYjgzYWNiNzBiYTU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9jb25jdXJyZW50
LXVpLXNpZGUtc2NyaXB0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBpZD0idWktc2NyaXB0
MSIgdHlwZT0idGV4dC9wbGFpbiI+Ci0gICAgICAgIChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHZhciBjb21wbGV0aW9ucyA9ICdSdW5uaW5nIFVJLXNpZGUgc2NyaXB0IDFcbic7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMS4x
LlxuJzsKLQotICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBsZXRlZCBhc3lu
YyB0YXNrIDEuMi5cbic7Ci0KLSAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5
bmNUYXNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMg
Kz0gJ0NvbXBsZXRlZCBhc3luYyB0YXNrIDEuMy4gU2NyaXB0IGRvbmUuXG4nOwotCi0gICAgICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZShjb21wbGV0aW9u
cyk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pKCk7Ci0gICAgPC9zY3JpcHQ+Ci0KLSAgICA8c2NyaXB0IGlk
PSJ1aS1zY3JpcHQyIiB0eXBlPSJ0ZXh0L3BsYWluIj4KLSAgICAgICAgKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgdmFyIGNvbXBsZXRpb25zMiA9ICdSdW5uaW5nIFVJLXNpZGUgc2NyaXB0IDJc
bic7Ci0KLSAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICBjb21wbGV0aW9uczIgKz0gJ0NvbXBsZXRlZCBhc3luYyB0YXNrIDIu
MS4gU2NyaXB0IGRvbmUuXG4nOwotCi0gICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2Ny
aXB0Q29tcGxldGUoY29tcGxldGlvbnMyKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KSgp
OwotICAgIDwvc2NyaXB0PgotCi0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFy
IG91dHN0YW5kaW5nU2NyaXB0cyA9IDI7Ci0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgewotICAgICAg
ICAgICAgICAgIHZhciB1aVNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1aS1zY3Jp
cHQxJykudGV4dDsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHVpU2Ny
aXB0LCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS50ZXh0Q29udGVudCArPSAnU2NyaXB0IDE6XG4nICsgcmVz
dWx0OwotICAgICAgICAgICAgICAgICAgICAtLW91dHN0YW5kaW5nU2NyaXB0czsKLSAgICAgICAg
ICAgICAgICAgICAgY2hlY2tJZlNjcmlwdHNDb21wbGV0ZSgpOwotICAgICAgICAgICAgICAgIH0p
OwotCi0gICAgICAgICAgICAgICAgdmFyIHVpU2NyaXB0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd1aS1zY3JpcHQyJykudGV4dDsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KHVpU2NyaXB0MiwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykudGV4dENvbnRlbnQgKz0gJ1Njcmlw
dCAyOlxuJyArIHJlc3VsdDsKLSAgICAgICAgICAgICAgICAgICAgLS1vdXRzdGFuZGluZ1Njcmlw
dHM7Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrSWZTY3JpcHRzQ29tcGxldGUoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgZnVuY3Rpb24gY2hlY2tJZlNjcmlwdHNDb21wbGV0ZShyZW1haW5pbmcpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmIChvdXRzdGFuZGluZ1NjcmlwdHMpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2Up
OwotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwcmUgaWQ9InJlc3VsdHMiPjwv
cHJlPgotCi08L2JvZHk+Ci08L2h0bWw+Ci0uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0LXVucmVn
aXN0ZXItY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vp
LXNpZGUtc2NyaXB0LXVucmVnaXN0ZXItY2FsbGJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjOWM2NWRlMWQzMmEzMDJmYzhkZDNmM2RkNWVmOWI0OTFmZTZm
YjVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVyLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgdGhhdCBhIHNl
Y29uZCBpbW1lZGlhdGUgVUkgc2NyaXB0IHJldHVybnMgaWYgYW4gZWFybGllciBzY3JpcHQgcmVn
aXN0ZXJlZCB0aGVuIHVucmVnaXN0ZXJlZCBhIGNhbGxiYWNrCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIHNjcmlwdFJlc3VsdCBpcyAiYXN5bmMgdGFzayBjb21wbGV0ZSIK
LVBBU1Mgc2NyaXB0UmVzdWx0IGlzICJpbW1lZGlhdGUgc2NyaXB0IGNvbXBsZXRlIgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVyLWNhbGxi
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHQtdW5yZWdp
c3Rlci1jYWxsYmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzEyYWM0
OTc4NDZlZjZjYWQ4ZmVhZDkwOTIwYjNlYjhmMjI0YWU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRl
LXNjcmlwdC11bnJlZ2lzdGVyLWNhbGxiYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
PgotICAgICAgICAKLSAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgICAgICAK
LSAgICAgICAgZnVuY3Rpb24gZ2V0QXN5bmNUYXNrU2NyaXB0KCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrID0gZnVuY3Rpb24oKSB7IH07Ci0gICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrID0gdW5kZWZpbmVkOwotCi0g
ICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5bmNUYXNrKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgnYXN5bmMgdGFz
ayBjb21wbGV0ZScpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSkoKTtgOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gZ2V0SW1tZWRpYXRlU2NyaXB0KCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICdpbW1lZGlhdGUgc2NyaXB0IGNvbXBsZXRlJzsKLSAgICAgICAgICAgIH0pKCk7YDsK
LSAgICAgICAgfQotICAgIAotICAgICAgICB2YXIgc2NyaXB0UmVzdWx0OwotICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkKLSAgICAgICAgewotICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCBhIHNlY29uZCBpbW1lZGlhdGUgVUkgc2NyaXB0IHJldHVybnMgaWYgYW4gZWFybGllciBz
Y3JpcHQgcmVnaXN0ZXJlZCB0aGVuIHVucmVnaXN0ZXJlZCBhIGNhbGxiYWNrJyk7Ci0KLSAgICAg
ICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICBkZWJ1Zygn
VGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXInKTsKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dCkgewotICAgICAgICAgICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgcnVuVUlTY3Jp
cHQnKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0QXN5bmNUYXNrU2NyaXB0KCksIGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgICAgICAgICAgICAgIHNjcmlwdFJlc3VsdCA9IHJlc3VsdDsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3NjcmlwdFJlc3VsdCcsICdhc3luYyB0
YXNrIGNvbXBsZXRlJyk7Ci0KLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KGdldEltbWVkaWF0ZVNjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgc2NyaXB0UmVzdWx0ID0gcmVzdWx0OwotICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3NjcmlwdFJlc3VsdCcsICdpbW1lZGlhdGUgc2NyaXB0IGNvbXBsZXRl
Jyk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLQotPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdHMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGEyNWIzMjdjYjBlMDFiMjcy
NjAzMGZiMjAyY2E5ZTczMzdiOWIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aS1zaWRlLXNjcmlwdHMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotUnVubmluZyB0aGUgVUkt
c2lkZSBzY3JpcHQKLUNvbXBsZXRlZCBhc3luYyB0YXNrIDEuMS4KLUNvbXBsZXRlZCBhc3luYyB0
YXNrIDIuMS4KLUNvbXBsZXRlZCBhc3luYyB0YXNrIDEuMi4KLUNvbXBsZXRlZCBhc3luYyB0YXNr
IDIuMS4KLUNvbXBsZXRlZCBhc3luYyB0YXNrIDIuMi4xLgotQ29tcGxldGVkIGFzeW5jIHRhc2sg
MS4zLgotQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4zLgotQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4y
LjIuCi0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3Jp
cHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHRzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlMDE2YWMyZGQyMjE4NjYyZTk3MTE0MzIx
NDE1MDAwOWRhNDJhZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0cy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGhl
YWQ+Ci0gICAgPHNjcmlwdCBpZD0idWktc2NyaXB0IiB0eXBlPSJ0ZXh0L3BsYWluIj4KLSAgICAg
ICAgKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGNvbXBsZXRpb25zID0gJ1J1bm5pbmcg
dGhlIFVJLXNpZGUgc2NyaXB0XG4nOwotICAgICAgICAgICAgdmFyIG91dHN0YW5kaW5nVGFza0Nv
dW50ID0gMzsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5bmNU
YXNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9ICdDb21wbGV0
ZWQgYXN5bmMgdGFzayAxLjEuXG4nOwotCi0gICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRv
QXN5bmNUYXNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyAr
PSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMS4yLlxuJzsKLQotICAgICAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMS4zLlxuJzsKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgLS1vdXRzdGFuZGluZ1Rhc2tDb3VudDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrSWZUYXNrc0ZpbmlzaGVkKCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAg
IHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBj
b21wbGV0aW9ucyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4xLlxuJzsKLQotICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBsZXRlZCBhc3luYyB0YXNrIDIuMS5cbic7Ci0K
LSAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5bmNUYXNrKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBsZXRlZCBhc3lu
YyB0YXNrIDIuMy5cbic7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIC0tb3V0c3RhbmRpbmdU
YXNrQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGVja0lmVGFza3NGaW5pc2hlZCgp
OwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBsZXRlZCBhc3luYyB0YXNrIDIuMi4xLlxu
JzsKLQotICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVk
IGFzeW5jIHRhc2sgMi4yLjIuXG4nOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAtLW91dHN0
YW5kaW5nVGFza0NvdW50OwotICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tJZlRhc2tzRmlu
aXNoZWQoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tJ
ZlRhc2tzRmluaXNoZWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICghb3V0
c3RhbmRpbmdUYXNrQ291bnQpCi0gICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNj
cmlwdENvbXBsZXRlKGNvbXBsZXRpb25zKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSkoKTsK
LSAgICA8L3NjcmlwdD4KLQotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkgewotICAgICAgICAgICAgICAgIHZhciB1aVNjcmlwdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1aS1zY3JpcHQnKS50ZXh0OwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQodWlTY3JpcHQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykudGV4dENvbnRlbnQgPSByZXN1
bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7Ci0gICAgPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHByZSBpZD0icmVzdWx0Ij5UaGlzIHRlc3QgaGFzIHRvIHJ1
biBpbiBpT1MgV2ViS2l0VGVzdFJ1bm5lci48L3ByZT4KLQotPC9ib2R5PgotPC9odG1sPgotLgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvY29uY3VycmVudC11aS1zaWRlLXNjcmlwdHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci9j
b25jdXJyZW50LXVpLXNpZGUtc2NyaXB0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY1NmZi
MTkyZjEzNWNkNzNiMjUzNDBmMjU2MGZlNzA3ODZkZWU0NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvY29uY3VycmVudC11aS1z
aWRlLXNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorU2NyaXB0IDI6CitSdW5u
aW5nIFVJLXNpZGUgc2NyaXB0IDIKK0NvbXBsZXRlZCBhc3luYyB0YXNrIDIuMS4gU2NyaXB0IGRv
bmUuCitTY3JpcHQgMToKK1J1bm5pbmcgVUktc2lkZSBzY3JpcHQgMQorQ29tcGxldGVkIGFzeW5j
IHRhc2sgMS4xLgorQ29tcGxldGVkIGFzeW5jIHRhc2sgMS4yLgorQ29tcGxldGVkIGFzeW5jIHRh
c2sgMS4zLiBTY3JpcHQgZG9uZS4KKy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvY29uY3VycmVudC11aS1zaWRlLXNjcmlwdHMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvY29uY3VycmVudC11
aS1zaWRlLXNjcmlwdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWFkODFmNjgzYTcyN2MyODI0MjJkNDQy
ZGUxYjgzYWNiNzBiYTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJu
ZXNzL3Vpc2NyaXB0Y29udHJvbGxlci9jb25jdXJyZW50LXVpLXNpZGUtc2NyaXB0cy5odG1sCkBA
IC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgaWQ9InVpLXNjcmlwdDEiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgICAoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB2YXIgY29tcGxldGlvbnMgPSAnUnVubmluZyBVSS1zaWRlIHNj
cmlwdCAxXG4nOworICAgICAgICAgICAgCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3lu
Y1Rhc2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBs
ZXRlZCBhc3luYyB0YXNrIDEuMS5cbic7CisKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
ZG9Bc3luY1Rhc2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25z
ICs9ICdDb21wbGV0ZWQgYXN5bmMgdGFzayAxLjIuXG4nOworCisgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbXBsZXRpb25zICs9ICdDb21wbGV0ZWQgYXN5bmMgdGFzayAxLjMuIFNjcmlwdCBk
b25lLlxuJzsKKworICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0
Q29tcGxldGUoY29tcGxldGlvbnMpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KSgpOworICAgIDwvc2NyaXB0
PgorCisgICAgPHNjcmlwdCBpZD0idWktc2NyaXB0MiIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAg
ICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBjb21wbGV0aW9uczIgPSAnUnVubmlu
ZyBVSS1zaWRlIHNjcmlwdCAyXG4nOworCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3lu
Y1Rhc2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnMyICs9ICdDb21w
bGV0ZWQgYXN5bmMgdGFzayAyLjEuIFNjcmlwdCBkb25lLlxuJzsKKworICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKGNvbXBsZXRpb25zMik7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkoKTsKKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBvdXRzdGFuZGluZ1NjcmlwdHMgPSAyOworICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpIHsKKyAgICAgICAgICAgICAgICB2YXIgdWlTY3JpcHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndWktc2NyaXB0MScpLnRleHQ7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCh1aVNjcmlwdCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykudGV4dENvbnRlbnQgKz0g
J1NjcmlwdCAxOlxuJyArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgLS1vdXRzdGFuZGlu
Z1NjcmlwdHM7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrSWZTY3JpcHRzQ29tcGxldGUoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHZhciB1aVNjcmlwdDIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWktc2NyaXB0MicpLnRleHQ7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh1aVNjcmlwdDIsIGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLnRl
eHRDb250ZW50ICs9ICdTY3JpcHQgMjpcbicgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IC0tb3V0c3RhbmRpbmdTY3JpcHRzOworICAgICAgICAgICAgICAgICAgICBjaGVja0lmU2NyaXB0
c0NvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrSWZTY3JpcHRzQ29tcGxldGUocmVt
YWluaW5nKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAob3V0c3RhbmRpbmdTY3JpcHRzKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8
cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgorLgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91
aXNjcmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtdW5yZWdpc3Rlci1jYWxsYmFjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3Vp
LXNpZGUtc2NyaXB0LXVucmVnaXN0ZXItY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5YzY1ZGUxZDMyYTMwMmZjOGRkM2YzZGQ1ZWY5YjQ5MWZlNmZiNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUt
c2NyaXB0LXVucmVnaXN0ZXItY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K1Rlc3QgdGhhdCBhIHNlY29uZCBpbW1lZGlhdGUgVUkgc2NyaXB0IHJldHVybnMgaWYgYW4gZWFy
bGllciBzY3JpcHQgcmVnaXN0ZXJlZCB0aGVuIHVucmVnaXN0ZXJlZCBhIGNhbGxiYWNrCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNjcmlwdFJlc3VsdCBpcyAiYXN5bmMg
dGFzayBjb21wbGV0ZSIKK1BBU1Mgc2NyaXB0UmVzdWx0IGlzICJpbW1lZGlhdGUgc2NyaXB0IGNv
bXBsZXRlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xs
ZXIvdWktc2lkZS1zY3JpcHQtdW5yZWdpc3Rlci1jYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlwdC11bnJlZ2lzdGVy
LWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M1ZWVhZDQ0NWM3NWJhOWRiNWU3MTU5ZjE4NDhk
ZWFiNTI2MzUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91
aXNjcmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtdW5yZWdpc3Rlci1jYWxsYmFjay5odG1s
CkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIAorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRy
dWU7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBnZXRBc3luY1Rhc2tTY3JpcHQoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIuZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2sgPSBmdW5jdGlvbigpIHsgfTsK
KyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2sgPSB1
bmRlZmluZWQ7CisKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBs
ZXRlKCdhc3luYyB0YXNrIGNvbXBsZXRlJyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KSgpO2A7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXRJbW1lZGlhdGVT
Y3JpcHQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gJ2ltbWVkaWF0ZSBzY3JpcHQgY29tcGxldGUnOworICAgICAg
ICAgICAgfSkoKTtgOworICAgICAgICB9CisgICAgCisgICAgICAgIHZhciBzY3JpcHRSZXN1bHQ7
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNj
cmlwdGlvbignVGVzdCB0aGF0IGEgc2Vjb25kIGltbWVkaWF0ZSBVSSBzY3JpcHQgcmV0dXJucyBp
ZiBhbiBlYXJsaWVyIHNjcmlwdCByZWdpc3RlcmVkIHRoZW4gdW5yZWdpc3RlcmVkIGEgY2FsbGJh
Y2snKTsKKworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lcicpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KSB7CisgICAgICAgICAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCByZXF1
aXJlcyBydW5VSVNjcmlwdCcpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRBc3luY1Rhc2tTY3Jp
cHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UmVzdWx0ID0g
cmVzdWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnc2NyaXB0UmVz
dWx0JywgJ2FzeW5jIHRhc2sgY29tcGxldGUnKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoZ2V0SW1tZWRpYXRlU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICBzY3JpcHRSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnc2NyaXB0UmVzdWx0JywgJ2ltbWVkaWF0ZSBz
Y3JpcHQgY29tcGxldGUnKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aXNj
cmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtd2l0aC1jYWxsYmFjay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUtc2Ny
aXB0LXdpdGgtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMWIwMTQ5NTU3MWJh
MDRjOWEwYzUzMDRlMmU0NjcxZWJjMGI2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUtc2NyaXB0LXdpdGgtY2Fs
bGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCBhIHNlY29uZCBp
bW1lZGlhdGUgVUkgc2NyaXB0IHJldHVybnMgaWYgYW4gZWFybGllciBzY3JpcHQgcmVnaXN0ZXJl
ZCBhIGNhbGxiYWNrCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNjcmlw
dFJlc3VsdCBpcyAiYXN5bmMgdGFzayBjb21wbGV0ZSIKK1BBU1Mgc2NyaXB0UmVzdWx0IGlzICJp
bW1lZGlhdGUgc2NyaXB0IGNvbXBsZXRlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVz
cy91aXNjcmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtd2l0aC1jYWxsYmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlw
dC13aXRoLWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE2ZGRiN2I2ZWM2NzUwMjUwMmE2ZTYw
MGJmNDc0MDAyM2NkNWQwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy91aXNjcmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtd2l0aC1jYWxsYmFjay5odG1s
CkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIAorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRy
dWU7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBnZXRBc3luY1Rhc2tTY3JpcHQoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIud2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrID0gZnVuY3Rpb24oKSB7fTsK
KworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoJ2FzeW5j
IHRhc2sgY29tcGxldGUnKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7
YDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldEltbWVkaWF0ZVNjcmlwdCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHJldHVybiAnaW1tZWRpYXRlIHNjcmlwdCBjb21wbGV0ZSc7CisgICAgICAgICAgICB9KSgp
O2A7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdmFyIHNjcmlwdFJlc3VsdDsKKyAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdU
ZXN0IHRoYXQgYSBzZWNvbmQgaW1tZWRpYXRlIFVJIHNjcmlwdCByZXR1cm5zIGlmIGFuIGVhcmxp
ZXIgc2NyaXB0IHJlZ2lzdGVyZWQgYSBjYWxsYmFjaycpOworCisgICAgICAgICAgICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCByZXF1
aXJlcyB0ZXN0UnVubmVyJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIHJ1blVJU2NyaXB0Jyk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGdldEFzeW5jVGFza1NjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICBzY3JpcHRSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdzY3JpcHRSZXN1bHQnLCAnYXN5bmMgdGFzayBjb21wbGV0ZScp
OworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRJbW1lZGlhdGVT
Y3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdFJl
c3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdzY3JpcHRSZXN1bHQnLCAnaW1tZWRpYXRlIHNjcmlwdCBjb21wbGV0ZScpOworICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxw
cmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlw
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJv
bGxlci91aS1zaWRlLXNjcmlwdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4YTI1YjMyN2Ni
MGUwMWIyNzI2MDMwZmIyMDJjYTllNzMzN2I5YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUtc2NyaXB0cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUnVubmluZyB0aGUgVUktc2lkZSBzY3JpcHQKK0Nv
bXBsZXRlZCBhc3luYyB0YXNrIDEuMS4KK0NvbXBsZXRlZCBhc3luYyB0YXNrIDIuMS4KK0NvbXBs
ZXRlZCBhc3luYyB0YXNrIDEuMi4KK0NvbXBsZXRlZCBhc3luYyB0YXNrIDIuMS4KK0NvbXBsZXRl
ZCBhc3luYyB0YXNrIDIuMi4xLgorQ29tcGxldGVkIGFzeW5jIHRhc2sgMS4zLgorQ29tcGxldGVk
IGFzeW5jIHRhc2sgMi4zLgorQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4yLjIuCisuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUt
c2NyaXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxl
ci91aS1zaWRlLXNjcmlwdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTAxNmFjMmRkMjIxODY2MmU5NzEx
NDMyMTQxNTAwMDlkYTQyYWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlci91aS1zaWRlLXNjcmlwdHMuaHRtbApAQCAtMCwwICsx
LDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IGlk
PSJ1aS1zY3JpcHQiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgICAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB2YXIgY29tcGxldGlvbnMgPSAnUnVubmluZyB0aGUgVUktc2lkZSBzY3JpcHRc
bic7CisgICAgICAgICAgICB2YXIgb3V0c3RhbmRpbmdUYXNrQ291bnQgPSAzOworICAgICAgICAg
ICAgCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgY29tcGxldGlvbnMgKz0gJ0NvbXBsZXRlZCBhc3luYyB0YXNrIDEuMS5c
bic7CisKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9ICdDb21wbGV0ZWQgYXN5bmMg
dGFzayAxLjIuXG4nOworCisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5j
VGFzayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9
ICdDb21wbGV0ZWQgYXN5bmMgdGFzayAxLjMuXG4nOworCisgICAgICAgICAgICAgICAgICAgICAg
ICAtLW91dHN0YW5kaW5nVGFza0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tJ
ZlRhc2tzRmluaXNoZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5
bmNUYXNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9ICdDb21w
bGV0ZWQgYXN5bmMgdGFzayAyLjEuXG4nOworCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LmRvQXN5bmNUYXNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
cyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4xLlxuJzsKKworICAgICAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIuZG9Bc3luY1Rhc2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4zLlxuJzsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgLS1vdXRzdGFuZGluZ1Rhc2tDb3VudDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrSWZUYXNrc0ZpbmlzaGVkKCk7CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRvQXN5bmNUYXNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb21wbGV0
aW9ucyArPSAnQ29tcGxldGVkIGFzeW5jIHRhc2sgMi4yLjEuXG4nOworCisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5kb0FzeW5jVGFzayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9ICdDb21wbGV0ZWQgYXN5bmMgdGFzayAyLjIuMi5c
bic7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tb3V0c3RhbmRpbmdUYXNrQ291bnQ7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja0lmVGFza3NGaW5pc2hlZCgpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0lmVGFza3NGaW5pc2hlZCgpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFvdXRzdGFuZGluZ1Rhc2tDb3VudCkK
KyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoY29tcGxl
dGlvbnMpOworICAgICAgICAgICAgfQorICAgICAgICB9KSgpOworICAgIDwvc2NyaXB0PgorCisg
ICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7CisgICAgICAg
ICAgICAgICAgdmFyIHVpU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VpLXNjcmlw
dCcpLnRleHQ7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh1aVNjcmlw
dCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKS50ZXh0Q29udGVudCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
Cis8cHJlIGlkPSJyZXN1bHQiPlRoaXMgdGVzdCBoYXMgdG8gcnVuIGluIGlPUyBXZWJLaXRUZXN0
UnVubmVyLjwvcHJlPgorCis8L2JvZHk+Cis8L2h0bWw+CisuClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBk
MzlhYTA3ZTgzMGEzZTQxY2QyMzcwYWNlNDNiNzIzYTM5YzY5MDhhLi5mOWIwNmMwZGM3OTgwMmI0
ZTI4MTBjNmQwMDVjNWVjODM0ZjkwMTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjUsOCArMjUsNyBAQCBmYXN0L3RleHQtYXV0b3NpemluZyBbIFBh
c3MgXQogCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zdWJ0aXRsZS1yZXNpemUuaHRtbCBb
IFBhc3MgXQogCi1mYXN0L2hhcm5lc3MvdWktc2lkZS1zY3JpcHRzLmh0bWwgWyBQYXNzIF0KLWZh
c3QvaGFybmVzcy9jb25jdXJyZW50LXVpLXNpZGUtc2NyaXB0cy5odG1sIFsgUGFzcyBdCitmYXN0
L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyIFsgUGFzcyBdCiAKICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>