<?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>124078</bug_id>
          
          <creation_ts>2013-11-08 15:53:31 -0800</creation_ts>
          <short_desc>Web Inspector: Crash when closing the Inspector while debugging an exception inside a breakpoint condition.</short_desc>
          <delta_ts>2013-11-12 07:39:49 -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>Web Inspector</component>
          <version>528+ (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="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>achicu</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948899</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-08 15:53:31 -0800</bug_when>
    <thetext>1. Add a condition that throws an exception.
2. Wait until the debugger stops on the condition.
3. Close the inspector.

More details in comment 8 from in https://bugs.webkit.org/show_bug.cgi?id=124065#c8 .

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001135b6590 JSC::Register::jsValue() const + 16 (Register.h:118)
1   com.apple.JavaScriptCore      	0x00000001135bb335 JSC::Register::scope() const + 21 (JSScope.h:229)
2   com.apple.JavaScriptCore      	0x00000001135bb295 JSC::ExecState::scope() const + 37 (CallFrame.h:49)
3   com.apple.JavaScriptCore      	0x00000001135b51c9 JSC::ExecState::vm() const + 25 (JSScope.h:234)
4   com.apple.JavaScriptCore      	0x00000001135cd425 JSC::ExecState::interpreter() + 21 (CallFrame.h:82)
5   com.apple.JavaScriptCore      	0x00000001138a57d1 JSC::Interpreter::ErrorHandlingMode::ErrorHandlingMode(JSC::ExecState*) + 33 (Interpreter.cpp:91)
6   com.apple.JavaScriptCore      	0x00000001138a579d JSC::Interpreter::ErrorHandlingMode::ErrorHandlingMode(JSC::ExecState*) + 29 (Interpreter.cpp:96)
7   com.apple.WebCore             	0x00000001156a2be7 WebCore::reportException(JSC::ExecState*, JSC::JSValue, WebCore::CachedScript*) + 71 (JSDOMBinding.cpp:151)
8   com.apple.WebCore             	0x00000001160c9bb2 WebCore::ScriptDebugServer::hasBreakpoint(long, WTF::TextPosition const&amp;, WebCore::ScriptBreakpoint*) const + 962 (ScriptDebugServer.cpp:207)
9   com.apple.WebCore             	0x00000001160ca0f5 WebCore::ScriptDebugServer::pauseIfNeeded(JSC::ExecState*) + 261 (ScriptDebugServer.cpp:512)
10  com.apple.WebCore             	0x00000001160caefc WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded(JSC::ExecState*) + 60 (ScriptDebugServer.cpp:492)
11  com.apple.WebCore             	0x00000001160caf9f WebCore::ScriptDebugServer::atStatement(JSC::ExecState*) + 47 (ScriptDebugServer.cpp:555)
12  com.apple.JavaScriptCore      	0x00000001138aacfe JSC::Interpreter::debug(JSC::ExecState*, JSC::DebugHookID) + 190 (Interpreter.cpp:1267)
13  com.apple.JavaScriptCore      	0x0000000113a09b2b llint_slow_path_debug + 123 (LLIntSlowPaths.cpp:1274)
14  com.apple.JavaScriptCore      	0x0000000113a11a42 llint_op_debug + 50
15  com.apple.JavaScriptCore      	0x00000001138c64ed JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 61 (JITCode.cpp:49)
16  com.apple.JavaScriptCore      	0x00000001138a9c5f JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1455 (Interpreter.cpp:958)
17  com.apple.JavaScriptCore      	0x000000011362612e JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 190 (CallData.cpp:39)
18  com.apple.WebCore             	0x000000011561390b WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 91 (JSMainThreadExecState.h:53)
19  com.apple.WebCore             	0x000000011574eaef WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 1199 (JSEventListener.cpp:132)
20  com.apple.WebCore             	0x000000011509da41 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow&gt;&amp;) + 721 (EventTarget.cpp:285)
21  com.apple.WebCore             	0x000000011509d38e WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 334 (EventTarget.cpp:232)
22  com.apple.WebCore             	0x0000000115c7e2fc WebCore::Node::handleLocalEvents(WebCore::Event&amp;) + 156 (Node.cpp:1958)
23  com.apple.WebCore             	0x0000000115071dd1 WebCore::EventContext::handleLocalEvents(WebCore::Event&amp;) const + 177 (EventContext.cpp:55)
24  com.apple.WebCore             	0x00000001150720e7 WebCore::MouseOrFocusEventContext::handleLocalEvents(WebCore::Event&amp;) const + 343 (EventContext.cpp:87)
25  com.apple.WebCore             	0x0000000115073314 WebCore::dispatchEventInDOM(WebCore::Event&amp;, WebCore::EventPath const&amp;, WebCore::WindowEventContext&amp;) + 356 (EventDispatcher.cpp:276)
26  com.apple.WebCore             	0x0000000115072e60 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr&lt;WebCore::Event&gt;) + 800 (EventDispatcher.cpp:331)
27  com.apple.WebCore             	0x0000000115c7e37d WebCore::Node::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 45 (Node.cpp:1972)
28  com.apple.WebCore             	0x000000011504a074 WebCore::Element::dispatchMouseEvent(WebCore::PlatformMouseEvent const&amp;, WTF::AtomicString const&amp;, int, WebCore::Element*) + 484 (Element.cpp:239)
29  com.apple.WebCore             	0x00000001150815c4 WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&amp;, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&amp;, bool) + 212 (EventHandler.cpp:2341)
30  com.apple.WebCore             	0x0000000115083a92 WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&amp;) + 1282 (EventHandler.cpp:1900)
31  com.apple.WebCore             	0x00000001150922e8 WebCore::EventHandler::passMouseReleaseEventToSubframe(WebCore::MouseEventWithHitTestResults&amp;, WebCore::Frame*) + 120 (EventHandlerMac.mm:659)
32  com.apple.WebCore             	0x000000011508392d WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&amp;) + 925 (EventHandler.cpp:1893)
33  com.apple.WebKit2             	0x0000000112163912 WebKit::handleMouseEvent(WebKit::WebMouseEvent const&amp;, WebKit::WebPage*, bool) + 322 (WebPage.cpp:1579)
34  com.apple.WebKit2             	0x0000000112163767 WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&amp;) + 711 (WebPage.cpp:1623)
35  com.apple.WebKit2             	0x00000001121bfc87 void CoreIPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;), WebKit::WebMouseEvent&gt;(std::__1::tuple&lt;WebKit::WebMouseEvent&gt;&amp;&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;)) + 151 (HandleMessage.h:21)
36  com.apple.WebKit2             	0x00000001121adca6 void CoreIPC::handleMessage&lt;Messages::WebPage::MouseEvent, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;)&gt;(CoreIPC::MessageDecoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&amp;)) + 182 (HandleMessage.h:375)
37  com.apple.WebKit2             	0x00000001121a7d97 WebKit::WebPage::didReceiveWebPageMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 1447 (WebPageMessageReceiver.cpp:120)
38  com.apple.WebKit2             	0x00000001121680f9 WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 537 (WebPage.cpp:3073)
39  com.apple.WebKit2             	0x0000000112168147 non-virtual thunk to WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 55 (WebPage.cpp:3073)
40  com.apple.WebKit2             	0x0000000111e5c040 CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 496 (MessageReceiverMap.cpp:87)
41  com.apple.WebKit2             	0x000000011229809a WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) + 58 (WebProcess.cpp:636)
42  com.apple.WebKit2             	0x0000000111d92643 CoreIPC::Connection::dispatchMessage(CoreIPC::MessageDecoder&amp;) + 51 (Connection.cpp:789)
43  com.apple.WebKit2             	0x0000000111d8acf0 CoreIPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;CoreIPC::MessageDecoder, std::__1::default_delete&lt;CoreIPC::MessageDecoder&gt; &gt;) + 368 (Connection.cpp:809)
44  com.apple.WebKit2             	0x0000000111d923d1 CoreIPC::Connection::dispatchOneMessage() + 1377 (Connection.cpp:835)
45  com.apple.WebKit2             	0x0000000111d9ed52 WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;::operator()(CoreIPC::Connection*) + 114 (Functional.h:218)
46  com.apple.WebKit2             	0x0000000111d9ecd5 WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;, void (CoreIPC::Connection*)&gt;::operator()() + 53 (Functional.h:496)
47  com.apple.WebKit2             	0x0000000111da67f2 WTF::Function&lt;void ()&gt;::operator()() const + 114 (Functional.h:704)
48  com.apple.WebKit2             	0x0000000111da676c std::__1::__function::__func&lt;WTF::Function&lt;void ()&gt;, std::__1::allocator&lt;WTF::Function&lt;void ()&gt; &gt;, void ()&gt;::operator()() + 60 (functional:1059)
49  com.apple.WebCore             	0x00000001160a3d5a std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1435)
50  com.apple.WebCore             	0x00000001160a38f4 WebCore::RunLoop::performWork() + 276 (RunLoop.cpp:106)
51  com.apple.WebCore             	0x00000001160a4f24 WebCore::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:38)
52  com.apple.CoreFoundation      	0x00007fff94d208f1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
53  com.apple.CoreFoundation      	0x00007fff94d12062 __CFRunLoopDoSources0 + 242
54  com.apple.CoreFoundation      	0x00007fff94d117ef __CFRunLoopRun + 831
55  com.apple.CoreFoundation      	0x00007fff94d11275 CFRunLoopRunSpecific + 309
56  com.apple.HIToolbox           	0x00007fff92e5bf0d RunCurrentEventLoopInMode + 226
57  com.apple.HIToolbox           	0x00007fff92e5bcb7 ReceiveNextEventCommon + 479
58  com.apple.HIToolbox           	0x00007fff92e5babc _BlockUntilNextEventMatchingListInModeWithFilter + 65
59  com.apple.AppKit              	0x00007fff98b2f28e _DPSNextEvent + 1434
60  com.apple.AppKit              	0x00007fff98b2e8db -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
61  com.apple.AppKit              	0x00007fff98b229cc -[NSApplication run] + 553
62  com.apple.AppKit              	0x00007fff98b0d803 NSApplicationMain + 940
63  com.apple.XPCService          	0x00007fff948d3c0f _xpc_main + 385
64  libxpc.dylib                  	0x00007fff91082b2e xpc_main + 399
65  com.apple.WebKit.WebContent.Development	0x000000010c011375 main + 37
66  libdyld.dylib                 	0x00007fff98a425fd start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948900</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-11-08 15:54:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/15429298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948941</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-08 16:58:52 -0800</bug_when>
    <thetext>Breakpoint actions have the same issue. Just that they hit an assert instead, because there&apos;s already a callframe on the stack when it tries to debug the exception that happens while handling the breakpoint action.

It might be better to just disable this use-case and disable the uncaught exceptions handler while executing breakpoint conditions and actions. Otherwise we have to make the Debugger:m_currentDebuggerCallFrame use a stack instead.

1   0x115ea7d40 WTFCrash
2   0x11590c25a JSC::DebuggerCallFrameScope::DebuggerCallFrameScope(JSC::Debugger&amp;)
3   0x1158fe10d JSC::DebuggerCallFrameScope::DebuggerCallFrameScope(JSC::Debugger&amp;)
4   0x1158fc233 JSC::Debugger::pauseIfNeeded(JSC::ExecState*)
5   0x1158fc54c JSC::Debugger::updateCallFrameAndPauseIfNeeded(JSC::ExecState*)
6   0x1158fc627 JSC::Debugger::exception(JSC::ExecState*, JSC::JSValue, bool)
7   0x115b1f72c JSC::Interpreter::unwind(JSC::ExecState*&amp;, JSC::JSValue&amp;)
8   0x115b4035d JSC::genericUnwind(JSC::VM*, JSC::ExecState*, JSC::JSValue)
9   0x115c8150a llint_slow_path_handle_exception
10  0x115c876fb llint_throw_from_slow_path_trampoline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948974</commentid>
    <comment_count>3</comment_count>
      <attachid>216473</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-08 18:26:18 -0800</bug_when>
    <thetext>Created attachment 216473
Test case - Breakpoint actions

Test case for actions. Copy the file into LayoutTests/inspector-protocol/debugger/ and run it with the test runner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949479</commentid>
    <comment_count>4</comment_count>
      <attachid>216619</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-11-11 16:03:06 -0800</bug_when>
    <thetext>Created attachment 216619
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949494</commentid>
    <comment_count>5</comment_count>
      <attachid>216619</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-11 17:00:54 -0800</bug_when>
    <thetext>Comment on attachment 216619
Patch V1

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

r=me, nice!

&gt; LayoutTests/inspector-protocol/debugger/breakpoint-action-with-exception.html:47
&gt; +    function completeTest()
&gt; +    {
&gt; +        // Reset the pauseOnException state before ending the test.
&gt; +        InspectorTest.sendCommand(&quot;Debugger.setPauseOnExceptions&quot;, {state: &quot;none&quot;});
&gt; +        InspectorTest.completeTest();
&gt; +    }

Ideally DumpRenderTree could enforce a clean slate before running each test. But this is good for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949504</commentid>
    <comment_count>6</comment_count>
      <attachid>216619</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-11 17:27:56 -0800</bug_when>
    <thetext>Comment on attachment 216619
Patch V1

Rejecting attachment 216619 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 216619, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 159083 = 2dfecd17d522cd531fc8061985e3c75f3c18c0e7
r159084 = d34c02cc29ee6b7ebf683ad19525ee74c7906abe
r159088 = 6f9ac118a7d0e00fb62c7ba6c44ea0137c6cf5ce
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.appspot.com/results/22908509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949671</commentid>
    <comment_count>7</comment_count>
      <attachid>216619</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 07:39:47 -0800</bug_when>
    <thetext>Comment on attachment 216619
Patch V1

Clearing flags on attachment: 216619

Committed r159110: &lt;http://trac.webkit.org/changeset/159110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949672</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-12 07:39:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216473</attachid>
            <date>2013-11-08 18:26:18 -0800</date>
            <delta_ts>2013-11-08 18:26:18 -0800</delta_ts>
            <desc>Test case - Breakpoint actions</desc>
            <filename>breakpoint-action-exception.html</filename>
            <type>text/html</type>
            <size>1938</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0PgpmdW5jdGlvbiB0ZXN0
KCkKewogICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgIHsKICAgICAgICBpZiAoL3Jlc291cmNl
c1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKICAgICAg
ICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJ
ZDsKICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVy
LCBsaW5lTnVtYmVyOiA4LCBjb2x1bW5OdW1iZXI6IDB9OwogICAgICAgICAgICB2YXIgb3B0aW9u
cyA9IHthY3Rpb25zOiBbe3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ0aGlzLndpbGwuY2F1c2Uu
ZXhjZXB0aW9uIn0se3R5cGU6ICJsb2ciLCBkYXRhOiAid2luZG93In1dfTsKICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2Nh
dGlvbjogbG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVj
dCkgewogICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNl
T2JqZWN0KTsKICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVy
cm9yKHJlc3BvbnNlT2JqZWN0KTsKICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwiKTsKICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiB0
byB0cmlnZ2VyIGNvbmRpdGlvbiBleGNlcHRpb24uIik7CiAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAi
YnJlYWtwb2ludFdpdGhDb25kaXRpb24oMSwyKSJ9KTsKICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRs
ZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgIHsKICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUGF1c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSBcIiIg
KyBtZXNzYWdlT2JqZWN0LnBhcmFtcy5yZWFzb24gKyAiXCIiKTsKICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgfQoKICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkg
ewogICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7CiAgICB9
KTsKfQo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CjxwPkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25kaXRpb24gPC9wPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216619</attachid>
            <date>2013-11-11 16:03:06 -0800</date>
            <delta_ts>2013-11-12 07:39:47 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug124078.v1.patch</filename>
            <type>text/plain</type>
            <size>30308</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYWU4ZTIwLi42ZWQ2YTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMTEt
MTEgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENyYXNoIHdoZW4gY2xvc2luZyB0aGUgSW5zcGVjdG9yIHdoaWxlIGRlYnVn
Z2luZyBhbiBleGNlcHRpb24gaW5zaWRlIGEgYnJlYWtwb2ludCBjb25kaXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVja2luZyB0aGF0IHRo
ZSBkZWJ1Z2dlciB3aWxsIG5vdCBjcmFzaCBub3Igc3RhbGwgd2hlbiBleGNlcHRpb25zIGFyZSB0
aHJvdyB3aGlsZSB0aGUgZGVidWdnZXIKKyAgICAgICAgaXMgYWxyZWFkeSBwYXVzZWQuIFRoZSBj
YXNlcyB3aGVuIHRoYXQgY2FuIGhhcHBlbiBpbmNsdWRlIGJyZWFrcG9pbnQgY29uZGl0aW9ucywg
YWN0aW9ucywgZXZhbAorICAgICAgICBvciBydW50aW1lIG9iamVjdCBpbnNwZWN0aW9uLgorCisg
ICAgICAgIFRoZSBjdXJyZW50IGJlaGF2aW9yIHdhcyB0byBpZ25vcmUgdGhlIGV4Y2VwdGlvbnMg
b3IgYnJlYWtwb2ludHMgd2hpbGUgZXhlY3V0aW5nICJjb25zb2xlIGNvbW1hbmRzIgorICAgICAg
ICB3aGVuIHRoZSBkZWJ1Z2dlciB3YXMgYWxyZWFkeSBwYXVzZWQuIEknbSBleHRlbmRpbmcgdGhp
cyBtZWNoYW5pc20gdG8gYnJlYWtwb2ludCBjb25kaXRpb25zIGFuZAorICAgICAgICBhY3Rpb25z
IGFzIHRoZSBEZWJ1Z2dlciBpcyBub3QgZGVzaWduZWQgdG8gc3VwcG9ydCBuZXN0ZWQgImRlYnVn
Z2VyIGJyZWFrcyIuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qczoKKyAgICAgICAgKGNsb3NlVGVzdCk6IEF2b2lkIGhh
dmluZyBpbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kIGFuZCB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUKKyAgICAgICAgaW4gdGhlIHNhbWUgZnVuY3Rpb24uIFRoZSBkZWJ1Z2dlciB3
aWxsIG5vdCBoYXZlIGEgY2hhbmNlIHRvIGV4aXQgdGhlIHRlbXBvcmFyeSBFdmVudExvb3AKKyAg
ICAgICAgYmVmb3JlIGxvYWRpbmcgdGhlIG5leHQgdGVzdC4KKyAgICAgICAgKiBpbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
YWN0aW9uLWRldGFjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1h
Y3Rpb24td2l0aC1leGNlcHRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWNvbmRpdGlvbi1kZXRhY2guaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMt
YW5kLWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0
bWw6IEFkZGVkLgorCiAyMDEzLTExLTEwICBTdW4td29vIE5hbSAgPHN1bm55Lm5hbUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbRUZMXSBMYXlvdXQgdGVzdHMgd2l0aCBjc3MxIGJveCBwcm9wZXJ0
aWVzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2Nv
bC10ZXN0LmpzCmluZGV4IDNlY2RlYTEuLjBmNTMwNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzCkBAIC01OCw3ICs1OCwxMSBAQCBmdW5jdGlvbiBsb2codGV4dCkK
IGZ1bmN0aW9uIGNsb3NlVGVzdCgpCiB7CiAgICAgd2luZG93LmludGVybmFscy5jbG9zZUR1bW15
SW5zcGVjdG9yRnJvbnRlbmQoKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAv
LyBUaGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHN0aWxs
IHJ1bm5pbmcgdGhyb3VnaCBhIHN0YWNrIGJhc2VkIEV2ZW50TG9vcC4KKyAgICAvLyBVc2UgYSBz
ZXRUaW1lb3V0IHRvIGRlZmVyIHRvIGEgY2xlYW4gc3RhY2sgYmVmb3JlIGxldHRpbmcgdGhlIHRl
c3RSdW5uZXIgbG9hZCB0aGUgbmV4dCB0ZXN0LgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwogfQogCiBmdW5j
dGlvbiBydW5UZXN0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFj
aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2ZTM5
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxlIGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBi
cmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGludWUgZXhlY3V0aW5nIGNvZGUuCisKK0JyZWFr
cG9pbnRzIEVuYWJsZWQKK0ZvdW5kIGJyZWFrcG9pbnQuanMKK2luc2lkZSBicmVha3BvaW50V2l0
aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCitDbG9zaW5nIHRoZSBpbnNwZWN0b3IuCitQ
QVNTOiBUZXN0IGRpZCBub3QgY3Jhc2ggYWZ0ZXIgZGVidWdnZXIgZGlzY29ubmVjdGVkLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtw
b2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOTUxMDIxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRt
bApAQCAtMCwwICsxLDYyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuQnJlYWtwb2ludFdpdGhDb25kaXRpb24oKQoreworICAg
IC8vIFRoZSBkZWJ1Z2dlciBzaG91bGQgaGl0IGEgYnJlYWtwb2ludCBpbnNpZGUgdGhlIGJyZWFr
cG9pbnRXaXRoQ29uZGl0aW9uIGNhbGwuCisgICAgYnJlYWtwb2ludFdpdGhDb25kaXRpb24oMSwg
Mik7CisgICAgLy8gSWYgd2UgZ2V0IGhlcmUgaXQgbWVhbnMgdGhhdCB0aGUgZGVidWdnZXIgd2Fz
IGRpc2Nvbm5lY3RlZCBhbmQgdGhlIGV4ZWN1dGlvbiBjb250aW51ZWQgYXMgdXN1YWwuCisgICAg
bG9nKCJQQVNTOiBUZXN0IGRpZCBub3QgY3Jhc2ggYWZ0ZXIgZGVidWdnZXIgZGlzY29ubmVjdGVk
LiIpOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCisvLyBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgYnJlYWtwb2ludCBhY3Rpb24uCitmdW5jdGlvbiBkaXNjb25uZWN0
KCkKK3sKKyAgICBsb2coIkNsb3NpbmcgdGhlIGluc3BlY3Rvci4iKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFy
c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNv
dXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwor
ICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB7CisgICAgICAgICAgICAgICAgbG9jYXRpb246
IHsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNj
cmlwdElkLAorICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiA4LAorICAgICAgICAgICAg
ICAgICAgICBjb2x1bW5OdW1iZXI6IDAKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAg
ICAgICAgICAgICAgICAge3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJkaXNjb25uZWN0KCkifSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAibG9nKCdG
QUlMOiBUaGlzIGFjdGlvbiBzaG91bGQgbm90IGJlIGV4ZWN1dGVkLicpIn0KKyAgICAgICAgICAg
ICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJl
YWtwb2ludCwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInJ1
bkJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKCkifSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJ
bnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBh
dXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVh
c29uICsgIlwiIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAg
fQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRz
QWN0aXZlIiwge2FjdGl2ZTogdHJ1ZX0sIGZ1bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludHMgRW5hYmxlZCIpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5DbG9zaW5nIHRoZSBpbnNwZWN0
b3Igd2hpbGUgZXhlY3V0aW5nIHRoZSBjb2RlIGZvciBhIGJyZWFrcG9pbnQgYWN0aW9uIHNob3Vs
ZCBjb250aW51ZSBleGVjdXRpbmcgY29kZS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1h
Y3Rpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2QyOTYzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQorVGhlIGRlYnVnZ2VyIHNo
b3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBi
cmVha3BvaW50IGFjdGlvbnMuCisKK0JyZWFrcG9pbnRzIEVuYWJsZWQKK0ZvdW5kIGJyZWFrcG9p
bnQuanMKK2luc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMp
CitQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRlZCwgYnV0IHRoZSBleGNlcHRpb24gZGlk
IG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4
Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZGU2Yzg0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlv
bi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworCisgICAgICAgICAgICB2YXIgYnJlYWtwb2lu
dCA9IHsKKyAgICAgICAgICAgICAgICBsb2NhdGlvbjogeworICAgICAgICAgICAgICAgICAgICBz
Y3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCisgICAgICAgICAgICAgICAg
ICAgIGxpbmVOdW1iZXI6IDgsCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogMAor
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAg
ICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGFjdGlv
bnM6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAi
dGhpcy53aWxsLmNhdXNlLmV4Y2VwdGlvbiJ9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFrcG9pbnQsIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludFdpdGhD
b25kaXRpb24oMSwyKSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
IikKKyAgICAgICAgICAgICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2Vy
LnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJGQUlMOiBQYXVzZWQgaW4gZGVidWdnZXI6IHJlYXNvbiA9IFwiIiArIG1l
c3NhZ2VPYmplY3QucGFyYW1zLnJlYXNvbiArICJcIiIpOworICAgICAgICBjb21wbGV0ZVRlc3Qo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKQorICAgIHsKKyAgICAgICAg
Ly8gUmVzZXQgdGhlIHBhdXNlT25FeGNlcHRpb24gc3RhdGUgYmVmb3JlIGVuZGluZyB0aGUgdGVz
dC4KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VP
bkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLmVuYWJsZSIsIHt9KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdl
T2JqZWN0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQi
KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+VGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJv
d24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNo
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWU4Nzcy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4gYWN0aW9uIHRoYXQgdGhyb3dzIGFu
IGV4Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1Z2dlci4KKworQnJlYWtwb2ludHMg
RW5hYmxlZAorRm91bmQgYnJlYWtwb2ludC5qcworaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uIGE6KDEpIGI6KDIpIGErYjooMykKK0Nsb3NpbmcgdGhlIGluc3BlY3Rvci4KK1BBU1M6IFRl
c3QgZGlkIG5vdCBjcmFzaCBhZnRlciBkZWJ1Z2dlciBkaXNjb25uZWN0ZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNv
bmRpdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zNTIwYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC5o
dG1sCkBAIC0wLDAgKzEsNjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5CcmVha3BvaW50V2l0aENvbmRpdGlvbigpCit7Cisg
ICAgLy8gVGhlIGRlYnVnZ2VyIHNob3VsZCBoaXQgYSBicmVha3BvaW50IGluc2lkZSB0aGUgYnJl
YWtwb2ludFdpdGhDb25kaXRpb24gY2FsbC4KKyAgICBicmVha3BvaW50V2l0aENvbmRpdGlvbigx
LCAyKTsKKyAgICAvLyBJZiB3ZSBnZXQgaGVyZSBpdCBtZWFucyB0aGF0IHRoZSBkZWJ1Z2dlciB3
YXMgZGlzY29ubmVjdGVkIGFuZCB0aGUgZXhlY3V0aW9uIGNvbnRpbnVlZCBhcyB1c3VhbC4KKyAg
ICBsb2coIlBBU1M6IFRlc3QgZGlkIG5vdCBjcmFzaCBhZnRlciBkZWJ1Z2dlciBkaXNjb25uZWN0
ZWQuIik7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKKy8vIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSBicmVha3BvaW50IGNvbmRpdGlvbi4KK2Z1bmN0aW9uIGRpc2Nv
bm5lY3QoKQoreworICAgIGxvZygiQ2xvc2luZyB0aGUgaW5zcGVjdG9yLiIpOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7CisgICAgLy8gVGhyb3dp
bmcgYW4gZXhjZXB0aW9uIHdpbGwgbWFrZSB0aGUgZGVidWdnZXIgZXhlY3V0ZSBzb21lIGNvZGUg
dXNpbmcgYSBkZWFkIGNvbnRleHQuCisgICAgLy8gVGVzdCBwYXNzZXMgaWYgdGhlIGRlYnVnZ2Vy
IGlzIG5vdCBjcmFzaGluZy4KKyAgICB0aHJvdyBuZXcgRXJyb3IoKTsKK30KKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgv
cmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJs
KSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMi
KTsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0geworICAgICAgICAgICAgICAgIGxvY2F0
aW9uOiB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdElkOiBtZXNzYWdlT2JqZWN0LnBhcmFt
cy5zY3JpcHRJZCwKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogOCwKKyAgICAgICAg
ICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAwCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogImRpc2Nv
bm5lY3QoKSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFr
cG9pbnQsIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJydW5C
cmVha3BvaW50V2l0aENvbmRpdGlvbigpIn0pOworICAgICAgICB9CisgICAgfQorCisgICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBQYXVz
ZWQgaW4gZGVidWdnZXI6IHJlYXNvbiA9IFwiIiArIG1lc3NhZ2VPYmplY3QucGFyYW1zLnJlYXNv
biArICJcIiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0K
KworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
KyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0Fj
dGl2ZSIsIHthY3RpdmU6IHRydWV9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAg
IEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnRzIEVuYWJsZWQiKTsKKyAgICB9KTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+RGVidWdnZXIuc2V0
QnJlYWtwb2ludCB3aXRoIGFuIGFjdGlvbiB0aGF0IHRocm93cyBhbiBleGNlcHRpb24gc2hvdWxk
IG5vdCBwYXVzZSB0aGUgZGVidWdnZXIuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29u
ZGl0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU1YWEwNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxsLmNhdXNlJykKK1RoZSBkZWJ1
Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1dGlu
ZyB0aGUgYnJlYWtwb2ludCBjb25kaXRpb25zLgorCitCcmVha3BvaW50cyBFbmFibGVkCitGb3Vu
ZCBicmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjoo
MikgYStiOigzKQorUEFTUzogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gdGhlIGV4
Y2VwdGlvbiBpbnNpZGUgdGhlIGNvbmRpdGlvbi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhj
ZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44NzhkNjU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhj
ZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMk
Ly50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAgICAgICB2YXIgYnJlYWtw
b2ludCA9IHsKKyAgICAgICAgICAgICAgICBsb2NhdGlvbjogeworICAgICAgICAgICAgICAgICAg
ICBzY3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCisgICAgICAgICAgICAg
ICAgICAgIGxpbmVOdW1iZXI6IDgsCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjog
MAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3B0aW9uczogeworICAgICAg
ICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGNv
bmRpdGlvbjogInRoaXMud2lsbC5jYXVzZS5leGNlcHRpb24iLAorICAgICAgICAgICAgICAgICAg
ICBhY3Rpb246IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAibG9nIiwgZGF0YTog
IkZBSUw6IFRoZSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgbm90IGJlIGV4ZWN1dGVkIGlmIHRo
ZSBjb25kaXRpb24gaGFkIGFuIGV4Y2VwdGlvbi4ifQorICAgICAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCBicmVha3BvaW50LCBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwg
SW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRX
aXRoQ29uZGl0aW9uKDEsMikifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlBBU1M6IFRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIHRoZSBl
eGNlcHRpb24gaW5zaWRlIHRoZSBjb25kaXRpb24uIik7CisgICAgICAgICAgICAgICAgY29tcGxl
dGVUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogUGF1c2Vk
IGluIGRlYnVnZ2VyOiByZWFzb24gPSBcIiIgKyBtZXNzYWdlT2JqZWN0LnBhcmFtcy5yZWFzb24g
KyAiXCIiKTsKKyAgICAgICAgY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y29tcGxldGVUZXN0KCkKKyAgICB7CisgICAgICAgIC8vIFJlc2V0IHRoZSBwYXVzZU9uRXhjZXB0
aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhlIHRlc3QuCisgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAibm9u
ZSJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUi
LCB7YWN0aXZlOiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50cyBFbmFibGVkIik7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRoZSBkZWJ1Z2dlciBzaG91
bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJl
YWtwb2ludCBjb25kaXRpb25zLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiODRkOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2
YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorV2hpbGUgYmVp
bmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxkIGlnbm9yZSB0aGUg
ZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCisKK0JyZWFrcG9pbnRzIEVuYWJsZWQK
K0ZvdW5kIGJyZWFrcG9pbnQuanMKK2luc2lkZSBicmVha3BvaW50QmFzaWMKK1BBU1M6IFBhdXNl
ZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIm90aGVyIgorUEFTUzogVGhlIGRlYnVnZ2VyIHNob3Vs
ZCBub3Qgc3RvcCBvbiB0aGUgZXhjZXB0aW9uIHRocm93biBieSBhIGNvbnNvbGUgY29tbWFuZCB3
aGlsZSBwYXVzZWQgb24gYSBicmVha3BvaW50LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTJiY2U1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbApAQCAt
MCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7
CisgICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9i
amVjdC5wYXJhbXMudXJsKSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5k
IGJyZWFrcG9pbnQuanMiKTsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0geworICAgICAg
ICAgICAgICAgIGxvY2F0aW9uOiB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdElkOiBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJl
cjogMywKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAwCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCBicmVha3BvaW50LCBJbnNwZWN0b3JUZXN0LmNo
ZWNrRm9yRXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgSW5zcGVjdG9yVGVz
dC5jaGVja0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRCYXNpYygpIn0sIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucGF1c2VkIl0gPSBvbkJyZWFrcG9pbnRIaXQ7CisKKyAgICBmdW5jdGlvbiBvbkJy
ZWFrcG9pbnRIaXQobWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVNTOiBQYXVzZWQgaW4gZGVidWdnZXI6IHJlYXNvbiA9IFwiIiArIG1lc3NhZ2VPYmpl
Y3QucGFyYW1zLnJlYXNvbiArICJcIiIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkbyBu
b3QgcGF1c2UgYWdhaW4gaW4gdGhlIGRlYnVnZ2VyLgorICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBvblBhdXNlZE9uRXhjZXB0aW9uOworCisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhw
cmVzc2lvbjogInRoaXMuc2hvdWxkLnRyaWdnZXIuYW4uZXhjZXB0aW9uIn0sIGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvciht
ZXNzYWdlT2JqZWN0KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBUaGUg
ZGVidWdnZXIgc2hvdWxkIG5vdCBzdG9wIG9uIHRoZSBleGNlcHRpb24gdGhyb3duIGJ5IGEgY29u
c29sZSBjb21tYW5kIHdoaWxlIHBhdXNlZCBvbiBhIGJyZWFrcG9pbnQuIik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25QYXVzZWRPbkV4Y2VwdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFNob3VsZCBub3Qg
YnJlYWsgb24gZXhjZXB0aW9ucyB3aGlsZSBwYXVzZWQgb24gYSBicmVha3BvaW50LiIpOworICAg
ICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3Qo
KQorICAgIHsKKyAgICAgICAgLy8gSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
cmVzdW1lIiwge30pOworICAgICAgICAvLyBSZXNldCB0aGUgcGF1c2VPbkV4Y2VwdGlvbiBzdGF0
ZSBiZWZvcmUgZW5kaW5nIHRoZSB0ZXN0LgorICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogIm5vbmUifSk7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUiLCB7YWN0aXZl
OiB0cnVlfSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJCcmVha3BvaW50cyBFbmFibGVkIik7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPldoaWxlIGJlaW5nIHBhdXNlZCBvbiBhIGJy
ZWFrcG9pbnQgdGhlIGRlYnVnZ2VyIHNob3VsZCBpZ25vcmUgdGhlIGV4Y2VwdGlvbnMgZnJvbSBj
b25zb2xlIGNvbW1hbmRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25k
aXRvbnMtYW5kLWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I1YWY1ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTMgQEAKK1RoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlv
bnMgdGhyb3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgorCitCcmVh
a3BvaW50cyBFbmFibGVkCitGb3VuZCBicmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtwb2ludFdp
dGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQorRXhlY3V0aW5nIGNvbmRpdGlvbgoraW5z
aWRlIGJyZWFrcG9pbnRCYXNpYworQ29uZGl0aW9uIGV4ZWN1dGVkCitFeGVjdXRpbmcgYWN0aW9u
CitpbnNpZGUgYnJlYWtwb2ludEJhc2ljCitBY3Rpb24gZXhlY3V0ZWQKK1BBU1M6IEJyZWFrcG9p
bnQgY29uZGl0aW9uIGFuZCBhY3Rpb24gZXhlY3V0ZWQsIGJ1dCB0aGUgZXhjZXB0aW9uIGRpZCBu
b3QgY2F1c2UgdGhlIGRlYnVnZ2VyIHRvIHBhdXNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25z
LWFuZC1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMxY2M1OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1j
b25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291
cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
YnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgvcmVzb3VyY2VzXC9i
cmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKKworICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSB7CisgICAgICAgICAgICAgICAgbG9jYXRpb246IHsKKyAg
ICAgICAgICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElk
LAorICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiA4LAorICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5OdW1iZXI6IDAKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG9w
dGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0b0NvbnRpbnVlOiB0cnVlLAorICAgICAg
ICAgICAgICAgICAgICBjb25kaXRpb246ICJsb2coJ0V4ZWN1dGluZyBjb25kaXRpb24nKTsgYnJl
YWtwb2ludEJhc2ljKCk7IGxvZygnQ29uZGl0aW9uIGV4ZWN1dGVkJyk7IHRydWU7IiwKKyAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAgICAgICAgICAgICAge3R5cGU6
ICJldmFsdWF0ZSIsIGRhdGE6ICJsb2coJ0V4ZWN1dGluZyBhY3Rpb24nKTsgYnJlYWtwb2ludEJh
c2ljKCk7IGxvZygnQWN0aW9uIGV4ZWN1dGVkJyk7In0KKyAgICAgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIC8vIFRoaXMg
YnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGhpdCBhdCBhbGwuIFRoZSBvbmx5IGNhbGxlcnMgYXJl
IHRoZSBjb25kaXRpb24gYW5kIGFjdGlvbgorICAgICAgICAgICAgLy8gYW5kIGJyZWFrcG9pbnRz
IHNob3VsZCBiZSBkaXNhYmxlZCB3aGlsZSBleGVjdXRpbmcgdGhlaXIgY29kZS4KKyAgICAgICAg
ICAgIHZhciBicmVha3BvaW50SW5zaWRlQ29uZGl0b25BbmRBY3Rpb24gPSB7CisgICAgICAgICAg
ICAgICAgbG9jYXRpb246IHsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VP
YmplY3QucGFyYW1zLnNjcmlwdElkLAorICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiAz
LAorICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IDAKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludCwgSW5zcGVjdG9yVGVzdC5jaGVj
a0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnQiLCBicmVha3BvaW50SW5zaWRlQ29uZGl0b25BbmRBY3Rpb24sIElu
c3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogImFsbCJ9
LCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2lu
dFdpdGhDb25kaXRpb24oMSwyKSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBCcmVha3BvaW50IGNvbmRpdGlv
biBhbmQgYWN0aW9uIGV4ZWN1dGVkLCBidXQgdGhlIGV4Y2VwdGlvbiBkaWQgbm90IGNhdXNlIHRo
ZSBkZWJ1Z2dlciB0byBwYXVzZS4iKQorICAgICAgICAgICAgICAgIGNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBhdXNlZCBpbiBkZWJ1Z2dl
cjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVhc29uICsgIlwiIik7Cisg
ICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVz
dCgpCisgICAgeworICAgICAgICAvLyBSZXNldCB0aGUgcGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZSBi
ZWZvcmUgZW5kaW5nIHRoZSB0ZXN0LgorICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogIm5vbmUifSk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlIiwge2FjdGl2ZTog
dHJ1ZX0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
QnJlYWtwb2ludHMgRW5hYmxlZCIpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVz
ZSBvbiBleGNlcHRpb25zIHRocm93biB3aGlsZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQgYWN0
aW9ucy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YmY3NjMyLi41YjcwMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBA
QAorMjAxMy0xMS0xMSAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ3Jhc2ggd2hlbiBjbG9zaW5nIHRoZSBJbnNwZWN0b3Ig
d2hpbGUgZGVidWdnaW5nIGFuIGV4Y2VwdGlvbiBpbnNpZGUgYSBicmVha3BvaW50IGNvbmRpdGlv
bi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDA3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBj
cmFzaCB3b3VsZCBoYXBwZW4gYmVjYXVzZSB0aGUgRGVidWdnZXIgaXMgbm90IGRlc2lnbmVkIHRv
IHN1cHBvcnQgbmVzdGVkCisgICAgICAgIGJyZWFrcy4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIGRl
YnVnZ2VyIGhhbmRsZXMgYSBicmVha3BvaW50IGFuZCB0aGUgSW5zcGVjdG9yCisgICAgICAgIGV4
ZWN1dGVzIGEgY29uc29sZSBjb21tYW5kIHRoYXQgd291bGQgaGl0IHRoZSBicmVha3BvaW50IGFn
YWluLCB0aGUgRGVidWdnZXIKKyAgICAgICAgd2lsbCBqdXN0IGlnbm9yZSB0aGUgYnJlYWtwb2lu
dC4KKworICAgICAgICBUaGVyZSB3ZXJlIG5vIGNoZWNrcyBmb3IgY29uZGl0aW9ucyBhbmQgYWN0
aW9ucy4gQmVjYXVzZSBvZiB0aGF0IGNvbmRpdGlvbnMgYW5kIGFjdGlvbnMKKyAgICAgICAgY291
bGQgdHJpZ2dlciBleGNlcHRpb25zIGFuZCBicmVha3BvaW50cy4gVGhpcyBwYXRjaCBkaXNhYmxl
cyB0aGF0IGZ1bmN0aW9uYWxpdHkgYXMgaXQKKyAgICAgICAgY2Fubm90IGJlIHN1cHBvcnRlZCB3
aXRob3V0IGEgYmlnZ2VyIHJld3JpdGUgb2YgdGhlIGNvZGUuCisKKyAgICAgICAgKiBkZWJ1Z2dl
ci9EZWJ1Z2dlci5jcHA6CisgICAgICAgIChKU0M6OlRlbXBvcmFyeVBhdXNlZFN0YXRlOjpUZW1w
b3JhcnlQYXVzZWRTdGF0ZSk6CisgICAgICAgIChKU0M6OlRlbXBvcmFyeVBhdXNlZFN0YXRlOjp+
VGVtcG9yYXJ5UGF1c2VkU3RhdGUpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6aGFzQnJlYWtw
b2ludCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpwYXVzZUlmTmVlZGVkKToKKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorCiAyMDEzLTExLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgU3dpdGNoIEZUTCBHZXRCeUlkL1B1dEJ5SWQgSUMncyBv
dmVyIHRvIHVzaW5nIEFueVJlZ0NDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyLmNwcAppbmRleCA4NjRmYjYxLi4wNmU2OGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNSw2ICsxMTUsMjUgQEAgcHJpdmF0ZToK
ICAgICBEZWJ1Z2dlciYgbV9kZWJ1Z2dlcjsKIH07CiAKKy8vIFRoaXMgaXMgdmVyeSBzaW1pbGFy
IHRvIFRlbXBvcmFyeUNoYW5nZTxib29sPiwgYnV0IHRoYXQgY2Fubm90IGJlIHVzZWQKKy8vIGFz
IHRoZSBtX2lzUGF1c2VkIGZpZWxkIHVzZXMgb25seSBvbmUgYml0LgorY2xhc3MgVGVtcG9yYXJ5
UGF1c2VkU3RhdGUgeworcHVibGljOgorICAgIFRlbXBvcmFyeVBhdXNlZFN0YXRlKERlYnVnZ2Vy
JiBkZWJ1Z2dlcikKKyAgICAgICAgOiBtX2RlYnVnZ2VyKGRlYnVnZ2VyKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2RlYnVnZ2VyLm1faXNQYXVzZWQpOworICAgICAgICBtX2RlYnVnZ2VyLm1f
aXNQYXVzZWQgPSB0cnVlOworICAgIH0KKworICAgIH5UZW1wb3JhcnlQYXVzZWRTdGF0ZSgpCisg
ICAgeworICAgICAgICBtX2RlYnVnZ2VyLm1faXNQYXVzZWQgPSBmYWxzZTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgRGVidWdnZXImIG1fZGVidWdnZXI7Cit9OwogCiBEZWJ1Z2dlcjo6RGVidWdn
ZXIoYm9vbCBpc0luV29ya2VyVGhyZWFkKQogICAgIDogbV9wYXVzZU9uRXhjZXB0aW9uc1N0YXRl
KERvbnRQYXVzZU9uRXhjZXB0aW9ucykKQEAgLTI2NCw3ICsyODMsNyBAQCB2b2lkIERlYnVnZ2Vy
OjpyZW1vdmVCcmVha3BvaW50KEJyZWFrcG9pbnRJRCBpZCkKICAgICB1cGRhdGVOZWVkRm9yT3BE
ZWJ1Z0NhbGxiYWNrcygpOwogfQogCi1ib29sIERlYnVnZ2VyOjpoYXNCcmVha3BvaW50KFNvdXJj
ZUlEIHNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24mIHBvc2l0aW9uLCBCcmVha3BvaW50ICpo
aXRCcmVha3BvaW50KSBjb25zdAorYm9vbCBEZWJ1Z2dlcjo6aGFzQnJlYWtwb2ludChTb3VyY2VJ
RCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbiwgQnJlYWtwb2ludCAqaGl0
QnJlYWtwb2ludCkKIHsKICAgICBpZiAoIW1fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTMwMywxMyArMzIyLDIzIEBAIGJvb2wgRGVidWdnZXI6Omhhc0Jy
ZWFrcG9pbnQoU291cmNlSUQgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24s
IEJyCiAgICAgaWYgKGJyZWFrcG9pbnRzW2ldLmNvbmRpdGlvbi5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCisgICAgLy8gV2UgY2Fubm90IHN0b3AgaW4gdGhlIGRlYnVnZ2VyIHdo
aWxlIGV4ZWN1dGluZyBjb25kaXRpb24gY29kZSwKKyAgICAvLyBzbyBtYWtlIGl0IGxvb2tzIGxp
a2UgdGhlIGRlYnVnZ2VyIGlzIGFscmVhZHkgcGF1c2VkLgorICAgIFRlbXBvcmFyeVBhdXNlZFN0
YXRlIHBhdXNlZFN0YXRlKCp0aGlzKTsKKwogICAgIEpTVmFsdWUgZXhjZXB0aW9uOwogICAgIEpT
VmFsdWUgcmVzdWx0ID0gRGVidWdnZXJDYWxsRnJhbWU6OmV2YWx1YXRlV2l0aENhbGxGcmFtZSht
X2N1cnJlbnRDYWxsRnJhbWUsIGJyZWFrcG9pbnRzW2ldLmNvbmRpdGlvbiwgZXhjZXB0aW9uKTsK
KworICAgIC8vIFdlIGNhbiBsb3NlIHRoZSBkZWJ1Z2dlciB3aGlsZSBleGVjdXRpbmcgSmF2YVNj
cmlwdC4KKyAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAvLyBBbiBlcnJvbmVvdXMgY29uZGl0
aW9uIGNvdW50cyBhcyAiZmFsc2UiLgogICAgICAgICBoYW5kbGVFeGNlcHRpb25JbkJyZWFrcG9p
bnRDb25kaXRpb24obV9jdXJyZW50Q2FsbEZyYW1lLCBleGNlcHRpb24pOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4obV9jdXJyZW50
Q2FsbEZyYW1lKTsKIH0KIApAQCAtNDI3LDE2ICs0NTYsMjAgQEAgdm9pZCBEZWJ1Z2dlcjo6cGF1
c2VJZk5lZWRlZChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIAogICAgIERlYnVnZ2VyQ2FsbEZyYW1l
U2NvcGUgZGVidWdnZXJDYWxsRnJhbWVTY29wZSgqdGhpcyk7CiAKKyAgICAvLyBNYWtlIHN1cmUg
d2UgYXJlIG5vdCBnb2luZyB0byBwYXVzZSBhZ2FpbiBvbiBicmVha3BvaW50IGFjdGlvbnMgYnkK
KyAgICAvLyByZXNldGluZyB0aGUgcGF1c2Ugc3RhdGUgYmVmb3JlIGV4ZWN1dGluZyBhbnkgYnJl
YWtwb2ludCBhY3Rpb25zLgorICAgIFRlbXBvcmFyeVBhdXNlZFN0YXRlIHBhdXNlZFN0YXRlKCp0
aGlzKTsKKyAgICBtX3BhdXNlT25DYWxsRnJhbWUgPSAwOworICAgIG1fcGF1c2VPbk5leHRTdGF0
ZW1lbnQgPSBmYWxzZTsKKwogICAgIGlmIChkaWRIaXRCcmVha3BvaW50KSB7CiAgICAgICAgIGhh
bmRsZUJyZWFrcG9pbnRIaXQoYnJlYWtwb2ludCk7Ci0gICAgICAgIGlmIChicmVha3BvaW50LmF1
dG9Db250aW51ZSkKKyAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSBhY3Rpb25zIGNhbiBwb3RlbnRp
YWxseSBzdG9wIHRoZSBkZWJ1Z2dlciwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0CisgICAgICAg
IC8vIHdlIHN0aWxsIGhhdmUgYSBjdXJyZW50IGNhbGwgZnJhbWUgd2hlbiB3ZSBnZXQgYmFjay4K
KyAgICAgICAgaWYgKGJyZWFrcG9pbnQuYXV0b0NvbnRpbnVlIHx8ICFtX2N1cnJlbnRDYWxsRnJh
bWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wYXVzZU9uQ2FsbEZyYW1l
ID0gMDsKLSAgICBtX3BhdXNlT25OZXh0U3RhdGVtZW50ID0gZmFsc2U7Ci0gICAgbV9pc1BhdXNl
ZCA9IHRydWU7Ci0KICAgICBoYW5kbGVQYXVzZShtX3JlYXNvbkZvclBhdXNlLCBkeW5hbWljR2xv
YmFsT2JqZWN0KTsKIAogICAgIGlmICghbV9wYXVzZU9uTmV4dFN0YXRlbWVudCAmJiAhbV9wYXVz
ZU9uQ2FsbEZyYW1lKSB7CkBAIC00NDQsOCArNDc3LDYgQEAgdm9pZCBEZWJ1Z2dlcjo6cGF1c2VJ
Zk5lZWRlZChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgaWYgKCFuZWVkc09wRGVidWdD
YWxsYmFja3MoKSkKICAgICAgICAgICAgIG1fY3VycmVudENhbGxGcmFtZSA9IDA7CiAgICAgfQot
Ci0gICAgbV9pc1BhdXNlZCA9IGZhbHNlOwogfQogCiB2b2lkIERlYnVnZ2VyOjpleGNlcHRpb24o
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uLCBib29sIGhhc0hhbmRsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDM1NGY5NmYu
LjUxNzhhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBA
IC0xNDQsNyArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgRGVidWdnZXImIG1fZGVidWdnZXI7
CiAgICAgfTsKIAotICAgIGJvb2wgaGFzQnJlYWtwb2ludChTb3VyY2VJRCwgY29uc3QgVGV4dFBv
c2l0aW9uJiwgQnJlYWtwb2ludCogaGl0QnJlYWtwb2ludCkgY29uc3Q7CisgICAgYm9vbCBoYXNC
cmVha3BvaW50KFNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24mLCBCcmVha3BvaW50KiBoaXRC
cmVha3BvaW50KTsKIAogICAgIGJvb2wgc2hvdWxkUGF1c2UoKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZFBhdXNlOyB9CiAgICAgdm9pZCBzZXRTaG91bGRQYXVzZShib29sKTsKQEAgLTE4NSw2ICsx
ODUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBtX2N1
cnJlbnREZWJ1Z2dlckNhbGxGcmFtZTsKIAogICAgIGZyaWVuZCBjbGFzcyBEZWJ1Z2dlckNhbGxG
cmFtZVNjb3BlOworICAgIGZyaWVuZCBjbGFzcyBUZW1wb3JhcnlQYXVzZWRTdGF0ZTsKICAgICBm
cmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>