<?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>196884</bug_id>
          
          <creation_ts>2019-04-12 16:10:17 -0700</creation_ts>
          <short_desc>r244079 logically broke shouldSpeculateInt52</short_desc>
          <delta_ts>2019-04-15 11:15:08 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196918</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1526933</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-12 16:10:17 -0700</bug_when>
    <thetext>We have code which is like:
if (shouldSpeculateInt32()) ... int32 stuff
else if (shouldSpeculateInt52()) ... int52 stuff

However, we always test for shouldSpeculateInt32 prior to shouldSpeculateInt52. But shouldSpeculateInt52 should allow int32 to flow into it. Think about a program like this:

function foo(b, y) {
    let x;
    if (b)
        x = 0; // int32
    else
        x = 0xffffffffff; // int52
    return y + x;
}

We should totally pick int52 for x, even though we weren&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526957</commentid>
    <comment_count>1</comment_count>
      <attachid>367362</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-12 17:45:31 -0700</bug_when>
    <thetext>Created attachment 367362
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526960</commentid>
    <comment_count>2</comment_count>
      <attachid>367362</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-12 17:53:59 -0700</bug_when>
    <thetext>Comment on attachment 367362
patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:738
&gt; +            if (type == SpecAnyIntAsDouble &amp;&amp; enableInt52() &amp;&amp; int52AwareSpeculationFromValue(m_currentNode-&gt;asJSValue()) == SpecNonInt32AsInt52)
&gt; +                type = SpecNonInt32AsInt52;

Why don&apos;t we say SpecInt32AsInt52 here for Int32 values in double?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526964</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-12 18:06:42 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 367362 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=367362&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:738
&gt; &gt; +            if (type == SpecAnyIntAsDouble &amp;&amp; enableInt52() &amp;&amp; int52AwareSpeculationFromValue(m_currentNode-&gt;asJSValue()) == SpecNonInt32AsInt52)
&gt; &gt; +                type = SpecNonInt32AsInt52;
&gt; 
&gt; Why don&apos;t we say SpecInt32AsInt52 here for Int32 values in double?

I spoke with Yusuke on IRC. We&apos;re going to pick what type int52AwareSpeculationFromValue gives us</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526965</commentid>
    <comment_count>4</comment_count>
      <attachid>367364</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-12 18:07:12 -0700</bug_when>
    <thetext>Created attachment 367364
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526996</commentid>
    <comment_count>5</comment_count>
      <attachid>367364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-12 20:04:24 -0700</bug_when>
    <thetext>Comment on attachment 367364
patch for landing

Clearing flags on attachment: 367364

Committed r244238: &lt;https://trac.webkit.org/changeset/244238&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526997</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-12 20:04:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526998</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-12 20:05:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/49871877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527176</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-04-15 08:36:00 -0700</bug_when>
    <thetext>This change caused ~20 tests to fail an assertion the JSC Debug bot:

https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20JSC%20(Tests)/builds/2587/steps/jscore-test/logs/stdio

stress/arith-abs-with-bitwise-or-zero.js.no-ftl: ASSERTION FAILED: isAnyInt52Speculation(m_type)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: ./dfg/DFGAbstractValue.cpp(443) : void JSC::DFG::AbstractValue::checkConsistency() const
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 1   0x1092f8019 WTFCrash
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 2   0x1092faffb WTFCrashWithInfo(int, char const*, char const*, int)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 3   0x109e57ee9 JSC::DFG::AbstractValue::checkConsistency() const
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 4   0x109e591d0 JSC::DFG::AbstractValue::mergeOSREntryValue(JSC::DFG::Graph&amp;, JSC::JSValue)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 5   0x109efa5fe JSC::DFG::CFAPhase::injectOSR(JSC::DFG::BasicBlock*)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 6   0x109efa7b2 JSC::DFG::CFAPhase::performBlockCFA(JSC::DFG::BasicBlock*)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 7   0x109efa3c7 JSC::DFG::CFAPhase::performForwardCFA()
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 8   0x109efa0b7 JSC::DFG::CFAPhase::run()
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 9   0x109ef9cb1 bool JSC::DFG::runAndLog&lt;JSC::DFG::CFAPhase&gt;(JSC::DFG::CFAPhase&amp;)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 10  0x109ecc7ae bool JSC::DFG::runPhase&lt;JSC::DFG::CFAPhase&gt;(JSC::DFG::Graph&amp;)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 11  0x109ecc775 JSC::DFG::performCFA(JSC::DFG::Graph&amp;)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 12  0x10a1b05a0 JSC::DFG::Plan::compileInThreadImpl()
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 13  0x10a1aeb2f JSC::DFG::Plan::compileInThread(JSC::DFG::ThreadData*)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 14  0x10a256e96 JSC::DFG::Worklist::ThreadBody::work()
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 15  0x10930ef6f WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()() const
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 16  0x10930eb59 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0&gt;::call()
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 17  0x10932249d WTF::Function&lt;void ()&gt;::operator()() const
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 18  0x1093b90f3 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 19  0x1093c17f5 WTF::wtfThreadEntryPoint(void*)
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 20  0x7fff58297661 _pthread_body
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 21  0x7fff5829750d _pthread_body
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 22  0x7fff58296bf9 thread_start
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: test_script_1749: line 2: 50271 Segmentation fault: 11  ( &quot;$@&quot; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --useFunctionDotArguments\=true --validateExceptionChecks\=true --useDollarVM\=true --maxPerThreadStackUsage\=1572864 arith-abs-with-bitwise-or-zero.js )
stress/arith-abs-with-bitwise-or-zero.js.no-ftl: ERROR: Unexpected exit code: 139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527178</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-15 08:58:49 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #8)
&gt; This change caused ~20 tests to fail an assertion the JSC Debug bot:
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20High%20Sierra%20Debug%20JSC%20(Tests)/builds/2587/steps/jscore-test/
&gt; logs/stdio
&gt; 
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: ASSERTION FAILED:
&gt; isAnyInt52Speculation(m_type)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl:
&gt; ./dfg/DFGAbstractValue.cpp(443) : void
&gt; JSC::DFG::AbstractValue::checkConsistency() const
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 1   0x1092f8019 WTFCrash
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 2   0x1092faffb
&gt; WTFCrashWithInfo(int, char const*, char const*, int)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 3   0x109e57ee9
&gt; JSC::DFG::AbstractValue::checkConsistency() const
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 4   0x109e591d0
&gt; JSC::DFG::AbstractValue::mergeOSREntryValue(JSC::DFG::Graph&amp;, JSC::JSValue)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 5   0x109efa5fe
&gt; JSC::DFG::CFAPhase::injectOSR(JSC::DFG::BasicBlock*)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 6   0x109efa7b2
&gt; JSC::DFG::CFAPhase::performBlockCFA(JSC::DFG::BasicBlock*)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 7   0x109efa3c7
&gt; JSC::DFG::CFAPhase::performForwardCFA()
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 8   0x109efa0b7
&gt; JSC::DFG::CFAPhase::run()
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 9   0x109ef9cb1 bool
&gt; JSC::DFG::runAndLog&lt;JSC::DFG::CFAPhase&gt;(JSC::DFG::CFAPhase&amp;)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 10  0x109ecc7ae bool
&gt; JSC::DFG::runPhase&lt;JSC::DFG::CFAPhase&gt;(JSC::DFG::Graph&amp;)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 11  0x109ecc775
&gt; JSC::DFG::performCFA(JSC::DFG::Graph&amp;)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 12  0x10a1b05a0
&gt; JSC::DFG::Plan::compileInThreadImpl()
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 13  0x10a1aeb2f
&gt; JSC::DFG::Plan::compileInThread(JSC::DFG::ThreadData*)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 14  0x10a256e96
&gt; JSC::DFG::Worklist::ThreadBody::work()
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 15  0x10930ef6f
&gt; WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()()
&gt; const
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 16  0x10930eb59
&gt; WTF::Function&lt;void
&gt; ()&gt;::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker
&gt; const&amp;)::$_0&gt;::call()
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 17  0x10932249d
&gt; WTF::Function&lt;void ()&gt;::operator()() const
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 18  0x1093b90f3
&gt; WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 19  0x1093c17f5
&gt; WTF::wtfThreadEntryPoint(void*)
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 20  0x7fff58297661
&gt; _pthread_body
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 21  0x7fff5829750d
&gt; _pthread_body
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: 22  0x7fff58296bf9
&gt; thread_start
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: test_script_1749: line 2:
&gt; 50271 Segmentation fault: 11  ( &quot;$@&quot;
&gt; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false
&gt; --useFunctionDotArguments\=true --validateExceptionChecks\=true
&gt; --useDollarVM\=true --maxPerThreadStackUsage\=1572864
&gt; arith-abs-with-bitwise-or-zero.js )
&gt; stress/arith-abs-with-bitwise-or-zero.js.no-ftl: ERROR: Unexpected exit
&gt; code: 139

Will look once I’m at a computer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527266</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-15 11:15:05 -0700</bug_when>
    <thetext>Fixin in:
https://bugs.webkit.org/show_bug.cgi?id=196918</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367362</attachid>
            <date>2019-04-12 17:45:31 -0700</date>
            <delta_ts>2019-04-12 18:07:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>9263</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQyMzcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA0LTEyICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIHIyNDQwNzkgbG9naWNhbGx5IGJyb2tlIHNob3VsZFNwZWN1bGF0ZUlu
dDUyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY4
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9pbnQ1Mi1yYW5kLWZ1bmN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKE1h
dGgucmFuZG9tKToKKwogMjAxOS0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIG9wX2hhc19pbmRleGVkX3Byb3BlcnR5IHNob3VsZCBub3Qg
YXNzdW1lIHN1YnNjcmlwdCBwYXJ0IGlzIFVpbnQzMgpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvaW50NTItcmFuZC1mdW5jdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9pbnQ1Mi1yYW5kLWZ1bmN0aW9uLmpzCShub25leGlzdGVudCkKKysrIEpTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL2ludDUyLXJhbmQtZnVuY3Rpb24uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyMCBAQAorbGV0IHNlZWQgPSA0OTczNDMyMTsKKworTWF0aC5yYW5kb20gPSAo
ZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBSb2JlcnQg
SmVua2lucycgMzIgYml0IGludGVnZXIgaGFzaCBmdW5jdGlvbi4KKyAgICAgICAgc2VlZCA9ICgo
c2VlZCArIDB4N2VkNTVkMTYpICsgKHNlZWQgPDwgMTIpKSAgJiAweGZmZmZmZmZmOworICAgICAg
ICBzZWVkID0gKChzZWVkIF4gMHhjNzYxYzIzYykgXiAoc2VlZCA+Pj4gMTkpKSAmIDB4ZmZmZmZm
ZmY7CisgICAgICAgIHNlZWQgPSAoKHNlZWQgKyAweDE2NTY2N2IxKSArIChzZWVkIDw8IDUpKSAg
ICYgMHhmZmZmZmZmZjsKKyAgICAgICAgc2VlZCA9ICgoc2VlZCArIDB4ZDNhMjY0NmMpIF4gKHNl
ZWQgPDwgOSkpICAgJiAweGZmZmZmZmZmOworICAgICAgICBzZWVkID0gKChzZWVkICsgMHhmZDcw
NDZjNSkgKyAoc2VlZCA8PCAzKSkgICAmIDB4ZmZmZmZmZmY7CisgICAgICAgIHNlZWQgPSAoKHNl
ZWQgXiAweGI1NWE0ZjA5KSBeIChzZWVkID4+PiAxNikpICYgMHhmZmZmZmZmZjsKKyAgICAgICAg
cmV0dXJuIChzZWVkICYgMHhmZmZmZmZmKSAvIDB4MTAwMDAwMDA7CisgICAgfTsKK30pKCk7CisK
K25vSW5saW5lKE1hdGgucmFuZG9tKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwMDsg
KytpKSB7CisgICAgTWF0aC5yYW5kb20oKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjQ0MDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTEyICBTYWFtIGJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIHIyNDQwNzkgbG9naWNhbGx5IGJyb2tlIHNo
b3VsZFNwZWN1bGF0ZUludDUyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTY4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbiByMjQ0MDc5LCBJIGNoYW5nZWQgc2hvdWxkU3BlY3VsYXRlSW50NTIgdG8g
b25seSByZXR1cm4gdHJ1ZQorICAgICAgICB3aGVuIHRoZSBwcmVkaWN0aW9uIGlzIGlzQW55SW50
NTJTcGVjdWxhdGlvbigpLiBIb3dldmVyLCBpdCB3YXMKKyAgICAgICAgd3JvbmcgdG8gbm90IHRv
IGluY2x1ZGUgU3BlY0ludDMyIGluIHRoaXMgZm9yIHR3byByZWFzb25zOgorCisgICAgICAgIDEu
IFdlIGRpbGlnZW50bHkgd3JpdGUgY29kZSB0aGF0IGZpcnN0IGNoZWNrcyBpZiB3ZSBzaG91bGQg
c3BlY3VsYXRlIEludDMyLgorICAgICAgICBGb3IgZXhhbXBsZToKKyAgICAgICAgaWYgKHNob3Vs
ZFNwZWN1bGF0ZUludDMyKCkpIC4uLiAKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkU3BlY3VsYXRl
SW50NTIoKSkgLi4uCisKKyAgICAgICAgSXQgd291bGQgYmUgd3Jvbmcgbm90IHRvIGZhbGwgYmFj
ayB0byBJbnQ1MiBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHVuaW9uIG9mCisgICAgICAgIElu
dDMyIGFuZCBJbnQ1Mi4KKworICAgICAgICBJdCB3b3VsZCBiZSBhIHBlcmZvcm1hbmNlIG1pc3Rh
a2UgdG8gbm90IGluY2x1ZGUgSW50MzIgaGVyZSBiZWNhdXNlCisgICAgICAgIGRhdGEgZmxvdyBj
YW4gZWFzaWx5IHRlbGwgdXMgdGhhdCB3ZSBoYXZlIHZhcmlhYmxlcyB0aGF0IGFyZSB0aGUgdW5p
b24KKyAgICAgICAgb2YgSW50MzIgYW5kIEludDUyIHZhbHVlcy4gSXQncyBiZXR0ZXIgdG8gc3Bl
Y3VsYXRlIEludDUyIHRoYW4gRG91YmxlCisgICAgICAgIGluIHRoYXQgc2l0dWF0aW9uLgorCisg
ICAgICAgIDIuIFdlIGFsc28gd3JpdGUgY29kZSB3aGVyZSB3ZSBhc2sgaWYgdGhlIGlucHV0cyBj
YW4gYmUgSW50NTIsIGUuZywgaWYKKyAgICAgICAgd2Uga25vdyB2aWEgcHJvZmlsaW5nIHRoYXQg
YW4gQWRkIG92ZXJmbG93cywgd2UgbWF5IG5vdCBlbWl0IGFuIEludDMyIGFkZC4KKyAgICAgICAg
SG93ZXZlciwgd2Ugb25seSBlbWl0IHN1Y2ggYW4gYWRkIGlmIGJvdGggaW5wdXRzIGNhbiBiZSBJ
bnQ1MiwgYW5kIEludDMyCisgICAgICAgIGNhbiB0cml2aWFsbHkgYmVjb21lIEludDUyLgorCisg
ICAgICAgVGhpcyBwYXRjaCByZWNvdmVycyB0aGUgMC41LTElIHJlZ3Jlc3Npb24gcjI0NDA3OSBj
YXVzZWQgb24gSmV0U3RyZWFtIDIuCisKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oOgorICAgICAgICAoSlNDOjppc0ludDMyU3BlY3VsYXRpb25Gb3JBcml0aG1ldGljKToKKyAg
ICAgICAgKEpTQzo6aXNJbnQzMk9yQm9vbGVhblNwZWN1bGF0aW9uRm9yQXJpdGhtZXRpYyk6Cisg
ICAgICAgIChKU0M6OmlzSW50MzJPckludDUyU3BlY3VsYXRpb24pOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpvYnNlcnZl
VXNlS2luZE9uTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVJbnQ1Mik6CisgICAgICAgICogZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVBY2Nl
c3NEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vzc0RhdGE6OmNvdWxk
UmVwcmVzZW50SW50NTJJbXBsKToKKwogMjAxOS0wNC0wOSAgU2FhbSBiYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBJbnQ1MiBjb2RlIGFuZCBzb21lIGJ1Z3Mg
aW4gaXQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5oCShyZXZpc2lvbiAyNDQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDEyICszNDIsMTIg
QEAgaW5saW5lIGJvb2wgaXNJbnQzMk9yQm9vbGVhblNwZWN1bGF0aW9uKAogCiBpbmxpbmUgYm9v
bCBpc0ludDMyU3BlY3VsYXRpb25Gb3JBcml0aG1ldGljKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQog
ewotICAgIHJldHVybiAhKHZhbHVlICYgKFNwZWNGdWxsRG91YmxlIHwgU3BlY0ludDUyQW55KSk7
CisgICAgcmV0dXJuICEodmFsdWUgJiAoU3BlY0Z1bGxEb3VibGUgfCBTcGVjTm9uSW50MzJBc0lu
dDUyKSk7CiB9CiAKIGlubGluZSBib29sIGlzSW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbkZvckFy
aXRobWV0aWMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuICEodmFsdWUgJiAo
U3BlY0Z1bGxEb3VibGUgfCBTcGVjSW50NTJBbnkpKTsKKyAgICByZXR1cm4gISh2YWx1ZSAmIChT
cGVjRnVsbERvdWJsZSB8IFNwZWNOb25JbnQzMkFzSW50NTIpKTsKIH0KIAogaW5saW5lIGJvb2wg
aXNJbnQzMk9yQm9vbGVhblNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSkKQEAgLTM2MCw2ICszNjAsMTEgQEAgaW5saW5lIGJvb2wgaXNBbnlJbnQ1MlNwZWN1
bGF0aW9uKFNwZWN1bAogICAgIHJldHVybiAhIXZhbHVlICYmICh2YWx1ZSAmIFNwZWNJbnQ1MkFu
eSkgPT0gdmFsdWU7CiB9CiAKK2lubGluZSBib29sIGlzSW50MzJPckludDUyU3BlY3VsYXRpb24o
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhdmFsdWUgJiYgKHZhbHVlICYg
KFNwZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJBbnkpKSA9PSB2YWx1ZTsKK30KKwogaW5saW5lIGJv
b2wgaXNJbnRBbnlGb3JtYXQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiB7CiAgICAgcmV0dXJuICEh
dmFsdWUgJiYgKHZhbHVlICYgU3BlY0ludEFueUZvcm1hdCkgPT0gdmFsdWU7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDI0NDA3
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyMjQsNyArMzIyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
bV9wcm9maXRhYmlsaXR5Q2hhbmdlZCB8PSB2YXJpYWJsZS0+bWVyZ2VJc1Byb2ZpdGFibGVUb1Vu
Ym94KHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW50NTJSZXBVc2U6
Ci0gICAgICAgICAgICBpZiAoaXNBbnlJbnQ1MlNwZWN1bGF0aW9uKHZhcmlhYmxlLT5wcmVkaWN0
aW9uKCkpKQorICAgICAgICAgICAgaWYgKCFpc0ludDMyU3BlY3VsYXRpb24odmFyaWFibGUtPnBy
ZWRpY3Rpb24oKSkgJiYgaXNJbnQzMk9ySW50NTJTcGVjdWxhdGlvbih2YXJpYWJsZS0+cHJlZGlj
dGlvbigpKSkKICAgICAgICAgICAgICAgICBtX3Byb2ZpdGFiaWxpdHlDaGFuZ2VkIHw9IHZhcmlh
YmxlLT5tZXJnZUlzUHJvZml0YWJsZVRvVW5ib3godHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDZWxsVXNlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgJKHJldmlzaW9uIDI0NDA3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQ4LDcgKzIzNDgsMjQgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlSW50NTIoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGVu
YWJsZUludDUyKCkgJiYgaXNBbnlJbnQ1MlNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CisgICAg
ICAgIC8vIFdlIGhhdmUgdG8gaW5jbHVkZSBTcGVjSW50MzJPbmx5IGhlcmUgZm9yIHR3byByZWFz
b25zOgorICAgICAgICAvLyAxLiBXZSBkaWxpZ2VudGx5IHdyaXRlIGNvZGUgdGhhdCBmaXJzdCBj
aGVja3MgaWYgd2Ugc2hvdWxkIHNwZWN1bGF0ZSBJbnQzMi4KKyAgICAgICAgLy8gRm9yIGV4YW1w
bGU6CisgICAgICAgIC8vIGlmIChzaG91bGRTcGVjdWxhdGVJbnQzMigpKSAuLi4gCisgICAgICAg
IC8vIGVsc2UgaWYgKHNob3VsZFNwZWN1bGF0ZUludDUyKCkpIC4uLgorICAgICAgICAvLyBUaGlz
IG1lYW5zIHdlIGl0J3MgdG90YWxseSB2YWxpZCB0byBzcGVjdWxhdGUgSW50NTIgd2hlbiB3ZSdy
ZSBkZWFsaW5nCisgICAgICAgIC8vIHdpdGggYSB0eXBlIHRoYXQncyB0aGUgdW5pb24gb2YgSW50
MzIgYW5kIEludDUyLgorICAgICAgICAvLworICAgICAgICAvLyBJdCB3b3VsZCBiZSBhIHBlcmZv
cm1hbmNlIG1pc3Rha2UgdG8gbm90IGluY2x1ZGUgSW50MzIgaGVyZSBiZWNhdXNlIHdlIG9idmlv
dXNseQorICAgICAgICAvLyBoYXZlIHZhcmlhYmxlcyB0aGF0IGFyZSB0aGUgdW5pb24gb2YgSW50
MzIgYW5kIEludDUyIHZhbHVlcywgYW5kIGl0J3MgYmV0dGVyCisgICAgICAgIC8vIHRvIHNwZWN1
bGF0ZSBJbnQ1MiB0aGFuIGRvdWJsZSBpbiB0aGF0IHNpdHVhdGlvbi4KKyAgICAgICAgLy8KKyAg
ICAgICAgLy8gMi4gV2UgYWxzbyB3cml0ZSBjb2RlIHdoZXJlIHdlIGFzayBpZiB0aGUgaW5wdXRz
IGNhbiBiZSBJbnQ1MiwgbGlrZSBpZgorICAgICAgICAvLyB3ZSBrbm93IHZpYSBwcm9maWxpbmcg
dGhhdCBhbiBBZGQgb3ZlcmZsb3dzLCB3ZSBtYXkgbm90IGVtaXQgYW4gSW50MzIgYWRkLgorICAg
ICAgICAvLyBIb3dldmVyLCB3ZSBvbmx5IGVtaXQgc3VjaCBhbiBhZGQgaWYgYm90aCBpbnB1dHMg
Y2FuIGJlIEludDUyLCBhbmQgSW50MzIKKyAgICAgICAgLy8gY2FuIHRyaXZpYWxseSBiZWNvbWUg
SW50NTIuCisgICAgICAgIC8vCisgICAgICAgIHJldHVybiBlbmFibGVJbnQ1MigpICYmIGlzSW50
MzJPckludDUyU3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKICAgICB9CiAgICAgCiAgICAgYm9v
bCBzaG91bGRTcGVjdWxhdGVEb3VibGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJl
dmlzaW9uIDI0NDA3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsOCArNjQyLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBub2RlLT5j
aGlsZDEoKS0+cHJlZGljdGlvbigpOwogICAgICAgICAgICAgaWYgKGlzRG91YmxlU3BlY3VsYXRp
b24ocHJlZGljdGlvbikpCiAgICAgICAgICAgICAgICAgbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRh
KCktPnZvdGUoVm90ZURvdWJsZSwgd2VpZ2h0KTsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFpc0Z1
bGxOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKQotICAgICAgICAgICAgICAgIHx8IGlzSW50
MzJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSB8fCBpc0FueUludDUyU3BlY3VsYXRpb24ocHJlZGlj
dGlvbikpCisgICAgICAgICAgICBlbHNlIGlmICghaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24ocHJl
ZGljdGlvbikgfHwgaXNJbnQzMk9ySW50NTJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKICAgICAg
ICAgICAgICAgICBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+dm90ZShWb3RlVmFsdWUsIHdl
aWdodCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzM0LDcgKzczMywxMCBA
QCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc3dpdGNoIChtX2N1cnJlbnROb2RlLT5vcCgpKSB7
CiAgICAgICAgIGNhc2UgSlNDb25zdGFudDogewotICAgICAgICAgICAgc2V0UHJlZGljdGlvbihz
cGVjdWxhdGlvbkZyb21WYWx1ZShtX2N1cnJlbnROb2RlLT5hc0pTVmFsdWUoKSkpOworICAgICAg
ICAgICAgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IHNwZWN1bGF0aW9uRnJvbVZhbHVlKG1fY3VycmVu
dE5vZGUtPmFzSlNWYWx1ZSgpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IFNwZWNBbnlJbnRB
c0RvdWJsZSAmJiBlbmFibGVJbnQ1MigpICYmIGludDUyQXdhcmVTcGVjdWxhdGlvbkZyb21WYWx1
ZShtX2N1cnJlbnROb2RlLT5hc0pTVmFsdWUoKSkgPT0gU3BlY05vbkludDMyQXNJbnQ1MikKKyAg
ICAgICAgICAgICAgICB0eXBlID0gU3BlY05vbkludDMyQXNJbnQ1MjsKKyAgICAgICAgICAgIHNl
dFByZWRpY3Rpb24odHlwZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIERvdWJsZUNvbnN0YW50OiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuY3BwCShyZXZpc2lvbiAyNDQwNzkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsNyBAQCBib29sIFZhcmlhYmxlQWNjZXNzRGF0YTo6
Y291bGRSZXByZXNlbnRJCiAgICAgCiAgICAgLy8gVGhlIGFyZ3VtZW50LWF3YXJlIHByZWRpY3Rp
b24gLS0gd2hpY2ggbWVyZ2VzIGFsbCBvZiBhbiAoaW5saW5lZCBvciBtYWNoaW5lKQogICAgIC8v
IGFyZ3VtZW50J3MgdmFyaWFibGUgYWNjZXNzIGRhdGFzJyBwcmVkaWN0aW9ucyAtLSBtdXN0IHBv
c3NpYmx5IGJlIEludDUyQW55LgotICAgIHJldHVybiBpc0FueUludDUyU3BlY3VsYXRpb24oYXJn
dW1lbnRBd2FyZVByZWRpY3Rpb24oKSk7CisgICAgcmV0dXJuIGlzSW50MzJPckludDUyU3BlY3Vs
YXRpb24oYXJndW1lbnRBd2FyZVByZWRpY3Rpb24oKSk7CiB9CiAKIEZsdXNoRm9ybWF0IFZhcmlh
YmxlQWNjZXNzRGF0YTo6Zmx1c2hGb3JtYXQoKQo=
</data>
<flag name="review"
          id="383714"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367364</attachid>
            <date>2019-04-12 18:07:12 -0700</date>
            <delta_ts>2019-04-12 20:04:24 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>9216</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQyMzcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA0LTEyICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIHIyNDQwNzkgbG9naWNhbGx5IGJyb2tlIHNob3VsZFNwZWN1bGF0ZUlu
dDUyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY4
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogbWlj
cm9iZW5jaG1hcmtzL2ludDUyLXJhbmQtZnVuY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAoTWF0
aC5yYW5kb20pOgorCiAyMDE5LTA0LTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkgc2hvdWxkIG5vdCBh
c3N1bWUgc3Vic2NyaXB0IHBhcnQgaXMgVWludDMyCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9pbnQ1Mi1yYW5kLWZ1bmN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL2ludDUyLXJhbmQtZnVuY3Rpb24uanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvaW50NTItcmFuZC1mdW5jdGlvbi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIwIEBACitsZXQgc2VlZCA9IDQ5NzM0MzIxOworCitNYXRoLnJhbmRvbSA9IChm
dW5jdGlvbigpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFJvYmVydCBK
ZW5raW5zJyAzMiBiaXQgaW50ZWdlciBoYXNoIGZ1bmN0aW9uLgorICAgICAgICBzZWVkID0gKChz
ZWVkICsgMHg3ZWQ1NWQxNikgKyAoc2VlZCA8PCAxMikpICAmIDB4ZmZmZmZmZmY7CisgICAgICAg
IHNlZWQgPSAoKHNlZWQgXiAweGM3NjFjMjNjKSBeIChzZWVkID4+PiAxOSkpICYgMHhmZmZmZmZm
ZjsKKyAgICAgICAgc2VlZCA9ICgoc2VlZCArIDB4MTY1NjY3YjEpICsgKHNlZWQgPDwgNSkpICAg
JiAweGZmZmZmZmZmOworICAgICAgICBzZWVkID0gKChzZWVkICsgMHhkM2EyNjQ2YykgXiAoc2Vl
ZCA8PCA5KSkgICAmIDB4ZmZmZmZmZmY7CisgICAgICAgIHNlZWQgPSAoKHNlZWQgKyAweGZkNzA0
NmM1KSArIChzZWVkIDw8IDMpKSAgICYgMHhmZmZmZmZmZjsKKyAgICAgICAgc2VlZCA9ICgoc2Vl
ZCBeIDB4YjU1YTRmMDkpIF4gKHNlZWQgPj4+IDE2KSkgJiAweGZmZmZmZmZmOworICAgICAgICBy
ZXR1cm4gKHNlZWQgJiAweGZmZmZmZmYpIC8gMHgxMDAwMDAwMDsKKyAgICB9OworfSkoKTsKKwor
bm9JbmxpbmUoTWF0aC5yYW5kb20pOworCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwMDAwOyAr
K2kpIHsKKyAgICBNYXRoLnJhbmRvbSgpOworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMDQtMTIgIFNhYW0gYmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgcjI0NDA3OSBsb2dpY2FsbHkgYnJva2Ugc2hv
dWxkU3BlY3VsYXRlSW50NTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisK
KyAgICAgICAgSW4gcjI0NDA3OSwgSSBjaGFuZ2VkIHNob3VsZFNwZWN1bGF0ZUludDUyIHRvIG9u
bHkgcmV0dXJuIHRydWUKKyAgICAgICAgd2hlbiB0aGUgcHJlZGljdGlvbiBpcyBpc0FueUludDUy
U3BlY3VsYXRpb24oKS4gSG93ZXZlciwgaXQgd2FzCisgICAgICAgIHdyb25nIHRvIG5vdCB0byBp
bmNsdWRlIFNwZWNJbnQzMiBpbiB0aGlzIGZvciB0d28gcmVhc29uczoKKworICAgICAgICAxLiBX
ZSBkaWxpZ2VudGx5IHdyaXRlIGNvZGUgdGhhdCBmaXJzdCBjaGVja3MgaWYgd2Ugc2hvdWxkIHNw
ZWN1bGF0ZSBJbnQzMi4KKyAgICAgICAgRm9yIGV4YW1wbGU6CisgICAgICAgIGlmIChzaG91bGRT
cGVjdWxhdGVJbnQzMigpKSAuLi4gCisgICAgICAgIGVsc2UgaWYgKHNob3VsZFNwZWN1bGF0ZUlu
dDUyKCkpIC4uLgorCisgICAgICAgIEl0IHdvdWxkIGJlIHdyb25nIG5vdCB0byBmYWxsIGJhY2sg
dG8gSW50NTIgaWYgd2UncmUgZGVhbGluZyB3aXRoIHRoZSB1bmlvbiBvZgorICAgICAgICBJbnQz
MiBhbmQgSW50NTIuCisKKyAgICAgICAgSXQgd291bGQgYmUgYSBwZXJmb3JtYW5jZSBtaXN0YWtl
IHRvIG5vdCBpbmNsdWRlIEludDMyIGhlcmUgYmVjYXVzZQorICAgICAgICBkYXRhIGZsb3cgY2Fu
IGVhc2lseSB0ZWxsIHVzIHRoYXQgd2UgaGF2ZSB2YXJpYWJsZXMgdGhhdCBhcmUgdGhlIHVuaW9u
CisgICAgICAgIG9mIEludDMyIGFuZCBJbnQ1MiB2YWx1ZXMuIEl0J3MgYmV0dGVyIHRvIHNwZWN1
bGF0ZSBJbnQ1MiB0aGFuIERvdWJsZQorICAgICAgICBpbiB0aGF0IHNpdHVhdGlvbi4KKworICAg
ICAgICAyLiBXZSBhbHNvIHdyaXRlIGNvZGUgd2hlcmUgd2UgYXNrIGlmIHRoZSBpbnB1dHMgY2Fu
IGJlIEludDUyLCBlLmcsIGlmCisgICAgICAgIHdlIGtub3cgdmlhIHByb2ZpbGluZyB0aGF0IGFu
IEFkZCBvdmVyZmxvd3MsIHdlIG1heSBub3QgZW1pdCBhbiBJbnQzMiBhZGQuCisgICAgICAgIEhv
d2V2ZXIsIHdlIG9ubHkgZW1pdCBzdWNoIGFuIGFkZCBpZiBib3RoIGlucHV0cyBjYW4gYmUgSW50
NTIsIGFuZCBJbnQzMgorICAgICAgICBjYW4gdHJpdmlhbGx5IGJlY29tZSBJbnQ1Mi4KKworICAg
ICAgIFRoaXMgcGF0Y2ggcmVjb3ZlcnMgdGhlIDAuNS0xJSByZWdyZXNzaW9uIHIyNDQwNzkgY2F1
c2VkIG9uIEpldFN0cmVhbSAyLgorCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUu
aDoKKyAgICAgICAgKEpTQzo6aXNJbnQzMlNwZWN1bGF0aW9uRm9yQXJpdGhtZXRpYyk6CisgICAg
ICAgIChKU0M6OmlzSW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbkZvckFyaXRobWV0aWMpOgorICAg
ICAgICAoSlNDOjppc0ludDMyT3JJbnQ1MlNwZWN1bGF0aW9uKToKKyAgICAgICAgKiBkZmcvREZH
Rml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6b2JzZXJ2ZVVz
ZUtpbmRPbk5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50NTIpOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlQWNjZXNz
RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjpjb3VsZFJl
cHJlc2VudEludDUySW1wbCk6CisKIDIwMTktMDQtMDkgIFNhYW0gYmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgSW50NTIgY29kZSBhbmQgc29tZSBidWdzIGlu
IGl0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuaAkocmV2aXNpb24gMjQ0MDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0MiwxMiArMzQyLDEyIEBA
IGlubGluZSBib29sIGlzSW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbigKIAogaW5saW5lIGJvb2wg
aXNJbnQzMlNwZWN1bGF0aW9uRm9yQXJpdGhtZXRpYyhTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsK
LSAgICByZXR1cm4gISh2YWx1ZSAmIChTcGVjRnVsbERvdWJsZSB8IFNwZWNJbnQ1MkFueSkpOwor
ICAgIHJldHVybiAhKHZhbHVlICYgKFNwZWNGdWxsRG91YmxlIHwgU3BlY05vbkludDMyQXNJbnQ1
MikpOwogfQogCiBpbmxpbmUgYm9vbCBpc0ludDMyT3JCb29sZWFuU3BlY3VsYXRpb25Gb3JBcml0
aG1ldGljKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiAhKHZhbHVlICYgKFNw
ZWNGdWxsRG91YmxlIHwgU3BlY0ludDUyQW55KSk7CisgICAgcmV0dXJuICEodmFsdWUgJiAoU3Bl
Y0Z1bGxEb3VibGUgfCBTcGVjTm9uSW50MzJBc0ludDUyKSk7CiB9CiAKIGlubGluZSBib29sIGlz
SW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQoU3BlY3VsYXRlZFR5cGUg
dmFsdWUpCkBAIC0zNjAsNiArMzYwLDExIEBAIGlubGluZSBib29sIGlzQW55SW50NTJTcGVjdWxh
dGlvbihTcGVjdWwKICAgICByZXR1cm4gISF2YWx1ZSAmJiAodmFsdWUgJiBTcGVjSW50NTJBbnkp
ID09IHZhbHVlOwogfQogCitpbmxpbmUgYm9vbCBpc0ludDMyT3JJbnQ1MlNwZWN1bGF0aW9uKFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQoreworICAgIHJldHVybiAhIXZhbHVlICYmICh2YWx1ZSAmIChT
cGVjSW50MzJPbmx5IHwgU3BlY0ludDUyQW55KSkgPT0gdmFsdWU7Cit9CisKIGlubGluZSBib29s
IGlzSW50QW55Rm9ybWF0KFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewogICAgIHJldHVybiAhIXZh
bHVlICYmICh2YWx1ZSAmIFNwZWNJbnRBbnlGb3JtYXQpID09IHZhbHVlOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyNDQwNzkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMjI0LDcgKzMyMjQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1f
cHJvZml0YWJpbGl0eUNoYW5nZWQgfD0gdmFyaWFibGUtPm1lcmdlSXNQcm9maXRhYmxlVG9VbmJv
eCh0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludDUyUmVwVXNlOgot
ICAgICAgICAgICAgaWYgKGlzQW55SW50NTJTcGVjdWxhdGlvbih2YXJpYWJsZS0+cHJlZGljdGlv
bigpKSkKKyAgICAgICAgICAgIGlmICghaXNJbnQzMlNwZWN1bGF0aW9uKHZhcmlhYmxlLT5wcmVk
aWN0aW9uKCkpICYmIGlzSW50MzJPckludDUyU3BlY3VsYXRpb24odmFyaWFibGUtPnByZWRpY3Rp
b24oKSkpCiAgICAgICAgICAgICAgICAgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZCB8PSB2YXJpYWJs
ZS0+bWVyZ2VJc1Byb2ZpdGFibGVUb1VuYm94KHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ2VsbFVzZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CShyZXZpc2lvbiAyNDQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjM0OCw3ICsyMzQ4LDI0IEBAIHB1YmxpYzoKICAgICAKICAg
ICBib29sIHNob3VsZFNwZWN1bGF0ZUludDUyKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBlbmFi
bGVJbnQ1MigpICYmIGlzQW55SW50NTJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOworICAgICAg
ICAvLyBXZSBoYXZlIHRvIGluY2x1ZGUgU3BlY0ludDMyT25seSBoZXJlIGZvciB0d28gcmVhc29u
czoKKyAgICAgICAgLy8gMS4gV2UgZGlsaWdlbnRseSB3cml0ZSBjb2RlIHRoYXQgZmlyc3QgY2hl
Y2tzIGlmIHdlIHNob3VsZCBzcGVjdWxhdGUgSW50MzIuCisgICAgICAgIC8vIEZvciBleGFtcGxl
OgorICAgICAgICAvLyBpZiAoc2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgLi4uIAorICAgICAgICAv
LyBlbHNlIGlmIChzaG91bGRTcGVjdWxhdGVJbnQ1MigpKSAuLi4KKyAgICAgICAgLy8gVGhpcyBt
ZWFucyB3ZSBpdCdzIHRvdGFsbHkgdmFsaWQgdG8gc3BlY3VsYXRlIEludDUyIHdoZW4gd2UncmUg
ZGVhbGluZworICAgICAgICAvLyB3aXRoIGEgdHlwZSB0aGF0J3MgdGhlIHVuaW9uIG9mIEludDMy
IGFuZCBJbnQ1Mi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gSXQgd291bGQgYmUgYSBwZXJmb3Jt
YW5jZSBtaXN0YWtlIHRvIG5vdCBpbmNsdWRlIEludDMyIGhlcmUgYmVjYXVzZSB3ZSBvYnZpb3Vz
bHkKKyAgICAgICAgLy8gaGF2ZSB2YXJpYWJsZXMgdGhhdCBhcmUgdGhlIHVuaW9uIG9mIEludDMy
IGFuZCBJbnQ1MiB2YWx1ZXMsIGFuZCBpdCdzIGJldHRlcgorICAgICAgICAvLyB0byBzcGVjdWxh
dGUgSW50NTIgdGhhbiBkb3VibGUgaW4gdGhhdCBzaXR1YXRpb24uCisgICAgICAgIC8vCisgICAg
ICAgIC8vIDIuIFdlIGFsc28gd3JpdGUgY29kZSB3aGVyZSB3ZSBhc2sgaWYgdGhlIGlucHV0cyBj
YW4gYmUgSW50NTIsIGxpa2UgaWYKKyAgICAgICAgLy8gd2Uga25vdyB2aWEgcHJvZmlsaW5nIHRo
YXQgYW4gQWRkIG92ZXJmbG93cywgd2UgbWF5IG5vdCBlbWl0IGFuIEludDMyIGFkZC4KKyAgICAg
ICAgLy8gSG93ZXZlciwgd2Ugb25seSBlbWl0IHN1Y2ggYW4gYWRkIGlmIGJvdGggaW5wdXRzIGNh
biBiZSBJbnQ1MiwgYW5kIEludDMyCisgICAgICAgIC8vIGNhbiB0cml2aWFsbHkgYmVjb21lIElu
dDUyLgorICAgICAgICAvLworICAgICAgICByZXR1cm4gZW5hYmxlSW50NTIoKSAmJiBpc0ludDMy
T3JJbnQ1MlNwZWN1bGF0aW9uKHByZWRpY3Rpb24oKSk7CiAgICAgfQogICAgIAogICAgIGJvb2wg
c2hvdWxkU3BlY3VsYXRlRG91YmxlKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZp
c2lvbiAyNDQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQyLDggKzY0Miw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gbm9kZS0+Y2hp
bGQxKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIGlmIChpc0RvdWJsZVNwZWN1bGF0aW9u
KHByZWRpY3Rpb24pKQogICAgICAgICAgICAgICAgIG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgp
LT52b3RlKFZvdGVEb3VibGUsIHdlaWdodCk7Ci0gICAgICAgICAgICBlbHNlIGlmICghaXNGdWxs
TnVtYmVyU3BlY3VsYXRpb24ocHJlZGljdGlvbikKLSAgICAgICAgICAgICAgICB8fCBpc0ludDMy
U3BlY3VsYXRpb24ocHJlZGljdGlvbikgfHwgaXNBbnlJbnQ1MlNwZWN1bGF0aW9uKHByZWRpY3Rp
b24pKQorICAgICAgICAgICAgZWxzZSBpZiAoIWlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHByZWRp
Y3Rpb24pIHx8IGlzSW50MzJPckludDUyU3BlY3VsYXRpb24ocHJlZGljdGlvbikpCiAgICAgICAg
ICAgICAgICAgbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnZvdGUoVm90ZVZhbHVlLCB3ZWln
aHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTczNCw3ICs3MzMsMTAgQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9jdXJyZW50Tm9kZS0+b3AoKSkgewog
ICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6IHsKLSAgICAgICAgICAgIHNldFByZWRpY3Rpb24oc3Bl
Y3VsYXRpb25Gcm9tVmFsdWUobV9jdXJyZW50Tm9kZS0+YXNKU1ZhbHVlKCkpKTsKKyAgICAgICAg
ICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBzcGVjdWxhdGlvbkZyb21WYWx1ZShtX2N1cnJlbnRO
b2RlLT5hc0pTVmFsdWUoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTcGVjQW55SW50QXNE
b3VibGUgJiYgZW5hYmxlSW50NTIoKSkgCisgICAgICAgICAgICAgICAgdHlwZSA9IGludDUyQXdh
cmVTcGVjdWxhdGlvbkZyb21WYWx1ZShtX2N1cnJlbnROb2RlLT5hc0pTVmFsdWUoKSk7CisgICAg
ICAgICAgICBzZXRQcmVkaWN0aW9uKHR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBEb3VibGVDb25zdGFudDogewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVBY2Nlc3NEYXRhLmNwcAkocmV2aXNpb24g
MjQ0MDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0Rh
dGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNyArMTgxLDcgQEAgYm9vbCBWYXJpYWJsZUFj
Y2Vzc0RhdGE6OmNvdWxkUmVwcmVzZW50SQogICAgIAogICAgIC8vIFRoZSBhcmd1bWVudC1hd2Fy
ZSBwcmVkaWN0aW9uIC0tIHdoaWNoIG1lcmdlcyBhbGwgb2YgYW4gKGlubGluZWQgb3IgbWFjaGlu
ZSkKICAgICAvLyBhcmd1bWVudCdzIHZhcmlhYmxlIGFjY2VzcyBkYXRhcycgcHJlZGljdGlvbnMg
LS0gbXVzdCBwb3NzaWJseSBiZSBJbnQ1MkFueS4KLSAgICByZXR1cm4gaXNBbnlJbnQ1MlNwZWN1
bGF0aW9uKGFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCkpOworICAgIHJldHVybiBpc0ludDMyT3JJ
bnQ1MlNwZWN1bGF0aW9uKGFyZ3VtZW50QXdhcmVQcmVkaWN0aW9uKCkpOwogfQogCiBGbHVzaEZv
cm1hdCBWYXJpYWJsZUFjY2Vzc0RhdGE6OmZsdXNoRm9ybWF0KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>