<?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>156406</bug_id>
          
          <creation_ts>2016-04-08 10:25:51 -0700</creation_ts>
          <short_desc>Debug JSC test failure: stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool</short_desc>
          <delta_ts>2016-04-09 13:41:15 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182193</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-04-08 10:25:51 -0700</bug_when>
    <thetext>Debug JSC test failure: stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool

&lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/2401&gt;
&lt;https://build.webkit.org/builders/Apple%20Yosemite%20Debug%20JSC%20%28Tests%29/builds/5530&gt;

stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: ASSERTION FAILED: structureID &amp;&amp; structureID &lt; m_capacity
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: /Volumes/Data/slave/elcapitan-debug/build/Source/JavaScriptCore/runtime/StructureIDTable.h(85) : JSC::Structure *JSC::StructureIDTable::get(StructureID)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 1   0x10bf4bcb0 WTFCrash
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 2   0x10bf4bcd9 WTFCrashWithSecurityImplication
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 3   0x10afc087b JSC::StructureIDTable::get(unsigned int)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 4   0x10afc643f JSC::JSCell::structure() const
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 5   0x10b9e3c26 JSC::slowValidateCell(JSC::JSCell*)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 6   0x10afc4835 void JSC::validateCell&lt;JSC::JSCell*&gt;(JSC::JSCell*)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 7   0x10b0b284e JSC::WriteBarrierBase&lt;JSC::PropertyTable&gt;::get() const
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 8   0x10b0b2245 JSC::Structure::checkOffsetConsistency() const
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 9   0x10b0b1dfd JSC::Structure::outOfLineCapacity() const
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 10  0x10b99ab41 bool JSC::JSObject::putDirectInternal&lt;(JSC::JSObject::PutMode)0&gt;(JSC::VM&amp;, JSC::PropertyName, JSC::JSValue, unsigned int, JSC::PutPropertySlot&amp;)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 11  0x10b99a3b9 JSC::JSObject::putInline(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 12  0x10b997f94 JSC::JSValue::putInline(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 13  0x10b98ff7f operationPutByIdNonStrictOptimize
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 14  0x3e9bbd806cc6
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 15  0x10bb76367 llint_entry
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 16  0x10bb6f82e vmEntryToJavaScript
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 17  0x10b98135a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 18  0x10b91811a JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 19  0x10b2bd040 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 20  0x10ae09d83 runWithScripts(GlobalObject*, WTF::Vector&lt;Script, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, bool, bool)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 21  0x10ae092a4 runJSC(JSC::VM*, CommandLine)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 22  0x10ae086ea jscmain(int, char**)
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 23  0x10ae085ab main
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 24  0x7fff85f995ad start
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: 25  0x8
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: test_script_15896: line 2: 62057 Segmentation fault: 11  ( &quot;$@&quot; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --useFunctionDotArguments\=true --jitMemoryReservationSize\=50000 --useFTLJIT\=true --useConcurrentJIT\=false --thresholdForJITAfterWarmUp\=100 multi-put-by-offset-reallocation-butterfly-cse.js )
stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool: ERROR: Unexpected exit code: 139
FAIL: stress/multi-put-by-offset-reallocation-butterfly-cse.js.ftl-no-cjit-small-pool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182194</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-04-08 10:27:49 -0700</bug_when>
    <thetext>The JSC change in the failing test run was &lt;https://trac.webkit.org/changeset/199209&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182319</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-08 14:29:56 -0700</bug_when>
    <thetext>I will look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182351</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-08 16:23:41 -0700</bug_when>
    <thetext>Hey it repros!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182473</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-09 11:43:34 -0700</bug_when>
    <thetext>Heh.  That&apos;s awesome.  The bug here is that we are doing a GC from the butterfly allocation call, but we forgot to make the stub be GC-aware.  So, the GC may delete the stub while we&apos;re running it.  Here&apos;s the stack during the GC moments before we crash:

Requested GC with stack:
1   0x100a339ff JSC::Heap::collectImpl(JSC::HeapOperation, void*, void*, int (&amp;) [37])
2   0x100a3396d JSC::Heap::collect(JSC::HeapOperation)
3   0x1002aa548 JSC::Heap::collectIfNecessaryOrDefer()
4   0x1002aa492 JSC::Heap::decrementDeferralDepthAndGCIfNeeded()
5   0x1002aa468 JSC::DeferGC::~DeferGC()
6   0x1002a8b75 JSC::DeferGC::~DeferGC()
7   0x100b8d55f operationReallocateButterflyToHavePropertyStorageWithInitialCapacity
8   0x22c95a6020c8
9   0x100d6c69d llint_entry
10  0x100d65bde vmEntryToJavaScript
11  0x100b7755a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
12  0x100b0e31a JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
13  0x1004b37a0 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
14  0x100003ed3 runWithScripts(GlobalObject*, WTF::Vector&lt;Script, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, bool, bool)
15  0x1000033f4 runJSC(JSC::VM*, CommandLine)
16  0x10000283a jscmain(int, char**)
17  0x1000026fb main
18  0x7fff9662b5ad start

Notice operationReallocateButterflyToHavePropertyStorageWithInitialCapacity. My put_by_id transition work added a call to that in the IC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182475</commentid>
    <comment_count>5</comment_count>
      <attachid>276088</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-09 12:18:33 -0700</bug_when>
    <thetext>Created attachment 276088
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182477</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-09 12:19:27 -0700</bug_when>
    <thetext>Attachment 276088 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:86:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:106:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182481</commentid>
    <comment_count>7</comment_count>
      <attachid>276088</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-09 12:32:25 -0700</bug_when>
    <thetext>Comment on attachment 276088
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182499</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-09 13:41:15 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/199275</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276088</attachid>
            <date>2016-04-09 12:18:33 -0700</date>
            <delta_ts>2016-04-09 12:32:25 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12991</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MjczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE2LTA0LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RGVidWcgSlNDIHRlc3QgZmFpbHVyZTogc3RyZXNzL211bHRpLXB1dC1ieS1vZmZzZXQtcmVhbGxv
Y2F0aW9uLWJ1dHRlcmZseS1jc2UuanMuZnRsLW5vLWNqaXQtc21hbGwtcG9vbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NDA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZhaWx1cmUgd2FzIGJl
Y2F1c2UgdGhlIEdDIHJhbiBmcm9tIHdpdGhpbiB0aGUgYnV0dGVyZmx5IGFsbG9jYXRpb24gY2Fs
bCBpbiBhIHB1dF9ieV9pZAorICAgICAgICB0cmFuc2l0aW9uIEFjY2Vzc0Nhc2UgdGhhdCBoYWQg
dG8gZGVhbCB3aXRoIGluZGV4aW5nIHN0b3JhZ2UuIFdoZW4gdGhlIEdDIHJ1bnMgaW4gYSBjYWxs
IGZyb20gYSBzdHViLAorICAgICAgICB0aGVuIHdlIG5lZWQgdG8gYmUgZXh0cmEgY2FyZWZ1bDoK
KworICAgICAgICAxKSBUaGUgR0MgbWF5IHJlc2V0IHRoZSBJQyBhbmQgZGVsZXRlIHRoZSBzdHVi
LiBTbywgdGhlIHN0dWIgbmVlZHMgdG8gdGVsbCB0aGUgR0MgdGhhdCBpdCBtaWdodCBiZSBvbgor
ICAgICAgICAgICB0aGUgc3RhY2sgZHVyaW5nIEdDLCBzbyB0aGF0IHRoZSBHQyBrZWVwcyBpdCBh
bGl2ZSBpZiBpdCdzIGN1cnJlbnRseSBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgMikgSWYg
dGhlIHN0dWIgdXNlcyAoZGVyZWZlcmVuY2VzIG9yIHN0b3Jlcykgc29tZSBvYmplY3QgYWZ0ZXIg
dGhlIGNhbGwsIHRoZW4gd2UgbmVlZCB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICB0aGUgc3R1
YiByb3V0aW5lIGtub3dzIGFib3V0IHRoYXQgb2JqZWN0IGluZGVwZW5kZW50bHkgb2YgdGhlIElD
LgorICAgICAgICAKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcHV0X2J5X2lkIHRyYW5zaXRpb25z
IHRoYXQgdXNlIGEgaGVscGVyIHRvIGFsbG9jYXRlIHRoZSBidXR0ZXJmbHksIHdlIGhhdmUgYm90
aAorICAgICAgICBpc3N1ZXMuIEEgbG9uZyB0aW1lIGFnbywgd2UgaGFkIHRvIGRlYWwgd2l0aCAo
MiksIGFuZCB3ZSBzdGlsbCBoYWQgY29kZSB0byBoYW5kbGUgdGhhdCBjYXNlLCBhbHRob3VnaAor
ICAgICAgICBpdCBhcHBlYXJzIHRvIGJlIGRlYWQuIFRoaXMgY2hhbmdlIHJldml2ZXMgdGhhdCBj
b2RlIGFuZCBnbHVlcyBpdCB0b2dldGhlciB3aXRoIFBvbHltb3JwaGljQWNjZXNzLgorCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjphbHRlcm5hdGVCYXNlKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZG9lc0Nh
bGxzKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Y291bGRTdGlsbFN1Y2NlZWQpOgorICAg
ICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OlBvbHltb3Jw
aGljQWNjZXNzOjpyZWdlbmVyYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5oOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjdXN0b21TbG90QmFzZSk6CisgICAg
ICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmlzR2V0dGVyKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9lc0NhbGxzKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvR0NBd2FyZUpJVFN0dWJSb3V0
aW5lLmNwcDoKKyAgICAgICAgKEpTQzo6R0NBd2FyZUpJVFN0dWJSb3V0aW5lOjptYXJrUmVxdWly
ZWRPYmplY3RzSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpNYXJraW5nR0NBd2FyZUpJVFN0dWJS
b3V0aW5lOjpNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKToKKyAgICAgICAgKEpTQzo6TWFy
a2luZ0dDQXdhcmVKSVRTdHViUm91dGluZTo6fk1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmUp
OgorICAgICAgICAoSlNDOjpNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lOjptYXJrUmVxdWly
ZWRPYmplY3RzSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpHQ0F3YXJlSklUU3R1YlJvdXRpbmVX
aXRoRXhjZXB0aW9uSGFuZGxlcjo6R0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4Y2VwdGlvbkhh
bmRsZXIpOgorICAgICAgICAoSlNDOjpjcmVhdGVKSVRTdHViUm91dGluZSk6CisgICAgICAgIChK
U0M6Ok1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoT25lT2JqZWN0OjpNYXJraW5nR0NB
d2FyZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoT25lT2JqZWN0Ojp+TWFya2luZ0dDQXdh
cmVKSVRTdHViUm91dGluZVdpdGhPbmVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpN
YXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVjdDo6bWFya1JlcXVpcmVkT2Jq
ZWN0c0ludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvR0NBd2FyZUpJVFN0dWJSb3V0
aW5lLmg6CisgICAgICAgIChKU0M6OmNyZWF0ZUpJVFN0dWJSb3V0aW5lKToKKwogMjAxNi0wNC0w
OCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFhIUnMgYW5kIFdlYiBXb3JrZXIgc2NyaXB0cyBhcmUgbm90IHNlYXJjaGFibGUK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmNwcAkocmV2aXNpb24gMTk5MjUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEzLDYg
KzQxMywyOSBAQCBKU09iamVjdCogQWNjZXNzQ2FzZTo6YWx0ZXJuYXRlQmFzZSgpIGNvCiAgICAg
cmV0dXJuIGNvbmRpdGlvblNldCgpLnNsb3RCYXNlQ29uZGl0aW9uKCkub2JqZWN0KCk7CiB9CiAK
K2Jvb2wgQWNjZXNzQ2FzZTo6ZG9lc0NhbGxzKFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmsp
IGNvbnN0Cit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEdldHRlcjoKKyAgICBj
YXNlIFNldHRlcjoKKyAgICBjYXNlIEN1c3RvbVZhbHVlR2V0dGVyOgorICAgIGNhc2UgQ3VzdG9t
QWNjZXNzb3JHZXR0ZXI6CisgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRlcjoKKyAgICBjYXNlIEN1
c3RvbUFjY2Vzc29yU2V0dGVyOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRyYW5z
aXRpb246CisgICAgICAgIGlmIChuZXdTdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAh
PSBzdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKQorICAgICAgICAgICAgJiYgc3RydWN0
dXJlKCktPmNvdWxkSGF2ZUluZGV4aW5nSGVhZGVyKCkpIHsKKyAgICAgICAgICAgIGlmIChjZWxs
c1RvTWFyaykKKyAgICAgICAgICAgICAgICBjZWxsc1RvTWFyay0+YXBwZW5kKG5ld1N0cnVjdHVy
ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
CiBib29sIEFjY2Vzc0Nhc2U6OmNvdWxkU3RpbGxTdWNjZWVkKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9jb25kaXRpb25TZXQuc3RydWN0dXJlc0Vuc3VyZVZhbGlkaXR5QXNzdW1pbmdJbXB1cmVQ
cm9wZXJ0eVdhdGNocG9pbnQoKTsKQEAgLTEwOTMsNiArMTExNiw4IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICAgICAgfSBlbHNlIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgZGF0YUxvZygiRG9uJ3QgaGF2ZSB0eXBlLlxuIik7CiAgICAgICAgIAorICAg
ICAgICAvLyBOT1RFOiBUaGlzIGxvZ2ljIGlzIGR1cGxpY2F0ZWQgaW4gQWNjZXNzQ2FzZTo6ZG9l
c0NhbGxzKCkuIEl0J3MgaW1wb3J0YW50IHRoYXQgZG9lc0NhbGxzKCkga25vd3MKKyAgICAgICAg
Ly8gZXhhY3RseSB3aGVuIHRoaXMgd291bGQgbWFrZSBjYWxscy4KICAgICAgICAgYm9vbCBhbGxv
Y2F0aW5nID0gbmV3U3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJl
KCktPm91dE9mTGluZUNhcGFjaXR5KCk7CiAgICAgICAgIGJvb2wgcmVhbGxvY2F0aW5nID0gYWxs
b2NhdGluZyAmJiBzdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKTsKICAgICAgICAgYm9v
bCBhbGxvY2F0aW5nSW5saW5lID0gYWxsb2NhdGluZyAmJiAhc3RydWN0dXJlKCktPmNvdWxkSGF2
ZUluZGV4aW5nSGVhZGVyKCk7CkBAIC0xNjMyLDEwICsxNjU3LDExIEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBQb2x5bW9ycGhpY0FjY2VzczoKICAgICAgICAgKCIlcyIsIHRvQ1N0cmluZygiQWNj
ZXNzIHN0dWIgZm9yICIsICpjb2RlQmxvY2ssICIgIiwgc3R1YkluZm8uY29kZU9yaWdpbiwgIiB3
aXRoIHJldHVybiBwb2ludCAiLCBzdWNjZXNzTGFiZWwsICI6ICIsIGxpc3REdW1wKGNhc2VzKSku
ZGF0YSgpKSk7CiAKICAgICBib29sIGRvZXNDYWxscyA9IGZhbHNlOworICAgIFZlY3RvcjxKU0Nl
bGwqPiBjZWxsc1RvTWFyazsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogY2FzZXMpCi0gICAgICAg
IGRvZXNDYWxscyB8PSBlbnRyeS0+ZG9lc0NhbGxzKCk7CisgICAgICAgIGRvZXNDYWxscyB8PSBl
bnRyeS0+ZG9lc0NhbGxzKCZjZWxsc1RvTWFyayk7CiAgICAgCi0gICAgbV9zdHViUm91dGluZSA9
IGNyZWF0ZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtLCBjb2RlQmxvY2ssIGRvZXNDYWxscywgbnVs
bHB0ciwgY29kZUJsb2NrVGhhdE93bnNFeGNlcHRpb25IYW5kbGVycywgY2FsbFNpdGVJbmRleEZv
ckV4Y2VwdGlvbkhhbmRsaW5nKTsKKyAgICBtX3N0dWJSb3V0aW5lID0gY3JlYXRlSklUU3R1YlJv
dXRpbmUoY29kZSwgdm0sIGNvZGVCbG9jaywgZG9lc0NhbGxzLCBjZWxsc1RvTWFyaywgY29kZUJs
b2NrVGhhdE93bnNFeGNlcHRpb25IYW5kbGVycywgY2FsbFNpdGVJbmRleEZvckV4Y2VwdGlvbkhh
bmRsaW5nKTsKICAgICBtX3dhdGNocG9pbnRzID0gV1RGTW92ZShzdGF0ZS53YXRjaHBvaW50cyk7
CiAgICAgaWYgKCFzdGF0ZS53ZWFrUmVmZXJlbmNlcy5pc0VtcHR5KCkpCiAgICAgICAgIG1fd2Vh
a1JlZmVyZW5jZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxXcml0ZUJhcnJpZXI8SlNDZWxs
Pj4+KFdURk1vdmUoc3RhdGUud2Vha1JlZmVyZW5jZXMpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCShyZXZpc2lvbiAx
OTkyNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDIxICsxNTMsMTAgQEAgcHVibGljOgogICAgIH0K
IAogICAgIEpTT2JqZWN0KiBhbHRlcm5hdGVCYXNlKCkgY29uc3Q7Ci0gICAgCi0gICAgYm9vbCBk
b2VzQ2FsbHMoKSBjb25zdAotICAgIHsKLSAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICAg
ICAgY2FzZSBHZXR0ZXI6Ci0gICAgICAgIGNhc2UgU2V0dGVyOgotICAgICAgICBjYXNlIEN1c3Rv
bVZhbHVlR2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgotICAgICAg
ICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0
dGVyOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9CisKKyAgICAvLyBJZiB5b3Ugc3Vw
cGx5IHRoZSBvcHRpb25hbCB2ZWN0b3IsIHRoaXMgd2lsbCBhcHBlbmQgdGhlIHNldCBvZiBjZWxs
cyB0aGF0IHRoaXMgd2lsbCBuZWVkIHRvIGtlZXAgYWxpdmUKKyAgICAvLyBwYXN0IHRoZSBjYWxs
LgorICAgIGJvb2wgZG9lc0NhbGxzKFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmsgPSBudWxs
cHRyKSBjb25zdDsKIAogICAgIGJvb2wgaXNHZXR0ZXIoKSBjb25zdAogICAgIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5j
cHAJKHJldmlzaW9uIDE5OTI1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzksMjggKzc5LDMxIEBAIHZvaWQg
R0NBd2FyZUpJVFN0dWJSb3V0aW5lOjptYXJrUmVxdWlyZWQKIHsKIH0KIAotTWFya2luZ0dDQXdh
cmVKSVRTdHViUm91dGluZVdpdGhPbmVPYmplY3Q6Ok1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRp
bmVXaXRoT25lT2JqZWN0KAorTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZTo6TWFya2luZ0dD
QXdhcmVKSVRTdHViUm91dGluZSgKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIGNv
ZGUsIFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwKLSAgICBKU0NlbGwqIG9iamVjdCkKKyAg
ICBjb25zdCBWZWN0b3I8SlNDZWxsKj4mIGNlbGxzKQogICAgIDogR0NBd2FyZUpJVFN0dWJSb3V0
aW5lKGNvZGUsIHZtKQotICAgICwgbV9vYmplY3Qodm0sIG93bmVyLCBvYmplY3QpCisgICAgLCBt
X2NlbGxzKGNlbGxzLnNpemUoKSkKIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBjZWxscy5zaXpl
KCk7IGktLTspCisgICAgICAgIG1fY2VsbHNbaV0uc2V0KHZtLCBvd25lciwgY2VsbHNbaV0pOwog
fQogCi1NYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVjdDo6fk1hcmtpbmdH
Q0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoT25lT2JqZWN0KCkKK01hcmtpbmdHQ0F3YXJlSklUU3R1
YlJvdXRpbmU6On5NYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKCkKIHsKIH0KIAotdm9pZCBN
YXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVjdDo6bWFya1JlcXVpcmVkT2Jq
ZWN0c0ludGVybmFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBNYXJraW5nR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lOjptYXJrUmVxdWlyZWRPYmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7Ci0gICAgdmlzaXRvci5hcHBlbmQoJm1fb2JqZWN0KTsKKyAgICBmb3IgKGF1dG8m
IGVudHJ5IDogbV9jZWxscykKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJmVudHJ5KTsKIH0KIAog
CiBHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoRXhjZXB0aW9uSGFuZGxlcjo6R0NBd2FyZUpJVFN0
dWJSb3V0aW5lV2l0aEV4Y2VwdGlvbkhhbmRsZXIoCi0gICAgY29uc3QgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmJiBjb2RlLCBWTSYgdm0sIAorICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiYg
Y29kZSwgVk0mIHZtLCAgY29uc3QgSlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpTQ2VsbCo+
JiBjZWxscywKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9ja0ZvckV4Y2VwdGlvbkhhbmRsZXJzLCBD
YWxsU2l0ZUluZGV4IGV4Y2VwdGlvbkhhbmRsZXJDYWxsU2l0ZUluZGV4KQotICAgIDogR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtKQorICAgIDogTWFya2luZ0dDQXdhcmVKSVRTdHViUm91
dGluZShjb2RlLCB2bSwgb3duZXIsIGNlbGxzKQogICAgICwgbV9jb2RlQmxvY2tXaXRoRXhjZXB0
aW9uSGFuZGxlcihjb2RlQmxvY2tGb3JFeGNlcHRpb25IYW5kbGVycykKICAgICAsIG1fZXhjZXB0
aW9uSGFuZGxlckNhbGxTaXRlSW5kZXgoZXhjZXB0aW9uSGFuZGxlckNhbGxTaXRlSW5kZXgpCiB7
CkBAIC0xMzIsNyArMTM1LDcgQEAgUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4gY3JlYXRlSklU
U3R1YgogICAgIFZNJiB2bSwKICAgICBjb25zdCBKU0NlbGwqIG93bmVyLAogICAgIGJvb2wgbWFr
ZXNDYWxscywKLSAgICBKU0NlbGwqIG9iamVjdCwKKyAgICBjb25zdCBWZWN0b3I8SlNDZWxsKj4m
IGNlbGxzLAogICAgIENvZGVCbG9jayogY29kZUJsb2NrRm9yRXhjZXB0aW9uSGFuZGxlcnMsCiAg
ICAgQ2FsbFNpdGVJbmRleCBleGNlcHRpb25IYW5kbGVyQ2FsbFNpdGVJbmRleCkKIHsKQEAgLTE0
MCwxOSArMTQzLDE4IEBAIFBhc3NSZWZQdHI8SklUU3R1YlJvdXRpbmU+IGNyZWF0ZUpJVFN0dWIK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShjb2RlKSk7CiAgICAg
CiAgICAgaWYgKGNvZGVCbG9ja0ZvckV4Y2VwdGlvbkhhbmRsZXJzKSB7Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFvYmplY3QpOyAvLyBXZSdyZSBub3QgYSBtYXJraW5nIHN0dWIgcm91dGluZS4K
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9j
a0ZvckV4Y2VwdGlvbkhhbmRsZXJzLT5qaXRUeXBlKCkpKTsKICAgICAgICAgcmV0dXJuIHN0YXRp
Y19wb2ludGVyX2Nhc3Q8SklUU3R1YlJvdXRpbmU+KAotICAgICAgICAgICAgYWRvcHRSZWYobmV3
IEdDQXdhcmVKSVRTdHViUm91dGluZVdpdGhFeGNlcHRpb25IYW5kbGVyKGNvZGUsIHZtLCBjb2Rl
QmxvY2tGb3JFeGNlcHRpb25IYW5kbGVycywgZXhjZXB0aW9uSGFuZGxlckNhbGxTaXRlSW5kZXgp
KSk7CisgICAgICAgICAgICBhZG9wdFJlZihuZXcgR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4
Y2VwdGlvbkhhbmRsZXIoY29kZSwgdm0sIG93bmVyLCBjZWxscywgY29kZUJsb2NrRm9yRXhjZXB0
aW9uSGFuZGxlcnMsIGV4Y2VwdGlvbkhhbmRsZXJDYWxsU2l0ZUluZGV4KSkpOwogICAgIH0KIAot
ICAgIGlmICghb2JqZWN0KSB7CisgICAgaWYgKGNlbGxzLmlzRW1wdHkoKSkgewogICAgICAgICBy
ZXR1cm4gc3RhdGljX3BvaW50ZXJfY2FzdDxKSVRTdHViUm91dGluZT4oCiAgICAgICAgICAgICBh
ZG9wdFJlZihuZXcgR0NBd2FyZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtKSkpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gc3RhdGljX3BvaW50ZXJfY2FzdDxKSVRTdHViUm91dGluZT4oCi0gICAg
ICAgIGFkb3B0UmVmKG5ldyBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVj
dChjb2RlLCB2bSwgb3duZXIsIG9iamVjdCkpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IE1hcmtp
bmdHQ0F3YXJlSklUU3R1YlJvdXRpbmUoY29kZSwgdm0sIG93bmVyLCBjZWxscykpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdh
cmVKSVRTdHViUm91dGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgJKHJldmlzaW9uIDE5OTI1MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTc2LDI4ICs3NiwyOCBAQCBwcml2YXRlOgogCiAvLyBVc2UgdGhpcyBpZiB5
b3Ugd2FudCB0byBtYXJrIG9uZSBhZGRpdGlvbmFsIG9iamVjdCBkdXJpbmcgR0MgaWYgeW91ciBz
dHViCiAvLyByb3V0aW5lIGlzIGtub3duIHRvIGJlIGV4ZWN1dGluZy4KLWNsYXNzIE1hcmtpbmdH
Q0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoT25lT2JqZWN0IDogcHVibGljIEdDQXdhcmVKSVRTdHVi
Um91dGluZSB7CitjbGFzcyBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lIDogcHVibGljIEdD
QXdhcmVKSVRTdHViUm91dGluZSB7CiBwdWJsaWM6Ci0gICAgTWFya2luZ0dDQXdhcmVKSVRTdHVi
Um91dGluZVdpdGhPbmVPYmplY3QoCi0gICAgICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiYsIFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNDZWxsKik7Ci0gICAgdmlydHVhbCB+TWFy
a2luZ0dDQXdhcmVKSVRTdHViUm91dGluZVdpdGhPbmVPYmplY3QoKTsKKyAgICBNYXJraW5nR0NB
d2FyZUpJVFN0dWJSb3V0aW5lKAorICAgICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYm
LCBWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIGNvbnN0IFZlY3RvcjxKU0NlbGwqPiYpOworICAg
IHZpcnR1YWwgfk1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmUoKTsKICAgICAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIG1hcmtSZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fb2JqZWN0Owor
ICAgIFZlY3RvcjxXcml0ZUJhcnJpZXI8SlNDZWxsPj4gbV9jZWxsczsKIH07CiAKIAogLy8gVGhl
IHN0dWIgaGFzIGV4Y2VwdGlvbiBoYW5kbGVycyBpbiBpdC4gU28gaXQgY2xlYXJzIGl0c2VsZiBm
cm9tIGV4Y2VwdGlvbgogLy8gaGFuZGxpbmcgdGFibGUgd2hlbiBpdCBkaWVzLiBJdCBhbHNvIGZy
ZWVzIHNwYWNlIGluIENvZGVPcmlnaW4gdGFibGUKIC8vIGZvciBuZXcgZXhjZXB0aW9uIGhhbmRs
ZXJzIHRvIHVzZSB0aGUgc2FtZSBDYWxsU2l0ZUluZGV4LgotY2xhc3MgR0NBd2FyZUpJVFN0dWJS
b3V0aW5lV2l0aEV4Y2VwdGlvbkhhbmRsZXIgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5l
IHsKK2NsYXNzIEdDQXdhcmVKSVRTdHViUm91dGluZVdpdGhFeGNlcHRpb25IYW5kbGVyIDogcHVi
bGljIE1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmUgewogcHVibGljOgogICAgIHR5cGVkZWYg
R0NBd2FyZUpJVFN0dWJSb3V0aW5lIEJhc2U7CiAKLSAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmVX
aXRoRXhjZXB0aW9uSGFuZGxlcihjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYmLCBWTSYsIENv
ZGVCbG9jayosIENhbGxTaXRlSW5kZXgpOworICAgIEdDQXdhcmVKSVRTdHViUm91dGluZVdpdGhF
eGNlcHRpb25IYW5kbGVyKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiYsIFZNJiwgY29uc3Qg
SlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpTQ2VsbCo+JiwgQ29kZUJsb2NrKiwgQ2FsbFNp
dGVJbmRleCk7CiAKICAgICB2b2lkIGFib3V0VG9EaWUoKSBvdmVycmlkZTsKICAgICB2b2lkIG9i
c2VydmVaZXJvUmVmQ291bnQoKSBvdmVycmlkZTsKQEAgLTEyOCwxNCArMTI4LDkgQEAgcHJpdmF0
ZToKIAogUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4gY3JlYXRlSklUU3R1YlJvdXRpbmUoCiAg
ICAgY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmJiwgVk0mLCBjb25zdCBKU0NlbGwqIG93bmVy
LCBib29sIG1ha2VzQ2FsbHMsCi0gICAgSlNDZWxsKiA9IG51bGxwdHIsIAorICAgIGNvbnN0IFZl
Y3RvcjxKU0NlbGwqPiYgPSB7IH0sIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrRm9yRXhjZXB0
aW9uSGFuZGxlcnMgPSBudWxscHRyLCBDYWxsU2l0ZUluZGV4IGV4Y2VwdGlvbkhhbmRsaW5nQ2Fs
bFNpdGVJbmRleCA9IENhbGxTaXRlSW5kZXgoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpKSk7CiAKLS8vIEhlbHBlciBmb3IgdGhlIGNyZWF0aW9uIG9mIHNpbXBsZSBzdHViIHJv
dXRpbmVzIHRoYXQgbmVlZCBubyBoZWxwIGZyb20gdGhlIEdDLiBOb3RlCi0vLyB0aGF0IGNvZGVC
bG9jayBnZXRzICJleGVjdXRlZCIgbW9yZSB0aGFuIG9uY2UuCi0jZGVmaW5lIEZJTkFMSVpFX0NP
REVfRk9SX0dDX0FXQVJFX1NUVUIoY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwgbWFrZXNDYWxscywg
Y2VsbCwgZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoY3JlYXRlSklUU3R1YlJvdXRpbmUoRklO
QUxJWkVfQ09ERV9GT1IoKGNvZGVCbG9jayksIChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1l
bnRzKSwgKihjb2RlQmxvY2spLT52bSgpLCAoY29kZUJsb2NrKSwgKG1ha2VzQ2FsbHMpLCAoY2Vs
bCkpKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCg==
</data>
<flag name="review"
          id="300395"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>