<?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>41350</bug_id>
          
          <creation_ts>2010-06-29 07:23:34 -0700</creation_ts>
          <short_desc>[v8] Web Inspector: inspected page crashes on attempt to change iframe&apos;s src attribute</short_desc>
          <delta_ts>2010-07-02 00:59:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>41470</dependson>
    
    <dependson>41511</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244279</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-29 07:23:34 -0700</bug_when>
    <thetext>Inspected page crashes on attempt to change iframe&apos;s src attribute.

Steps to reproduce:

1. Open a document with iframe.
2. Open DevTools and try to change the iframe&apos;s &quot;src&quot; attribute value.

Result:
Inspected renderer crashes with the following stack trace:
0023eec8 60641af2 chrome_60120000!v8::Object::GetPointerFromInternalField
0023eef4 60641b0a chrome_60120000!WebCore::V8Proxy::retrieveWindow+0x37
0023ef0c 60641b42 chrome_60120000!WebCore::V8Proxy::retrieveFrame+0x10
0023ef18 6056208a chrome_60120000!WebCore::V8Proxy::retrieveFrameForEnteredContext+0x19
0023ef54 6053f249 chrome_60120000!WebCore::ScriptController::processingUserGesture+0x11
0023ef60 605b970c chrome_60120000!WebCore::FrameLoader::isProcessingUserGesture+0x2d
0023f068 6067b061 chrome_60120000!WebCore::SubframeLoader::requestFrame+0xcb
0023f088 6067b3b6 chrome_60120000!WebCore::HTMLFrameElementBase::openURL+0x6d
0023f0a4 6067b0a3 chrome_60120000!WebCore::HTMLFrameElementBase::setLocation+0x58
0023f0b8 60b25c47 chrome_60120000!WebCore::HTMLFrameElementBase::parseMappedAttribute+0x2a
0023f0d0 6066f739 chrome_60120000!WebCore::HTMLIFrameElement::parseMappedAttribute+0x108
0023f0f4 6057a843 chrome_60120000!WebCore::StyledElement::attributeChanged+0xd0
0023f118 60685d17 chrome_60120000!WebCore::Element::setAttribute+0x117
0023f138 60ad99c6 chrome_60120000!WebCore::InspectorDOMAgent::setAttribute+0x4e
0023f168 60c05767 chrome_60120000!WebCore::InspectorBackendInternal::setAttributeCallback+0xc2
0023f1c4 60c05a6f chrome_60120000!v8::internal::HandleApiCallHelper&lt;0&gt;+0x167
0023f2b8 60be2048 chrome_60120000!v8::internal::Builtin_HandleApiCall+0xf
0023f2fc 60be2116 chrome_60120000!v8::internal::Invoke+0xc8
0023f320 60bb24d2 chrome_60120000!v8::internal::Execution::Call+0x26
0023f368 60785cd7 chrome_60120000!v8::Function::Call+0xc2
0023f3d4 60774d91 chrome_60120000!WebKit::DebuggerAgentImpl::executeUtilityFunction+0x18c
0023f400 60773cbc chrome_60120000!WebKit::WebDevToolsAgentImpl::dispatchOnInspectorController+0x28
0023f444 60774e09 chrome_60120000!WebKit::ToolsAgentDispatch::dispatch+0x135
0023f454 6022f5ae chrome_60120000!WebKit::WebDevToolsAgentImpl::dispatchMessageFromFrontend+0x18
0023f47c 602300b6 chrome_60120000!DevToolsAgent::OnRpcMessage+0x2d
0023f4f4 6022f22b chrome_60120000!IPC::MessageWithTuple&lt;Tuple1&lt;DevToolsMessageData&gt; &gt;::Dispatch&lt;DevToolsAgent,void (__thiscall DevToolsAgent::*)(DevToolsMessageData const &amp;)&gt;+0x39
0023f514 6020c0c3 chrome_60120000!DevToolsAgent::OnMessageReceived+0x74
0023f5f8 604c769f chrome_60120000!RenderView::OnMessageReceived+0x9c
0023f604 604c7679 chrome_60120000!MessageRouter::RouteMessage+0x23
0023f60c 604c63d7 chrome_60120000!MessageRouter::OnMessageReceived+0x1b
0023f62c 603ae13b chrome_60120000!ChildThread::OnMessageReceived+0x6f
0023f638 601dc74f chrome_60120000!RunnableMethod&lt;DetectTabLanguageFunction,void (__thiscall DetectTabLanguageFunction::*)(std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt; &gt; const &amp;),Tuple1&lt;std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt; &gt; &gt; &gt;::Run+0x17
0023f668 601dc7db chrome_60120000!MessageLoop::RunTask+0x97
0023f678 601dc971 chrome_60120000!MessageLoop::DeferOrRunPendingTask+0x28
0023f6a8 601ed398 chrome_60120000!MessageLoop::DoWork+0x71
0023f6d4 601dc589 chrome_60120000!base::MessagePumpDefault::Run+0xb9
0023f6e0 601dc50e chrome_60120000!MessageLoop::RunInternal+0x31
0023f6e8 601dc4bc chrome_60120000!MessageLoop::RunHandler+0x17
0023f708 601fff89 chrome_60120000!MessageLoop::Run+0x15
0023f970 60123b98 chrome_60120000!RendererMain+0x289
0023fb2c 011f3892 chrome_60120000!ChromeMain+0x67d
0023fba8 011f532e chrome!MainDllLoader::Launch+0xf3
0023fc08 01236d91 chrome!wWinMain+0xdd
0023fc98 755b1174 chrome!__tmainCRTStartup+0x112
0023fca4 76f4b3f5 kernel32!BaseThreadInitThunk+0xe
0023fce4 76f4b3c8 ntdll!__RtlUserThreadStart+0x70
0023fcfc 00000000 ntdll!_RtlUserThreadStart+0x1b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244280</commentid>
    <comment_count>1</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-29 07:24:22 -0700</bug_when>
    <thetext>Corresponding Chromium bug: http://code.google.com/p/chromium/issues/detail?id=44070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244309</commentid>
    <comment_count>2</comment_count>
      <attachid>60025</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-29 08:21:39 -0700</bug_when>
    <thetext>Created attachment 60025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244590</commentid>
    <comment_count>3</comment_count>
      <attachid>60025</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-29 18:38:49 -0700</bug_when>
    <thetext>Comment on attachment 60025
Patch

WebCore/bindings/v8/ScriptController.cpp:165
 +      v8::Handle&lt;v8::Context&gt; v8Context = m_proxy-&gt;mainWorldContext();
Are you sure it&apos;s ok to switch to using this frame&apos;s context instead of the entered frame?  What if the event is triggered in the other frame?  It might be missing from this frame&apos;s global object and we&apos;d incorrectly think that there wasn&apos;t a user gesture.

http://trac.webkit.org/browser/trunk/WebCore/bindings/js/ScriptController.cpp#L247

I guess the caller of this API typically finds the entered Frame before calling this method.  It&apos;s probably ok, but I&apos;m slightly worried about regressions.

Can you add a test for the global-&gt;Get =&gt; global-&gt;GetHiddenValue change?  I think the way to do that is to steal the event from a real user gesture and then assign it to window.event during a non-user gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244762</commentid>
    <comment_count>4</comment_count>
      <attachid>60118</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-30 07:20:22 -0700</bug_when>
    <thetext>Created attachment 60118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244763</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-30 07:28:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 60025 [details])
&gt; WebCore/bindings/v8/ScriptController.cpp:165
&gt;  +      v8::Handle&lt;v8::Context&gt; v8Context = m_proxy-&gt;mainWorldContext();
&gt; Are you sure it&apos;s ok to switch to using this frame&apos;s context instead of the entered frame?  What if the event is triggered in the other frame?  It might be missing from this frame&apos;s global object and we&apos;d incorrectly think that there wasn&apos;t a user gesture.
&gt;
If we want to retrieve the frame from the stack, this method shouldn&apos;t be instance method on ScriptController as it gets all the data from static functions. As you said the contract should be that caller finds Frame/ScriptController before calling the method.

 
&gt; http://trac.webkit.org/browser/trunk/WebCore/bindings/js/ScriptController.cpp#L247
&gt; 
&gt; I guess the caller of this API typically finds the entered Frame before calling this method.  It&apos;s probably ok, but I&apos;m slightly worried about regressions.
&gt; 
As you pointed out the changed code matches JSC&apos;s behavior. So it should work correctly.


&gt; Can you add a test for the global-&gt;Get =&gt; global-&gt;GetHiddenValue change?  I think the way to do that is to steal the event from a real user gesture and then assign it to window.event during a non-user gesture.

Added a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244925</commentid>
    <comment_count>6</comment_count>
      <attachid>60118</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-30 14:06:38 -0700</bug_when>
    <thetext>Comment on attachment 60118
Patch

Thanks for the test.  Hopefully all the callers follow the correct convention.  You might want to look though them to be sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245235</commentid>
    <comment_count>7</comment_count>
      <attachid>60118</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-01 03:05:52 -0700</bug_when>
    <thetext>Comment on attachment 60118
Patch

Clearing flags on attachment: 60118

Committed r62246: &lt;http://trac.webkit.org/changeset/62246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245236</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-01 03:06:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60025</attachid>
            <date>2010-06-29 08:21:39 -0700</date>
            <delta_ts>2010-06-30 07:20:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41350-20100629192135.patch</filename>
            <type>text/plain</type>
            <size>10358</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMzIzYjVlMGM1YWQwZWQ0NmM1ODJiOWFkN2YyNmRkNTFlNmFmMjIzLi40M2M3ZWY3
N2QyNmNlNTJmYTllZjkzNDU0NWI5ZTkyZmNkNjY1YzhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDYtMjkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBXZWIgSW5z
cGVjdG9yOiBpbnNwZWN0ZWQgcGFnZSBjcmFzaGVzIG9uIGF0dGVtcHQgdG8gY2hhbmdlIGlmcmFt
ZSdzIHNyYyBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMzUwCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2Ut
aWZyYW1lLXNyYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA2LTI5ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIE5vdCByZXZp
ZXdlZC4gQWRkIG1pc3NpbmcgcGl4ZWwgdGVzdCByZXN1bHRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYmM5ZmYyZDJiOTQyYTdiZjc2NDkxNjU5NzdmMTFjNGY2
ZjdiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jaGFuZ2UtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1Rlc3Rz
IHRoYXQgRWxlbWVudHMgcGFuZWwgYWxsb3dzIHRvIGNoYW5nZSBzcmMgYXR0cmlidXRlIG9uIGlm
cmFtZXMgaW5zaWRlIGluc3BlY3RlZCBwYWdlLiBTZWUgYnVnIDQxMzUwLgorCitFeHBhbmRlZCBE
T00gbm9kZTogMCxIVE1MLDEsQk9EWSwwLElGUkFNRQorSWZyYW1lIHJlbG9hZGVkLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNy
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1z
cmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZmJiOGZmY2QxOGZkMTI5MzU2YTFmNzc2MWYwOTVhNjA3Mjdj
ZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y2hhbmdlLWlmcmFtZS1zcmMuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5DaGFuZ2UgaW5zcGVjdGVkIGlmcmFtZSdzICJzcmMiIGF0dHJpYnV0ZS48L3RpdGxl
PgorPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIGRvaXQoKQoreworICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZyb250ZW5k
X2NoYW5nZUlGcmFtZVNyYyIsIG91dHB1dCk7Cit9CisKK2Z1bmN0aW9uIG9uSUZyYW1lTG9hZCgp
Cit7CisgIG9ubG9hZCgpOworICBvbklGcmFtZUxvYWQgPSBmdW5jdGlvbigpCisgIHsKKyAgICAg
IGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZyb250ZW5kX2lmcmFtZVJlbG9hZGVkIiwgZnVuY3Rp
b24gY2FsbGJhY2socmVzdWx0KQorICAgICAgeworICAgICAgICAgIG91dHB1dChyZXN1bHQpOwor
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgIH0pOworICAgICAgdmFyIGxvYWRlZFRpbWVz
ID0gMjsKKyAgICAgIG9uSUZyYW1lTG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGxvYWRl
ZFRpbWVzKys7CisgICAgICAgICAgb3V0cHV0KCJsb2FkZWQ6ICIgKyBsb2FkZWRUaW1lcyk7Cisg
ICAgICB9CisgIH0KK30KKworLy8gRnJvbnRlbmQgZnVuY3Rpb25zLgorCitmdW5jdGlvbiBmcm9u
dGVuZF9leHBhbmRFbGVtZW50c1RyZWVOb2RlKGVsZW1lbnRzVHJlZU5vZGUsIHRlc3RDb250cm9s
bGVyLCBjYWxsYmFjaykKK3sKKyAgICBpZiAoZWxlbWVudHNUcmVlTm9kZS5leHBhbmRlZCkgewor
ICAgICAgICBjYWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGVsZW1lbnRz
VHJlZU5vZGUuZXhwYW5kKCk7CisgICAgdGVzdENvbnRyb2xsZXIucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKwor
ZnVuY3Rpb24gZnJvbnRlbmRfZXhwYW5kRE9NRWxlbWVudHNUcmVlUGF0aChlbGVtZW50c1RyZWVS
b290LCBwYXRoLCB0ZXN0Q29udHJvbGxlciwgY2FsbGJhY2spCit7CisgICAgaWYgKCFwYXRoLmxl
bmd0aCkgeworICAgICAgICBjYWxsYmFjayhlbGVtZW50c1RyZWVSb290KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBmcm9udGVuZF9leHBhbmRFbGVtZW50c1RyZWVOb2RlKGVsZW1lbnRz
VHJlZVJvb3QsIHRlc3RDb250cm9sbGVyLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGNoaWxk
cmVuID0gZWxlbWVudHNUcmVlUm9vdC5jaGlsZHJlbjsKKyAgICAgICAgdmFyIGNoaWxkID0gZWxl
bWVudHNUcmVlUm9vdC5jaGlsZHJlbltwYXRoWzBdXTsKKyAgICAgICAgaWYgKCFjaGlsZCkgewor
ICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiRmFpbGVkIHRvIGV4cGFuZCBu
b2RlLiBQYXRoID0gIiArIHBhdGgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGlmICghY2hpbGQucmVwcmVzZW50ZWRPYmplY3QpIHsKKyAgICAgICAgICAgIHRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoIlJlcHJlc2VudGVkIG9iamVjdCBpcyBudWxsLiBQYXRoID0g
IiArIHBhdGgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciBj
aGlsZE5vZGVOYW1lID0gY2hpbGQucmVwcmVzZW50ZWRPYmplY3Qubm9kZU5hbWU7CisgICAgICAg
IGlmIChjaGlsZE5vZGVOYW1lICE9PSBwYXRoWzFdKSB7CisgICAgICAgICAgICB0ZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCJVbmV4cGVjdGVkIGNoaWxkIG5vZGUgbmFtZTogIiArIGNoaWxkTm9k
ZU5hbWUgKyAiLiBQYXRoID0gIiArIHBhdGgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGZyb250ZW5kX2V4cGFuZERPTUVsZW1lbnRzVHJlZVBhdGgoY2hpbGQsIHBh
dGguc2xpY2UoMiksIHRlc3RDb250cm9sbGVyLCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGZyb250ZW5kX2NoYW5nZUlGcmFtZVNyYyh0ZXN0Q29udHJvbGxlcikKK3sKKyAgICB0
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgLy8gRXhwYW5kIHRoZSBpZnJhbWUg
Ym9keSBhbmQgZXhhbWluZSBpdC4KKyAgICB2YXIgcGF0aCA9IFswLCAiSFRNTCIsIDEsICJCT0RZ
IiwgMCwgIklGUkFNRSJdOworICAgIGZyb250ZW5kX2V4cGFuZERPTUVsZW1lbnRzVHJlZVBhdGgo
V2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZSwgcGF0aCwgdGVzdENvbnRy
b2xsZXIsIGZ1bmN0aW9uKGRvbUVsZW1lbnRzVHJlZU5vZGUpIHsKKyAgICAgICAgdmFyIGRvbU5v
ZGUgPSBkb21FbGVtZW50c1RyZWVOb2RlLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICB0ZXN0
Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIkV4cGFuZGVkIERPTSBub2RlOiAiICsgcGF0aCk7Cisg
ICAgICAgIC8vIFNldCBmb2N1cyB0byB0aGUgaWZyYW1lIG5vZGUgYW5kIHRoZW4gY2hhbmdlIGl0
cyBzcmMuCisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuZm9jdXNlZERPTU5v
ZGUgPSBkb21Ob2RlOworICAgICAgICB0ZXN0Q29udHJvbGxlci5ydW5BZnRlclBlbmRpbmdEaXNw
YXRjaGVzKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZG9tTm9kZS5zZXRBdHRyaWJ1dGUoInNy
YyIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9pZnJhbWUtZnJv
bS1kaWZmZXJlbnQtZG9tYWluLWRhdGEuaHRtbCIpOworICAgICAgICAgICAgdGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZnJv
bnRlbmRfaWZyYW1lUmVsb2FkZWQodGVzdENvbnRyb2xsZXIpCit7CisgICAgdGVzdENvbnRyb2xs
ZXIucmVzdWx0cy5wdXNoKCJJZnJhbWUgcmVsb2FkZWQuIik7CisgICAgdGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJh
bWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1kYXRhLmh0bWwi
IGlkPSJyZWNlaXZlciIgb25sb2FkPSJvbklGcmFtZUxvYWQoKTsiPjwvaWZyYW1lPgorICAgIDxw
PgorICAgIFRlc3RzIHRoYXQgRWxlbWVudHMgcGFuZWwgYWxsb3dzIHRvIGNoYW5nZSBzcmMgYXR0
cmlidXRlIG9uIGlmcmFtZXMKKyAgICBpbnNpZGUgaW5zcGVjdGVkIHBhZ2UuCisgICAgU2VlIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTM1MCI+YnVn
IDQxMzUwPC9hPi4KKyAgICA8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxOTVlYTNjYzY1M2M3NDQ3
NWRhM2RiZDY3ZTY1YjQ3MWYyNjM2NGMuLjJhNjY4ZDMwMzdjNGQ4NDdhNmRiMDZmM2U0MzljNzE3
N2Q1NGI2ODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYtMjkgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW3Y4XSBXZWIgSW5zcGVjdG9yOiBpbnNwZWN0ZWQgcGFnZSBjcmFzaGVzIG9u
IGF0dGVtcHQgdG8gY2hhbmdlIGlmcmFtZSdzIHNyYyBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzUwCisKKyAgICAgICAgVGVzdDog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMuaHRtbAorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUpOiB1c2UgVjhQcm94eSBmcm9tIHRo
ZSBTY3JpcHRDb250cm9sbGVyIGluc3RlYWQgb2Ygb25lCisgICAgICAgIGZyb20gdGhlIGNhbGwg
c3RhY2suIEdldCBldmVudCBkaXJlY3RseSBmcm9tIGhpZGRlbiBwcm9wZXJ0eSB0byBhdm9pZCB1
bm5lY2Vzc2FyeSBjaGVja3MuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmV2ZW50QWNjZXNzb3JHZXR0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmV2ZW50QWNjZXNzb3JTZXR0ZXIpOgor
CiAyMDEwLTA2LTI5ICBLcmlzdGlhbiBBbWxpZSAgPGtyaXN0aWFuLmFtbGllQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNmMjU2MmYxMjFiNjQ5NWMwYTNkNmY5NjBlYWE0
YjM2NjdmMjIzODUuLjc4MTY3MzYyZWMzZjZhYjQ1YTUyMzk0ZjJkZDYyM2Q0NjM5MWQ3ZGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTMsNiArNTMsNyBA
QAogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJWOEV2ZW50LmgiCisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIK
ICNpbmNsdWRlICJWOEhUTUxFbWJlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlY4TlBPYmplY3QuaCIKQEAgLTE2MCwxNiArMTYxLDggQEAgdm9p
ZCBTY3JpcHRDb250cm9sbGVyOjp1cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKQogCiBib29s
IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZShET01XcmFwcGVyV29ybGQq
KSBjb25zdAogewotICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJh
bWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAgIC8vIE5vIHNjcmlwdCBpcyBydW5uaW5nLCBzbyBp
dCBpcyB1c2VyLWluaXRpYXRlZCB1bmxlc3MgdGhlIGdlc3R1cmUgc3RhY2sKLSAgICAvLyBleHBs
aWNpdGx5IHNheXMgaXQgaXMgbm90LgotICAgIGlmICghYWN0aXZlRnJhbWUpCi0gICAgICAgIHJl
dHVybiBVc2VyR2VzdHVyZUluZGljYXRvcjo6Z2V0VXNlckdlc3R1cmVTdGF0ZSgpICE9IERlZmlu
aXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmU7Ci0KLSAgICBWOFByb3h5KiBhY3RpdmVQcm94
eSA9IGFjdGl2ZUZyYW1lLT5zY3JpcHQoKS0+cHJveHkoKTsKLQogICAgIHY4OjpIYW5kbGVTY29w
ZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBW
OFByb3h5OjptYWluV29ybGRDb250ZXh0KGFjdGl2ZUZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4
OjpDb250ZXh0PiB2OENvbnRleHQgPSBtX3Byb3h5LT5tYWluV29ybGRDb250ZXh0KCk7CiAgICAg
Ly8gRklYTUU6IGZpbmQgYWxsIGNhc2VzIGNvbnRleHQgY2FuIGJlIGVtcHR5OgogICAgIC8vICAx
KSBKUyBpcyBkaXNhYmxlZDsKICAgICAvLyAgMikgcGFnZSBpcyBOVUxMOwpAQCAtMTc5LDcgKzE3
Miw4IEBAIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKERPTVdy
YXBwZXJXb3JsZCopIGNvbnN0CiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4
dCk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IHY4Q29udGV4dC0+R2xv
YmFsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQgPSBnbG9iYWwtPkdldCh2
ODo6U3RyaW5nOjpOZXdTeW1ib2woImV2ZW50IikpOworICAgIHY4OjpIYW5kbGU8djg6OlN0cmlu
Zz4gZXZlbnRTeW1ib2wgPSBWOEhpZGRlblByb3BlcnR5TmFtZTo6ZXZlbnQoKTsKKyAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCA9IGdsb2JhbC0+R2V0SGlkZGVuVmFsdWUoZXZlbnRT
eW1ib2wpOwogICAgIEV2ZW50KiBldmVudCA9IFY4RE9NV3JhcHBlcjo6aXNWYWxpZERPTU9iamVj
dChqc0V2ZW50KSA/IFY4RXZlbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoanNFdmVudCkpIDogMDsKIAogICAgIC8vIEJhc2VkIG9uIGNvZGUgZnJvbSBKU0MncyBTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUuCkBAIC0xODgsNyArMTgyLDcgQEAg
Ym9vbCBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRE9NV3JhcHBlcldv
cmxkKikgY29uc3QKICAgICAgICAgLy8gRXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSB3aWxsIHJldHVy
biBmYWxzZSB3aGVuIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSByZXR1cm5zIGZhbHNlLgogICAgICAgICByZXR1cm4gZXZlbnQtPmZyb21Vc2VyR2VzdHVyZSgp
OwogICAgIH0KLSAgICBpZiAobV9zb3VyY2VVUkwgJiYgbV9zb3VyY2VVUkwtPmlzTnVsbCgpICYm
ICFhY3RpdmVQcm94eS0+dGltZXJDYWxsYmFjaygpKSB7CisgICAgaWYgKG1fc291cmNlVVJMICYm
IG1fc291cmNlVVJMLT5pc051bGwoKSAmJiAhbV9wcm94eS0+dGltZXJDYWxsYmFjaygpKSB7CiAg
ICAgICAgIC8vIFRoaXMgaXMgdGhlIDxhIGhyZWY9ImphdmFzY3JpcHQ6d2luZG93Lm9wZW4oJy4u
LicpPiBjYXNlIC0+IHdlIGxldCBpdCB0aHJvdWdoLgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1l
LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKaW5kZXggMGJm
YWRkOTI3YzQ0YWIzYzU0ZjZhMjFhOWFmNGE2ODI1NTQ4YjI4OS4uMmQwZThkNmM0NDQwODc5NmM3
NzVlNjQwZGY5NTNjMjI3NTU5MzMyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Q
cm9wZXJ0eU5hbWUuaApAQCAtNDEsNyArNDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
VihhdHRyaWJ1dGVMaXN0ZW5lcikgXAogICAgIFYoc2NyaXB0U3RhdGUpIFwKICAgICBWKHNsZWVw
RnVuY3Rpb24pIFwKLSAgICBWKHRvU3RyaW5nU3RyaW5nKQorICAgIFYodG9TdHJpbmdTdHJpbmcp
IFwKKyAgICBWKGV2ZW50KQogCiAgICAgY2xhc3MgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUgewogICAg
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCBlODdkZjUxYWU5MzBkNDBmNjQ0ZjQwOTE3OGRmZDBhNjE5YTFkNzQ0Li4y
MTBlOTc0N2JlMjg1NzM0ZTk3MDU0MzZhNjAyNWM4YWEyODg2YWRjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCkBAIC01OCw2ICs1OCw3
IEBACiAjaW5jbHVkZSAiVjhEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlY4RGF0YWJhc2VDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIlY4R0NGb3JDb250ZXh0RGlzcG9zZS5oIgorI2luY2x1ZGUgIlY4SGlk
ZGVuUHJvcGVydHlOYW1lLmgiCiAjaW5jbHVkZSAiVjhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3IuaCIKQEAgLTE3NSw3ICsxNzYsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhET01XaW5kb3c6OmV2ZW50QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbQogICAgIGlmIChjb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKIAotICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBldmVudFN5bWJvbCA9
IHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiZXZlbnQiKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTdHJp
bmc+IGV2ZW50U3ltYm9sID0gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmV2ZW50KCk7CiAgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQgPSBjb250ZXh0LT5HbG9iYWwoKS0+R2V0SGlkZGVu
VmFsdWUoZXZlbnRTeW1ib2wpOwogICAgIGlmIChqc0V2ZW50LklzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTE5Niw3ICsxOTcsNyBAQCB2b2lkIFY4RE9NV2lu
ZG93OjpldmVudEFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OgogICAgIGlmIChjb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IGV2ZW50U3ltYm9sID0gdjg6OlN0cmluZzo6TmV3
U3ltYm9sKCJldmVudCIpOworICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXZlbnRTeW1ib2wg
PSBWOEhpZGRlblByb3BlcnR5TmFtZTo6ZXZlbnQoKTsKICAgICBjb250ZXh0LT5HbG9iYWwoKS0+
U2V0SGlkZGVuVmFsdWUoZXZlbnRTeW1ib2wsIHZhbHVlKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60118</attachid>
            <date>2010-06-30 07:20:22 -0700</date>
            <delta_ts>2010-07-01 03:05:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41350-20100630182019.patch</filename>
            <type>text/plain</type>
            <size>15998</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZjhkODA4NDVkNTUyNDdkNTMzYTE1M2FmNGE2ODhlZjQ2MGYzMDI1Li5hZmQ2ZjA2
YzQ5NjFiMzQzOGRiYTBiNmM1NzcxMDZhMzFkZTk4YTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDYtMzAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBXZWIgSW5z
cGVjdG9yOiBpbnNwZWN0ZWQgcGFnZSBjcmFzaGVzIG9uIGF0dGVtcHQgdG8gY2hhbmdlIGlmcmFt
ZSdzIHNyYyBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMzUwCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2VkLWZy
b20tZmFrZS11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9wb3B1cC1ibG9ja2VkLWZyb20tZmFrZS11c2VyLWdlc3R1cmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZy
YW1lLXNyYy5odG1sOiBBZGRlZC4KKwogMjAxMC0wNi0zMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjYyMTgyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tl
ZC1mcm9tLWZha2UtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BvcHVwLWJsb2NrZWQtZnJvbS1mYWtlLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWUyNmYyMWZlMTU1NzE2OWZkNTcyYTY2ZjVmZmJhZDgzODM3YzQ0NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BvcHVwLWJsb2NrZWQtZnJv
bS1mYWtlLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDbGljayBI
ZXJlCitQQVNTIHdpbiBpcyBub24tbnVsbC4KK1BBU1Mgd2luIGlzIHVuZGVmaW5lZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tlZC1mcm9tLWZha2Ut
dXNlci1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wb3B1cC1ibG9ja2Vk
LWZyb20tZmFrZS11c2VyLWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTJiYmQ3NDQxMmE3N2My
NTAwNjg2NTdkYmFkYWIxZDkxNGFlMTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tlZC1mcm9tLWZha2UtdXNlci1nZXN0dXJlLmh0bWwKQEAg
LTAsMCArMSw1MiBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8YnV0dG9uIGlkPSJ0ZXN0IiBvbmNs
aWNrPSJjbGlja0hhbmRsZXIoKSI+Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAgICAgICA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBzdG9s
ZW5FdmVudDsKKyAgICAgICAgICAgIHZhciB3aW47CisgICAgICAgICAgICBmdW5jdGlvbiBjbGlj
a0hhbmRsZXIxKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdG9sZW5FdmVudCA9
IHdpbmRvdy5ldmVudDsKKyAgICAgICAgICAgICAgICB3aW4gPSB3aW5kb3cub3BlbigiYWJvdXQ6
YmxhbmsiLCAiYmxhbmsiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoIndpbiIp
OworICAgICAgICAgICAgICAgIHdpbi5jbG9zZSgpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cuZXZlbnQgPSBzdG9sZW5FdmVudDsKKyAgICAgICAgICAgICAgICB3aW4gPSB3
aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAiYmxhbmsiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZVVuZGVmaW5lZCgid2luIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNsaWNr
SGFuZGxlciA9IGNsaWNrSGFuZGxlcjE7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2Fu
T3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQ
b3B1cEJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7
CisKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvbi5vZmZzZXRMZWZ0ICsgYnV0
dG9uLm9mZnNldFdpZHRoIC8gMiwgYnV0dG9uLm9mZnNldFRvcCArIGJ1dHRvbi5vZmZzZXRIZWln
aHQgLyAyKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBjbGlja0hhbmRsZXIgPSBjbGlja0hhbmRsZXIyOworICAg
ICAgICAgICAgICAgIHdpbmRvdy5ldmVudCA9IHN0b2xlbkV2ZW50OworICAgICAgICAgICAgICAg
IGJ1dHRvbi5jbGljaygpOworCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jaGFuZ2UtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVi
YzlmZjJkMmI5NDJhN2JmNzY0OTE2NTk3N2YxMWM0ZjZmN2I0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworVGVzdHMgdGhhdCBFbGVtZW50cyBwYW5lbCBhbGxv
d3MgdG8gY2hhbmdlIHNyYyBhdHRyaWJ1dGUgb24gaWZyYW1lcyBpbnNpZGUgaW5zcGVjdGVkIHBh
Z2UuIFNlZSBidWcgNDEzNTAuCisKK0V4cGFuZGVkIERPTSBub2RlOiAwLEhUTUwsMSxCT0RZLDAs
SUZSQU1FCitJZnJhbWUgcmVsb2FkZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmI4
ZmZjZDE4ZmQxMjkzNTZhMWY3NzYxZjA5NWE2MDcyN2NlNjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sCkBA
IC0wLDAgKzEsMTAzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNoYW5nZSBpbnNwZWN0ZWQg
aWZyYW1lJ3MgInNyYyIgYXR0cmlidXRlLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gZG9pdCgpCit7CisgICAg
ZXZhbHVhdGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfY2hhbmdlSUZyYW1lU3JjIiwgb3V0cHV0
KTsKK30KKworZnVuY3Rpb24gb25JRnJhbWVMb2FkKCkKK3sKKyAgb25sb2FkKCk7CisgIG9uSUZy
YW1lTG9hZCA9IGZ1bmN0aW9uKCkKKyAgeworICAgICAgZXZhbHVhdGVJbldlYkluc3BlY3Rvcigi
ZnJvbnRlbmRfaWZyYW1lUmVsb2FkZWQiLCBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCisgICAg
ICB7CisgICAgICAgICAgb3V0cHV0KHJlc3VsdCk7CisgICAgICAgICAgbm90aWZ5RG9uZSgpOwor
ICAgICAgfSk7CisgICAgICB2YXIgbG9hZGVkVGltZXMgPSAyOworICAgICAgb25JRnJhbWVMb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgbG9hZGVkVGltZXMrKzsKKyAgICAgICAgICBvdXRw
dXQoImxvYWRlZDogIiArIGxvYWRlZFRpbWVzKTsKKyAgICAgIH0KKyAgfQorfQorCisvLyBGcm9u
dGVuZCBmdW5jdGlvbnMuCisKK2Z1bmN0aW9uIGZyb250ZW5kX2V4cGFuZEVsZW1lbnRzVHJlZU5v
ZGUoZWxlbWVudHNUcmVlTm9kZSwgdGVzdENvbnRyb2xsZXIsIGNhbGxiYWNrKQoreworICAgIGlm
IChlbGVtZW50c1RyZWVOb2RlLmV4cGFuZGVkKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgZWxlbWVudHNUcmVlTm9kZS5leHBhbmQoKTsKKyAgICB0
ZXN0Q29udHJvbGxlci5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgeworICAg
ICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiBmcm9udGVuZF9leHBhbmRE
T01FbGVtZW50c1RyZWVQYXRoKGVsZW1lbnRzVHJlZVJvb3QsIHBhdGgsIHRlc3RDb250cm9sbGVy
LCBjYWxsYmFjaykKK3sKKyAgICBpZiAoIXBhdGgubGVuZ3RoKSB7CisgICAgICAgIGNhbGxiYWNr
KGVsZW1lbnRzVHJlZVJvb3QpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGZyb250ZW5k
X2V4cGFuZEVsZW1lbnRzVHJlZU5vZGUoZWxlbWVudHNUcmVlUm9vdCwgdGVzdENvbnRyb2xsZXIs
IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50c1RyZWVSb290LmNo
aWxkcmVuOworICAgICAgICB2YXIgY2hpbGQgPSBlbGVtZW50c1RyZWVSb290LmNoaWxkcmVuW3Bh
dGhbMF1dOworICAgICAgICBpZiAoIWNoaWxkKSB7CisgICAgICAgICAgICB0ZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCJGYWlsZWQgdG8gZXhwYW5kIG5vZGUuIFBhdGggPSAiICsgcGF0aCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFjaGlsZC5yZXByZXNl
bnRlZE9iamVjdCkgeworICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiUmVw
cmVzZW50ZWQgb2JqZWN0IGlzIG51bGwuIFBhdGggPSAiICsgcGF0aCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNoaWxkTm9kZU5hbWUgPSBjaGlsZC5yZXBy
ZXNlbnRlZE9iamVjdC5ub2RlTmFtZTsKKyAgICAgICAgaWYgKGNoaWxkTm9kZU5hbWUgIT09IHBh
dGhbMV0pIHsKKyAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoIlVuZXhwZWN0
ZWQgY2hpbGQgbm9kZSBuYW1lOiAiICsgY2hpbGROb2RlTmFtZSArICIuIFBhdGggPSAiICsgcGF0
aCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZnJvbnRlbmRfZXhw
YW5kRE9NRWxlbWVudHNUcmVlUGF0aChjaGlsZCwgcGF0aC5zbGljZSgyKSwgdGVzdENvbnRyb2xs
ZXIsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZnJvbnRlbmRfY2hhbmdlSUZy
YW1lU3JjKHRlc3RDb250cm9sbGVyKQoreworICAgIHRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAvLyBFeHBhbmQgdGhlIGlmcmFtZSBib2R5IGFuZCBleGFtaW5lIGl0LgorICAg
IHZhciBwYXRoID0gWzAsICJIVE1MIiwgMSwgIkJPRFkiLCAwLCAiSUZSQU1FIl07CisgICAgZnJv
bnRlbmRfZXhwYW5kRE9NRWxlbWVudHNUcmVlUGF0aChXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLnRyZWVPdXRsaW5lLCBwYXRoLCB0ZXN0Q29udHJvbGxlciwgZnVuY3Rpb24oZG9tRWxlbWVu
dHNUcmVlTm9kZSkgeworICAgICAgICB2YXIgZG9tTm9kZSA9IGRvbUVsZW1lbnRzVHJlZU5vZGUu
cmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgi
RXhwYW5kZWQgRE9NIG5vZGU6ICIgKyBwYXRoKTsKKyAgICAgICAgLy8gU2V0IGZvY3VzIHRvIHRo
ZSBpZnJhbWUgbm9kZSBhbmQgdGhlbiBjaGFuZ2UgaXRzIHNyYy4KKyAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5lbGVtZW50cy5mb2N1c2VkRE9NTm9kZSA9IGRvbU5vZGU7CisgICAgICAgIHRl
c3RDb250cm9sbGVyLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBkb21Ob2RlLnNldEF0dHJpYnV0ZSgic3JjIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL2lmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZGF0YS5o
dG1sIik7CisgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiBmcm9udGVuZF9pZnJhbWVSZWxvYWRlZCh0ZXN0
Q29udHJvbGxlcikKK3sKKyAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIklmcmFtZSBy
ZWxvYWRlZC4iKTsKKyAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUt
ZnJvbS1kaWZmZXJlbnQtZG9tYWluLWRhdGEuaHRtbCIgaWQ9InJlY2VpdmVyIiBvbmxvYWQ9Im9u
SUZyYW1lTG9hZCgpOyI+PC9pZnJhbWU+CisgICAgPHA+CisgICAgVGVzdHMgdGhhdCBFbGVtZW50
cyBwYW5lbCBhbGxvd3MgdG8gY2hhbmdlIHNyYyBhdHRyaWJ1dGUgb24gaWZyYW1lcworICAgIGlu
c2lkZSBpbnNwZWN0ZWQgcGFnZS4KKyAgICBTZWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzUwIj5idWcgNDEzNTA8L2E+LgorICAgIDwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNGMyZTJlZTZiMzM3ZDY1ZGE3MDlkYzc1NTQ0NWZlM2I0ZjRkNzRlZC4u
MmJmY2FiMzYxMmJjNzVjY2U1ZTY3NDYwZTI2NzVlMDc3MWVhZDhjNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMC0wNi0zMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIFdlYiBJbnNw
ZWN0b3I6IGluc3BlY3RlZCBwYWdlIGNyYXNoZXMgb24gYXR0ZW1wdCB0byBjaGFuZ2UgaWZyYW1l
J3Mgc3JjIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDEzNTAKKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvcG9wdXAtYmxvY2tl
ZC1mcm9tLWZha2UtdXNlci1nZXN0dXJlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTogdXNlIFY4UHJveHkgZnJvbSB0aGUgU2NyaXB0Q29u
dHJvbGxlciBpbnN0ZWFkIG9mIG9uZQorICAgICAgICBmcm9tIHRoZSBjYWxsIHN0YWNrLiBHZXQg
ZXZlbnQgZGlyZWN0bHkgZnJvbSBoaWRkZW4gcHJvcGVydHkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkg
Y2hlY2tzLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjppbnZva2VFdmVu
dEhhbmRsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpldmVudEFjY2Vzc29yR2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpldmVudEFjY2Vzc29yU2V0dGVyKToKKwogMjAxMC0w
Ni0zMCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuY3BwCmluZGV4IGNmMjU2MmYxMjFiNjQ5NWMwYTNkNmY5NjBlYWE0YjM2NjdmMjIzODUuLjc4
MTY3MzYyZWMzZjZhYjQ1YTUyMzk0ZjJkZDYyM2Q0NjM5MWQ3ZGEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlY4
QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XaW5kb3cuaCIKICNpbmNsdWRlICJWOEV2
ZW50LmgiCisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJWOEhU
TUxFbWJlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1
ZGUgIlY4TlBPYmplY3QuaCIKQEAgLTE2MCwxNiArMTYxLDggQEAgdm9pZCBTY3JpcHRDb250cm9s
bGVyOjp1cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKQogCiBib29sIFNjcmlwdENvbnRyb2xs
ZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZShET01XcmFwcGVyV29ybGQqKSBjb25zdAogewotICAg
IEZyYW1lKiBhY3RpdmVGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29u
dGV4dCgpOwotICAgIC8vIE5vIHNjcmlwdCBpcyBydW5uaW5nLCBzbyBpdCBpcyB1c2VyLWluaXRp
YXRlZCB1bmxlc3MgdGhlIGdlc3R1cmUgc3RhY2sKLSAgICAvLyBleHBsaWNpdGx5IHNheXMgaXQg
aXMgbm90LgotICAgIGlmICghYWN0aXZlRnJhbWUpCi0gICAgICAgIHJldHVybiBVc2VyR2VzdHVy
ZUluZGljYXRvcjo6Z2V0VXNlckdlc3R1cmVTdGF0ZSgpICE9IERlZmluaXRlbHlOb3RQcm9jZXNz
aW5nVXNlckdlc3R1cmU7Ci0KLSAgICBWOFByb3h5KiBhY3RpdmVQcm94eSA9IGFjdGl2ZUZyYW1l
LT5zY3JpcHQoKS0+cHJveHkoKTsKLQogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
LSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBWOFByb3h5OjptYWluV29y
bGRDb250ZXh0KGFjdGl2ZUZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENv
bnRleHQgPSBtX3Byb3h5LT5tYWluV29ybGRDb250ZXh0KCk7CiAgICAgLy8gRklYTUU6IGZpbmQg
YWxsIGNhc2VzIGNvbnRleHQgY2FuIGJlIGVtcHR5OgogICAgIC8vICAxKSBKUyBpcyBkaXNhYmxl
ZDsKICAgICAvLyAgMikgcGFnZSBpcyBOVUxMOwpAQCAtMTc5LDcgKzE3Miw4IEBAIGJvb2wgU2Ny
aXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKERPTVdyYXBwZXJXb3JsZCopIGNv
bnN0CiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7CiAKICAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IHY4Q29udGV4dC0+R2xvYmFsKCk7Ci0gICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQgPSBnbG9iYWwtPkdldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woImV2ZW50IikpOworICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXZlbnRTeW1ib2wg
PSBWOEhpZGRlblByb3BlcnR5TmFtZTo6ZXZlbnQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4ganNFdmVudCA9IGdsb2JhbC0+R2V0SGlkZGVuVmFsdWUoZXZlbnRTeW1ib2wpOwogICAgIEV2
ZW50KiBldmVudCA9IFY4RE9NV3JhcHBlcjo6aXNWYWxpZERPTU9iamVjdChqc0V2ZW50KSA/IFY4
RXZlbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoanNFdmVudCkpIDog
MDsKIAogICAgIC8vIEJhc2VkIG9uIGNvZGUgZnJvbSBKU0MncyBTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUuCkBAIC0xODgsNyArMTgyLDcgQEAgYm9vbCBTY3JpcHRDb250
cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoRE9NV3JhcHBlcldvcmxkKikgY29uc3QKICAg
ICAgICAgLy8gRXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSB3aWxsIHJldHVybiBmYWxzZSB3aGVuIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSByZXR1cm5zIGZhbHNl
LgogICAgICAgICByZXR1cm4gZXZlbnQtPmZyb21Vc2VyR2VzdHVyZSgpOwogICAgIH0KLSAgICBp
ZiAobV9zb3VyY2VVUkwgJiYgbV9zb3VyY2VVUkwtPmlzTnVsbCgpICYmICFhY3RpdmVQcm94eS0+
dGltZXJDYWxsYmFjaygpKSB7CisgICAgaWYgKG1fc291cmNlVVJMICYmIG1fc291cmNlVVJMLT5p
c051bGwoKSAmJiAhbV9wcm94eS0+dGltZXJDYWxsYmFjaygpKSB7CiAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIDxhIGhyZWY9ImphdmFzY3JpcHQ6d2luZG93Lm9wZW4oJy4uLicpPiBjYXNlIC0+IHdl
IGxldCBpdCB0aHJvdWdoLgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGI2YzUzZGZh
ZGFlNTVkZjBmN2Q0ZjgxNDNmODA5OTkyMmM5NjU1MTguLmJkYTQzNDU3NWQzMzIyZDNlZjY0NjM3
NWE0YWQ1ODFjYjRhYTVkNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0
cmFjdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFj
dEV2ZW50TGlzdGVuZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5n
LmgiCiAjaW5jbHVkZSAiVjhFdmVudC5oIgogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lckxpc3Qu
aCIKKyNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlY4UHJveHku
aCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIK
QEAgLTEyNiw3ICsxMjcsNyBAQCB2b2lkIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjppbnZva2VF
dmVudEhhbmRsZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBXZSBwdXNoIHRoZSBldmVudCBiZWluZyBwcm9jZXNzZWQgaW50byB0aGUg
Z2xvYmFsIG9iamVjdCwgc28gdGhhdCBpdCBjYW4gYmUgZXhwb3NlZCBieSBET01XaW5kb3cncyBi
aW5kaW5ncy4KLSAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZXZlbnRTeW1ib2wgPSB2ODo6U3Ry
aW5nOjpOZXdTeW1ib2woImV2ZW50Iik7CisgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBldmVu
dFN5bWJvbCA9IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpldmVudCgpOwogICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHJldHVyblZhbHVlOwogCiAgICAgLy8gSW4gYmVmb3JldW5sb2FkL3VubG9hZCBo
YW5kbGVycywgd2Ugd2FudCB0byBhdm9pZCBzbGVlcHMgd2hpY2ggZG8gdGlnaHQgbG9vcHMgb2Yg
Y2FsbGluZyBEYXRlLmdldFRpbWUoKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuaAppbmRleCAwYmZhZGQ5MjdjNDRhYjNjNTRmNmEyMWE5YWY0YTY4MjU1NDhiMjg5
Li4yZDBlOGQ2YzQ0NDA4Nzk2Yzc3NWU2NDBkZjk1M2MyMjc1NTkzMzI1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oCkBAIC00MSw3ICs0MSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBWKGF0dHJpYnV0ZUxpc3RlbmVyKSBcCiAgICAgVihzY3JpcHRT
dGF0ZSkgXAogICAgIFYoc2xlZXBGdW5jdGlvbikgXAotICAgIFYodG9TdHJpbmdTdHJpbmcpCisg
ICAgVih0b1N0cmluZ1N0cmluZykgXAorICAgIFYoZXZlbnQpCiAKICAgICBjbGFzcyBWOEhpZGRl
blByb3BlcnR5TmFtZSB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGU4N2RmNTFhZTkzMGQ0MGY2NDRmNDA5
MTc4ZGZkMGE2MTlhMWQ3NDQuLjIxMGU5NzQ3YmUyODU3MzRlOTcwNTQzNmE2MDI1YzhhYTI4ODZh
ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3Rv
bS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJWOERhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiVjhEYXRhYmFzZUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiVjhHQ0ZvckNvbnRleHREaXNwb3Nl
LmgiCisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJWOEhUTUxB
dWRpb0VsZW1lbnRDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlY4SFRNTENvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5oIgpAQCAtMTc1LDcgKzE3
Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6ZXZlbnRBY2Nlc3Nvckdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtCiAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0gICAgdjg6OkxvY2FsPHY4OjpT
dHJpbmc+IGV2ZW50U3ltYm9sID0gdjg6OlN0cmluZzo6TmV3U3ltYm9sKCJldmVudCIpOworICAg
IHY4OjpIYW5kbGU8djg6OlN0cmluZz4gZXZlbnRTeW1ib2wgPSBWOEhpZGRlblByb3BlcnR5TmFt
ZTo6ZXZlbnQoKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCA9IGNvbnRleHQt
Pkdsb2JhbCgpLT5HZXRIaWRkZW5WYWx1ZShldmVudFN5bWJvbCk7CiAgICAgaWYgKGpzRXZlbnQu
SXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpAQCAtMTk2LDcgKzE5
Nyw3IEBAIHZvaWQgVjhET01XaW5kb3c6OmV2ZW50QWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6CiAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZXZlbnRTeW1i
b2wgPSB2ODo6U3RyaW5nOjpOZXdTeW1ib2woImV2ZW50Iik7CisgICAgdjg6OkhhbmRsZTx2ODo6
U3RyaW5nPiBldmVudFN5bWJvbCA9IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpldmVudCgpOwogICAg
IGNvbnRleHQtPkdsb2JhbCgpLT5TZXRIaWRkZW5WYWx1ZShldmVudFN5bWJvbCwgdmFsdWUpOwog
fQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBkY2MzOTE3YzlhZDNmMzVlYTMyODZkM2U2NGJkYzgwOTgwZDBm
ZmI5Li4yOGZiNDMxZTBmMzc0YTNiMjZjOTY5OGRhNmUzMTc2ZTBmOTZjYTRmIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNi0zMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbdjhdIFdlYiBJbnNwZWN0b3I6IGluc3BlY3RlZCBwYWdlIGNyYXNoZXMgb24gYXR0
ZW1wdCB0byBjaGFuZ2UgaWZyYW1lJ3Mgc3JjIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEzNTAKKworICAgICAgICAqIHNyYy9XZWJC
aW5kaW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldEV2ZW50KToKKwogMjAxMC0wNi0yNSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJCaW5kaW5ncy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNwcAppbmRl
eCAyYjIwYzBhMzQxOTNlMTQ2MDJiY2FiNjdlNDAxZjdjYTk3NDA3MGY0Li4zYWFlYmZkNmZhMjA5
NjUwZGM5MTQyMWYyZWI3YmJmMTRmYzE1NDIwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkJpbmRpbmdzLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdz
LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1
ZGUgIlY4RXZlbnQuaCIKICNpbmNsdWRlICJWOEhlbHBlcnMuaCIKKyNpbmNsdWRlICJWOEhpZGRl
blByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlY4TlBVdGlscy5oIgogI2luY2x1ZGUgIlY4UHJv
eHkuaCIKICNpbmNsdWRlICJWOFJhbmdlLmgiCkBAIC0yMDgsOCArMjA5LDcgQEAgdm9pZCBXZWJC
aW5kaW5nczo6ZXh0cmFjdElkZW50aWZpZXJEYXRhKGNvbnN0IE5QSWRlbnRpZmllciYgaWRlbnRp
ZmllciwgY29uc3QgTlAKIAogc3RhdGljIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGdldEV2ZW50KGNv
bnN0IHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+JiBjb250ZXh0KQogewotICAgIHN0YXRpYyB2ODo6
UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBldmVudFN5bWJvbCh2ODo6UGVyc2lzdGVudDx2ODo6U3Ry
aW5nPjo6TmV3KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiZXZlbnQiKSkpOwotICAgIHJldHVybiBj
b250ZXh0LT5HbG9iYWwoKS0+R2V0SGlkZGVuVmFsdWUoZXZlbnRTeW1ib2wpOworICAgIHJldHVy
biBjb250ZXh0LT5HbG9iYWwoKS0+R2V0SGlkZGVuVmFsdWUoVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6
OmV2ZW50KCkpOwogfQogCiBzdGF0aWMgYm9vbCBnZXREcmFnRGF0YUltcGwoTlBPYmplY3QqIG5w
b2JqLCBpbnQqIGV2ZW50SWQsIFdlYkRyYWdEYXRhKiBkYXRhKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>