<?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>16634</bug_id>
          
          <creation_ts>2007-12-28 01:31:22 -0800</creation_ts>
          <short_desc>ASSERT hit debugging Acid3 test with Drosera attached</short_desc>
          <delta_ts>2007-12-29 22:29:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65452</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 01:31:22 -0800</bug_when>
    <thetext>ASSERT hit debugging Acid3 test with Drosera attached

Starting Safari with DYLD_FRAMEWORK_PATH set to point to built WebKit in /Stuff/Users/eric/Projects/build/Debug.
ASSERTION FAILED: !canSkipLookup(exec, ident)
(/Stuff/Projects/WebKit/JavaScriptCore/kjs/nodes.cpp:521 KJS::JSValue* KJS::ResolveNode::inlineEvaluate(KJS::ExecState*))

Process:         Safari [39007]
Path:            /Applications/Safari.app/Contents/MacOS/Safari
Identifier:      com.apple.Safari
Version:         3.0.4 (5523.10.6)
Build Info:      WebBrowser-55231006~1
Code Type:       X86 (Native)
Parent Process:  perl [39004]

Date/Time:       2007-12-28 03:29:52.787 -0600
OS Version:      Mac OS X 10.5.1 (9B18)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef
Crashed Thread:  0

Thread 0 Crashed:
0   com.apple.JavaScriptCore      	0x006477e0 KJS::ResolveNode::inlineEvaluate(KJS::ExecState*) + 78 (nodes.cpp:521)
1   com.apple.JavaScriptCore      	0x005fd4d4 KJS::ResolveNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:546)
2   com.apple.JavaScriptCore      	0x00646bf1 KJS::DotAccessorNode::inlineEvaluate(KJS::ExecState*) + 37 (nodes.cpp:801)
3   com.apple.JavaScriptCore      	0x005f23c8 KJS::DotAccessorNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:809)
4   com.apple.JavaScriptCore      	0x005efa10 KJS::AssignResolveNode::evaluate(KJS::ExecState*) + 258 (nodes.cpp:3264)
5   com.apple.JavaScriptCore      	0x005eefc7 KJS::VarStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3634)
6   com.apple.JavaScriptCore      	0x005ce392 KJS::BreakpointCheckStatement::execute(KJS::ExecState*) + 186 (nodes.cpp:405)
7   com.apple.JavaScriptCore      	0x005d1351 KJS::statementListExecute(WTF::Vector&lt;WTF::RefPtr&lt;KJS::StatementNode&gt;, 0ul&gt;&amp;, KJS::ExecState*) + 85 (nodes.cpp:3570)
8   com.apple.JavaScriptCore      	0x005d13de KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3596)
9   com.apple.JavaScriptCore      	0x005ec84a KJS::FunctionBodyNode::execute(KJS::ExecState*) + 206 (nodes.cpp:4480)
10  com.apple.JavaScriptCore      	0x005f386c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 150 (function.cpp:74)
11  com.apple.JavaScriptCore      	0x005e1254 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 222 (object.cpp:96)
12  com.apple.JavaScriptCore      	0x005fc95c KJS::FunctionCallBracketNode::evaluate(KJS::ExecState*) + 984 (nodes.cpp:1163)
13  com.apple.JavaScriptCore      	0x005efa10 KJS::AssignResolveNode::evaluate(KJS::ExecState*) + 258 (nodes.cpp:3264)
14  com.apple.JavaScriptCore      	0x005eefc7 KJS::VarStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3634)
15  com.apple.JavaScriptCore      	0x005ce392 KJS::BreakpointCheckStatement::execute(KJS::ExecState*) + 186 (nodes.cpp:405)
16  com.apple.JavaScriptCore      	0x005d1351 KJS::statementListExecute(WTF::Vector&lt;WTF::RefPtr&lt;KJS::StatementNode&gt;, 0ul&gt;&amp;, KJS::ExecState*) + 85 (nodes.cpp:3570)
17  com.apple.JavaScriptCore      	0x005d13de KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3596)
18  com.apple.JavaScriptCore      	0x005ec989 KJS::TryNode::execute(KJS::ExecState*) + 43 (nodes.cpp:4179)
19  com.apple.JavaScriptCore      	0x005ce392 KJS::BreakpointCheckStatement::execute(KJS::ExecState*) + 186 (nodes.cpp:405)
20  com.apple.JavaScriptCore      	0x005d1351 KJS::statementListExecute(WTF::Vector&lt;WTF::RefPtr&lt;KJS::StatementNode&gt;, 0ul&gt;&amp;, KJS::ExecState*) + 85 (nodes.cpp:3570)
21  com.apple.JavaScriptCore      	0x005d13de KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3596)
22  com.apple.JavaScriptCore      	0x005eeedf KJS::IfElseNode::execute(KJS::ExecState*) + 113 (nodes.cpp:3671)
23  com.apple.JavaScriptCore      	0x005ce392 KJS::BreakpointCheckStatement::execute(KJS::ExecState*) + 186 (nodes.cpp:405)
24  com.apple.JavaScriptCore      	0x005d1351 KJS::statementListExecute(WTF::Vector&lt;WTF::RefPtr&lt;KJS::StatementNode&gt;, 0ul&gt;&amp;, KJS::ExecState*) + 85 (nodes.cpp:3570)
25  com.apple.JavaScriptCore      	0x005d13de KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3596)
26  com.apple.JavaScriptCore      	0x005ec84a KJS::FunctionBodyNode::execute(KJS::ExecState*) + 206 (nodes.cpp:4480)
27  com.apple.JavaScriptCore      	0x005f386c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 150 (function.cpp:74)
28  com.apple.JavaScriptCore      	0x005e1254 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 222 (object.cpp:96)
29  com.apple.JavaScriptCore      	0x0064773e KJS::FunctionCallResolveNode::inlineEvaluate(KJS::ExecState*) + 640 (nodes.cpp:1015)
30  com.apple.JavaScriptCore      	0x005fd324 KJS::FunctionCallResolveNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1026)
31  com.apple.JavaScriptCore      	0x005ef029 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3617)
32  com.apple.JavaScriptCore      	0x005ce392 KJS::BreakpointCheckStatement::execute(KJS::ExecState*) + 186 (nodes.cpp:405)
33  com.apple.JavaScriptCore      	0x005d1351 KJS::statementListExecute(WTF::Vector&lt;WTF::RefPtr&lt;KJS::StatementNode&gt;, 0ul&gt;&amp;, KJS::ExecState*) + 85 (nodes.cpp:3570)
34  com.apple.JavaScriptCore      	0x005d13de KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3596)
35  com.apple.JavaScriptCore      	0x005ec84a KJS::FunctionBodyNode::execute(KJS::ExecState*) + 206 (nodes.cpp:4480)
36  com.apple.JavaScriptCore      	0x005f386c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 150 (function.cpp:74)
37  com.apple.JavaScriptCore      	0x005e1254 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&amp;) + 222 (object.cpp:96)
38  com.apple.WebCore             	0x0210b6a4 WebCore::JSAbstractEventListener::handleEvent(WebCore::Event*, bool) + 608 (kjs_events.cpp:114)
39  com.apple.WebCore             	0x01c2b183 WebCore::Document::handleWindowEvent(WebCore::Event*, bool) + 281 (Document.cpp:2449)
40  com.apple.WebCore             	0x01c71d06 WebCore::EventTargetNode::dispatchWindowEvent(WebCore::AtomicString const&amp;, bool, bool) + 332 (EventTargetNode.cpp:145)
41  com.apple.WebCore             	0x01c2f086 WebCore::Document::implicitClose() + 622 (Document.cpp:1449)
42  com.apple.WebCore             	0x01c9e6d0 WebCore::FrameLoader::checkCallImplicitClose() + 226 (FrameLoader.cpp:1309)
43  com.apple.WebCore             	0x01cac5aa WebCore::FrameLoader::checkCompleted() + 268 (FrameLoader.cpp:1265)
44  com.apple.WebCore             	0x01cabf32 WebCore::FrameLoader::completed() + 148 (FrameLoader.cpp:1889)
45  com.apple.WebCore             	0x01cac5ff WebCore::FrameLoader::checkCompleted() + 353 (FrameLoader.cpp:1269)
46  com.apple.WebCore             	0x01cac67e WebCore::FrameLoader::mainReceivedCompleteError(WebCore::DocumentLoader*, WebCore::ResourceError const&amp;) + 80 (FrameLoader.cpp:4378)
47  com.apple.WebCore             	0x01c42c85 WebCore::DocumentLoader::mainReceivedError(WebCore::ResourceError const&amp;, bool) + 91 (DocumentLoader.cpp:246)
48  com.apple.WebCore             	0x01caf783 WebCore::FrameLoader::receivedMainResourceError(WebCore::ResourceError const&amp;, bool) + 327 (FrameLoader.cpp:3381)
49  com.apple.WebCore             	0x01ea9a1a WebCore::MainResourceLoader::receivedError(WebCore::ResourceError const&amp;) + 232 (MainResourceLoader.cpp:75)
50  com.apple.WebCore             	0x01ea9b05 WebCore::MainResourceLoader::didFail(WebCore::ResourceError const&amp;) + 99 (MainResourceLoader.cpp:298)
51  com.apple.WebCore             	0x01f9f2c1 WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*, WebCore::ResourceError const&amp;) + 31 (ResourceLoader.cpp:368)
52  com.apple.WebCore             	0x01f9dd61 -[WebCoreResourceHandleAsDelegate connection:didFailWithError:] + 143 (ResourceHandleMac.mm:464)
53  com.apple.Foundation          	0x902c0b00 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFail:] + 112
54  com.apple.Foundation          	0x902c0a71 _NSURLConnectionDidFail + 81
55  com.apple.CFNetwork           	0x0044419b didFailWithError + 208
56  com.apple.CFNetwork           	0x00421a59 _CFURLConnectionSendCallbacks + 2051
57  com.apple.CFNetwork           	0x004211db muxerSourcePerform + 283
58  com.apple.CoreFoundation      	0x9620b64e CFRunLoopRunSpecific + 3166
59  com.apple.CoreFoundation      	0x9620bd38 CFRunLoopRunInMode + 88
60  com.apple.HIToolbox           	0x94e838a4 RunCurrentEventLoopInMode + 283
61  com.apple.HIToolbox           	0x94e836bd ReceiveNextEventCommon + 374
62  com.apple.HIToolbox           	0x94e83531 BlockUntilNextEventMatchingListInMode + 106
63  com.apple.AppKit              	0x9519bd5b _DPSNextEvent + 657
64  com.apple.AppKit              	0x9519b6a0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
65  com.apple.Safari              	0x00009d4e 0x1000 + 36174
66  com.apple.AppKit              	0x951946d1 -[NSApplication run] + 795
67  com.apple.AppKit              	0x951619ba NSApplicationMain + 574
68  com.apple.Safari              	0x00002876 0x1000 + 6262

Thread 1:
0   libSystem.B.dylib             	0x9647face __semwait_signal + 10
1   libSystem.B.dylib             	0x964a9ced pthread_cond_wait$UNIX2003 + 73
2   com.apple.WebCore             	0x020a7963 WebCore::ThreadCondition::wait(WebCore::Mutex&amp;) + 39 (ThreadingPthreads.cpp:184)
3   com.apple.WebCore             	0x01d4047d WebCore::IconDatabase::syncThreadMainLoop() + 641 (IconDatabase.cpp:1313)
4   com.apple.WebCore             	0x01d41c98 WebCore::IconDatabase::iconDatabaseSyncThread() + 1198 (IconDatabase.cpp:1015)
5   com.apple.WebCore             	0x01d41cc7 WebCore::IconDatabase::iconDatabaseSyncThreadStart(void*) + 23 (IconDatabase.cpp:919)
6   libSystem.B.dylib             	0x964a9075 _pthread_start + 321
7   libSystem.B.dylib             	0x964a8f32 thread_start + 34

Thread 2:
0   libSystem.B.dylib             	0x964c7f5a select$DARWIN_EXTSN + 10
1   libSystem.B.dylib             	0x964a9075 _pthread_start + 321
2   libSystem.B.dylib             	0x964a8f32 thread_start + 34

Thread 3:
0   libSystem.B.dylib             	0x964788e6 mach_msg_trap + 10
1   libSystem.B.dylib             	0x964800dc mach_msg + 72
2   com.apple.CoreFoundation      	0x9620b0fe CFRunLoopRunSpecific + 1806
3   com.apple.CoreFoundation      	0x9620bd38 CFRunLoopRunInMode + 88
4   com.apple.CFNetwork           	0x0041c7ba CFURLCacheWorkerThread(void*) + 396
5   libSystem.B.dylib             	0x964a9075 _pthread_start + 321
6   libSystem.B.dylib             	0x964a8f32 thread_start + 34

Thread 4:
0   libSystem.B.dylib             	0x964788e6 mach_msg_trap + 10
1   libSystem.B.dylib             	0x964800dc mach_msg + 72
2   com.apple.CoreFoundation      	0x9620b0fe CFRunLoopRunSpecific + 1806
3   com.apple.CoreFoundation      	0x9620bd38 CFRunLoopRunInMode + 88
4   com.apple.Foundation          	0x90282560 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 320
5   com.apple.Foundation          	0x9021f04d -[NSThread main] + 45
6   com.apple.Foundation          	0x9021ebf4 __NSThread__main__ + 308
7   libSystem.B.dylib             	0x964a9075 _pthread_start + 321
8   libSystem.B.dylib             	0x964a8f32 thread_start + 34

Thread 5:
0   libSystem.B.dylib             	0x964788e6 mach_msg_trap + 10
1   libSystem.B.dylib             	0x964800dc mach_msg + 72
2   com.apple.CoreFoundation      	0x9620b0fe CFRunLoopRunSpecific + 1806
3   com.apple.CoreFoundation      	0x9620bd38 CFRunLoopRunInMode + 88
4   com.apple.Foundation          	0x902535b5 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213
5   com.apple.Foundation          	0x9025f6d4 -[NSRunLoop(NSRunLoop) run] + 84
6   com.apple.Safari              	0x0004edd0 0x1000 + 318928
7   com.apple.Foundation          	0x9021f04d -[NSThread main] + 45
8   com.apple.Foundation          	0x9021ebf4 __NSThread__main__ + 308
9   libSystem.B.dylib             	0x964a9075 _pthread_start + 321
10  libSystem.B.dylib             	0x964a8f32 thread_start + 34

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0xbbadbeef  ebx: 0x0064779e  ecx: 0x00000000  edx: 0x00000000
  edi: 0x020c5f30  esi: 0x005fd4b6  ebp: 0xbfffcef8  esp: 0xbfffceb0
   ss: 0x0000001f  efl: 0x00010282  eip: 0x006477e0   cs: 0x00000017
   ds: 0x0000001f   es: 0x0000001f   fs: 0x00000000   gs: 0x00000037
  cr2: 0xbbadbeef

Binary Images:
    0x1000 -   0x12efef  com.apple.Safari 3.0.4 (5523.10.6) &lt;53d219fd878088543fd2e1af460bed18&gt; /Applications/Safari.app/Contents/MacOS/Safari
  0x176000 -   0x275fe3  com.apple.WebKit 525.3+ (525.3+) &lt;58dec06bed77cb469be832740bb4fbdc&gt; /Stuff/Users/eric/Projects/build/Debug/WebKit.framework/Versions/A/WebKit
  0x3f4000 -   0x402ff8  SyndicationUI ??? (???) &lt;8adc35e1eb5001dead3c18ee25f2e8db&gt; /System/Library/PrivateFrameworks/SyndicationUI.framework/Versions/A/SyndicationUI
  0x411000 -   0x488fe3  com.apple.CFNetwork 220 (221) &lt;972a41911805859205b057a6f5b91e8d&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
  0x4c0000 -   0x54cff7  com.apple.LaunchServices 286 (286) &lt;72b15e7a01e42d510f0339e90113d5d6&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
  0x592000 -   0x5b9fff  libcups.2.dylib ??? (???) &lt;5521498e8902ddd0b15cfaa7db384e29&gt; /usr/lib/libcups.2.dylib
  0x5c4000 -   0x699fe7  com.apple.JavaScriptCore 525.3+ (525.3+) &lt;604f0f4b06dfb1bcd88effdd5fb58f4b&gt; /Stuff/Users/eric/Projects/build/Debug/JavaScriptCore.framework/Versions/A/JavaScriptCore
  0x881000 -   0x883fff +net.culater.SIMBL 0.8.2 (8) /Library/InputManagers/SIMBL/SIMBL.bundle/Contents/MacOS/SIMBL
 0x1af5000 -  0x23d9ff0  com.apple.WebCore 525.3+ (525.3+) &lt;2e523f6f79326220124c7ba01ae3804a&gt; /Stuff/Users/eric/Projects/build/Debug/WebCore.framework/Versions/A/WebCore
 0x3700000 -  0x37e6ff7  com.apple.RawCamera.bundle 2.0 (2.0) /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
 0x4a71000 -  0x4a76ff3  libCGXCoreImage.A.dylib ??? (???) &lt;978986709159e5fe9e094df5efddac1d&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXCoreImage.A.dylib
 0x4b89000 -  0x4b89ffe  com.apple.JavaPluginCocoa 12.0.0 (12.0.0) &lt;02a9f23a8bfc902c32ac0adfb66d6816&gt; /Library/Internet Plug-Ins/JavaPluginCocoa.bundle/Contents/MacOS/JavaPluginCocoa
 0x4bbd000 -  0x4bc4ffd  com.apple.JavaVM 12.0.0 (12.0.0) &lt;44b9536fe4d7c7fcb3506adb695a180f&gt; /System/Library/Frameworks/JavaVM.framework/Versions/A/JavaVM
0x198c6000 - 0x198cbfff  com.apple.DictionaryServiceComponent 1.1 (1.1) &lt;8edc1180f52db18e9ddfb4e95debe61b&gt; /System/Library/Components/DictionaryService.component/Contents/MacOS/DictionaryService
0x19939000 - 0x199a6fff +com.DivXInc.DivXDecoder 6.6.0 (6.6.0) /Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder
0x8fe00000 - 0x8fe2d883  dyld 95.3 (???) &lt;81592e798780564b5d46b988f7ee1a6a&gt; /usr/lib/dyld
0x90048000 - 0x90048ffc  com.apple.audio.units.AudioUnit 1.5 (1.5) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x90049000 - 0x9007bfff  com.apple.LDAPFramework 1.4.3 (106) &lt;3a5c9df6032143cd6bc2658a9d328d8e&gt; /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x9007c000 - 0x901fafff  com.apple.AddressBook.framework 4.1 (687) &lt;3f005092d08e963eabe8f7f66c09cc1e&gt; /System/Library/Frameworks/AddressBook.framework/Versions/A/AddressBook
0x9020d000 - 0x90214ff7  libCGATS.A.dylib ??? (???) &lt;9b29a5500efe01cc3adea67bbc42568e&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib
0x90215000 - 0x9048efe7  com.apple.Foundation 6.5.1 (677.1) &lt;85ac18c7cd454378db6122bea0c00965&gt; /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x9048f000 - 0x904d0fe7  libRIP.A.dylib ??? (???) &lt;bdc6d70bf4ed3dace321b4ff76a353b3&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x904d1000 - 0x904e1ffc  com.apple.LangAnalysis 1.6.4 (1.6.4) &lt;cbeb17ab39f28351fe2ab5b82bf465bc&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x904e2000 - 0x905adfff  com.apple.ColorSync 4.5.0 (4.5.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x905ae000 - 0x90628ff8  com.apple.print.framework.PrintCore 5.5 (245) &lt;9441d178f4b430cf92b67bf346646693&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x90659000 - 0x90738fff  libobjc.A.dylib ??? (???) &lt;5eda47fec2d0e7853b3506aa1fd2dafa&gt; /usr/lib/libobjc.A.dylib
0x90745000 - 0x9078ffe1  com.apple.securityinterface 3.0 (32532) &lt;f521dae416ce7a3bdd594b0d4e2fb517&gt; /System/Library/Frameworks/SecurityInterface.framework/Versions/A/SecurityInterface
0x90d54000 - 0x90d56fff  com.apple.CrashReporterSupport 10.5.0 (156) &lt;3088b785b10d03504ed02f3fee5d3aab&gt; /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x90da8000 - 0x90dbefe7  com.apple.CoreVideo 1.5.0 (1.5.0) &lt;c7569b68e54114da815e9c55299fe3a4&gt; /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x90dc5000 - 0x90dc5ff8  com.apple.Cocoa 6.5 (???) &lt;e064f94d969ce25cb7de3cfb980c3249&gt; /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x90dc6000 - 0x9115cff7  com.apple.QuartzCore 1.5.1 (1.5.1) &lt;deb61cbeb3f734a1b2f4669f6268b9de&gt; /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x91181000 - 0x91191fff  com.apple.speech.synthesis.framework 3.6.59 (3.6.59) &lt;4ffef145fad3d4d787e0c33eab26b336&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x91192000 - 0x912b6fe3  com.apple.audio.toolbox.AudioToolbox 1.5 (1.5) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x912b7000 - 0x91369ffb  libcrypto.0.9.7.dylib ??? (???) &lt;330b0e48e67faffc8c22dfc069ca7a47&gt; /usr/lib/libcrypto.0.9.7.dylib
0x9136a000 - 0x913c7ffb  libstdc++.6.dylib ??? (???) &lt;04b812dcec670daa8b7d2852ab14be60&gt; /usr/lib/libstdc++.6.dylib
0x913c8000 - 0x913ecfff  libxslt.1.dylib ??? (???) &lt;4933ddc7f6618743197aadc85b33b5ab&gt; /usr/lib/libxslt.1.dylib
0x913ed000 - 0x913f8ff9  com.apple.helpdata 1.0 (14) /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData
0x913f9000 - 0x91404fe7  libCSync.A.dylib ??? (???) &lt;df82fc093e498a9eb5490761cb292218&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
0x91492000 - 0x9151cfff  com.apple.framework.IOKit 1.5.1 (???) &lt;5176a7383151a19c962334009fef2c6d&gt; /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x916d9000 - 0x916e5ff5  libGL.dylib ??? (???) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x916f3000 - 0x91738fef  com.apple.Metadata 10.5.0 (398) &lt;4fd74fba0062c2e08ec4b1c10b40ff63&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x9174d000 - 0x9182eff7  libxml2.2.dylib ??? (???) &lt;450ec38b57fb46013847cce851001a2f&gt; /usr/lib/libxml2.2.dylib
0x9182f000 - 0x91c3ffef  libBLAS.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x91cb0000 - 0x91d0aff7  com.apple.CoreText 2.0.0 (???) &lt;7fa39cd5bc847615ec02e7c7a37c0508&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x91d0b000 - 0x91d0cfef  libmathCommon.A.dylib ??? (???) /usr/lib/system/libmathCommon.A.dylib
0x91d0d000 - 0x9201efe2  com.apple.QuickTime 7.3.1 (7.3.1) &lt;697ff9cc466d4388840c3b733af9c6d7&gt; /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime
0x92079000 - 0x92710fef  com.apple.CoreGraphics 1.351.0 (???) &lt;7a6f399039eed6dbe845c169f7d21a70&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x9280a000 - 0x928a8fef  com.apple.QuickTimeImporters.component 7.3.1 (7.3.1) /System/Library/QuickTime/QuickTimeImporters.component/Contents/MacOS/QuickTimeImporters
0x928a9000 - 0x9298dffb  com.apple.CoreData 100 (185) &lt;a4e63784275e25e62f57e75e0af0b94d&gt; /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x9298e000 - 0x929bdfe3  com.apple.AE 402 (402) &lt;994ba8e884aefe7bf1fc5987df099e7b&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x929be000 - 0x929f7ffe  com.apple.securityfoundation 3.0 (32768) &lt;1e9885d63ced51f81bc1f39af624637d&gt; /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x929f8000 - 0x92a06ffd  libz.1.dylib ??? (???) &lt;5ddd8539ae2ebfd8e7cc1c57525385c7&gt; /usr/lib/libz.1.dylib
0x92a7f000 - 0x92a8effe  com.apple.DSObjCWrappers.Framework 1.2 (1.2) &lt;f5b58d1d3a855a63d493ccbec417a1e9&gt; /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWrappers
0x92add000 - 0x92addffd  com.apple.vecLib 3.4 (vecLib 3.4) /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
0x92ade000 - 0x92ca7fef  com.apple.security 5.0.1 (32736) &lt;8c9eda0fcc1d8a571543025ac900715f&gt; /System/Library/Frameworks/Security.framework/Versions/A/Security
0x92ca8000 - 0x92cb0fff  com.apple.DiskArbitration 2.2 (2.2) &lt;1551b2af557fdf6f368f93e093933852&gt; /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x92cb1000 - 0x92cd5feb  libssl.0.9.7.dylib ??? (???) &lt;acee7fc534674498dcac211318aa23e8&gt; /usr/lib/libssl.0.9.7.dylib
0x92d0b000 - 0x92d0bfff  com.apple.Carbon 136 (136) &lt;98a5e3bc0c4fa44bbb09713bb88707fe&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x92db6000 - 0x92db6ffd  com.apple.Accelerate.vecLib 3.4 (vecLib 3.4) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x92e97000 - 0x93d18fe2  com.apple.QuickTimeComponents.component 7.3.1 (7.3.1) /System/Library/QuickTime/QuickTimeComponents.component/Contents/MacOS/QuickTimeComponents
0x93d19000 - 0x93d1affc  libffi.dylib ??? (???) &lt;a3b573eb950ca583290f7b2b4c486d09&gt; /usr/lib/libffi.dylib
0x93d1b000 - 0x93d2fff3  com.apple.ImageCapture 4.0 (5.0.0) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x93d30000 - 0x93d30ffd  com.apple.Accelerate 1.4 (Accelerate 1.4) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x93d9e000 - 0x93db6fff  com.apple.openscripting 1.2.6 (???) &lt;b8e553df643f2aec68fa968b3b459b2b&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x93db7000 - 0x94090fe7  com.apple.CoreServices.CarbonCore 783 (783) &lt;8370e664eeb25edc98d5c1f5405b06ae&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x94098000 - 0x940cefef  libtidy.A.dylib ??? (???) &lt;e4d3e7399fb83d7f145f9b4ec8196242&gt; /usr/lib/libtidy.A.dylib
0x940dd000 - 0x940e4fe9  libgcc_s.1.dylib ??? (???) &lt;f53c808e87d1184c0f9df63aef53ce0b&gt; /usr/lib/libgcc_s.1.dylib
0x940e5000 - 0x94141ff7  com.apple.htmlrendering 68 (1.1.3) &lt;fe87a9dede38db00e6c8949942c6bd4f&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x94142000 - 0x941a7ffb  com.apple.ISSupport 1.6 (34) /System/Library/PrivateFrameworks/ISSupport.framework/Versions/A/ISSupport
0x941a8000 - 0x941b1fff  com.apple.speech.recognition.framework 3.7.24 (3.7.24) &lt;d3180f9edbd9a5e6f283d6156aa3c602&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x941b3000 - 0x941b5fff  com.apple.securityhi 3.0 (30817) &lt;2b2854123fed609d1820d2779e2e0963&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x941f5000 - 0x94232ff7  libGLImage.dylib ??? (???) &lt;202d73e6a4688fc06ff11b71910c2ce7&gt; /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x94233000 - 0x94237fff  libGIF.dylib ??? (???) &lt;d4234e6f5e5f530bdafb969157f1f17b&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x944a1000 - 0x94520ff5  com.apple.SearchKit 1.2.0 (1.2.0) &lt;277b460da86bc222785159fe77e2e2ed&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x94521000 - 0x948dffea  libLAPACK.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x948e0000 - 0x948eafeb  com.apple.audio.SoundManager 3.9.2 (3.9.2) &lt;0f2ba6e891d3761212cf5a5e6134d683&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x948eb000 - 0x9493bff7  com.apple.HIServices 1.6.0 (???) &lt;d74aa73e4cfd30a08fb169198a8d2539&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x94a73000 - 0x94a9dfef  libauto.dylib ??? (???) &lt;d468bc4a8a69343f1748c293db1b57fb&gt; /usr/lib/libauto.dylib
0x94a9e000 - 0x94abcfff  libresolv.9.dylib ??? (???) &lt;54e6a08c2f108bdf5916fb483d51961b&gt; /usr/lib/libresolv.9.dylib
0x94adc000 - 0x94af2fff  com.apple.DictionaryServices 1.0.0 (1.0.0) &lt;ad0aa0252e3323d182e17f50defe56fc&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x94af3000 - 0x94af3ff8  com.apple.ApplicationServices 34 (34) &lt;8f910fa65f01d401ad8d04cc933cf887&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x94af4000 - 0x94b9bfff  com.apple.QD 3.11.50 (???) &lt;e2f71720ae1dad06a8883ac80775b21a&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x94b9c000 - 0x94c4bfff  com.apple.DesktopServices 1.4.3 (1.4.3) &lt;66d5ed56111c43d234e235d365d02469&gt; /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x94d12000 - 0x94d17fff  com.apple.CommonPanels 1.2.4 (85) &lt;ea0665f57cd267609466ed8b2b20e893&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x94d18000 - 0x94d8cfef  libvMisc.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x94d8d000 - 0x94dc7ff7  com.apple.coreui 0.1 (60) /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x94e54000 - 0x9515afff  com.apple.HIToolbox 1.5.0 (???) &lt;1b872a7151ee3f80c9c736a3e46d00d9&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x9515b000 - 0x95955fef  com.apple.AppKit 6.5 (949) &lt;f8d0f6d0bb5ac092f48f42ca684bdb54&gt; /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x95956000 - 0x959e9fff  com.apple.ink.framework 101.3 (86) &lt;bf3fa8927b4b8baae92381a976fd2079&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x959ea000 - 0x95aebfff  com.apple.PubSub 1.0.1 (59) /System/Library/Frameworks/PubSub.framework/Versions/A/PubSub
0x95aec000 - 0x95b7eff3  com.apple.ApplicationServices.ATS 3.0 (???) &lt;fb5f572243dbc370a0ea5efc8e81ae11&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x95b84000 - 0x95bc6fef  com.apple.NavigationServices 3.5.1 (161) &lt;cc6bd78eabf1e2e7166914e9f12f5850&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x95bc7000 - 0x95bfdfff  com.apple.SystemConfiguration 1.9.0 (1.9.0) &lt;7919d9588c3b0d556646e555b7193f1f&gt; /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x95bfe000 - 0x960caffe  libGLProgrammability.dylib ??? (???) &lt;e8bc0af671427cf2b6279a035805a086&gt; /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
0x960cb000 - 0x960d0fff  com.apple.backup.framework 1.0 (1.0) /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x960d1000 - 0x96198ff2  com.apple.vImage 3.0 (3.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x96199000 - 0x962cbfe7  com.apple.CoreFoundation 6.5 (476) &lt;8bfebc0dbad6fc33bea0fa00a1b9ec37&gt; /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x96423000 - 0x96441ff3  com.apple.DirectoryService.Framework 3.5 (3.5) &lt;899d8c9ee31b004a6ff73dab88982b1a&gt; /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
0x96442000 - 0x9646ffeb  libvDSP.dylib ??? (???) &lt;a26683d121ee0f96df9a9d0bfca36049&gt; /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x96470000 - 0x96476fff  com.apple.print.framework.Print 218 (220) &lt;c35172175abbe554ddadd9b6401351fa&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x96477000 - 0x96477ffb  com.apple.installserver.framework 1.0 (8) /System/Library/PrivateFrameworks/InstallServer.framework/Versions/A/InstallServer
0x96478000 - 0x965d2fe3  libSystem.B.dylib ??? (???) &lt;8ecc83dc0399be3946f7a46e88cf4bbb&gt; /usr/lib/libSystem.B.dylib
0x965d3000 - 0x965dafff  com.apple.agl 3.0.9 (AGL-3.0.9) &lt;7dac4a7cb0de2f6d08ae71c1249379e3&gt; /System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x965db000 - 0x96713ff7  libicucore.A.dylib ??? (???) &lt;afcea652ff2ec36885b2c81c57d06d4c&gt; /usr/lib/libicucore.A.dylib
0x96714000 - 0x9671bffe  libbsm.dylib ??? (???) &lt;d25c63378a5029648ffd4b4669be31bf&gt; /usr/lib/libbsm.dylib
0x96811000 - 0x968c1fff  edu.mit.Kerberos 6.0.11 (6.0.11) &lt;33c25789baedcd70a7e24881775dd9ad&gt; /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x968c2000 - 0x9693efeb  com.apple.audio.CoreAudio 3.1.0 (3.1) &lt;70bb7c657061631491029a61babe0b26&gt; /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x9693f000 - 0x96998fff  libGLU.dylib ??? (???) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x969e6000 - 0x96a0eff7  com.apple.shortcut 1 (1.0) &lt;057783867138902b52bc0941fedb74d1&gt; /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut
0x96a0f000 - 0x96a11ff5  libRadiance.dylib ??? (???) &lt;20eadb285da83df96c795c2c5fa20590&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x96a12000 - 0x96a1ffe7  com.apple.opengl 1.5.5 (1.5.5) &lt;aa08b52d2a84b44dc6ee5d544a53fe8a&gt; /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x96a20000 - 0x96a3bffb  libPng.dylib ??? (???) &lt;b6abcac36ec7654ff3e1cfa786b0117b&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x96a44000 - 0x96a53fff  libsasl2.2.dylib ??? (???) &lt;b9e1ca0b6612e280b6cbea6df0eec5f6&gt; /usr/lib/libsasl2.2.dylib
0x96a85000 - 0x96aa4ffa  libJPEG.dylib ??? (???) &lt;0cfb80109d624beb9ceb3c43b6c5ec10&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x96aa5000 - 0x96aa5ffa  com.apple.CoreServices 32 (32) &lt;2fcc8f3bd5bbfc000b476cad8e6a3dd2&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x96aa6000 - 0x96bebff7  com.apple.ImageIO.framework 2.0.0 (2.0.0) &lt;154d4d8cda2bd99518cbabc9f2d69833&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x96bec000 - 0x96ca2fe3  com.apple.CoreServices.OSServices 210.2 (210.2) &lt;4ed69f07fc0f211ab32d1ee96e281fc2&gt; /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x96ca3000 - 0x96ce2fef  libTIFF.dylib ??? (???) &lt;6d0f80e9d4d81f3f64c876aca005bd53&gt; /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x96ce3000 - 0x96d6aff7  libsqlite3.0.dylib ??? (???) &lt;273efcb717e89c21207c851d7d33fda4&gt; /usr/lib/libsqlite3.0.dylib
0x96d6b000 - 0x96d6efff  com.apple.help 1.1 (36) &lt;b507b08e484cb89033e9cf23062d77de&gt; /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0xfffe8000 - 0xfffebfff  libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib
0xffff0000 - 0xffff1780  libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65549</commentid>
    <comment_count>1</comment_count>
      <attachid>18164</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 20:58:20 -0800</bug_when>
    <thetext>Created attachment 18164
test case (debug w/ drosera to see ASSERT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65551</commentid>
    <comment_count>2</comment_count>
      <attachid>18165</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 21:33:51 -0800</bug_when>
    <thetext>Created attachment 18165
Fix ASSERT by implementing BreakpointCheckStatement::optimizeVarAccess

 JavaScriptCore/ChangeLog     |   14 ++++++++++++++
 JavaScriptCore/kjs/nodes.cpp |    5 +++++
 JavaScriptCore/kjs/nodes.h   |    1 +
 3 files changed, 20 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65553</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 21:52:10 -0800</bug_when>
    <thetext>Landed as r29022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65564</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-28 23:03:22 -0800</bug_when>
    <thetext>Thanks for fixing this, Eric. I didn&apos;t do enough testing with Drosera.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18164</attachid>
            <date>2007-12-28 20:58:20 -0800</date>
            <delta_ts>2007-12-28 20:58:20 -0800</delta_ts>
            <desc>test case (debug w/ drosera to see ASSERT)</desc>
            <filename>line.html</filename>
            <type>text/html</type>
            <size>32699</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgo8aHRtbD4K
IDx0aXRsZT5UaGUgQWNpZDMgVGVzdDwvdGl0bGU+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgog
IC8qIHNldCBzb21lIGJhc2ljIHN0eWxlcyBzbyB0aGF0IHdlIGNhbiBnZXQgcmVsaWFibHkgZXhh
Y3QgcmVzdWx0cyAqLwogICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJvcmRlcjogMXB4IHNp
bHZlcjsgYm9yZGVyLXNwYWNpbmc6IDA7IGZvbnQ6IGluaGVyaXQ7IGxpbmUtaGVpZ2h0OiAxLjI7
IGNvbG9yOiBpbmhlcml0OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfQogIDpsaW5rLCA6dmlz
aXRlZCB7IGNvbG9yOiBibHVlOyB9CgogIC8qIGhlYWRlciBhbmQgZ2VuZXJhbCBsYXlvdXQgKi8K
ICBodG1sIHsgZm9udDogMjBweCBBcmlhbCwgc2Fucy1zZXJpZjsgYm9yZGVyOiAyY20gc29saWQg
Z3JheTsgd2lkdGg6IDMyZW07IG1hcmdpbjogMWVtOyB9CiAgOnJvb3QgeyBiYWNrZ3JvdW5kOiBz
aWx2ZXI7IGNvbG9yOiBibGFjazsgYm9yZGVyLXdpZHRoOiAwIDAuMmVtIDAuMmVtIDA7IH0gLyog
bGVmdCBhbmQgdG9wIGNvbnRlbnQgZWRnZXM6IDEqMjBweCA9IDIwcHggKi8KICBib2R5IHsgcGFk
ZGluZzogMmVtOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7IG1h
cmdpbjogLTAuMmVtIDAgMCAtMC4yZW07IH0gLyogbGVmdCBhbmQgdG9wIGNvbnRlbnQgZWRnZXM6
IDIwcHgtMC4yKjIwcHgrMXB4KzIqMjBweCA9IDU3cHggKi8KICBoMTpmaXJzdC1jaGlsZCB7IGZv
bnQtc2l6ZTogNWVtOyBmb250LXdlaWdodDogYm9sZGVyOyBtYXJnaW4tYm90dG9tOiAtMC40ZW07
IH0gLyogKGxlZnQ6NTdweCwgdG9wOjU3cHgpICovCiAgI3Jlc3VsdCB7IGZvbnQtd2VpZ2h0OiBi
b2xkZXI7IHdpZHRoOiA1LjJlbTsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAjcmVzdWx0IHsgZm9u
dC1zaXplOiA1ZW07IG1hcmdpbjogLTIuN2VtIDAgMDsgfSAvKiAocmlnaHQ6NTdweCs1LjIqNSoy
MHB4ID0gNTc3cHgsIHRvcDo1N3B4KzEuMio1KjIwcHgtMC40KjUqMjBweCsxNjdweCsxNTBweC0y
LjcqNSoyMHB4ID0gMTc5cHgpICovCiAgLmhpZGRlbiB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQog
ICNpbnN0cnVjdGlvbnMgeyBtYXJnaW4tdG9wOiAyZW07IGZvbnQtc2l6ZTogMC44ZW07IGNvbG9y
OiBncmF5OyBoZWlnaHQ6IDQuOGVtOyB9IC8qIChsZWZ0OjU3cHgsIHRvcDoxNzlweCsxLjIqNSoy
MHB4KzIqMC44KjIwcHggPSAzMzFweCkgKi8KICBpZnJhbWUgeyBmbG9hdDogbGVmdDsgaGVpZ2h0
OiAwOyB3aWR0aDogMDsgfSAvKiBoaWRlIGlmcmFtZXMgYnV0IGRvbid0IG1ha2UgdGhlbSBkaXNw
bGF5OiBub25lICovCiAKICAvKiBzZXQgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBsaW5lIG9mIGNv
bG91cmVkIGJveGVzIHNvIHdlIGNhbiBhZGQgdGhlbSB3aXRob3V0IHRoZSBsYXlvdXQgY2hhbmdp
bmcgaGVpZ2h0ICovCiAgLmJ1Y2tldHMgeyBmb250OiAwLzAgQWhlbTsgfSAvKiBBaGVtIGlzbid0
IHN0cmljdGx5IHJlcXVpcmVkLCBpdCBqdXN0IGhlbHBzIG1ha2Ugc3VyZSBjcmF6eSBmb250cyBk
b24ndCBhZmZlY3QgdGhlIHRlc3QuIFNvIGRvZXMgdGhlICcwJy4gKi8KICAuYnVja2V0cyB7IHBh
ZGRpbmc6IDAgMCAxNTBweCAzcHg7IH0KCiAgLyogdGhlIG5leHQgdHdvIHJ1bGVzIGdpdmUgdGhl
IHNpeCBjb2xvdXJlZCBibG9ja3MgdGhlaXIgZGVmYXVsdCBzdHlsZXMgKHRoZXkgbWF0Y2ggdGhl
IHNhbWUgZWxlbWVudHMpOyB0aGUgdGhpcmQgaGlkZXMgdGhlbSAqLwogIDpmaXJzdC1jaGlsZCAr
ICogLmJ1Y2tldHMgcCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IDJl
bTsgYm9yZGVyOiAyZW0gZG90dGVkIHJlZDsgcGFkZGluZzogMS4wZW0gMS4zZW07IH0KICAqICsg
KiA+ICogPiBwIHsgbWFyZ2luOiAwIDAuMmVtOyBib3JkZXI6IDFweCBzb2xpZCAhIGltcG9ydGFu
dDsgfQogIC56IHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9IC8qIG9ubHkgbWF0Y2hlcyB0aGUgYnVj
a2V0cyB3aXRoIG5vIHNjb3JlICovCgogIC8qIHNpemVzIGZvciB0aGUgc2l4IGJ1Y2tldHMgKi8K
ICAjYnVja2V0MSB7IGZvbnQtc2l6ZTogMjBweDsgfQogICNidWNrZXQyIHsgZm9udC1zaXplOiAy
NHB4OyB9CiAgI2J1Y2tldDMgeyBmb250LXNpemU6IDI4cHg7IH0KICAjYnVja2V0NCB7IGZvbnQt
c2l6ZTogMzJweDsgfQogICNidWNrZXQ1IHsgZm9udC1zaXplOiAzNnB4OyB9CiAgI2J1Y2tldDYg
eyBmb250LXNpemU6IDQwcHg7IH0KCiAgLyogY29sb3VycyBmb3IgdGhlbSAqLwogIC56LCAuengs
IC56eHgsIC56eHh4LCAuenh4eHgsIC56eHh4eHggeyBiYWNrZ3JvdW5kOiBibGFjazsgfQogIC56
eHh4eHh4LCAuenh4eHh4eHgsIC56eHh4eHh4eHgsIC56eHh4eHh4eHgsIC56eHh4eHh4eHh4LAog
IC56eHh4eHh4eHh4eCB7IGJhY2tncm91bmQ6IGdyZXk7IH0KICAuenh4eHh4eHh4eHh4LCAuenh4
eHh4eHh4eHh4eCwgLnp4eHh4eHh4eHh4eHh4LAogIC56eHh4eHh4eHh4eHh4eHgsIC56eHh4eHh4
eHh4eHh4eHh4IHsgYmFja2dyb3VuZDogc2lsdmVyOyB9CiAgI2J1Y2tldDEuenh4eHh4eHh4eHh4
eHh4eHggeyBiYWNrZ3JvdW5kOiByZWQ7IH0KICAjYnVja2V0Mi56eHh4eHh4eHh4eHh4eHh4eCB7
IGJhY2tncm91bmQ6IG9yYW5nZTsgfQogICNidWNrZXQzLnp4eHh4eHh4eHh4eHh4eHh4IHsgYmFj
a2dyb3VuZDogeWVsbG93OyB9CiAgI2J1Y2tldDQuenh4eHh4eHh4eHh4eHh4eHggeyBiYWNrZ3Jv
dW5kOiBsaW1lOyB9CiAgI2J1Y2tldDUuenh4eHh4eHh4eHh4eHh4eHggeyBiYWNrZ3JvdW5kOiBi
bHVlOyB9CiAgI2J1Y2tldDYuenh4eHh4eHh4eHh4eHh4eHggeyBiYWNrZ3JvdW5kOiBwdXJwbGU7
IH0KCiAgLyogVGhlIGxpbmUtaGVpZ2h0IGZvciB0aGUgLmJ1Y2tldCBkaXYgaXMgd29ya2VkIG91
dCBhcyBmb2xsb3dzOgogICAqCiAgICogVGhlIGRpdi5idWNrZXQgZWxlbWVudCBoYXMgYSBsaW5l
IGJveCB3aXRoIGEgZmV3CiAgICogaW5saW5lLWJsb2Nrcy4gRWFjaCBpbmxpbmUtYmxvY2sgY29u
c2lzdHMgb2Y6CiAgICoKICAgKiAgICAgMi4wZW0gdmVydGljYWwtYWxpZ24gZnJvbSBiYXNlbGlu
ZSB0byBib3R0b20gb2YgaW5saW5lLWJsb2NrCiAgICogICAgIDFweCBib3R0b20gYm9yZGVyCiAg
ICogICAgIDEuMGVtIGJvdHRvbSBwYWRkaW5nCiAgICogICAgIDEuMGVtIHRvcCBwYWRkaW5nCiAg
ICogICAgIDFweCB0b3AgYm9yZGVyCiAgICoKICAgKiBUaGUgYmlnZ2VzdCBpbmxpbmUtYmxvY2sg
aGFzIGZvbnQtc2l6ZTogNDBweC4KICAgKgogICAqIFRodXMgdGhlIGRpc3RhbmNlIGZyb20gdGhl
IGJhc2VsaW5lIHRvIHRoZSB0b3Agb2YgdGhlIGJpZ2dlc3QKICAgKiBpbmxpbmUtYmxvY2sgaXMg
KDJlbSsxZW0rMWVtKSoyZW0qMjBweCsycHggPSAxNjJweC4KICAgKgogICAqIFRoZSBsaW5lIGJv
eCBpdHNlbGYgaGFzIG5vIG90aGVyIGNvbnRlbnRzLCBhbmQgaXRzIHN0cnV0IGhhcyB6ZXJvCiAg
ICogaGVpZ2h0IGFuZCB0aGVyZSBpcyBubyBoYWxmLWxlYWRpbmcsIHNvIHRoZSBoZWlnaHQgb2Yg
dGhlCiAgICogZGl2LmJ1Y2tldCBpcyAxNjJweC4KICAgKgogICAqIChXaHkgdXNlIGxpbmUtaGVp
Z2h0OjAgYW5kIGZvbnQtc2l6ZTowPyBXZWxsOgogICAqCiAgICogVGhlIGRpdi5idWNrZXQgbGlu
ZSBib3ggd291bGQgaGF2ZSBhIGhlaWdodCB0aGF0IGlzIHRoZSBtYXhpbXVtCiAgICogb2YgdGhl
IGZvbGxvd2luZyB0d28gc3VtczoKICAgKgogICAqICAxOiBoYWxmLWxlYWRpbmcgKyBmb250IGRl
c2NlbnQgYXQgMWVtICsgZm9udCBhc2NlbnQgYXQgMWVtICsgaGFsZi1sZWFkaW5nCiAgICogIDI6
IGhhbGYtbGVhZGluZyArIGZvbnQgZGVzY2VudCBhdCAxZW0gKyAxNjJweCAKICAgKgogICAqIE5v
dyB0aGUgaGFsZi1sZWFkaW5nIGlzIChsaW5lLWhlaWdodCAtIChmb250LWFzY2VudCArIGZvbnQt
ZGVzY2VudCkpLzIsIHNvIHRoYXQgaXMgcmVhbGx5OgogICAqCiAgICogIDE6IChsaW5lLWhlaWdo
dCAtIChmb250LWFzY2VudCArIGZvbnQtZGVzY2VudCkpLzIgKyBmb250IGRlc2NlbnQgKyBmb250
IGFzY2VudCArIChsaW5lLWhlaWdodCAtIChmb250LWFzY2VudCArIGZvbnQtZGVzY2VudCkpLzIK
ICAgKiAgMjogKGxpbmUtaGVpZ2h0IC0gKGZvbnQtYXNjZW50ICsgZm9udC1kZXNjZW50KSkvMiAr
IGZvbnQgZGVzY2VudCArIDE2MnB4CiAgICoKICAgKiBXaGljaCBzaW1wbGlmeSB0bzoKICAgKgog
ICAqICAxOiBsaW5lLWhlaWdodAogICAqICAyOiBsaW5lLWhlaWdodC8yICsgKGZvbnQgZGVzY2Vu
dCAtIGZvbnQtYXNjZW50KS8yICsgMTYycHgKICAgKgogICAqIFNvIGlmIHRoZSBmb2xsb3dpbmcg
ZXhwcmVzc2lvbiBpcyB0cnVlOgogICAqCiAgICogICAgbGluZS1oZWlnaHQgPiBsaW5lLWhlaWdo
dC8yICsgKGZvbnQgZGVzY2VudCAtIGZvbnQtYXNjZW50KS8yICsgMTYycHgKICAgKgogICAqIFRo
YXQgaXMsIGlmIHRoaXMgaXMgdHJ1ZToKICAgKgogICAqICAgIGxpbmUtaGVpZ2h0ID4gZm9udCBk
ZXNjZW50IC0gZm9udC1hc2NlbnQgKyAzMjRweAogICAqCiAgICogLi4udGhlbiB0aGUgbGluZS1o
ZWlnaHQgbWF0dGVycywgb3RoZXJ3aXNlIHRoZSBmb250IGRvZXMuIE5vdGUKICAgKiB0aGF0IGZv
bnQgZGVzY2VudCAtIGZvbnQtYXNjZW50IHdpbGwgYmUgaW4gdGhlIHJlZ2lvbiBvZgogICAqIDEw
cHgtMzBweCAod2l0aCBBaGVtLCBleGFjdGx5IDEycHgpLiBIb3dldmVyLCBpZiB3ZSBtYWtlIHRo
ZQogICAqIGxpbmUtaGVpZ2h0IGJpZywgdGhlbiB0aGUgX3Bvc2l0aW9uaW5nXyBvZiB0aGUgaW5s
aW5lLWJsb2NrcyB3aWxsCiAgICogZGVwZW5kIG9uIHRoZSBmb250IGRlc2NlbnQsIHNpbmNlIHRo
YXQgaXMgd2hhdCB3aWxsIGRlY2lkZSB0aGUKICAgKiBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20g
b2YgdGhlIGxpbmUgYm94IHRvIHRoZSBiYXNlbGluZSBvZiB0aGUKICAgKiBibG9jayAoc2luY2Ug
dGhlIGJhc2VsaW5lIGlzIHNldCBieSB0aGUgc3RydXQpLgogICAqCiAgICogSG93ZXZlciwgaW4g
QWNpZDIgYSBkZXBlbmRlbmN5IG9uIHRoZSBmb250IG1ldHJpY3Mgd2FzIGludHJvZHVjZWQKICAg
KiBhbmQgdGhpcyBjYXVzZWQgYWxsIGtpbmRzIG9mIHByb2JsZW1zLiBBbmQgd2UgY2FuJ3QgcmVx
dWlyZSBBaGVtCiAgICogaW4gdGhlIEFjaWQgdGVzdHMsIHNpbmNlIGl0J3MgdW5saWtlbHkgbW9z
dCBwZW9wbGUgd2lsbCBoYXZlIGl0CiAgICogaW5zdGFsbGVkLgogICAqCiAgICogV2hhdCB3ZSB3
YW50IGlzIGZvciB0aGUgZm9udCB0byBub3QgbWF0dGVyLCBhbmQgdGhlIGJhc2VsaW5lIHRvCiAg
ICogYmUgYXMgaGlnaCBhcyBwb3NzaWJsZS4gV2UgY2FuIGRvIHRoYXQgYnkgc2F5aW5nIHRoYXQg
dGhlIGZvbnQKICAgKiBhbmQgdGhlIGxpbmUtaGVpZ2h0IGFyZSB6ZXJvLgogICAqCiAgICovCgog
IC8qIHJ1bGVzIHNwZWNpZmljIHRvIHRoZSB0ZXN0cyBiZWxvdyAqLwogICNpbnN0cnVjdGlvbnM6
bGFzdC1jaGlsZCB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgd2hpdGUtc3BhY2U6IHgtYm9ndXM7
IH0KCiA8L3N0eWxlPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJlbXB0eS5jc3MiPjwh
LS0gdGV4dC9odG1sIGZpbGUgKHNob3VsZCBiZSBpZ25vcmVkLCA8aDE+IHdpbGwgZ28gcmVkIGlm
IGl0IGlzbid0KSAtLT4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICB2YXIgbm90
aWZpY2F0aW9ucyA9IHt9OwogIGZ1bmN0aW9uIG5vdGlmeShmaWxlKSB7CiAgICAvLyB1c2VkIGlu
IGNyb3NzLWZpbGUgdGVzdHMsIGUuZy4gdGVzdCA0OAogICAgbm90aWZpY2F0aW9uc1tmaWxlXSA9
IDE7CiAgfQogIHZhciB0ZXN0cyA9IFsKCiAgICAvLyB0aGVyZSBhcmUgNiBidWNrZXRzIHdpdGgg
MTYgdGVzdHMgZWFjaCwgcGx1cyBmb3VyIHNwZWNpYWwgdGVzdHMKCiAgICAvLyBidWNrZXQgMTog
TWlzYyB0ZXN0cwogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDA6IHdoZXRoZXIgcmVt
b3ZpbmcgYW4gZWxlbWVudCB0aGF0IGlzIHRoZSBsYXN0IGNoaWxkIGNvcnJlY3RseSByZWNvbXB1
dGVzIHN0eWxlcyBmb3IgdGhlIG5ldyBsYXN0IGNoaWxkCiAgICAgIC8vIGFsc28gdGVzdHMgc3Vw
cG9ydCBmb3IgZ2V0Q29tcHV0ZWRTdHlsZSwgOmxhc3QtY2hpbGQsIHByZS13cmFwCiAgICAgIHZh
ciBsYXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW92ZS1sYXN0LWNoaWxkLXRlc3Qn
KTsKICAgICAgdmFyIHBlbnVsdGltYXRlID0gbGFzdC5wcmV2aW91c1NpYmxpbmc7IC8vIHRoaXMg
c2hvdWxkIGJlIHRoZSB3aGl0ZXNwYWNlIG5vZGUKICAgICAgcGVudWx0aW1hdGUgPSBwZW51bHRp
bWF0ZS5wcmV2aW91c1NpYmxpbmc7IC8vIHRoaXMgc2hvdWxkIG5vdyBiZSB0aGUgYWN0dWFsIHBl
bnVsdGltYXRlIGVsZW1lbnQKICAgICAgbGFzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxhc3Qp
OwogICAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShwZW51bHRp
bWF0ZSwgJycpLndoaXRlU3BhY2UgPT0gJ3ByZS13cmFwJykKICAgICAgICByZXR1cm4gMTsKICAg
IH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMTogSFRUUCAtIENvbnRlbnQtVHlw
ZTogaW1hZ2UvcG5nCiAgICAgIHZhciBvayA9IHRydWU7CiAgICAgIGlmIChub3RpZmljYXRpb25z
WydlbXB0eS5wbmcnXSkKICAgICAgICBvayA9IGZhbHNlOyAvLyBQTkcgcmFuIHNjcmlwdCBzb21l
aG93CiAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZy
YW1lJylbMF07CiAgICAgIGlmICghaWZyYW1lKQogICAgICAgIG9rID0gZmFsc2U7IC8vIG5vIElG
UkFNRSBzdXBwb3J0PwogICAgICBpZiAoaWZyYW1lICYmIGlmcmFtZS5jb250ZW50RG9jdW1lbnQp
IHsKICAgICAgICB2YXIgcHMgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdwJyk7CiAgICAgICAgaWYgKHBzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGlmIChw
c1swXS5maXJzdENoaWxkICYmIHBzWzBdLmZpcnN0Q2hpbGQuZGF0YSAmJiBwc1swXS5maXJzdENo
aWxkLmRhdGEgPT0gJ0ZBSUwnKQogICAgICAgICAgICBvayA9IGZhbHNlOyAvLyBQTkcgd2FzIHRy
ZWF0ZWQgYXMgSFRNTAogICAgICAgIH0KICAgICAgfQogICAgICBpZiAob2spCiAgICAgICAgcmV0
dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDI6IEhUVFAgLSBD
b250ZW50LVR5cGU6IHRleHQvcGxhaW4KICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgaWYgKG5v
dGlmaWNhdGlvbnNbJ2VtcHR5LnR4dCddKQogICAgICAgIG9rID0gZmFsc2U7IC8vIHRleHQvcGxh
aW4gcmFuIHNjcmlwdCBzb21laG93CiAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMV07CiAgICAgIGlmICghaWZyYW1lKQogICAgICAgIG9r
ID0gZmFsc2U7IC8vIG5vIElGUkFNRSBzdXBwb3J0PwogICAgICBpZiAoaWZyYW1lICYmIGlmcmFt
ZS5jb250ZW50RG9jdW1lbnQpIHsKICAgICAgICB2YXIgcHMgPSBpZnJhbWUuY29udGVudERvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJyk7CiAgICAgICAgaWYgKHBzLmxlbmd0aCA+IDAp
IHsKICAgICAgICAgIGlmIChwc1swXS5maXJzdENoaWxkICYmIHBzWzBdLmZpcnN0Q2hpbGQuZGF0
YSAmJiBwc1swXS5maXJzdENoaWxkLmRhdGEgPT0gJ0ZBSUwnKQogICAgICAgICAgICBvayA9IGZh
bHNlOyAvLyB0ZXh0L3BsYWluIHdhcyB0cmVhdGVkIGFzIEhUTUwKICAgICAgICB9CiAgICAgIH0K
ICAgICAgaWYgKG9rKQogICAgICAgIHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsK
ICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMTsK
ICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0
aW9uICgpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICBy
ZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAxOwogICAgfSwK
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkg
ewogICAgICByZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAx
OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVu
Y3Rpb24gKCkgewogICAgICByZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
IHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9
LAoKICAgIC8vIGJ1Y2tldCAyOiBET00yIEV2ZW50cwogICAgZnVuY3Rpb24gKCkgewogICAgICAv
LyB0ZXN0IDE2OiBkaXNwYXRjaEV2ZW50KCkKICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgdmFy
IG9rID0gdHJ1ZTsKICAgICAgdmFyIHRlc3QgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBp
ZiAoZXZlbnQuZGV0YWlsICE9IDYpCiAgICAgICAgICBvayA9IGZhbHNlOwogICAgICAgIGNvdW50
Kys7CiAgICAgIH07CiAgICAgIC8vIHRlc3QgZXZlbnQgbGlzdGVuZXIgYWRkaXRpb24KICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3Qn
LCB0ZXN0LCBmYWxzZSk7CiAgICAgIC8vIHRlc3QgZXZlbnQgY3JlYXRpb24KICAgICAgdmFyIGV2
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ1VJRXZlbnRzJyk7CiAgICAgIGV2ZW50LmluaXRV
SUV2ZW50KCd0ZXN0JywgdHJ1ZSwgZmFsc2UsIG51bGwsIDYpOwogICAgICAvLyB0ZXN0IGV2ZW50
IGRpc3BhdGNoIG9uIGVsZW1lbnRzIGFuZCB0ZXh0IG5vZGVzCiAgICAgIG9rID0gb2sgJiYgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlJykuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAg
IG9rID0gb2sgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlJykubmV4dFNpYmxpbmcu
ZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgIC8vIHRlc3QgZXZlbnQgbGlzdGVuZXIgcmVtb3Zh
bAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykucmVtb3ZlRXZlbnRMaXN0
ZW5lcigndGVzdCcsIHRlc3QsIGZhbHNlKTsKICAgICAgb2sgPSBvayAmJiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnc2NvcmUnKS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgaWYgKGNvdW50
ID09IDIgJiYgb2spCiAgICAgICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewog
ICAgICAvLyB0ZXN0IDE3OiBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBhbmQgY2FwdHVyZQogICAg
ICAvLyB3ZSdyZSBnb2luZyB0byB1c2UgYW4gaW5wdXQgZWxlbWVudCBiZWNhdXNlIHdlIGNhbiBj
YXVzZSBldmVudHMgdG8gYnViYmxlIGZyb20gaXQKICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICBkaXYuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAgICAgIC8vIHRoZSB0ZXN0IHdpbGwgY29uc2lzdCBv
ZiB0d28gZXZlbnQgaGFuZGxlcnM6CiAgICAgIHZhciBvayA9IHRydWU7CiAgICAgIHZhciBjYXB0
dXJlQ291bnQgPSAwOwogICAgICB2YXIgdGVzdENhcHR1cmUgPSBmdW5jdGlvbiAoZXZlbnQpIHsK
ICAgICAgICBvayA9IG9rICYmCiAgICAgICAgICAgICAoZXZlbnQudHlwZSA9PSAnY2xpY2snKSAm
JgogICAgICAgICAgICAgKGV2ZW50LnRhcmdldCA9PSBpbnB1dCkgJiYKICAgICAgICAgICAgIChl
dmVudC5jdXJyZW50VGFyZ2V0ID09IGRpdikgJiYKICAgICAgICAgICAgIChldmVudC5ldmVudFBo
YXNlID09IDEpICYmCiAgICAgICAgICAgICAoZXZlbnQuYnViYmxlcykgJiYKICAgICAgICAgICAg
IChldmVudC5jYW5jZWxhYmxlKTsKICAgICAgICBjYXB0dXJlQ291bnQrKzsKICAgICAgICBldmVu
dC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gdGhpcyBzaG91bGRuJ3Qgc3RvcCBpdCBmcm9tIGZpcmlu
ZyBib3RoIHRpbWVzIG9uIHRoZSBkaXYgZWxlbWVudAogICAgICB9OwogICAgICB2YXIgdGVzdEJ1
YmJsZSA9IGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIH07CiAg
ICAgIC8vIG9uZSBvZiB3aGljaCBpcyBhZGRlZCB0d2ljZToKICAgICAgZGl2LmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7IHRlc3RDYXB0dXJlKGV2ZW50KSB9LCB0
cnVlKTsKICAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50
KSB7IHRlc3RDYXB0dXJlKGV2ZW50KSB9LCB0cnVlKTsKICAgICAgZGl2LmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgdGVzdEJ1YmJsZSwgZmFsc2UpOwogICAgICAvLyB3ZSBjYXVzZSBhbiBldmVu
dCB0byBidWJibGUgbGlrZSB0aGlzOgogICAgICBpbnB1dC5jbGljaygpOwogICAgICAvLyBjbGVh
bnVwIGFmdGVyd2FyZHMKICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOwogICAg
ICAvLyBjYXB0dXJlIGhhbmRsZXIgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgdHdpY2UKICAgICAg
aWYgKGNhcHR1cmVDb3VudCA9PSAyICYmIG9rID09IDEpCiAgICAgICAgcmV0dXJuIDI7CiAgICB9
LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDE4OiBldmVudHMgYnViYmxpbmcgdGhy
b3VnaCBEb2N1bWVudCBub2RlCiAgICAgIC8vIGV2ZW50IGhhbmRsZXI6CiAgICAgIHZhciBvayA9
IHRydWU7CiAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgIHZhciB0ZXN0ID0gZnVuY3Rpb24gKGV2
ZW50KSB7CiAgICAgICAgY291bnQgKz0gMTsKICAgICAgICBpZiAoZXZlbnQuZXZlbnRQaGFzZSAh
PSAzKQogICAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgfQogICAgICAvLyByZWdpc3RlciBldmVu
dCBoYW5kbGVyCiAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0
ZXN0LCBmYWxzZSk7CiAgICAgIC8vIGNyZWF0ZSBhbiBlbGVtZW50IHRoYXQgYnViYmxlcyBhbiBl
dmVudCwgYW5kIGJ1YmJsZSBpdAogICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpbnB1dCcpOwogICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CiAgICAgIGRpdi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZGl2KTsKICAgICAgaW5wdXQuY2xpY2soKTsKICAgICAgLy8gdW5yZWdpc3RlciBl
dmVudCBoYW5kbGVyCiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCB0ZXN0LCBmYWxzZSk7CiAgICAgIC8vIGNoZWNrIHRoYXQgaXQncyByZW1vdmVkIGZvciBn
b29kCiAgICAgIGlucHV0LmNsaWNrKCk7CiAgICAgIC8vIHJlbW92ZSB0aGUgbmV3bHkgYWRkZWQg
ZWxlbWVudHMKICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOwogICAgICBpZiAo
b2sgJiYgY291bnQgPT0gMSkKICAgICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAo
KSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJu
IDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBm
dW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAg
ICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMjsKICAg
IH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9u
ICgpIHsKICAgICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1
cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewog
ICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAyOwog
ICAgfSwKCiAgICAvLyBidWNrZXQgMzogRE9NMiBDb3JlCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
IC8vIHRlc3QgMzI6IGhhc0F0dHJpYnV0ZSBvbiBhIG1pc3NpbmcgYXR0cmlidXRlCiAgICAgIGlm
ICghZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hcCcpWzBdLmhhc0F0dHJpYnV0ZSgn
aWQnKSkKICAgICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8v
IHRlc3QgMzM6IG5vZGVUeXBlICh0aGlzIHRlc3QgYWxzbyByZWxpZXMgb24gYWNjdXJhdGUgcGFy
c2luZyBvZiB0aGUgZG9jdW1lbnQpCiAgICAgIGlmICgoZG9jdW1lbnQubm9kZVR5cGUgPT0gOSkg
JiYgLy8gZG9jdW1lbnQKICAgICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubm9kZVR5
cGUgPT0gMSkgJiYgLy8gZWxlbWVudAogICAgICAgICAgKGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0
ZSgndGVzdCcpLm5vZGVUeXBlID09IDIpICYmIC8vIGF0dHJpYnV0ZQogICAgICAgICAgKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzY29yZScpLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT0gMykgJiYg
Ly8gdGVzdCBub2RlCiAgICAgICAgICAoZG9jdW1lbnQuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PSAx
MCkpIC8vIGRvY3R5cGUKICAgICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7
CiAgICAgIC8vIHRlc3QgMzQ6IHZhbHVlIG9mIGNvbnN0YW50cwogICAgICB2YXIgZSA9IG51bGw7
CiAgICAgIHRyeSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQpOwogICAgICAgICAvLyByYWlzZXMgYSBISUVSQVJDSFlfUkVRVUVTVF9F
UlIKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgZSA9IGVycjsKICAgICAgfQogICAgICBp
ZiAoKGRvY3VtZW50LkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUgPT0gMTEpICYmCiAgICAgICAgICAo
ZG9jdW1lbnQuYm9keS5DT01NRU5UX05PREUgPT0gOCkgJiYKICAgICAgICAgIChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgnJykuRUxFTUVOVF9OT0RFID09IDEpICYmCiAgICAgICAgICAoZS5ISUVS
QVJDSFlfUkVRVUVTVF9FUlIgPT0gMykgJiYgKGUuY29kZSA9PSAzKSkKICAgICAgICByZXR1cm4g
MzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMzU6IG51bGxzIGluIGdl
dEVsZW1lbnRCeUlkCiAgICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Y2tldDFc
MGVycm9yJykpCiAgICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICAvLyB0ZXN0IDM2OiBiYXNpYyBuYW1lc3BhY2Ugc3R1ZmYKICAgICAgdmFyIG9rID0gdHJ1ZTsK
ICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly9ucy5l
eGFtcGxlLmNvbS8nLCAncHJlZml4OmxvY2FsbmFtZScpOwogICAgICBpZiAoZWxlbWVudC50YWdO
YW1lICE9ICdwcmVmaXg6bG9jYWxuYW1lJyB8fAogICAgICAgICAgZWxlbWVudC5ub2RlTmFtZSAh
PSAncHJlZml4OmxvY2FsbmFtZScgfHwKICAgICAgICAgIGVsZW1lbnQucHJlZml4ICE9ICdwcmVm
aXgnIHx8CiAgICAgICAgICBlbGVtZW50LmxvY2FsTmFtZSAhPSAnbG9jYWxuYW1lJyB8fAogICAg
ICAgICAgZWxlbWVudC5uYW1lc3BhY2VVUkkgIT0gJ2h0dHA6Ly9ucy5leGFtcGxlLmNvbS8nKQog
ICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmIChvaykKICAgICAgICByZXR1cm4gMzsKICAgIH0s
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMzc6IGNyZWF0ZUVsZW1lbnQoKSB3aXRo
IGludmFsaWQgdGFnIG5hbWVzCiAgICAgIGZ1bmN0aW9uIHRlc3Q0MShuYW1lKSB7CiAgICAgICAg
dmFyIHJlc3VsdDsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQobmFtZSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgcmVzdWx0
ID0gZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSA1
OyAvLyBJTlZBTElEX0NIQVJBQ1RFUl9FUlIKICAgICAgfQogICAgICBpZiAodGVzdDQxKCc8ZGl2
PicpICYmCiAgICAgICAgICB0ZXN0NDEoJzBkaXYnKSAmJgogICAgICAgICAgdGVzdDQxKCdkaTx2
JykgJiYKICAgICAgICAgIHRlc3Q0MSgnLWRpdicpICYmCiAgICAgICAgICB0ZXN0NDEoJy5kaXYn
KSkKICAgICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRl
c3QgMzg6IGV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwogICAgICBpZiAoZG9jdW1lbnQuYm9keS5n
ZXRBdHRyaWJ1dGUoJ29ubG9hZCcpID09ICJ1cGRhdGUoKSAgLyogdGhpcyBhdHRyaWJ1dGUncyB2
YWx1ZSBpcyB0ZXN0ZWQgaW4gdGVzdCAzOCAqLyAiKQogICAgICAgIHJldHVybiAzOwogICAgfSwK
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkg
ewogICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAz
OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVu
Y3Rpb24gKCkgewogICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
IHJldHVybiAzOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDM7CiAgICB9
LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAo
KSB7CiAgICAgIHJldHVybiAzOwogICAgfSwKCiAgICAvLyBidWNrZXQgNDogSFRNTCBhbmQgRE9N
MiBIVE1MCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNDg6IGF0dHJpYnV0ZXMgb2Yg
dGhlIDxhcmVhPiBlbGVtZW50CiAgICAgIHZhciBhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2FyZWEnKVswXTsKICAgICAgaWYgKChhcmVhLmdldEF0dHJpYnV0ZSgnaHJlZicp
ID09ICcnKSAmJgogICAgICAgICAgKGFyZWEuZ2V0QXR0cmlidXRlKCdzaGFwZScpID09ICdyZWN0
JykgJiYKICAgICAgICAgIChhcmVhLmdldEF0dHJpYnV0ZSgnY29vcmRzJykgPT0gJzIsMiw0LDQn
KSkKICAgICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRl
c3QgNDk6IHZhbHVlIG9mIDxidXR0b24+IGVsZW1lbnRzCiAgICAgIHZhciBidXR0b24gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgn
dmFsdWUnLCAnYXBwbGUnKTsKICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCdiYW5hbmEnKSk7CiAgICAgIGlmIChidXR0b24udmFsdWUgPT0gJ2FwcGxlJykK
ICAgICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3Qg
NTA6IGNsYXNzTmFtZSB2cyAiY2xhc3MiIHZzIGF0dHJpYnV0ZSBub2RlcwogICAgICB2YXIgb2sg
PSB0cnVlOwogICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
cGFuJylbMF07CiAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdjbGFzcycsICdraXR0ZW5zJyk7CiAg
ICAgIHZhciBhdHRyID0gc3Bhbi5nZXRBdHRyaWJ1dGVOb2RlKCdjbGFzcycpOwogICAgICBpZiAo
IWF0dHIuc3BlY2lmaWVkKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmIChhdHRyLnZhbHVl
ICE9ICdraXR0ZW5zJykKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAoYXR0ci5uYW1lICE9
ICdjbGFzcycpCiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgYXR0ci52YWx1ZSA9ICdvY2Vsb3Rz
JzsKICAgICAgaWYgKHNwYW4uY2xhc3NOYW1lICE9ICdvY2Vsb3RzJykKICAgICAgICBvayA9IGZh
bHNlOwogICAgICBzcGFuLmNsYXNzTmFtZSA9ICdjYXRzJzsKICAgICAgaWYgKGF0dHIub3duZXJF
bGVtZW50LmdldEF0dHJpYnV0ZSgnY2xhc3MnKSAhPSAnY2F0cycpCiAgICAgICAgb2sgPSBmYWxz
ZTsKICAgICAgc3Bhbi5yZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHIpOwogICAgICBpZiAoIWF0dHIu
c3BlY2lmaWVkKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmIChhdHRyLm93bmVyRWxlbWVu
dCkKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAoc3Bhbi5jbGFzc05hbWUpCiAgICAgICAg
b2sgPSBmYWxzZTsKICAgICAgaWYgKG9rKQogICAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA1MTogY2xhc3NOYW1lIGFuZCB0aGUgY2xhc3MgYXR0
cmlidXRlOiBzcGFjZSBwcmVzZXJ2YXRpb24KICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgdmFy
IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CiAgICAgIGlmIChwLmhhc0F0dHJpYnV0
ZSgnY2xhc3MnKSkKICAgICAgICBvayA9IGZhbHNlOwogICAgICBwLnNldEF0dHJpYnV0ZSgnY2xh
c3MnLCAnIHRlICBzdCAnKTsKICAgICAgaWYgKCFwLmhhc0F0dHJpYnV0ZSgnY2xhc3MnKSB8fAog
ICAgICAgICAgcC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgIT0gJyB0ZSAgc3QgJyB8fAogICAgICAg
ICAgcC5jbGFzc05hbWUgIT0gJyB0ZSAgc3QgJykKICAgICAgICBvayA9IGZhbHNlOwogICAgICBw
LmNsYXNzTmFtZSA9IHAuY2xhc3NOYW1lLnJlcGxhY2UoLyAvLCAnXG4nKTsKICAgICAgaWYgKCFw
Lmhhc0F0dHJpYnV0ZSgnY2xhc3MnKSB8fAogICAgICAgICAgcC5nZXRBdHRyaWJ1dGUoJ2NsYXNz
JykgIT0gJ1xudGVcblxuc3RcbicgfHwKICAgICAgICAgIHAuY2xhc3NOYW1lICE9ICdcbnRlXG5c
bnN0XG4nKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIHAuY2xhc3NOYW1lID0gJyc7CiAgICAg
IGlmICghcC5oYXNBdHRyaWJ1dGUoJ2NsYXNzJykgfHwKICAgICAgICAgIHAuZ2V0QXR0cmlidXRl
KCdjbGFzcycpICE9ICcnIHx8CiAgICAgICAgICBwLmNsYXNzTmFtZSAhPSAnJykKICAgICAgICBv
ayA9IGZhbHNlOwogICAgICBpZiAob2spCiAgICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVu
Y3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDUyOiBjaGVjayB0aGF0IERPTSBhdHRyaWJ1dGVzIGFu
ZCBjb250ZW50IGF0dHJpYnV0ZXMgYXJlbid0IGVxdWl2YWxlbnQKICAgICAgdmFyIG9rID0gdHJ1
ZTsKICAgICAgdmFyIHRlc3Q7CiAgICAgIC8vIDxkaXYgY2xhc3M9IiI+CiAgICAgIHRlc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF07CiAgICAgIGlmICh0ZXN0LmNs
YXNzTmFtZSAhPSAnYnVja2V0cycgfHwKICAgICAgICAgIHRlc3QuZ2V0QXR0cmlidXRlKCdjbGFz
cycpICE9ICdidWNrZXRzJyB8fAogICAgICAgICAgdGVzdC5oYXNBdHRyaWJ1dGUoJ2NsYXNzTmFt
ZScpIHx8CiAgICAgICAgICB0ZXN0LmNsYXNzTmFtZSA9PSB0ZXN0LmdldEF0dHJpYnV0ZSgnY2xh
c3NOYW1lJykpCiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKCdjbGFzcycgaW4gdGVzdCkK
ICAgICAgICBvayA9IGZhbHNlOwogICAgICB0ZXN0WydjbGFzcyddID0gIm9pbCI7CiAgICAgIGlm
ICh0ZXN0LmNsYXNzTmFtZSA9PSAib2lsIikKICAgICAgICBvayA9IGZhbHNlOwogICAgICAvLyA8
bGFiZWwgZm9yPSIiPgogICAgICB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwn
KTsKICAgICAgdGVzdC5odG1sRm9yID0gJ2phcnMnOwogICAgICBpZiAodGVzdC5odG1sRm9yICE9
ICdqYXJzJyB8fAogICAgICAgICAgdGVzdC5nZXRBdHRyaWJ1dGUoJ2ZvcicpICE9ICdqYXJzJyB8
fAogICAgICAgICAgdGVzdC5oYXNBdHRyaWJ1dGUoJ2h0bWxGb3InKSB8fAogICAgICAgICAgdGVz
dC5odG1sRm9yID09IHRlc3QuZ2V0QXR0cmlidXRlKCdodG1sRm9yJykpCiAgICAgICAgb2sgPSBm
YWxzZTsKICAgICAgdGVzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7CiAgICAg
IHRlc3Quc2V0QXR0cmlidXRlKCdmb3InLCAncG90cycpOwogICAgICBpZiAodGVzdC5odG1sRm9y
ICE9ICdwb3RzJyB8fAogICAgICAgICAgdGVzdC5nZXRBdHRyaWJ1dGUoJ2ZvcicpICE9ICdwb3Rz
JyB8fAogICAgICAgICAgdGVzdC5oYXNBdHRyaWJ1dGUoJ2h0bWxGb3InKSB8fAogICAgICAgICAg
dGVzdC5odG1sRm9yID09IHRlc3QuZ2V0QXR0cmlidXRlKCdodG1sRm9yJykpCiAgICAgICAgb2sg
PSBmYWxzZTsKICAgICAgaWYgKCdmb3InIGluIHRlc3QpCiAgICAgICAgb2sgPSBmYWxzZTsKICAg
ICAgdGVzdFsnZm9yJ10gPSAib2lsIjsKICAgICAgaWYgKHRlc3QuaHRtbEZvciA9PSAib2lsIikK
ICAgICAgICBvayA9IGZhbHNlOwogICAgICAvLyA8bWV0YSBodHRwLWVxdWl2PSIiPgogICAgICB0
ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0YScpOwogICAgICB0ZXN0LnNldEF0dHJp
YnV0ZSgnaHR0cC1lcXVpdicsICdib3hlcycpOwogICAgICBpZiAodGVzdC5odHRwRXF1aXYgIT0g
J2JveGVzJyB8fAogICAgICAgICAgdGVzdC5nZXRBdHRyaWJ1dGUoJ2h0dHAtZXF1aXYnKSAhPSAn
Ym94ZXMnIHx8CiAgICAgICAgICB0ZXN0Lmhhc0F0dHJpYnV0ZSgnaHR0cEVxdWl2JykgfHwKICAg
ICAgICAgIHRlc3QuaHR0cEVxdWl2ID09IHRlc3QuZ2V0QXR0cmlidXRlKCdodHRwRXF1aXYnKSkK
ICAgICAgICBvayA9IGZhbHNlOwogICAgICB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bWV0YScpOwogICAgICB0ZXN0Lmh0dHBFcXVpdiA9ICdjYW5zJzsKICAgICAgaWYgKHRlc3QuaHR0
cEVxdWl2ICE9ICdjYW5zJyB8fAogICAgICAgICAgdGVzdC5nZXRBdHRyaWJ1dGUoJ2h0dHAtZXF1
aXYnKSAhPSAnY2FucycgfHwKICAgICAgICAgIHRlc3QuaGFzQXR0cmlidXRlKCdodHRwRXF1aXYn
KSB8fAogICAgICAgICAgdGVzdC5odHRwRXF1aXYgPT0gdGVzdC5nZXRBdHRyaWJ1dGUoJ2h0dHBF
cXVpdicpKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmICgnaHR0cC1lcXVpdicgaW4gdGVz
dCkKICAgICAgICBvayA9IGZhbHNlOwogICAgICB0ZXN0WydodHRwLWVxdWl2J10gPSAib2lsIjsK
ICAgICAgaWYgKHRlc3QuaHR0cEVxdWl2ID09ICJvaWwiKQogICAgICAgIG9rID0gZmFsc2U7CiAg
ICAgIGlmIChvaykKICAgICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAg
ICAgIC8vIHRlc3QgNTM6IG51bWVyaWMgYXR0cmlidXRlcwogICAgICB2YXIgb2sgPSB0cnVlOwog
ICAgICB2YXIgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdOwog
ICAgICBpLnNldEF0dHJpYnV0ZSgnbWF4TGVuZ3RoJywgJzInKTsKICAgICAgdmFyIHMgPSBpLmdl
dEF0dHJpYnV0ZSgnbWF4TGVuZ3RoJyk7CiAgICAgIGlmICghcy5tYXRjaCB8fCBzLk1JTl9WQUxV
RSkKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAob2spCiAgICAgICAgcmV0dXJuIDQ7CiAg
ICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDU0OiBnZXRFbGVtZW50QnlJZCgp
IGFuZCBuYW1lPSIiCiAgICAgIHZhciBvayA9IHRydWU7CiAgICAgIHZhciBmID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKICAgICAgaWYgKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NTQnKSA9PT0gZikKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAo
b2spCiAgICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0
ZXN0IDU1OiBjYXNlIHByZXNlcnZhdGlvbiBvZiBhdHRyaWJ1dGVzCiAgICAgIHZhciBpID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CiAgICAgIGlmIChpLmdldEF0
dHJpYnV0ZSgndHlwZScpID09ICdISURERU4nKQogICAgICAgIHJldHVybiA0OwogICAgfSwKICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA1NjogPGZvcm0+IGFuZCAuZWxlbWVudHMKICAg
ICAgdmFyIG9rID0gZmFsc2U7CiAgICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZm9ybScpWzBdOwogICAgICBpZiAoLy8gdGVzdC5lbGVtZW50cyA9PT0gdGVzdCB8fCAv
LyAoSUUgd291bGQgZmFpbCB0aGlzLCBidXQgSFRNTDUgbWlnaHQgcmVxdWlyZSBpdCkKICAgICAg
ICAgIHRlc3QuZWxlbWVudHMgPT09IHRlc3QuZ2V0QXR0cmlidXRlKCdlbGVtZW50cycpIHx8CiAg
ICAgICAgICB0ZXN0LmVsZW1lbnRzLmxlbmd0aCAhPSAxIHx8CiAgICAgICAgICB0ZXN0LmVsZW1l
bnRzLmxlbmd0aCAhPSB0ZXN0LmVsZW1lbnRzKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlm
IChvaykKICAgICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJl
dHVybiA0OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAog
ICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7
CiAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDQ7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5j
dGlvbiAoKSB7CiAgICAgIHJldHVybiA0OwogICAgfSwKCiAgICAvLyBidWNrZXQgNTogRE9NIG1h
bmlwdWxhdG9uIGFuZCBET00gSFRNTCBhY2Nlc3NvcnMKICAgIC8vIGNoYXB0ZXIgMTogdGFibGVz
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNjQ6IGJhc2ljIHRhYmxlIGFjY2Vzc29y
IHBpbmcgdGVzdCBjcmVhdGUqLCBkZWxldGUqLCBhbmQgKgogICAgICAvLyB3aGVyZSAqIGlzIGNh
cHRpb24sIHRIZWFkLCB0Rm9vdC4KICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgdmFyIHRhYmxl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTsKICAgICAgaWYgKCh0YWJsZS5jYXB0
aW9uKSB8fAogICAgICAgICAgKCF0YWJsZS50Qm9kaWVzKSB8fAogICAgICAgICAgKHRhYmxlLnRC
b2RpZXMubGVuZ3RoID4gMCkgfHwKICAgICAgICAgICghdGFibGUucm93cykgfHwKICAgICAgICAg
ICh0YWJsZS5yb3dzLmxlbmd0aCA+IDApIHx8CiAgICAgICAgICAodGFibGUudEZvb3QpIHx8CiAg
ICAgICAgICAodGFibGUudEhlYWQpKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIHZhciBjYXB0
aW9uID0gdGFibGUuY3JlYXRlQ2FwdGlvbigpOwogICAgICB0YWJsZS5jYXB0aW9uID0gY2FwdGlv
bjsKICAgICAgdmFyIHRoZWFkID0gdGFibGUuY3JlYXRlVEhlYWQoKTsKICAgICAgdGFibGUudEhl
YWQgPSB0aGVhZDsKICAgICAgdmFyIHRmb290ID0gdGFibGUuY3JlYXRlVEZvb3QoKTsKICAgICAg
dGFibGUudEZvb3QgPSB0Zm9vdDsKICAgICAgaWYgKCh0YWJsZS5jYXB0aW9uICE9IGNhcHRpb24p
IHx8CiAgICAgICAgICAoIXRhYmxlLnRCb2RpZXMpIHx8CiAgICAgICAgICAodGFibGUudEJvZGll
cy5sZW5ndGggPiAwKSB8fAogICAgICAgICAgKCF0YWJsZS5yb3dzKSB8fAogICAgICAgICAgKHRh
YmxlLnJvd3MubGVuZ3RoID4gMCkgfHwKICAgICAgICAgICh0YWJsZS50Rm9vdCAhPSB0Zm9vdCkg
fHwKICAgICAgICAgICh0YWJsZS50SGVhZCAhPSB0aGVhZCkgfHwKICAgICAgICAgICh0YWJsZS5j
aGlsZE5vZGVzLmxlbmd0aCAhPSAzKSkKICAgICAgICBvayA9IGZhbHNlOwogICAgICB0YWJsZS5k
ZWxldGVDYXB0aW9uKCk7CiAgICAgIHRhYmxlLmRlbGV0ZVRIZWFkKCk7CiAgICAgIHRhYmxlLmRl
bGV0ZVRGb290KCk7CiAgICAgIGlmICgodGFibGUuY2FwdGlvbikgfHwKICAgICAgICAgICghdGFi
bGUudEJvZGllcykgfHwKICAgICAgICAgICh0YWJsZS50Qm9kaWVzLmxlbmd0aCA+IDApIHx8CiAg
ICAgICAgICAoIXRhYmxlLnJvd3MpIHx8CiAgICAgICAgICAodGFibGUucm93cy5sZW5ndGggPiAw
KSB8fAogICAgICAgICAgKHRhYmxlLnRGb290KSB8fAogICAgICAgICAgKHRhYmxlLnRIZWFkKSB8
fAogICAgICAgICAgKHRhYmxlLmhhc0NoaWxkTm9kZXMoKSkgfHwKICAgICAgICAgICh0YWJsZS5j
aGlsZE5vZGVzLmxlbmd0aCA+IDApKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmIChvaykK
ICAgICAgICByZXR1cm4gNTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3Qg
NjU6IGNvbnN0cnVjdCBhIHRhYmxlLCBhbmQgc2VlIGlmIHRoZSB0YWJsZSBpcyBhcyBleHBlY3Rl
ZAogICAgICB2YXIgb2sgPSB0cnVlOwogICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0YWJsZScpOwogICAgICB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0Ym9keScpKTsKICAgICAgdmFyIHRyMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3RyJyk7CiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyMSk7CiAgICAgIHRhYmxlLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhcHRpb24nKSk7CiAgICAgIHRhYmxlLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoZWFkJykpOwogICAgICAvLyA8dGFibGU+
PHRib2R5Lz48dHIvPjxjYXB0aW9uLz48dGhlYWQvPgogICAgICB0YWJsZS5pbnNlcnRCZWZvcmUo
dGFibGUuZmlyc3RDaGlsZC5uZXh0U2libGluZywgbnVsbCk7IC8vIG1vdmUgdGhlIDx0ci8+IHRv
IHRoZSBlbmQKICAgICAgLy8gPHRhYmxlPjx0Ym9keS8+PGNhcHRpb24vPjx0aGVhZC8+PHRyLz4K
ICAgICAgdGFibGUucmVwbGFjZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQsIHRhYmxlLmxhc3RDaGls
ZCk7IC8vIG1vdmUgdGhlIDx0Ym9keS8+IHRvIHRoZSBlbmQgYW5kIHJlbW92ZSB0aGUgPHRyPgog
ICAgICAvLyA8dGFibGU+PGNhcHRpb24vPjx0aGVhZC8+PHRib2R5Lz4KICAgICAgdmFyIHRyMiA9
IHRhYmxlLnRCb2RpZXNbMF0uaW5zZXJ0Um93KDApOwogICAgICAvLyA8dGFibGU+PGNhcHRpb24v
Pjx0aGVhZC8+PHRib2R5Pjx0ci8+PC90Ym9keT4KICAgICAgaWYgKCh0YWJsZS50Qm9kaWVzWzBd
LnJvd3NbMF0ucm93SW5kZXggIT0gMCkgfHwKICAgICAgICAgICh0YWJsZS50Qm9kaWVzWzBdLnJv
d3NbMF0uc2VjdGlvblJvd0luZGV4ICE9IDApIHx8CiAgICAgICAgICAodGFibGUuY2hpbGROb2Rl
cy5sZW5ndGggIT0gMykgfHwKICAgICAgICAgICghdGFibGUuY2FwdGlvbikgfHwKICAgICAgICAg
ICghdGFibGUudEhlYWQpIHx8CiAgICAgICAgICAodGFibGUudEZvb3QpIHx8CiAgICAgICAgICAo
dGFibGUudEJvZGllcy5sZW5ndGggIT0gMSkgfHwKICAgICAgICAgICh0YWJsZS5yb3dzLmxlbmd0
aCAhPSAxKSkKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAodHIxLnBhcmVudE5vZGUpCiAg
ICAgICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKCh0YWJsZS5jYXB0aW9uICE9IHRhYmxlLmNyZWF0
ZUNhcHRpb24oKSkgfHwKICAgICAgICAgICh0YWJsZS50Rm9vdCAhPSBudWxsKSB8fAogICAgICAg
ICAgKHRhYmxlLnRIZWFkICE9IHRhYmxlLmNyZWF0ZVRIZWFkKCkpKQogICAgICAgIG9rID0gZmFs
c2U7CiAgICAgIGlmICh0YWJsZS5jcmVhdGVURm9vdCgpICE9IHRhYmxlLnRGb290KQogICAgICAg
IG9rID0gZmFsc2U7CiAgICAgIC8vIGVpdGhlcjogPHRhYmxlPjxjYXB0aW9uLz48dGhlYWQvPjx0
Ym9keT48dHIvPjwvdGJvZHk+PHRmb290Lz4KICAgICAgLy8gICAgIG9yOiA8dGFibGU+PGNhcHRp
b24vPjx0aGVhZC8+PHRmb290Lz48dGJvZHk+PHRyLz48L3Rib2R5PgogICAgICB0YWJsZS50SGVh
ZC5hcHBlbmRDaGlsZCh0cjEpOwogICAgICAvLyBlaXRoZXI6IDx0YWJsZT48Y2FwdGlvbi8+PHRo
ZWFkPjx0ci8+PC90aGVhZD48dGJvZHk+PHRyLz48L3Rib2R5Pjx0Zm9vdC8+CiAgICAgIC8vICAg
ICBvcjogPHRhYmxlPjxjYXB0aW9uLz48dGhlYWQ+PHRyLz48L3RoZWFkPjx0Zm9vdC8+PHRib2R5
Pjx0ci8+PC90Ym9keT4KICAgICAgaWYgKCh0YWJsZS5yb3dzWzBdICE9IHRhYmxlLnRIZWFkLmZp
cnN0Q2hpbGQpIHx8CiAgICAgICAgICAodGFibGUucm93cy5sZW5ndGggIT0gMikgfHwKICAgICAg
ICAgICh0YWJsZS5yb3dzWzFdICE9IHRhYmxlLnRCb2RpZXNbMF0uZmlyc3RDaGlsZCkpCiAgICAg
ICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKG9rKQogICAgICAgIHJldHVybiA1OwogICAgfSwKICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA2NjogdGVzdCB0aGUgb3JkZXJpbmcgYW5kIGNy
ZWF0aW9uIG9mIHJvd3MKICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dGFibGUnKTsKICAgICAgdmFyIHJvd3MgPSBbCiAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndHInKSwgICAgLy8gMDogZW5kcyB1cCBmaXJzdCBjaGlsZCBvZiB0aGUgdGZvb3QKICAgICAg
ICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpLCAgICAvLyAxOiBnb2VzIGF0IHRoZSBlbmQg
b2YgdGhlIHRhYmxlCiAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKSwgICAgLy8g
MjogYmVjb21lcyBzZWNvbmQgY2hpbGQgb2YgdGhlYWQKICAgICAgICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0cicpLCAgICAvLyAzOiBiZWNvbWVzIHRoaXJkIGNoaWxkIG9mIHRoZSB0aGVhZAog
ICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyksICAgIC8vIDQ6IG5vdCBpbiB0aGUg
dGFibGUKICAgICAgICB0YWJsZS5pbnNlcnRSb3coMCksICAgICAgICAgICAgICAvLyA1OiBub3Qg
aW4gdGhlIHRhYmxlCiAgICAgICAgdGFibGUuY3JlYXRlVEZvb3QoKS5pbnNlcnRSb3coMCkgLy8g
NjogZW5kcyB1cCBzZWNvbmQgaW4gdGhlIHRmb290CiAgICAgIF07CiAgICAgIHJvd3NbNl0ucGFy
ZW50Tm9kZS5hcHBlbmRDaGlsZChyb3dzWzBdKTsKICAgICAgdGFibGUuYXBwZW5kQ2hpbGQocm93
c1sxXSk7CiAgICAgIHRhYmxlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0
aGVhZCcpLCB0YWJsZS5maXJzdENoaWxkKTsKICAgICAgdGFibGUuZmlyc3RDaGlsZC5hcHBlbmRD
aGlsZChyb3dzWzJdKTsKICAgICAgcm93c1syXS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHJvd3Nb
M10pOwogICAgICByb3dzWzRdLmFwcGVuZENoaWxkKHJvd3NbNV0ucGFyZW50Tm9kZSk7CiAgICAg
IHRhYmxlLmluc2VydFJvdygwKTsKICAgICAgdGFibGUudEZvb3QuYXBwZW5kQ2hpbGQocm93c1s2
XSk7CiAgICAgIGlmICh0YWJsZS5yb3dzLmxlbmd0aCA9PSA2ICYmCiAgICAgICAgICB0YWJsZS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKS5sZW5ndGggPT0gNiAmJgogICAgICAgICAgdGFibGUu
Y2hpbGROb2Rlcy5sZW5ndGggPT0gMyAmJgogICAgICAgICAgdGFibGUuY2hpbGROb2Rlc1swXSA9
PSB0YWJsZS50SGVhZCAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Ry
JylbMF0gPT0gdGFibGUudEhlYWQuY2hpbGROb2Rlc1swXSAmJgogICAgICAgICAgdGFibGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMV0gPT0gdGFibGUudEhlYWQuY2hpbGROb2Rlc1sxXSAm
JgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMV0gPT0gcm93c1sy
XSAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMl0gPT0gdGFi
bGUudEhlYWQuY2hpbGROb2Rlc1syXSAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ3RyJylbMl0gPT0gcm93c1szXSAmJgogICAgICAgICAgdGFibGUuY2hpbGROb2Rlc1sx
XSA9PSB0YWJsZS50Rm9vdCAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3RyJylbM10gPT0gdGFibGUudEZvb3QuY2hpbGROb2Rlc1swXSAmJgogICAgICAgICAgdGFibGUu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbM10gPT0gcm93c1swXSAmJgogICAgICAgICAgdGFi
bGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNF0gPT0gdGFibGUudEZvb3QuY2hpbGROb2Rl
c1sxXSAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNF0gPT0g
cm93c1s2XSAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNV0g
PT0gdGFibGUuY2hpbGROb2Rlc1syXSAmJgogICAgICAgICAgdGFibGUuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ3RyJylbNV0gPT0gcm93c1sxXSAmJgogICAgICAgICAgdGFibGUudEJvZGllcy5sZW5n
dGggPT0gMCkKICAgICAgICByZXR1cm4gNTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
IC8vIHRlc3QgNjc6IGNoZWNrIHRoYXQgd2hpdGVzcGFjZSBzdXJ2aXZlcyBjbG9uaW5nCiAgICAg
IHZhciBvayA9IHRydWU7CiAgICAgIHZhciB0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCd0YWJsZScpWzBdOwogICAgICB2YXIgdDIgPSB0MS5jbG9uZU5vZGUodHJ1ZSk7CiAgICAg
IGlmICh0Mi50Qm9kaWVzWzBdLnJvd3NbMF0uY2VsbHNbMF0uZmlyc3RDaGlsZC50YWdOYW1lICE9
ICdQJyB8fAogICAgICAgICAgdDIudEJvZGllc1swXS5yb3dzWzBdLmNlbGxzWzBdLmZpcnN0Q2hp
bGQuY2hpbGROb2Rlcy5sZW5ndGggIT0gMCB8fAogICAgICAgICAgdDIuY2hpbGROb2Rlcy5sZW5n
dGggIT0gMiB8fAogICAgICAgICAgdDIubGFzdENoaWxkLmRhdGEgIT0gIiAiKQogICAgICAgIG9r
ID0gZmFsc2U7CiAgICAgIGlmIChvaykKICAgICAgICByZXR1cm4gNTsKICAgIH0sCiAgICAvLyBj
aGFwdGVyIDI6IDxpbnB1dD4KICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA2ODogY2hh
bmdpbmcgYSBkeW5hbWljIDxpbnB1dD4KICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgdmFyIGYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7CiAgICAgIHZhciBpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgaS5uYW1lID0gJ2ZpcnN0JzsKICAgICAgaS50
eXBlID0gJ3RleHQnOwogICAgICBpLnZhbHVlID0gJ3Rlc3QnOwogICAgICBmLmFwcGVuZENoaWxk
KGkpOwogICAgICBpZiAoaS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSAhPSAnZmlyc3QnIHx8CiAgICAg
ICAgICBpLm5hbWUgIT0gJ2ZpcnN0JyB8fAogICAgICAgICAgaS5nZXRBdHRyaWJ1dGUoJ3R5cGUn
KSAhPSAndGV4dCcgfHwKICAgICAgICAgIGkudHlwZSAhPSAndGV4dCcgfHwKICAgICAgICAgIGku
dmFsdWUgIT0gJ3Rlc3QnIHx8CiAgICAgICAgICBmLmVsZW1lbnRzLmxlbmd0aCAhPSAxIHx8CiAg
ICAgICAgICBmLmVsZW1lbnRzWzBdICE9IGkgfHwKICAgICAgICAgIGYuZWxlbWVudHMuZmlyc3Qg
IT0gaSB8fAogICAgICAgICAgZi5lbGVtZW50cy5zZWNvbmQgIT0gbnVsbCkKICAgICAgICBvayA9
IGZhbHNlOwogICAgICBpLm5hbWUgPSAnc2Vjb25kJzsKICAgICAgaS50eXBlID0gJ3Bhc3N3b3Jk
JzsKICAgICAgaS52YWx1ZSA9ICdURVNUJzsKICAgICAgaWYgKGkuZ2V0QXR0cmlidXRlKCduYW1l
JykgIT0gJ3NlY29uZCcgfHwKICAgICAgICAgIGkubmFtZSAhPSAnc2Vjb25kJyB8fAogICAgICAg
ICAgaS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSAhPSAncGFzc3dvcmQnIHx8CiAgICAgICAgICBpLnR5
cGUgIT0gJ3Bhc3N3b3JkJyB8fAogICAgICAgICAgaS52YWx1ZSAhPSAnVEVTVCcgfHwKICAgICAg
ICAgIGYuZWxlbWVudHMubGVuZ3RoICE9IDEgfHwKICAgICAgICAgIGYuZWxlbWVudHNbMF0gIT0g
aSB8fAogICAgICAgICAgZi5lbGVtZW50cy5zZWNvbmQgIT0gaSB8fAogICAgICAgICAgZi5lbGVt
ZW50cy5maXJzdCAhPSBudWxsKQogICAgICAgIG9rID0gZmFsc2U7CiAgICAgIGlmIChvaykKICAg
ICAgICByZXR1cm4gNTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNjk6
IGNoYW5naW5nIGEgcGFyc2VkIDxpbnB1dD4KICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgdmFy
IGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKICAgICAgaWYg
KGkudHlwZSAhPSAnaGlkZGVuJykKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpLm5hbWUgPSAn
dGVzdCc7CiAgICAgIGlmIChpLnBhcmVudE5vZGUuZWxlbWVudHMudGVzdCAhPSBpKQogICAgICAg
IG9rID0gZmFsc2U7CiAgICAgIGkucGFyZW50Tm9kZS5hY3Rpb24gPSAnamF2YXNjcmlwdDonOwog
ICAgICB2YXIgY2FsbGVkID0gZmFsc2U7CiAgICAgIGkucGFyZW50Tm9kZS5vbnN1Ym1pdCA9IGZ1
bmN0aW9uIChhcmcpIHsKICAgICAgICBhcmcucHJldmVudERlZmF1bHQoKTsKICAgICAgICBjYWxs
ZWQgPSB0cnVlOwogICAgICB9OwogICAgICBpLnR5cGUgPSAnc3VibWl0JzsKICAgICAgaS5jbGlj
aygpOyAvLyBzeW5jaHJvbm91c2x5IGRpc3BhdGNoZXMgYSBjbGljayBldmVudCB0byB0aGUgc3Vi
bWl0IGJ1dHRvbiwgd2hpY2ggc3VibWl0cyB0aGUgZm9ybSwgd2hpY2ggY2FsbHMgb25zdWJtaXQK
ICAgICAgaWYgKCFjYWxsZWQpCiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgaS50eXBlID0gJ2hJ
ZERlTic7CiAgICAgIGlmIChvaykKICAgICAgICByZXR1cm4gNTsKICAgIH0sCiAgICBmdW5jdGlv
biAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0
dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNTsKICAgIH0sCiAg
ICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsK
ICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNTsK
ICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwKICAgIGZ1bmN0
aW9uICgpIHsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICBy
ZXR1cm4gNTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwK
CiAgICAvLyBidWNrZXQgNjogSmF2YVNjcmlwdAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0
ZXN0IDgwOiBsZW5ndGggb2YgYXJyYXlzIHdpdGggdHJhaWxpbmcgY29tbWFzICgpCiAgICAgIHZh
ciB0MSA9IFssXTsKICAgICAgdmFyIHQyID0gWywsXTsKICAgICAgaWYgKCh0MS5sZW5ndGggPT0g
MSkgJiYgKHQyLmxlbmd0aCA9PSAyKSkKICAgICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5j
dGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgODE6IHRvRml4ZWQoKSBhbmQgdG9FeHBvbmVudGlhbCgp
IGJ1Z3MKICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgaWYgKCgwLjApLnRvRml4ZWQoNCkgIT0g
IjAuMDAwMCIgfHwKICAgICAgICAgKC0wLjApLnRvRml4ZWQoNCkgIT0gIjAuMDAwMCIpCiAgICAg
ICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKCgwLjApLnRvRXhwb25lbnRpYWwoNCkgIT0gIjAuMDAw
MGUrMCIgfHwKICAgICAgICAgKC0wLjApLnRvRXhwb25lbnRpYWwoNCkgIT0gIjAuMDAwMGUrMCIp
CiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKCgwLjAwMDA2KS50b0ZpeGVkKDQpICE9ICIw
LjAwMDEiIHx8CiAgICAgICAgICgtMC4wMDAwNikudG9GaXhlZCg0KSAhPSAiLTAuMDAwMSIpCiAg
ICAgICAgb2sgPSBmYWxzZTsKICAgICAgaWYgKG9rKQogICAgICAgIHJldHVybiA2OwogICAgfSwK
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA4Mjogc3Vic3RyKCkgYW5kIG5lZ2F0aXZl
IG51bWJlcnMKICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgaWYgKCJzY2F0aGluZyIuc3Vic3Ry
KC03LCAzKSAhPSAiY2F0IikKICAgICAgICBvayA9IGZhbHNlOwogICAgICBpZiAob2spCiAgICAg
ICAgcmV0dXJuIDY7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB4eHggZXZhbCgi
dGFibGUuXG4iKSBzaG91bGQgZmFpbD8KICAgICAgcmV0dXJuIDY7CiAgICB9LAogICAgZnVuY3Rp
b24gKCkgewogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJl
dHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDY7CiAgICB9LAog
ICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7
CiAgICAgIHJldHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDY7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5j
dGlvbiAoKSB7CiAgICAgIHJldHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAg
cmV0dXJuIDY7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNjsKICAgIH0s
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgp
IHsKICAgICAgcmV0dXJuIDY7CiAgICB9LAoKICAgIC8vIHRoZSBzZXZlbnRoIGJ1Y2tldCBpcyBq
dXN0IGZvdXIgc3BlY2lhbCB0ZXN0cyAobm8gYWN0dWFsIGJ1Y2tldCkKICAgIGZ1bmN0aW9uICgp
IHsKICAgICAgcmV0dXJuIDc7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4g
NzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA3OwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDc7CiAgICB9CgogIF07CiAgdmFyIGxvZyA9ICcnOwog
IHZhciBzY29yZSA9IDAsIGluZGV4ID0gMDsKICBmdW5jdGlvbiB1cGRhdGUoKSB7CiAgICB2YXIg
c3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY29yZScpOwogICAgaWYgKGluZGV4IDwg
dGVzdHMubGVuZ3RoKSB7CiAgICAgIHRyeSB7CiAgICAgICAgdmFyIGJ1Y2tldCA9IHRlc3RzW2lu
ZGV4XSgpOwogICAgICAgIGlmIChidWNrZXQpIHsKICAgICAgICAgIHZhciBidWNrZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYnVja2V0JyArIGJ1Y2tldCk7CiAgICAgICAgICBpZiAoYnVj
a2V0KQogICAgICAgICAgICBidWNrZXQuY2xhc3NOYW1lICs9ICd4JzsKICAgICAgICAgIHNjb3Jl
ICs9IDE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGxvZyArPSAiVGVzdCAiICsgaW5kZXgg
KyAiOiBGQUlMXG4iOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGxvZyAr
PSAiVGVzdCAiICsgaW5kZXggKyAiOiBGQUlMICgiICsgZS5tZXNzYWdlICsgIilcbiI7CiAgICAg
IH07CiAgICAgIGluZGV4ICs9IDE7CiAgICAgIHNwYW4udGV4dENvbnRlbnQgPSAoc2NvcmUgKiAx
MDAvdGVzdHMubGVuZ3RoKS50b0ZpeGVkKDApOwogICAgICBzZXRUaW1lb3V0KHVwZGF0ZSwgMTAp
OwogICAgfSBlbHNlIHsKICAgICAgaWYgKHNjb3JlID09IHRlc3RzLmxlbmd0aCkKICAgICAgICBz
cGFuLm5leHRTaWJsaW5nLm5leHRTaWJsaW5nLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTsKICAg
IH0KICB9CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0idXBkYXRlKCkgIC8qIHRoaXMgYXR0cmli
dXRlJ3MgdmFsdWUgaXMgdGVzdGVkIGluIHRlc3QgMzggKi8gIj4KICA8aDEgb25jbGljaz0iYWxl
cnQobG9nKSI+QWNpZDM8L2gxPgogIDxkaXYgY2xhc3M9ImJ1Y2tldHMiCiAgID4KICAgPjxwIGlk
PSJidWNrZXQxIiBjbGFzcz0ieiI+PC9wCiAgID48cCBpZD0iYnVja2V0MiIgY2xhc3M9InoiPjwv
cAogICA+PHAgaWQ9ImJ1Y2tldDMiIGNsYXNzPSJ6Ij48L3AKICAgPjxwIGlkPSJidWNrZXQ0IiBj
bGFzcz0ieiI+PC9wCiAgID48cCBpZD0iYnVja2V0NSIgY2xhc3M9InoiPjwvcAogICA+PHAgaWQ9
ImJ1Y2tldDYiIGNsYXNzPSJ6Ij48L3A+CiAgPC9kaXY+CiAgPHAgaWQ9InJlc3VsdCI+PHNwYW4g
aWQ9InNjb3JlIj4wPC9zcGFuPiU8c3BhbiBjbGFzcz0iaGlkZGVuIj4hISE8L3NwYW4+PC9wPgog
IDwhLS0gdGhlIGZvbGxvd2luZyBsaW5lIGlzIHVzZWQgaW4gYSBudW1iZXIgb2YgdGhlIHRlc3Rz
IC0tPgogIDxtYXA+PGFyZWEgaHJlZj0iIiBzaGFwZT0icmVjdCIgY29vcmRzPSIyLDIsNCw0Ij48
aWZyYW1lIHNyYz0iZW1wdHkucG5nIj5GQUlMPC9pZnJhbWU+PGlmcmFtZSBzcmM9ImVtcHR5LnR4
dCI+RkFJTDwvaWZyYW1lPjxmb3JtIG5hbWU9InRlc3Q1NCI+PGlucHV0IHR5cGU9SElEREVOPjwv
Zm9ybT48dGFibGU+PHRyPjx0ZD48cD48L3Rib2R5PiA8L3RhYmxlPjwvbWFwPgogIDxwIGlkPSJp
bnN0cnVjdGlvbnMiPlRvIHBhc3MgdGhlIHRlc3QsIHRoZSBhbmltYXRpb24gd2hpbGUgdGhlIHRl
c3Qgd2FzIHJ1bm5pbmcgaGFzIHRvIGJlIHNtb290aCwgYW5kIHRoZSBmaW5hbCBwYWdlIGhhcyB0
byBsb29rIGV4YWN0bHkgbGlrZSA8YSBocmVmPSJyZWZlcmVuY2UuaHRtbCI+dGhpcyByZWZlcmVu
Y2UgcmVuZGVyaW5nPC9hPi4gQSAxMDAlIHNjb3JlIGRvZXMgbm90IG1lYW4gdGhlIGJyb3dzZXIg
c3VwcG9ydHMgMTAwJSBvZiB0aGUgc3RhbmRhcmRzLgo8L3A+CiAgPHAgaWQ9InJlbW92ZS1sYXN0
LWNoaWxkLXRlc3QiPkZBSUw8L3A+CiA8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18165</attachid>
            <date>2007-12-28 21:33:51 -0800</date>
            <delta_ts>2007-12-28 21:44:59 -0800</delta_ts>
            <desc>Fix ASSERT by implementing BreakpointCheckStatement::optimizeVarAccess</desc>
            <filename>Fix-ASSERT-by-implementing-BreakpointCheckStatement-optimizeVarAccess.patch</filename>
            <type>text/plain</type>
            <size>2133</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ODIwZTRjOGE3M2EwOWU1NzRkNTA2M2Q2YWE3OTZiYmQ0ZWMyNDhlYwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM4
YzgwZTEuLjBmZjQ4NjcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMTAgKzEsMjQgQEAKIDIwMDctMTItMjgg
IEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFTU0VSVCB3aGVuIGRlYnVnZ2luZyB2aWEgRHJvc2Vy
YSBkdWUgdG8gbWlzc2VkIHZhciBsb29rdXAgb3B0aW1pemF0aW9uLgorICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjYzNAorICAgICAgICAKKyAgICAgICAg
Tm8gdGVzdCBjYXNlIHBvc3NpYmxlLgorCisgICAgICAgICoga2pzL25vZGVzLmNwcDoKKyAgICAg
ICAgKEtKUzo6QnJlYWtwb2ludENoZWNrU3RhdGVtZW50OjpvcHRpbWl6ZVZhcmlhYmxlQWNjZXNz
KToKKyAgICAgICAgKiBranMvbm9kZXMuaDoKKworMjAwNy0xMi0yOCAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyLgogCiAgICAgICAg
IEZpeCAoLTApLnRvRml4ZWQoKSBhbmQgcmUtZmFjdG9yIGEgbGl0dGxlCiAgICAgICAgIEZpeCAo
LTApLnRvRXhwb25lbnRpYWwoKSBhbmQgcHJpbnRpbmcgb2YgdHJhaWxpbmcgMHMgaW4gdG9FeHBv
bmVudGlhbAogICAgICAgICBGaXggdG9QcmVjaXNpb24obmFuKSBoYW5kbGluZworICAgICAgICBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MAogCiAgICAgICAgICog
a2pzL251bWJlcl9vYmplY3QuY3BwOgogICAgICAgICAoS0pTOjpudW1iZXJUb0ZpeGVkKToKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9r
anMvbm9kZXMuY3BwCmluZGV4IGQ0OGY5ZTcuLjQxMzhlMzkgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcApA
QCAtNDEwLDYgKzQxMCwxMSBAQCB2b2lkIEJyZWFrcG9pbnRDaGVja1N0YXRlbWVudDo6c3RyZWFt
VG8oU291cmNlU3RyZWFtJiBzdHJlYW0pIGNvbnN0CiAgICAgbV9zdGF0ZW1lbnQtPnN0cmVhbVRv
KHN0cmVhbSk7CiB9CiAKK3ZvaWQgQnJlYWtwb2ludENoZWNrU3RhdGVtZW50OjpvcHRpbWl6ZVZh
cmlhYmxlQWNjZXNzKFN5bWJvbFRhYmxlJiwgRGVjbGFyYXRpb25TdGFja3M6Ok5vZGVTdGFjayYg
bm9kZVN0YWNrKQoreworICAgIG5vZGVTdGFjay5hcHBlbmQobV9zdGF0ZW1lbnQuZ2V0KCkpOwor
fQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTnVsbE5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBKU1ZhbHVlICpOdWxsTm9kZTo6ZXZhbHVh
dGUoRXhlY1N0YXRlICopCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaCBi
L0phdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCmluZGV4IDIzMzczNzYuLjRmYmQ5MWQgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2tq
cy9ub2Rlcy5oCkBAIC0yMTAzLDYgKzIxMDMsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAg
QnJlYWtwb2ludENoZWNrU3RhdGVtZW50KFBhc3NSZWZQdHI8U3RhdGVtZW50Tm9kZT4pIEtKU19G
QVNUX0NBTEw7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSogZXhlY3V0ZShFeGVjU3RhdGUqKSBL
SlNfRkFTVF9DQUxMOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291cmNlU3RyZWFt
JikgY29uc3QgS0pTX0ZBU1RfQ0FMTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIG9wdGltaXplVmFy
aWFibGVBY2Nlc3MoU3ltYm9sVGFibGUmLCBEZWNsYXJhdGlvblN0YWNrczo6Tm9kZVN0YWNrJikg
S0pTX0ZBU1RfQ0FMTDsKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8U3RhdGVtZW50Tm9k
ZT4gbV9zdGF0ZW1lbnQ7CiAgICAgfTsK
</data>
<flag name="review"
          id="7896"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>