<?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>149300</bug_id>
          
          <creation_ts>2015-09-17 14:58:37 -0700</creation_ts>
          <short_desc>Null dereference loading Blink layout test editing/style/apply-style-crash2.html</short_desc>
          <delta_ts>2015-10-06 12:49:00 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, HasReduction, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126878</commentid>
    <comment_count>0</comment_count>
      <attachid>261435</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-09-17 14:58:37 -0700</bug_when>
    <thetext>Created attachment 261435
crashing test

Null dereference loading Blink layout test editing/style/apply-style-crash2.html.

Stack trace:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000014
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0x14:
--&gt; 
    __TEXT                 000000010a350000-000000010a352000 [    8K] r-x/rwx SM=COW  /Users/USER/*/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.Development.xpc/Contents/MacOS/com.apple.WebKit.WebContent.Development

Application Specific Information:
CRASHING TEST: temp-tests/editing/style/apply-style-crash2.html

Global Trace Buffer (reverse chronological seconds):
18446744062.318451 CFNetwork                 	0x00007fff88d43b97 Explicitly setting CF cookie storage singleton
18446744062.318817 CFNetwork                 	0x00007fff88d8f211 Explicitly setting cookie storage singleton

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x0000000112091db5 WebCore::ApplyStyleCommand::applyRelativeFontStyleChange(WebCore::EditingStyle*) + 2261 (Node.h:638)
1   com.apple.WebCore             	0x00000001120900ee WebCore::ApplyStyleCommand::doApply() + 158 (RefPtr.h:61)
2   com.apple.WebCore             	0x0000000112144216 WebCore::CompositeEditCommand::apply() + 102 (ScopedEventQueue.h:71)
3   com.apple.WebCore             	0x0000000112367bfb WebCore::Editor::applyStyle(WTF::RefPtr&lt;WebCore::EditingStyle&gt;&amp;&amp;, WebCore::EditAction) + 107 (StdLibExtras.h:366)
4   com.apple.WebCore             	0x000000011237a2a3 WebCore::applyCommandToFrame(WebCore::Frame&amp;, WebCore::EditorCommandSource, WebCore::EditAction, WTF::Ref&lt;WebCore::EditingStyle&gt;&amp;&amp;) + 51 (StdLibExtras.h:366)
5   com.apple.WebCore             	0x000000011237a22f WebCore::executeApplyStyle(WebCore::Frame&amp;, WebCore::EditorCommandSource, WebCore::EditAction, WebCore::CSSPropertyID, WTF::String const&amp;) + 79 (EditorCommand.cpp:129)
6   com.apple.WebCore             	0x0000000112376876 WebCore::Editor::Command::execute(WTF::String const&amp;, WebCore::Event*) const + 182 (EditorCommand.cpp:1704)
7   com.apple.WebCore             	0x00000001122afc36 WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;) + 214 (Document.cpp:4666)
8   com.apple.WebCore             	0x00000001126c6074 WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::ExecState*) + 420 (JSCJSValue.h:499)
9   ???                           	0x0000520338c01028 0 + 90173790490664
10  com.apple.JavaScriptCore      	0x0000000111a2276f llint_entry + 22696
11  com.apple.JavaScriptCore      	0x0000000111a1cce4 vmEntryToJavaScript + 299
12  com.apple.JavaScriptCore      	0x00000001118dd2d9 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169 (JITCode.cpp:82)
13  com.apple.JavaScriptCore      	0x00000001118c3a10 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 10448 (Interpreter.cpp:945)
14  com.apple.JavaScriptCore      	0x00000001115d64c5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 469 (Completion.cpp:104)
15  com.apple.WebCore             	0x0000000112d398ec WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;) + 284 (JSMainThreadExecState.h:62)
16  com.apple.WebCore             	0x0000000112d39b29 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;) + 41 (ScriptController.cpp:180)
17  com.apple.WebCore             	0x0000000112d3faac WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;) + 316 (ScriptElement.cpp:309)
18  com.apple.WebCore             	0x0000000112d3e756 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport) + 1046 (StdLibExtras.h:366)
19  com.apple.WebCore             	0x000000011253b5eb WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&amp;) + 347 (ScriptElement.h:58)
20  com.apple.WebCore             	0x000000011253b440 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;) + 48 (HTMLScriptRunner.cpp:191)
21  com.apple.WebCore             	0x00000001124de466 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 86 (StdLibExtras.h:366)
22  com.apple.WebCore             	0x00000001124de52d WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&amp;) + 93 (HTMLDocumentParser.cpp:214)
23  com.apple.WebCore             	0x00000001124de0c3 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 595 (HTMLDocumentParser.cpp:259)
24  com.apple.WebCore             	0x00000001124deddd WebCore::HTMLDocumentParser::append(WTF::PassRefPtr&lt;WTF::StringImpl&gt;) + 669 (DocumentParser.h:71)
25  com.apple.WebCore             	0x000000011228161c WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;) + 92 (StdLibExtras.h:366)
26  com.apple.WebCore             	0x00000001122e168b WebCore::DocumentWriter::end() + 43 (RefPtr.h:71)
27  com.apple.WebCore             	0x00000001122c99ec WebCore::DocumentLoader::finishedLoading(double) + 268 (ResourceErrorBase.h:42)
28  com.apple.WebCore             	0x00000001120fa179 WebCore::CachedResource::checkNotify() + 153 (CachedResourceClientWalker.h:51)
29  com.apple.WebCore             	0x00000001120f6433 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 227 (CachedRawResource.cpp:104)
30  com.apple.WebCore             	0x0000000112e71501 WebCore::SubresourceLoader::didFinishLoading(double) + 1153 (ResourceLoader.h:154)
31  com.apple.WebKit              	0x00000001109b798d WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) + 561 (HandleMessage.h:16)
32  com.apple.WebKit              	0x00000001107911f1 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;) + 127 (memory:2636)
33  com.apple.WebKit              	0x0000000110793b4a IPC::Connection::dispatchOneMessage() + 126 (memory:2656)
34  com.apple.JavaScriptCore      	0x0000000111bd5985 WTF::RunLoop::performWork() + 437 (functional:1742)
35  com.apple.JavaScriptCore      	0x0000000111bd5d32 WTF::RunLoop::performWork(void*) + 34 (RunLoopCF.cpp:39)
36  com.apple.CoreFoundation      	0x00007fff949e2c01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
37  com.apple.CoreFoundation      	0x00007fff949d4b1c __CFRunLoopDoSources0 + 556
38  com.apple.CoreFoundation      	0x00007fff949d403f __CFRunLoopRun + 927
39  com.apple.CoreFoundation      	0x00007fff949d3a38 CFRunLoopRunSpecific + 296
40  com.apple.HIToolbox           	0x00007fff88e673bd RunCurrentEventLoopInMode + 235
41  com.apple.HIToolbox           	0x00007fff88e67153 ReceiveNextEventCommon + 432
42  com.apple.HIToolbox           	0x00007fff88e66f93 _BlockUntilNextEventMatchingListInModeWithFilter + 71
43  com.apple.AppKit              	0x00007fff870b81e7 _DPSNextEvent + 1076
44  com.apple.AppKit              	0x00007fff8748490d -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
45  com.apple.AppKit              	0x00007fff870ae0b8 -[NSApplication run] + 682
46  com.apple.AppKit              	0x00007fff87030396 NSApplicationMain + 1176
47  libxpc.dylib                  	0x00007fff8c70ff70 _xpc_objc_main + 793
48  libxpc.dylib                  	0x00007fff8c7116bf xpc_main + 494
49  com.apple.WebKit.WebContent.Development	0x000000010a351424 main + 409 (XPCServiceMain.Development.mm:187)
50  libdyld.dylib                 	0x00007fff93aa15ad start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126879</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-17 14:58:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/22747046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126936</commentid>
    <comment_count>2</comment_count>
      <attachid>261456</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-09-17 16:46:08 -0700</bug_when>
    <thetext>Created attachment 261456
crashing test 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130350</commentid>
    <comment_count>3</comment_count>
      <attachid>262362</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-10-02 16:35:54 -0700</bug_when>
    <thetext>Created attachment 262362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130809</commentid>
    <comment_count>4</comment_count>
      <attachid>262482</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-10-05 17:05:59 -0700</bug_when>
    <thetext>Created attachment 262482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130824</commentid>
    <comment_count>5</comment_count>
      <attachid>262482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-10-05 18:22:37 -0700</bug_when>
    <thetext>Comment on attachment 262482
Patch

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

r=me with comments

&gt; Source/WebCore/ChangeLog:10
&gt; +        https://codereview.chromium.org/177093016

ahah I wrote that one.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:351
&gt;      Node *beyondEnd;

Star on wrong side.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:377
&gt; +    for (Node *node = startNode; node != beyondEnd; node = NodeTraversal::next(*node)) {

Star on wrong side

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:385
&gt;      Node* lastStyledNode = 0;

= nullptr;

&gt; LayoutTests/editing/style/apply-style-crash3.html:12
&gt; +    testRunner.dumpAsText();

This is not needed as this is the default with js-test.

&gt; LayoutTests/editing/style/apply-style-crash3.html:13
&gt; +    testRunner.waitUntilDone();

I don&apos;t think this test needs to be asynchronous so I believe you can drop this as well.

&gt; LayoutTests/editing/style/apply-style-crash3.html:34
&gt; +    testRunner.notifyDone();

I don&apos;t believe the test needs to be async so this is likely not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130825</commentid>
    <comment_count>6</comment_count>
      <attachid>262482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-10-05 18:23:16 -0700</bug_when>
    <thetext>Comment on attachment 262482
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        This is a merge of Blink r167845 and r194944,

as for the previous patch, I would use a &apos;:&apos; at the end instead of a &apos;,&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131061</commentid>
    <comment_count>7</comment_count>
      <attachid>262532</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-10-06 11:49:39 -0700</bug_when>
    <thetext>Created attachment 262532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131089</commentid>
    <comment_count>8</comment_count>
      <attachid>262532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 12:48:55 -0700</bug_when>
    <thetext>Comment on attachment 262532
Patch

Clearing flags on attachment: 262532

Committed r190634: &lt;http://trac.webkit.org/changeset/190634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131090</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 12:49:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>261435</attachid>
            <date>2015-09-17 14:58:37 -0700</date>
            <delta_ts>2015-09-17 14:58:37 -0700</delta_ts>
            <desc>crashing test</desc>
            <filename>apply-style-crash2.html</filename>
            <type>text/html</type>
            <size>731</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
IG5vdCBjcmFzaC4KPHNjcmlwdD4KaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwoKZWwxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbDEpOwplbDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0
aGVhZCcpOwplbDEuYXBwZW5kQ2hpbGQoZWwyKTsKZWwyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyksIGVsMik7CmVsMi5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpLCBlbDIpOwpkb2N1bWVu
dC5kZXNpZ25Nb2RlID0gJ29uJzsKd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQoZWwxLCAyLCBlbDIsIDQpOwpkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29mZic7CndpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdiYWNrd2FyZCcsICdjaGFyYWN0ZXInKTsK
ZWwxLmlubmVySFRNTCA9ICJQQVNTIjsKZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdvbic7CmRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdGb250U2l6ZURlbHRhJywgZmFsc2UsICctMXB4Jyk7CmRvY3VtZW50
LmRlc2lnbk1vZGUgPSAnb2ZmJzsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>261456</attachid>
            <date>2015-09-17 16:46:08 -0700</date>
            <delta_ts>2015-09-17 16:46:08 -0700</delta_ts>
            <desc>crashing test 2</desc>
            <filename>apply-style-crash3.html</filename>
            <type>text/html</type>
            <size>971</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPHVua25vd24+CjxzY3JpcHQ+
PC9zY3JpcHQ+Cjx0ZXh0YXJlYT48L3RleHRhcmVhPgo8c2NyaXB0PgppZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cn0KCmZ1bmN0aW9uIG9uRE9NTm9kZVJlbW92ZWQoZSkgewogICAgaWYgKCEo
ZS5zcmNFbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpCiAgICAgICAgcmV0dXJuOwoKICAgIGUu
c3JjRWxlbWVudC5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCAnICcpOwogICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoJ0ZvbnRTaXplRGVsdGEnLCBmYWxzZSwgJzFweCcpOwp9Cgpkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZCIsIG9uRE9NTm9kZVJlbW92ZWQs
IGZhbHNlKTsKZG9jdW1lbnQuZGVzaWduTW9kZSA9ICJvbiI7CmRvY3VtZW50LmV4ZWNDb21tYW5k
KCJTZWxlY3RBbGwiLCBmYWxzZSkKdmFyIHVua25vd24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidW5rbm93biIpWzBdOwp1bmtub3duLnRleHRDb250ZW50ID0gInNzcyI7CnVua25v
d24ub3V0ZXJIVE1MID0gIiI7CmRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiLCBmYWxz
ZSk7Ci8vIFB1dCBkZXNjcmlwdGlvbigpIGhlcmUgc28gYXMgdG8gbm90IHVwc2V0IHRlc3QgY29u
ZGl0aW9uLgpkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgY2hhbmdpbmcgdGhlIHN0eWxlIG92ZXIg
YW4gdW5rbm93biBlbGVtZW50IGRvZXMgbm90IGNyYXNoLiIpOwppZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262362</attachid>
            <date>2015-10-02 16:35:54 -0700</date>
            <delta_ts>2015-10-05 17:05:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149300-20151002163527.patch</filename>
            <type>text/plain</type>
            <size>5862</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIyYjM5YWRkYjVjMDY5
MmQ2YmRkY2JlZGFiNjEwNTQzMjUwNDNiZC4uMmJhMTZjNjY4MmQ4ZjhhM2Y2MGUzMDUyZTBlNWE0
MGVmYjM3NWU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTEwLTAyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNyYXNoIGluIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTMwMAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI3NDcwNDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIG1lcmdlIG9mIEJsaW5rIGNoYW5nZSAxNjc4NDUs
CisgICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTc3MDkzMDE2CisKKyAg
ICAgICAgVGVzdDogZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDIuaHRtbAorCisgICAg
ICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
cHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAg
IFRoZSBpc3N1ZSB3YXMgdGhhdCB3ZSB3b3VsZCB0cmF2ZXJzZSB0aGUgRE9NIHRyZWUgcGFzdCB0
aGUgYmV5b25kRW5kIAorICAgICAgICB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMgYW5kIHRodXMg
Tm9kZVRyYXZlcnNhbDo6bmV4dCgpIHdvdWxkIHJldHVybiAKKyAgICAgICAgbnVsbCB1bmV4cGVj
dGVkbHkuIFRoaXMgQ0wgYWRkcyBhIGNoZWNrIHRvIG1ha2Ugc3VyZSBzdGFydE5vZGUgIT0gYmV5
b25kRW5kIAorICAgICAgICBiZWZvcmUgdHJhdmVyc2luZyB0byBhdm9pZCB0aGUgcHJvYmxlbS4K
KworICAgICAgICBUaGlzIENMIGFsc28gYWRkcyBhIGZldyBtb3JlIGFzc2VydGlvbnMgdG8gY2F0
Y2ggc2ltaWxhciBpc3N1ZXMgCisgICAgICAgIG1vcmUgZWFzaWx5IGluIHRoZSBmdXR1cmUuCisK
IDIwMTUtMDktMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsIG91dCByMTg4MzMxOiAiTmV0d29ya1Byb2Nlc3M6IEROUyBwcmVmZXRj
aCBoYXBwZW5zIGluIHRoZSBXZWIgUHJvY2VzcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNTYwNjI5NTVlMzMxYTQwOTlhZTZjM2Y0ZGQ0MmQ3
MDM1ZWYzZDY4NC4uODhmOTU3YTMxNzU5ZmI4MjgwYjRkYjg0YTk3ZmM0ZjkyNzkzZGU3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTM0OSw2
ICszNDksOCBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxl
Q2hhbmdlKEVkaXRpbmdTdHlsZSogc3R5bGUpCiAgICAgLy8gSWYgdGhlIGVuZCBub2RlIGlzIGJl
Zm9yZSB0aGUgc3RhcnQgbm9kZSAoY2FuIG9ubHkgaGFwcGVuIGlmIHRoZSBlbmQgbm9kZSBpcwog
ICAgIC8vIGFuIGFuY2VzdG9yIG9mIHRoZSBzdGFydCBub2RlKSwgd2UgZ2F0aGVyIG5vZGVzIHVw
IHRvIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhlIGVuZCBub2RlCiAgICAgTm9kZSAqYmV5b25kRW5k
OworICAgIEFTU0VSVChzdGFydC5kZXByZWNhdGVkTm9kZSgpKTsKKyAgICBBU1NFUlQoZW5kLmRl
cHJlY2F0ZWROb2RlKCkpOwogICAgIGlmIChzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2Nl
bmRhbnRPZihlbmQuZGVwcmVjYXRlZE5vZGUoKSkpCiAgICAgICAgIGJleW9uZEVuZCA9IE5vZGVU
cmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCplbmQuZGVwcmVjYXRlZE5vZGUoKSk7CiAg
ICAgZWxzZQpAQCAtMzU2LDIwICszNTgsMjkgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBw
bHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqIHN0eWxlKQogICAgIAogICAg
IHN0YXJ0ID0gc3RhcnQudXBzdHJlYW0oKTsgLy8gTW92ZSB1cHN0cmVhbSB0byBlbnN1cmUgd2Ug
ZG8gbm90IGFkZCByZWR1bmRhbnQgc3BhbnMuCiAgICAgTm9kZSogc3RhcnROb2RlID0gc3RhcnQu
ZGVwcmVjYXRlZE5vZGUoKTsKKworICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgYWxyZWFkeSBh
dCB0aGUgZW5kIG9yIHRoZSBuZXh0IE5vZGVUcmF2ZXJzYWw6Om5leHQoKSB3aWxsIHRyYXZlcnNl
CisgICAgLy8gcGFzdCBpdC4KKyAgICBpZiAoc3RhcnROb2RlID09IGJleW9uZEVuZCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKHN0YXJ0Tm9kZS0+aXNUZXh0Tm9kZSgpICYmIHN0YXJ0LmRl
cHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPj0gY2FyZXRNYXhPZmZzZXQoc3RhcnROb2RlKSkgLy8g
TW92ZSBvdXQgb2YgdGV4dCBub2RlIGlmIHJhbmdlIGRvZXMgbm90IGluY2x1ZGUgaXRzIGNoYXJh
Y3RlcnMuCiAgICAgICAgIHN0YXJ0Tm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKnN0YXJ0Tm9k
ZSk7CiAKICAgICAvLyBTdG9yZSBhd2F5IGZvbnQgc2l6ZSBiZWZvcmUgbWFraW5nIGFueSBjaGFu
Z2VzIHRvIHRoZSBkb2N1bWVudC4KICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBjaGFuZ2VzIHRv
IG9uZSBub2RlIHdvbid0IGVmZmVjdCBhbm90aGVyLgogICAgIEhhc2hNYXA8Tm9kZSosIGZsb2F0
PiBzdGFydGluZ0ZvbnRTaXplczsKLSAgICBmb3IgKE5vZGUgKm5vZGUgPSBzdGFydE5vZGU7IG5v
ZGUgIT0gYmV5b25kRW5kOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpCisgICAg
Zm9yIChOb2RlICpub2RlID0gc3RhcnROb2RlOyBub2RlICE9IGJleW9uZEVuZDsgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpKSB7CisgICAgICAgIEFTU0VSVChub2RlKTsKICAgICAg
ICAgc3RhcnRpbmdGb250U2l6ZXMuc2V0KG5vZGUsIGNvbXB1dGVkRm9udFNpemUobm9kZSkpOwor
ICAgIH0KIAogICAgIC8vIFRoZXNlIHNwYW5zIHdlcmUgYWRkZWQgYnkgdXMuIElmIGVtcHR5IGFm
dGVyIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0aGV5IGNhbiBiZSByZW1vdmVkLgogICAgIFZlY3RvcjxS
ZWZQdHI8SFRNTEVsZW1lbnQ+PiB1bnN0eWxlZFNwYW5zOwogICAgIAogICAgIE5vZGUqIGxhc3RT
dHlsZWROb2RlID0gMDsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0g
YmV5b25kRW5kOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAg
QVNTRVJUKG5vZGUpOwogICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAg
ICAgIGlmIChpczxIVE1MRWxlbWVudD4oKm5vZGUpKSB7CiAgICAgICAgICAgICAvLyBPbmx5IHdv
cmsgb24gZnVsbHkgc2VsZWN0ZWQgbm9kZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQ1MzIwN2U5MTdlZmY4YzgxMDg2
YzVlOGU1OGJhNjhlMWYxYTA5OS4uNjA3OGQ3ZTczYzVmMTgxYjFkM2QzNWMzZmNiNTIwYWQ1M2E5
ZTZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTEwLTAyICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNyYXNoIGluIEFwcGx5U3R5bGVDb21t
YW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTMwMAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjI3NDcwNDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBlZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxlLWNyYXNoMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWw6IEFk
ZGVkLgorCiAyMDE1LTA5LTMwICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBDb21wdXRlIGRvY3VtZW50IG1hcmtlciByZWN0cyBhdCB1c2UgdGlt
ZSBpbnN0ZWFkIG9mIHBhaW50IHRpbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjMz
N2E3YTQ1M2Y4NWViNDRmYTUwYzRlZGY1OWU1NjU5MGM4YTE5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4K
K1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUt
Y3Jhc2gyLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxlLWNyYXNo
Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc0ODNjYjk3ODY0NDcxZjA1MzczNWVmMzFkZDU0YzYwNmUwNDcw
ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2FwcGx5LXN0
eWxlLWNyYXNoMi5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwor
ZWwxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZWwxKTsKK2VsMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoZWFkJyk7CitlbDEu
YXBwZW5kQ2hpbGQoZWwyKTsKK2VsMi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpLCBlbDIpOworZWwyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyksIGVsMik7Citkb2N1bWVudC5kZXNpZ25N
b2RlID0gJ29uJzsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGVsMSwg
MiwgZWwyLCA0KTsKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb2ZmJzsKK3dpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdiYWNrd2FyZCcsICdjaGFyYWN0ZXInKTsKK2VsMS5p
bm5lckhUTUwgPSAiUEFTUyI7Citkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29uJzsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCdGb250U2l6ZURlbHRhJywgZmFsc2UsICctMXB4Jyk7Citkb2N1bWVudC5k
ZXNpZ25Nb2RlID0gJ29mZic7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262482</attachid>
            <date>2015-10-05 17:05:59 -0700</date>
            <delta_ts>2015-10-06 11:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149300-20151005170530.patch</filename>
            <type>text/plain</type>
            <size>8417</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIyYjM5YWRkYjVjMDY5
MmQ2YmRkY2JlZGFiNjEwNTQzMjUwNDNiZC4uZTcwZmEwYTYzZTNiZGJkNzY3NTIxMmExOTU5OWFj
Yjc2M2Y5NDM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTEwLTAyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNyYXNoIGluIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTMwMAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI3NDcwNDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIG1lcmdlIG9mIEJsaW5rIHIxNjc4NDUgYW5kIHIx
OTQ5NDQsCisgICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTc3MDkzMDE2
CisgICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTEyNDg2MzAwMworCisg
ICAgICAgIFRlc3Q6IGVkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWwKKyAgICAg
ICAgICAgICAgZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMuaHRtbAorCisgICAgICAg
ICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAgIFRo
ZSBpc3N1ZSB3YXMgdGhhdCB3ZSB3b3VsZCB0cmF2ZXJzZSB0aGUgRE9NIHRyZWUgcGFzdCB0aGUg
YmV5b25kRW5kIAorICAgICAgICB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMgYW5kIHRodXMgTm9k
ZVRyYXZlcnNhbDo6bmV4dCgpIHdvdWxkIHJldHVybiAKKyAgICAgICAgbnVsbCB1bmV4cGVjdGVk
bHkuIFRoaXMgQ0wgYWRkcyBhIGNoZWNrIHRvIG1ha2Ugc3VyZSBzdGFydE5vZGUgIT0gYmV5b25k
RW5kIAorICAgICAgICBiZWZvcmUgdHJhdmVyc2luZyB0byBhdm9pZCB0aGUgcHJvYmxlbS4KKwor
ICAgICAgICBCZXNpZGVzIHRoYXQsIHRoaXMgQ0wgaGFyZGVucyBjaGFuZ2luZyBmb250IHN0eWxl
IG92ZXIgdW5rbm93biBlbGVtZW50cy4KKyAgICAgICAgV2hlbiBhZGp1c3RpbmcgdGhlIHN0YXJ0
IG5vZGUgcG9zaXRpb24gb2Ygd2hlcmUgdG8gYXBwbHkgYSBmb250IHN0eWxlCisgICAgICAgIGNv
bW1hbmQsIGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBzdGVwcGVkIG9mZiB0aGUgZW5kLgorCisgICAg
ICAgIFRoaXMgQ0wgYWxzbyBhZGRzIGEgZmV3IG1vcmUgYXNzZXJ0aW9ucyB0byBjYXRjaCBzaW1p
bGFyIGlzc3VlcyAKKyAgICAgICAgbW9yZSBlYXNpbHkgaW4gdGhlIGZ1dHVyZS4KKwogMjAxNS0w
OS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGwgb3V0IHIxODgzMzE6ICJOZXR3b3JrUHJvY2VzczogRE5TIHByZWZldGNoIGhhcHBl
bnMgaW4gdGhlIFdlYiBQcm9jZXNzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcAppbmRleCA1NjA2Mjk1NWUzMzFhNDA5OWFlNmMzZjRkZDQyZDcwMzVlZjNk
Njg0Li40MGI5MzhkYWU5ODQzNGFjYWRlYWI2MjMwM2MyODJiY2M0MDc3NGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMzQ5LDYgKzM0OSw4
IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2Uo
RWRpdGluZ1N0eWxlKiBzdHlsZSkKICAgICAvLyBJZiB0aGUgZW5kIG5vZGUgaXMgYmVmb3JlIHRo
ZSBzdGFydCBub2RlIChjYW4gb25seSBoYXBwZW4gaWYgdGhlIGVuZCBub2RlIGlzCiAgICAgLy8g
YW4gYW5jZXN0b3Igb2YgdGhlIHN0YXJ0IG5vZGUpLCB3ZSBnYXRoZXIgbm9kZXMgdXAgdG8gdGhl
IG5leHQgc2libGluZyBvZiB0aGUgZW5kIG5vZGUKICAgICBOb2RlICpiZXlvbmRFbmQ7CisgICAg
QVNTRVJUKHN0YXJ0LmRlcHJlY2F0ZWROb2RlKCkpOworICAgIEFTU0VSVChlbmQuZGVwcmVjYXRl
ZE5vZGUoKSk7CiAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWROb2RlKCktPmlzRGVzY2VuZGFudE9m
KGVuZC5kZXByZWNhdGVkTm9kZSgpKSkKICAgICAgICAgYmV5b25kRW5kID0gTm9kZVRyYXZlcnNh
bDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKmVuZC5kZXByZWNhdGVkTm9kZSgpKTsKICAgICBlbHNl
CkBAIC0zNTYsMjAgKzM1OCwzMyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0
aXZlRm9udFN0eWxlQ2hhbmdlKEVkaXRpbmdTdHlsZSogc3R5bGUpCiAgICAgCiAgICAgc3RhcnQg
PSBzdGFydC51cHN0cmVhbSgpOyAvLyBNb3ZlIHVwc3RyZWFtIHRvIGVuc3VyZSB3ZSBkbyBub3Qg
YWRkIHJlZHVuZGFudCBzcGFucy4KICAgICBOb2RlKiBzdGFydE5vZGUgPSBzdGFydC5kZXByZWNh
dGVkTm9kZSgpOwotICAgIGlmIChzdGFydE5vZGUtPmlzVGV4dE5vZGUoKSAmJiBzdGFydC5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpID49IGNhcmV0TWF4T2Zmc2V0KHN0YXJ0Tm9kZSkpIC8vIE1v
dmUgb3V0IG9mIHRleHQgbm9kZSBpZiByYW5nZSBkb2VzIG5vdCBpbmNsdWRlIGl0cyBjaGFyYWN0
ZXJzLgorCisgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIG5vdCBhbHJlYWR5IGF0IHRoZSBlbmQgb3Ig
dGhlIG5leHQgTm9kZVRyYXZlcnNhbDo6bmV4dCgpIHdpbGwgdHJhdmVyc2UKKyAgICAvLyBwYXN0
IGl0LgorICAgIGlmIChzdGFydE5vZGUgPT0gYmV5b25kRW5kKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoc3RhcnROb2RlLT5pc1RleHROb2RlKCkgJiYgc3RhcnQuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSA+PSBjYXJldE1heE9mZnNldChzdGFydE5vZGUpKSB7CisgICAgICAgIC8vIE1v
dmUgb3V0IG9mIHRleHQgbm9kZSBpZiByYW5nZSBkb2VzIG5vdCBpbmNsdWRlIGl0cyBjaGFyYWN0
ZXJzLgogICAgICAgICBzdGFydE5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpzdGFydE5vZGUp
OworICAgICAgICBpZiAoIXN0YXJ0Tm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICAvLyBTdG9yZSBhd2F5IGZvbnQgc2l6ZSBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzIHRv
IHRoZSBkb2N1bWVudC4KICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBjaGFuZ2VzIHRvIG9uZSBu
b2RlIHdvbid0IGVmZmVjdCBhbm90aGVyLgogICAgIEhhc2hNYXA8Tm9kZSosIGZsb2F0PiBzdGFy
dGluZ0ZvbnRTaXplczsKLSAgICBmb3IgKE5vZGUgKm5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0g
YmV5b25kRW5kOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpCisgICAgZm9yIChO
b2RlICpub2RlID0gc3RhcnROb2RlOyBub2RlICE9IGJleW9uZEVuZDsgbm9kZSA9IE5vZGVUcmF2
ZXJzYWw6Om5leHQoKm5vZGUpKSB7CisgICAgICAgIEFTU0VSVChub2RlKTsKICAgICAgICAgc3Rh
cnRpbmdGb250U2l6ZXMuc2V0KG5vZGUsIGNvbXB1dGVkRm9udFNpemUobm9kZSkpOworICAgIH0K
IAogICAgIC8vIFRoZXNlIHNwYW5zIHdlcmUgYWRkZWQgYnkgdXMuIElmIGVtcHR5IGFmdGVyIGZv
bnQgc2l6ZSBjaGFuZ2VzLCB0aGV5IGNhbiBiZSByZW1vdmVkLgogICAgIFZlY3RvcjxSZWZQdHI8
SFRNTEVsZW1lbnQ+PiB1bnN0eWxlZFNwYW5zOwogICAgIAogICAgIE5vZGUqIGxhc3RTdHlsZWRO
b2RlID0gMDsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0gYmV5b25k
RW5kOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAgQVNTRVJU
KG5vZGUpOwogICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIGlm
IChpczxIVE1MRWxlbWVudD4oKm5vZGUpKSB7CiAgICAgICAgICAgICAvLyBPbmx5IHdvcmsgb24g
ZnVsbHkgc2VsZWN0ZWQgbm9kZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQ1MzIwN2U5MTdlZmY4YzgxMDg2YzVlOGU1
OGJhNjhlMWYxYTA5OS4uNzAzODRlYzQ2YzYyYWJiMmJhZjVkYzVlNGQxMTg1MjVjYTQwN2Y0NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEwLTAyICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNyYXNoIGluIEFwcGx5U3R5bGVDb21tYW5kOjph
cHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTMwMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI3
NDcwNDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBlZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxlLWNyYXNoMi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMuaHRtbDog
QWRkZWQuCisKIDIwMTUtMDktMzAgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIENvbXB1dGUgZG9jdW1lbnQgbWFya2VyIHJlY3RzIGF0IHVzZSB0
aW1lIGluc3RlYWQgb2YgcGFpbnQgdGltZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQy
MzM3YTdhNDUzZjg1ZWI0NGZhNTBjNGVkZjU5ZTU2NTkwYzhhMTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxlLWNyYXNoMi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyIEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNo
LgorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHls
ZS1jcmFzaDIuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jh
c2gyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ4M2NiOTc4NjQ0NzFmMDUzNzM1ZWYzMWRkNTRjNjA2ZTA0
NzBlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHkt
c3R5bGUtY3Jhc2gyLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CitlbDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbDEpOworZWwyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGhlYWQnKTsKK2Vs
MS5hcHBlbmRDaGlsZChlbDIpOworZWwyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyksIGVsMik7CitlbDIucGFyZW50Tm9kZS5pbnNlcnRCZWZv
cmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSwgZWwyKTsKK2RvY3VtZW50LmRlc2ln
bk1vZGUgPSAnb24nOword2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZWwx
LCAyLCBlbDIsIDQpOworZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdvZmYnOword2luZG93LmdldFNl
bGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2JhY2t3YXJkJywgJ2NoYXJhY3RlcicpOworZWwx
LmlubmVySFRNTCA9ICJQQVNTIjsKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOworZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ0ZvbnRTaXplRGVsdGEnLCBmYWxzZSwgJy0xcHgnKTsKK2RvY3VtZW50
LmRlc2lnbk1vZGUgPSAnb2ZmJzsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZjFlNDk5MmUxNTVjNTAxMDlmZjY2MTZmOGFkZTIxNTc4
NjM2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2FwcGx5
LXN0eWxlLWNyYXNoMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitWZXJpZnkgdGhhdCBj
aGFuZ2luZyB0aGUgc3R5bGUgb3ZlciBhbiB1bmtub3duIGVsZW1lbnQgZG9lcyBub3QgY3Jhc2gu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2OGQ5ZmRhMWZmZjNk
YmY4YmU2ZTRmMDllNzJjYjY5MzgxN2UyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gzLmh0bWwKQEAgLTAsMCArMSwzNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHVua25vd24+Cis8
c2NyaXB0Pjwvc2NyaXB0PgorPHRleHRhcmVhPjwvdGV4dGFyZWE+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIG9uRE9NTm9kZVJlbW92ZWQo
ZSkgeworICAgIGlmICghKGUuc3JjRWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBlLnNyY0VsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmJl
Z2luJywgJyAnKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9udFNpemVEZWx0YScsIGZh
bHNlLCAnMXB4Jyk7Cit9CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1v
dmVkIiwgb25ET01Ob2RlUmVtb3ZlZCwgZmFsc2UpOworZG9jdW1lbnQuZGVzaWduTW9kZSA9ICJv
biI7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIiwgZmFsc2UpCit2YXIgdW5rbm93
biA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bmtub3duIilbMF07Cit1bmtub3du
LnRleHRDb250ZW50ID0gInNzcyI7Cit1bmtub3duLm91dGVySFRNTCA9ICIiOworZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIsIGZhbHNlKTsKKy8vIFB1dCBkZXNjcmlwdGlvbigpIGhl
cmUgc28gYXMgdG8gbm90IHVwc2V0IHRlc3QgY29uZGl0aW9uLgorZGVzY3JpcHRpb24oIlZlcmlm
eSB0aGF0IGNoYW5naW5nIHRoZSBzdHlsZSBvdmVyIGFuIHVua25vd24gZWxlbWVudCBkb2VzIG5v
dCBjcmFzaC4iKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262532</attachid>
            <date>2015-10-06 11:49:39 -0700</date>
            <delta_ts>2015-10-06 12:48:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149300-20151006114909.patch</filename>
            <type>text/plain</type>
            <size>8356</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIyYjM5YWRkYjVjMDY5
MmQ2YmRkY2JlZGFiNjEwNTQzMjUwNDNiZC4uYjhlNTk0YTA1MDI2MjJiMzRlYzBmZWUwZmZiZWY2
ZWU3NzBmMDg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTEwLTAyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGNyYXNoIGluIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTMwMAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI3NDcwNDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgVGhpcyBpcyBhIG1lcmdlIG9mIEJsaW5rIHIxNjc4NDUgYW5kIHIxOTQ5
NDQ6CisgICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTc3MDkzMDE2Cisg
ICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTEyNDg2MzAwMworCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWwKKyAgICAgICAg
ICAgICAgZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMuaHRtbAorCisgICAgICAgICog
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0
eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAgIFRoZSBp
c3N1ZSB3YXMgdGhhdCB3ZSB3b3VsZCB0cmF2ZXJzZSB0aGUgRE9NIHRyZWUgcGFzdCB0aGUgYmV5
b25kRW5kIAorICAgICAgICB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMgYW5kIHRodXMgTm9kZVRy
YXZlcnNhbDo6bmV4dCgpIHdvdWxkIHJldHVybiAKKyAgICAgICAgbnVsbCB1bmV4cGVjdGVkbHku
IFRoaXMgQ0wgYWRkcyBhIGNoZWNrIHRvIG1ha2Ugc3VyZSBzdGFydE5vZGUgIT0gYmV5b25kRW5k
IAorICAgICAgICBiZWZvcmUgdHJhdmVyc2luZyB0byBhdm9pZCB0aGUgcHJvYmxlbS4KKworICAg
ICAgICBCZXNpZGVzIHRoYXQsIHRoaXMgQ0wgaGFyZGVucyBjaGFuZ2luZyBmb250IHN0eWxlIG92
ZXIgdW5rbm93biBlbGVtZW50cy4KKyAgICAgICAgV2hlbiBhZGp1c3RpbmcgdGhlIHN0YXJ0IG5v
ZGUgcG9zaXRpb24gb2Ygd2hlcmUgdG8gYXBwbHkgYSBmb250IHN0eWxlCisgICAgICAgIGNvbW1h
bmQsIGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBzdGVwcGVkIG9mZiB0aGUgZW5kLgorCisgICAgICAg
IFRoaXMgQ0wgYWxzbyBhZGRzIGEgZmV3IG1vcmUgYXNzZXJ0aW9ucyB0byBjYXRjaCBzaW1pbGFy
IGlzc3VlcyAKKyAgICAgICAgbW9yZSBlYXNpbHkgaW4gdGhlIGZ1dHVyZS4KKwogMjAxNS0wOS0z
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGwgb3V0IHIxODgzMzE6ICJOZXR3b3JrUHJvY2VzczogRE5TIHByZWZldGNoIGhhcHBlbnMg
aW4gdGhlIFdlYiBQcm9jZXNzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcAppbmRleCA1NjA2Mjk1NWUzMzFhNDA5OWFlNmMzZjRkZDQyZDcwMzVlZjNkNjg0
Li41OTFmZDg1NGIyYTE3ZDJmYmYxZjhkYmMxYWJjZWMwYTgyZTI1ODBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMzQ4LDcgKzM0OCw5IEBA
IHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UoRWRp
dGluZ1N0eWxlKiBzdHlsZSkKICAgICAvLyBDYWxjdWxhdGUgbG9vcCBlbmQgcG9pbnQuCiAgICAg
Ly8gSWYgdGhlIGVuZCBub2RlIGlzIGJlZm9yZSB0aGUgc3RhcnQgbm9kZSAoY2FuIG9ubHkgaGFw
cGVuIGlmIHRoZSBlbmQgbm9kZSBpcwogICAgIC8vIGFuIGFuY2VzdG9yIG9mIHRoZSBzdGFydCBu
b2RlKSwgd2UgZ2F0aGVyIG5vZGVzIHVwIHRvIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhlIGVuZCBu
b2RlCi0gICAgTm9kZSAqYmV5b25kRW5kOworICAgIE5vZGUqIGJleW9uZEVuZDsKKyAgICBBU1NF
UlQoc3RhcnQuZGVwcmVjYXRlZE5vZGUoKSk7CisgICAgQVNTRVJUKGVuZC5kZXByZWNhdGVkTm9k
ZSgpKTsKICAgICBpZiAoc3RhcnQuZGVwcmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoZW5k
LmRlcHJlY2F0ZWROb2RlKCkpKQogICAgICAgICBiZXlvbmRFbmQgPSBOb2RlVHJhdmVyc2FsOjpu
ZXh0U2tpcHBpbmdDaGlsZHJlbigqZW5kLmRlcHJlY2F0ZWROb2RlKCkpOwogICAgIGVsc2UKQEAg
LTM1NiwyMCArMzU4LDMzIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVG
b250U3R5bGVDaGFuZ2UoRWRpdGluZ1N0eWxlKiBzdHlsZSkKICAgICAKICAgICBzdGFydCA9IHN0
YXJ0LnVwc3RyZWFtKCk7IC8vIE1vdmUgdXBzdHJlYW0gdG8gZW5zdXJlIHdlIGRvIG5vdCBhZGQg
cmVkdW5kYW50IHNwYW5zLgogICAgIE5vZGUqIHN0YXJ0Tm9kZSA9IHN0YXJ0LmRlcHJlY2F0ZWRO
b2RlKCk7Ci0gICAgaWYgKHN0YXJ0Tm9kZS0+aXNUZXh0Tm9kZSgpICYmIHN0YXJ0LmRlcHJlY2F0
ZWRFZGl0aW5nT2Zmc2V0KCkgPj0gY2FyZXRNYXhPZmZzZXQoc3RhcnROb2RlKSkgLy8gTW92ZSBv
dXQgb2YgdGV4dCBub2RlIGlmIHJhbmdlIGRvZXMgbm90IGluY2x1ZGUgaXRzIGNoYXJhY3RlcnMu
CisKKyAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGFscmVhZHkgYXQgdGhlIGVuZCBvciB0aGUg
bmV4dCBOb2RlVHJhdmVyc2FsOjpuZXh0KCkgd2lsbCB0cmF2ZXJzZQorICAgIC8vIHBhc3QgaXQu
CisgICAgaWYgKHN0YXJ0Tm9kZSA9PSBiZXlvbmRFbmQpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChzdGFydE5vZGUtPmlzVGV4dE5vZGUoKSAmJiBzdGFydC5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpID49IGNhcmV0TWF4T2Zmc2V0KHN0YXJ0Tm9kZSkpIHsKKyAgICAgICAgLy8gTW92ZSBv
dXQgb2YgdGV4dCBub2RlIGlmIHJhbmdlIGRvZXMgbm90IGluY2x1ZGUgaXRzIGNoYXJhY3RlcnMu
CiAgICAgICAgIHN0YXJ0Tm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKnN0YXJ0Tm9kZSk7Cisg
ICAgICAgIGlmICghc3RhcnROb2RlKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IC8vIFN0b3JlIGF3YXkgZm9udCBzaXplIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMgdG8gdGhl
IGRvY3VtZW50LgogICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGNoYW5nZXMgdG8gb25lIG5vZGUg
d29uJ3QgZWZmZWN0IGFub3RoZXIuCiAgICAgSGFzaE1hcDxOb2RlKiwgZmxvYXQ+IHN0YXJ0aW5n
Rm9udFNpemVzOwotICAgIGZvciAoTm9kZSAqbm9kZSA9IHN0YXJ0Tm9kZTsgbm9kZSAhPSBiZXlv
bmRFbmQ7IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKSkKKyAgICBmb3IgKE5vZGUq
IG5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0gYmV5b25kRW5kOyBub2RlID0gTm9kZVRyYXZlcnNh
bDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAgQVNTRVJUKG5vZGUpOwogICAgICAgICBzdGFydGlu
Z0ZvbnRTaXplcy5zZXQobm9kZSwgY29tcHV0ZWRGb250U2l6ZShub2RlKSk7CisgICAgfQogCiAg
ICAgLy8gVGhlc2Ugc3BhbnMgd2VyZSBhZGRlZCBieSB1cy4gSWYgZW1wdHkgYWZ0ZXIgZm9udCBz
aXplIGNoYW5nZXMsIHRoZXkgY2FuIGJlIHJlbW92ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1M
RWxlbWVudD4+IHVuc3R5bGVkU3BhbnM7CiAgICAgCi0gICAgTm9kZSogbGFzdFN0eWxlZE5vZGUg
PSAwOworICAgIE5vZGUqIGxhc3RTdHlsZWROb2RlID0gbnVsbHB0cjsKICAgICBmb3IgKE5vZGUq
IG5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0gYmV5b25kRW5kOyBub2RlID0gTm9kZVRyYXZlcnNh
bDo6bmV4dCgqbm9kZSkpIHsKKyAgICAgICAgQVNTRVJUKG5vZGUpOwogICAgICAgICBSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4oKm5vZGUp
KSB7CiAgICAgICAgICAgICAvLyBPbmx5IHdvcmsgb24gZnVsbHkgc2VsZWN0ZWQgbm9kZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDQ1MzIwN2U5MTdlZmY4YzgxMDg2YzVlOGU1OGJhNjhlMWYxYTA5OS4uMDdhNmMyM2Fj
NzU3ODg4OGMxMDA2ZjdiYTA1NzM4M2YwYTRjODJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE1LTEwLTAyICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
Rml4IGNyYXNoIGluIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hh
bmdlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
OTMwMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI3NDcwNDY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxl
LWNyYXNoMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvYXBw
bHktc3R5bGUtY3Jhc2gyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvYXBw
bHktc3R5bGUtY3Jhc2gzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9z
dHlsZS9hcHBseS1zdHlsZS1jcmFzaDMuaHRtbDogQWRkZWQuCisKIDIwMTUtMDktMzAgIFRpbW90
aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENvbXB1dGUg
ZG9jdW1lbnQgbWFya2VyIHJlY3RzIGF0IHVzZSB0aW1lIGluc3RlYWQgb2YgcGFpbnQgdGltZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFz
aDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMzM3YTdhNDUzZjg1ZWI0NGZhNTBjNGVkZjU5
ZTU2NTkwYzhhMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxl
L2FwcGx5LXN0eWxlLWNyYXNoMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitUaGlzIHRl
c3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDIuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ4M2Ni
OTc4NjQ0NzFmMDUzNzM1ZWYzMWRkNTRjNjA2ZTA0NzBlYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gyLmh0bWwKQEAgLTAsMCAr
MSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorVGhpcyB0ZXN0IHBhc3Nl
cyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitlbDEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdsaScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbDEpOworZWwyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgndGhlYWQnKTsKK2VsMS5hcHBlbmRDaGlsZChlbDIpOworZWwyLnBh
cmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyksIGVs
Mik7CitlbDIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW5wdXQnKSwgZWwyKTsKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOword2luZG93LmdldFNl
bGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZWwxLCAyLCBlbDIsIDQpOworZG9jdW1lbnQuZGVz
aWduTW9kZSA9ICdvZmYnOword2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywg
J2JhY2t3YXJkJywgJ2NoYXJhY3RlcicpOworZWwxLmlubmVySFRNTCA9ICJQQVNTIjsKK2RvY3Vt
ZW50LmRlc2lnbk1vZGUgPSAnb24nOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0ZvbnRTaXplRGVs
dGEnLCBmYWxzZSwgJy0xcHgnKTsKK2RvY3VtZW50LmRlc2lnbk1vZGUgPSAnb2ZmJzsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
dHlsZS9hcHBseS1zdHlsZS1jcmFzaDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9hcHBseS1zdHlsZS1jcmFzaDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZjFl
NDk5MmUxNTVjNTAxMDlmZjY2MTZmOGFkZTIxNTc4NjM2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2FwcGx5LXN0eWxlLWNyYXNoMy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5IEBACitWZXJpZnkgdGhhdCBjaGFuZ2luZyB0aGUgc3R5bGUgb3ZlciBhbiB1
bmtub3duIGVsZW1lbnQgZG9lcyBub3QgY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1zdHlsZS1jcmFz
aDMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUtY3Jhc2gzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTYwZmYxMDg0NzM1MDZiOGZmYjE5YjFjYjIwYTFlZWJjM2M0ZDAzZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBwbHktc3R5bGUt
Y3Jhc2gzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHVua25vd24+Cis8c2NyaXB0Pjwvc2NyaXB0PgorPHRleHRhcmVh
PjwvdGV4dGFyZWE+Cis8c2NyaXB0PgorZnVuY3Rpb24gb25ET01Ob2RlUmVtb3ZlZChlKSB7Cisg
ICAgaWYgKCEoZS5zcmNFbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGUuc3JjRWxlbWVudC5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCAn
ICcpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb250U2l6ZURlbHRhJywgZmFsc2UsICcx
cHgnKTsKK30KKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWQiLCBv
bkRPTU5vZGVSZW1vdmVkLCBmYWxzZSk7Citkb2N1bWVudC5kZXNpZ25Nb2RlID0gIm9uIjsKK2Rv
Y3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiLCBmYWxzZSkKK3ZhciB1bmtub3duID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVua25vd24iKVswXTsKK3Vua25vd24udGV4dENv
bnRlbnQgPSAic3NzIjsKK3Vua25vd24ub3V0ZXJIVE1MID0gIiI7Citkb2N1bWVudC5leGVjQ29t
bWFuZCgiU2VsZWN0QWxsIiwgZmFsc2UpOworLy8gUHV0IGRlc2NyaXB0aW9uKCkgaGVyZSBzbyBh
cyB0byBub3QgdXBzZXQgdGVzdCBjb25kaXRpb24uCitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQg
Y2hhbmdpbmcgdGhlIHN0eWxlIG92ZXIgYW4gdW5rbm93biBlbGVtZW50IGRvZXMgbm90IGNyYXNo
LiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>