<?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>46553</bug_id>
          
          <creation_ts>2010-09-24 22:42:41 -0700</creation_ts>
          <short_desc>REGRESSION (r68289): Assertion failure in StringHasher::addCharacter() (ch != invalidCharacterValue) running websocket/tests/bad-sub-protocol-non-ascii.html</short_desc>
          <delta_ts>2010-09-27 00:10:16 -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>JavaScriptCore</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>LayoutTestFailure, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mihaip</cc>
    
    <cc>paroga</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284943</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-24 22:42:41 -0700</bug_when>
    <thetext>run-webkit-tests websocket/tests/bad-sub-protocol-non-ascii.html

ASSERTION FAILED: ch != invalidCharacterValue
(./wtf/StringHashFunctions.h:50 void WTF::StringHasher::addCharacter(UChar))

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001001368c7 WTF::StringHasher::addCharacter(unsigned short) + 59 (StringHashFunctions.h:50)
1   com.apple.JavaScriptCore      	0x00000001001369a2 unsigned int WTF::StringHasher::createHash&lt;unsigned short, &amp;(WTF::StringHasher::defaultCoverter(unsigned short))&gt;(unsigned short const*, unsigned int) + 142 (StringHashFunctions.h:104)
2   com.apple.JavaScriptCore      	0x000000010014c0ab unsigned int WTF::StringHasher::createHash&lt;unsigned short&gt;(unsigned short const*, unsigned int) + 27 (StringHashFunctions.h:129)
3   com.apple.JavaScriptCore      	0x00000001001369ce WTF::stringHash(unsigned short const*, unsigned int) + 27 (StringHashFunctions.h:167)
4   com.apple.JavaScriptCore      	0x00000001001369eb WTF::StringImpl::computeHash(unsigned short const*, unsigned int) + 27 (StringImpl.h:236)
5   com.apple.JavaScriptCore      	0x00000001001a6bf8 JSC::IdentifierUCharBufferTranslator::hash(JSC::UCharBuffer const&amp;) + 31 (Identifier.cpp:153)
6   com.apple.JavaScriptCore      	0x00000001001a6c0f WTF::HashSetTranslatorAdapter&lt;WTF::StringImpl*, WTF::HashTraits&lt;WTF::StringImpl*&gt;, JSC::UCharBuffer, JSC::IdentifierUCharBufferTranslator&gt;::hash(JSC::UCharBuffer const&amp;) + 21 (HashSet.h:103)
7   com.apple.JavaScriptCore      	0x00000001001a6c95 std::pair&lt;std::pair&lt;WTF::StringImpl**, bool&gt;, unsigned int&gt; WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor&lt;WTF::StringImpl*&gt;, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::fullLookupForWriting&lt;JSC::UCharBuffer, WTF::HashSetTranslatorAdapter&lt;WTF::StringImpl*, WTF::HashTraits&lt;WTF::StringImpl*&gt;, JSC::UCharBuffer, JSC::IdentifierUCharBufferTranslator&gt; &gt;(JSC::UCharBuffer const&amp;) + 131 (HashTable.h:584)
8   com.apple.JavaScriptCore      	0x00000001001a8aa0 std::pair&lt;WTF::HashTableIterator&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor&lt;WTF::StringImpl*&gt;, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;, bool&gt; WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor&lt;WTF::StringImpl*&gt;, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::addPassingHashCode&lt;JSC::UCharBuffer, JSC::UCharBuffer, WTF::HashSetTranslatorAdapter&lt;WTF::StringImpl*, WTF::HashTraits&lt;WTF::StringImpl*&gt;, JSC::UCharBuffer, JSC::IdentifierUCharBufferTranslator&gt; &gt;(JSC::UCharBuffer const&amp;, JSC::UCharBuffer const&amp;) + 126 (HashTable.h:726)
9   com.apple.JavaScriptCore      	0x00000001001a8cce std::pair&lt;WTF::HashTableConstIteratorAdapter&lt;WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor&lt;WTF::StringImpl*&gt;, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;, WTF::StringImpl*&gt;, bool&gt; WTF::HashSet&lt;WTF::StringImpl*, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::add&lt;JSC::UCharBuffer, JSC::IdentifierUCharBufferTranslator&gt;(JSC::UCharBuffer const&amp;) + 46 (HashSet.h:188)
10  com.apple.JavaScriptCore      	0x00000001001a8d1c std::pair&lt;WTF::HashTableConstIteratorAdapter&lt;WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor&lt;WTF::StringImpl*&gt;, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;, WTF::StringImpl*&gt;, bool&gt; JSC::IdentifierTable::add&lt;JSC::UCharBuffer, JSC::IdentifierUCharBufferTranslator&gt;(JSC::UCharBuffer) + 44 (Identifier.cpp:54)
11  com.apple.JavaScriptCore      	0x00000001001a6325 JSC::Identifier::add(JSC::JSGlobalData*, unsigned short const*, int) + 197 (Identifier.cpp:228)
12  com.apple.JavaScriptCore      	0x0000000100248417 JSC::Identifier::Identifier(JSC::JSGlobalData*, unsigned short const*, int) + 43 (Identifier.h:44)
13  com.apple.JavaScriptCore      	0x000000010024845f JSC::IdentifierArena::makeIdentifier(JSC::JSGlobalData*, unsigned short const*, unsigned long) + 47 (ParserArena.h:52)
14  com.apple.JavaScriptCore      	0x00000001002484b1 JSC::Lexer::makeIdentifier(unsigned short const*, unsigned long) + 49 (Lexer.cpp:326)
15  com.apple.JavaScriptCore      	0x00000001002488c0 JSC::Lexer::parseString(JSC::JSTokenData*) + 1036 (Lexer.cpp:533)
16  com.apple.JavaScriptCore      	0x0000000100247359 JSC::Lexer::lex(JSC::JSTokenData*, JSC::JSTokenInfo*, JSC::Lexer::LexType) + 2609 (Lexer.cpp:1009)
17  com.apple.JavaScriptCore      	0x000000010022f2a8 JSC::JSParser::next(JSC::Lexer::LexType) + 116 (JSParser.cpp:93)
18  com.apple.JavaScriptCore      	0x000000010023816c JSC::ASTBuilder::Arguments JSC::JSParser::parseArguments&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 194 (JSParser.cpp:1470)
19  com.apple.JavaScriptCore      	0x0000000100238556 JSC::ASTBuilder::Expression JSC::JSParser::parseMemberExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 858 (JSParser.cpp:1522)
20  com.apple.JavaScriptCore      	0x0000000100238824 JSC::ASTBuilder::Expression JSC::JSParser::parseUnaryExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 156 (JSParser.cpp:1565)
21  com.apple.JavaScriptCore      	0x0000000100235f70 JSC::ASTBuilder::Expression JSC::JSParser::parseBinaryExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 74 (JSParser.cpp:1177)
22  com.apple.JavaScriptCore      	0x000000010023625d JSC::ASTBuilder::Expression JSC::JSParser::parseConditionalExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 29 (JSParser.cpp:1143)
23  com.apple.JavaScriptCore      	0x00000001002363af JSC::ASTBuilder::Expression JSC::JSParser::parseAssignmentExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 105 (JSParser.cpp:1093)
24  com.apple.JavaScriptCore      	0x0000000100237848 JSC::ASTBuilder::Expression JSC::JSParser::parseExpression&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 66 (JSParser.cpp:1068)
25  com.apple.JavaScriptCore      	0x0000000100238047 JSC::ASTBuilder::Statement JSC::JSParser::parseExpressionStatement&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 41 (JSParser.cpp:984)
26  com.apple.JavaScriptCore      	0x000000010023921b JSC::ASTBuilder::Statement JSC::JSParser::parseStatement&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 1145 (JSParser.cpp:874)
27  com.apple.JavaScriptCore      	0x0000000100239250 JSC::ASTBuilder::SourceElements JSC::JSParser::parseSourceElements&lt;JSC::ASTBuilder&gt;(JSC::ASTBuilder&amp;) + 42 (JSParser.cpp:361)
28  com.apple.JavaScriptCore      	0x000000010021f57c JSC::JSParser::parseProgram() + 146 (JSParser.cpp:343)
29  com.apple.JavaScriptCore      	0x000000010021f72c JSC::jsParse(JSC::JSGlobalData*, JSC::FunctionParameters*, JSC::SourceCode const*) + 106 (JSParser.cpp:313)
30  com.apple.JavaScriptCore      	0x000000010026d1f7 JSC::Parser::parse(JSC::JSGlobalData*, JSC::FunctionParameters*, int*, JSC::UString*) + 181 (Parser.cpp:56)
31  com.apple.JavaScriptCore      	0x000000010019d86e WTF::PassRefPtr&lt;JSC::EvalNode&gt; JSC::Parser::parse&lt;JSC::EvalNode&gt;(JSC::JSGlobalData*, JSC::JSGlobalObject*, JSC::Debugger*, JSC::ExecState*, JSC::SourceCode const&amp;, JSC::FunctionParameters*, JSC::JSObject**) + 158 (Parser.h:89)
32  com.apple.JavaScriptCore      	0x000000010019834c JSC::EvalExecutable::compileInternal(JSC::ExecState*, JSC::ScopeChainNode*) + 176 (Executable.cpp:99)
33  com.apple.JavaScriptCore      	0x0000000100188173 JSC::EvalExecutable::compile(JSC::ExecState*, JSC::ScopeChainNode*) + 63 (Executable.h:206)
34  com.apple.JavaScriptCore      	0x00000001001b0e1f JSC::EvalCodeCache::get(JSC::ExecState*, JSC::UString const&amp;, JSC::ScopeChainNode*, JSC::JSValue&amp;) + 361 (EvalCodeCache.h:55)
35  com.apple.JavaScriptCore      	0x00000001001ac9a4 JSC::Interpreter::callEval(JSC::ExecState*, JSC::RegisterFile*, JSC::Register*, int, int, JSC::JSValue&amp;) + 364 (Interpreter.cpp:376)
36  com.apple.JavaScriptCore      	0x00000001001d30a7 cti_op_call_eval + 367 (JITStubs.cpp:3175)
37  com.apple.JavaScriptCore      	0x00000001001d001b jscGeneratedNativeCode + 0 (JITStubs.cpp:1007)
38  com.apple.JavaScriptCore      	0x00000001001afb96 JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*, JSC::JSValue*) + 76 (JITCode.h:77)
39  com.apple.JavaScriptCore      	0x00000001001ac24d JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::ScopeChainNode*, JSC::JSObject*, JSC::JSValue*) + 995 (Interpreter.cpp:703)
40  com.apple.JavaScriptCore      	0x000000010017bf65 JSC::evaluate(JSC::ExecState*, JSC::ScopeChain&amp;, JSC::SourceCode const&amp;, JSC::JSValue) + 484 (Completion.cpp:63)
41  com.apple.WebCore             	0x000000010155c31a WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::ScopeChain&amp;, JSC::SourceCode const&amp;, JSC::JSValue) + 58 (JSMainThreadExecState.h:54)
42  com.apple.WebCore             	0x00000001019155d8 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld*, WebCore::ShouldAllowXSS) + 514 (ScriptController.cpp:151)
43  com.apple.WebCore             	0x00000001019157e2 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;, WebCore::ShouldAllowXSS) + 58 (ScriptController.cpp:178)
44  com.apple.WebCore             	0x000000010191b0ac WebCore::ScriptController::executeScript(WebCore::ScriptSourceCode const&amp;, WebCore::ShouldAllowXSS) + 142 (ScriptControllerBase.cpp:62)
45  com.apple.WebCore             	0x0000000101319101 WebCore::HTMLScriptRunner::executeScript(WebCore::ScriptSourceCode const&amp;) const + 205 (HTMLScriptRunner.cpp:154)
46  com.apple.WebCore             	0x00000001013194e7 WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&amp;) + 283 (HTMLScriptRunner.cpp:142)
47  com.apple.WebCore             	0x0000000101319867 WebCore::HTMLScriptRunner::executeParsingBlockingScript() + 331 (HTMLScriptRunner.cpp:122)
48  com.apple.WebCore             	0x00000001013198aa WebCore::HTMLScriptRunner::executeParsingBlockingScripts() + 56 (HTMLScriptRunner.cpp:197)
49  com.apple.WebCore             	0x0000000101319b08 WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad(WebCore::CachedResource*) + 300 (HTMLScriptRunner.cpp:212)
50  com.apple.WebCore             	0x00000001012c029b WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) + 325 (HTMLDocumentParser.cpp:476)
51  com.apple.WebCore             	0x0000000100f19ad2 WebCore::CachedScript::checkNotify() + 86 (CachedScript.cpp:99)
52  com.apple.WebCore             	0x0000000100f19ba2 WebCore::CachedScript::data(WTF::PassRefPtr&lt;WebCore::SharedBuffer&gt;, bool) + 142 (CachedScript.cpp:91)
53  com.apple.WebCore             	0x00000001016e9285 WebCore::Loader::Host::didFinishLoading(WebCore::SubresourceLoader*) + 461 (loader.cpp:409)
54  com.apple.WebCore             	0x00000001019a58da WebCore::SubresourceLoader::didFinishLoading(double) + 164 (SubresourceLoader.cpp:183)
55  com.apple.WebCore             	0x00000001018f6a6c WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) + 48 (ResourceLoader.cpp:447)
56  com.apple.WebCore             	0x00000001018f1f0d -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 274 (ResourceHandleMac.mm:921)
57  com.apple.Foundation          	0x00007fff885f6b6c _NSURLConnectionDidFinishLoading + 113
58  com.apple.CFNetwork           	0x00007fff86faa05e URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 174
59  com.apple.CFNetwork           	0x00007fff8700f3d2 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 254
60  com.apple.CFNetwork           	0x00007fff8700f63e URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 874
61  com.apple.CFNetwork           	0x00007fff86f9678f URLConnectionClient::processEvents() + 121
62  com.apple.CFNetwork           	0x00007fff86f9656c MultiplexerSource::perform() + 160
63  com.apple.CoreFoundation      	0x00007fff80f74e91 __CFRunLoopDoSources0 + 1361
64  com.apple.CoreFoundation      	0x00007fff80f73089 __CFRunLoopRun + 873
65  com.apple.CoreFoundation      	0x00007fff80f7284f CFRunLoopRunSpecific + 575
66  com.apple.Foundation          	0x00007fff885b0a18 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 270
67  DumpRenderTree                	0x0000000100011c15 runTest(std::string const&amp;) + 1795 (DumpRenderTree.mm:1274)
68  DumpRenderTree                	0x0000000100012102 runTestingServerLoop() + 145 (DumpRenderTree.mm:607)
69  DumpRenderTree                	0x0000000100012517 dumpRenderTree(int, char const**) + 309 (DumpRenderTree.mm:663)
70  DumpRenderTree                	0x0000000100012739 main + 97 (DumpRenderTree.mm:705)
71  DumpRenderTree                	0x0000000100002294 start + 52</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284944</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-24 22:45:33 -0700</bug_when>
    <thetext>StringHasher was added in r68289.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284970</commentid>
    <comment_count>2</comment_count>
      <attachid>68815</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-25 01:19:02 -0700</bug_when>
    <thetext>Created attachment 68815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285286</commentid>
    <comment_count>3</comment_count>
      <attachid>68815</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 21:21:57 -0700</bug_when>
    <thetext>Comment on attachment 68815
Patch

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

I see.  We&apos;re just talking about FFFE.

&gt; JavaScriptCore/ChangeLog:7
&gt; +        REGRESSION (r68289): Assertion failure in StringHasher::addCharacter() (ch != invalidCharacterValue)
&gt; +        running websocket/tests/bad-sub-protocol-non-ascii.html
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=46553

Thanks.  This bug was troubling me.

&gt; JavaScriptCore/ChangeLog:9
&gt; +        Because we use StringHasher for binary data too, so the check for invalid unicode input is wrong.

Why are we using StringHasher for binary data?  String is supposed to represent a UTF16 string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285310</commentid>
    <comment_count>4</comment_count>
      <attachid>68815</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 22:09:20 -0700</bug_when>
    <thetext>Comment on attachment 68815
Patch

Clearing flags on attachment: 68815

Committed r68368: &lt;http://trac.webkit.org/changeset/68368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285311</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 22:09:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285352</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-27 00:10:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Why are we using StringHasher for binary data?
I don&apos;t know!

&gt; String is supposed to represent a UTF16 string.
That&apos;s why I used FFFE.

IMHO using StringHasher for creating a hash of binary data is no problem (see bug 46514).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68815</attachid>
            <date>2010-09-25 01:19:02 -0700</date>
            <delta_ts>2010-09-26 22:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46553.patch</filename>
            <type>text/plain</type>
            <size>2920</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkYzM4OWQzLi44NTBiZDUzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTAtMDktMjUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjY4Mjg5KTogQXNzZXJ0aW9uIGZhaWx1cmUgaW4gU3RyaW5nSGFzaGVyOjphZGRDaGFyYWN0
ZXIoKSAoY2ggIT0gaW52YWxpZENoYXJhY3RlclZhbHVlKQorICAgICAgICBydW5uaW5nIHdlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLW5vbi1hc2NpaS5odG1sCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU1MworCisgICAgICAgIEJlY2F1
c2Ugd2UgdXNlIFN0cmluZ0hhc2hlciBmb3IgYmluYXJ5IGRhdGEgdG9vLCBzbyB0aGUgY2hlY2sg
Zm9yIGludmFsaWQgdW5pY29kZSBpbnB1dCBpcyB3cm9uZy4KKyAgICAgICAgQWRkIGFuIGFkZGl0
aW9uYWwgbWVtYmVyIHZhcmlhYmxlIHRvIGluZGljYXRlIGlmIHdlIGhhdmUgYW4gcGVuZGluZyBj
aGFyYWN0ZXIKKyAgICAgICAgaW5zdGVhZCBvZiBvbmx5IHVzaW5nIGFuIGludmFsaWQgY2hhcmFj
dGVyIGZvciB0aGlzIHB1cnBvc2UuCisKKyAgICAgICAgKiB3dGYvU3RyaW5nSGFzaEZ1bmN0aW9u
cy5oOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6OlN0cmluZ0hhc2hlcik6CisgICAgICAg
IChXVEY6OlN0cmluZ0hhc2hlcjo6YWRkQ2hhcmFjdGVycyk6CisgICAgICAgIChXVEY6OlN0cmlu
Z0hhc2hlcjo6YWRkQ2hhcmFjdGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSGFzaGVyOjpoYXNo
KToKKwogMjAxMC0wOS0yNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29yZS93
dGYvU3RyaW5nSGFzaEZ1bmN0aW9ucy5oCmluZGV4IDY0OTg4Y2IuLjljZmEyNTYgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMuaApAQCAtMzUsMjYgKzM1LDI3IEBAIGNs
YXNzIFN0cmluZ0hhc2hlciB7CiBwdWJsaWM6CiAgICAgaW5saW5lIFN0cmluZ0hhc2hlcigpCiAg
ICAgICAgIDogbV9oYXNoKHN0cmluZ0hhc2hpbmdTdGFydFZhbHVlKQotICAgICAgICAsIG1fY2Fj
aGVkQ2hhcmFjdGVyKGludmFsaWRDaGFyYWN0ZXJWYWx1ZSkKKyAgICAgICAgLCBtX2hhc1BlbmRp
bmdDaGFyYWN0ZXIoZmFsc2UpCisgICAgICAgICwgbV9wZW5kaW5nQ2hhcmFjdGVyKDApCiAgICAg
ewogICAgIH0KIAogICAgIGlubGluZSB2b2lkIGFkZENoYXJhY3RlcnMoVUNoYXIgYSwgVUNoYXIg
YikKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX2NhY2hlZENoYXJhY3RlciA9PSBpbnZhbGlkQ2hh
cmFjdGVyVmFsdWUpOworICAgICAgICBBU1NFUlQoIW1faGFzUGVuZGluZ0NoYXJhY3Rlcik7CiAg
ICAgICAgIGFkZENoYXJhY3RlcnNUb0hhc2goYSwgYik7CiAgICAgfQogCiAgICAgaW5saW5lIHZv
aWQgYWRkQ2hhcmFjdGVyKFVDaGFyIGNoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNoICE9IGlu
dmFsaWRDaGFyYWN0ZXJWYWx1ZSk7Ci0gICAgICAgIGlmIChtX2NhY2hlZENoYXJhY3RlciAhPSBp
bnZhbGlkQ2hhcmFjdGVyVmFsdWUpIHsKLSAgICAgICAgICAgIGFkZENoYXJhY3RlcnNUb0hhc2go
bV9jYWNoZWRDaGFyYWN0ZXIsIGNoKTsKLSAgICAgICAgICAgIG1fY2FjaGVkQ2hhcmFjdGVyID0g
aW52YWxpZENoYXJhY3RlclZhbHVlOworICAgICAgICBpZiAobV9oYXNQZW5kaW5nQ2hhcmFjdGVy
KSB7CisgICAgICAgICAgICBhZGRDaGFyYWN0ZXJzVG9IYXNoKG1fcGVuZGluZ0NoYXJhY3Rlciwg
Y2gpOworICAgICAgICAgICAgbV9oYXNQZW5kaW5nQ2hhcmFjdGVyID0gZmFsc2U7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX2NhY2hlZENoYXJhY3RlciA9IGNo
OworICAgICAgICBtX3BlbmRpbmdDaGFyYWN0ZXIgPSBjaDsKKyAgICAgICAgbV9oYXNQZW5kaW5n
Q2hhcmFjdGVyID0gdHJ1ZTsKICAgICB9CiAKICAgICBpbmxpbmUgdW5zaWduZWQgaGFzaCgpIGNv
bnN0CkBAIC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0g
bV9oYXNoOwogCiAgICAgICAgIC8vIEhhbmRsZSBlbmQgY2FzZS4KLSAgICAgICAgaWYgKG1fY2Fj
aGVkQ2hhcmFjdGVyICE9IGludmFsaWRDaGFyYWN0ZXJWYWx1ZSkgewotICAgICAgICAgICAgcmVz
dWx0ICs9IG1fY2FjaGVkQ2hhcmFjdGVyOworICAgICAgICBpZiAobV9oYXNQZW5kaW5nQ2hhcmFj
dGVyKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gbV9wZW5kaW5nQ2hhcmFjdGVyOwogICAgICAg
ICAgICAgcmVzdWx0IF49IHJlc3VsdCA8PCAxMTsKICAgICAgICAgICAgIHJlc3VsdCArPSByZXN1
bHQgPj4gMTc7CiAgICAgICAgIH0KQEAgLTE1NCw5ICsxNTUsOCBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIHVuc2lnbmVkIG1faGFzaDsKLSAgICBVQ2hhciBtX2NhY2hlZENoYXJhY3RlcjsKLQot
ICAgIHN0YXRpYyBjb25zdCBVQ2hhciBpbnZhbGlkQ2hhcmFjdGVyVmFsdWUgPSAweGZmZmU7Cisg
ICAgYm9vbCBtX2hhc1BlbmRpbmdDaGFyYWN0ZXI7CisgICAgVUNoYXIgbV9wZW5kaW5nQ2hhcmFj
dGVyOwogfTsKIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>