<?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>152193</bug_id>
          
          <creation_ts>2015-12-11 15:42:17 -0800</creation_ts>
          <short_desc>Web Inspector: Separate Debugger enable state from the debugger breakpoints enabled state</short_desc>
          <delta_ts>2016-03-24 15:43:27 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155809</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1148575</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-11 15:42:17 -0800</bug_when>
    <thetext>* SUMMARY
Separate Debugger enable state from being attached.

Currently JSC assumes if a JSC::Debugger is attached the debugger is enabled. We are using the JSC::Debugger to access more debugger properties and we may want a debugger to be attached but disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148576</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-12-11 15:42:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/23867520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177395</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-23 11:11:19 -0700</bug_when>
    <thetext>This might be less important after some recent changes Saam made to allow the page to inline and use the FTL JIT when the debugger is attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177499</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 15:28:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This might be less important after some recent changes Saam made to allow
&gt; the page to inline and use the FTL JIT when the debugger is attached.

I&apos;m rolling out my inlining patch. I think this is still important. I&apos;m
going to start work on the JSC bits of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177561</commentid>
    <comment_count>4</comment_count>
      <attachid>274804</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 18:00:11 -0700</bug_when>
    <thetext>Created attachment 274804
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177564</commentid>
    <comment_count>5</comment_count>
      <attachid>274804</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 18:08:15 -0700</bug_when>
    <thetext>Comment on attachment 274804
patch

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

Looks good to me from an inspector perspective.

&gt; Source/JavaScriptCore/debugger/ScriptProfilingScope.h:58
&gt; -        if (!m_globalObject-&gt;hasDebugger())
&gt; +        if (!m_globalObject-&gt;hasInteractiveDebugger())
&gt;              return false;

This should just stay hasDebugger. The Sampling Profiler just needs globalObject-&gt;debugger(), it doesn&apos;t care if breakpoints are available or not.

&gt; Source/JavaScriptCore/debugger/ScriptProfilingScope.h:77
&gt;          // Debugger may have been removed.
&gt; -        if (!m_globalObject-&gt;hasDebugger())
&gt; +        if (!m_globalObject-&gt;hasInteractiveDebugger())
&gt;              return false;

Same here.

I think as a result of doing this you can now remove the FIXMEs in LayoutTests/inspector/script-profiler tests. Namely things that look like:

    // FIXME: &lt;https://webkit.org/b/152193&gt; Web Inspector: Separate Debugger enable state from being attached
    // Debugger should not need to be enabled for profiling to work.
    InspectorProtocol.sendCommand(&quot;Debugger.enable&quot;, {});</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177594</commentid>
    <comment_count>6</comment_count>
      <attachid>274804</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-23 20:49:49 -0700</bug_when>
    <thetext>Comment on attachment 274804
patch

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

&gt;&gt; Source/JavaScriptCore/debugger/ScriptProfilingScope.h:58
&gt;&gt;              return false;
&gt; 
&gt; This should just stay hasDebugger. The Sampling Profiler just needs globalObject-&gt;debugger(), it doesn&apos;t care if breakpoints are available or not.

Makes sense. I&apos;ll revert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177631</commentid>
    <comment_count>7</comment_count>
      <attachid>274804</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 22:56:55 -0700</bug_when>
    <thetext>Comment on attachment 274804
patch

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

&gt;&gt; Source/JavaScriptCore/debugger/ScriptProfilingScope.h:77
&gt;&gt;              return false;
&gt; 
&gt; Same here.
&gt; 
&gt; I think as a result of doing this you can now remove the FIXMEs in LayoutTests/inspector/script-profiler tests. Namely things that look like:
&gt; 
&gt;     // FIXME: &lt;https://webkit.org/b/152193&gt; Web Inspector: Separate Debugger enable state from being attached
&gt;     // Debugger should not need to be enabled for profiling to work.
&gt;     InspectorProtocol.sendCommand(&quot;Debugger.enable&quot;, {});

r- to update these tests, because after all they reference this bugzilla bug!

script-profiler/event-type-API.html
39:    // FIXME: &lt;https://webkit.org/b/152193&gt; Web Inspector: Separate Debugger enable state from being attached

script-profiler/event-type-Microtask.html
40:    // FIXME: &lt;https://webkit.org/b/152193&gt; Web Inspector: Separate Debugger enable state from being attached

script-profiler/event-type-Other.html
57:    // FIXME: &lt;https://webkit.org/b/152193&gt; Web Inspector: Separate Debugger enable state from being attached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177766</commentid>
    <comment_count>8</comment_count>
      <attachid>274854</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-24 14:03:07 -0700</bug_when>
    <thetext>Created attachment 274854
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177767</commentid>
    <comment_count>9</comment_count>
      <attachid>274854</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-24 14:21:51 -0700</bug_when>
    <thetext>Comment on attachment 274854
patch

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

r=me

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:535
&gt;  void Debugger::setBreakpointsActivated(bool activated)
&gt;  {
&gt; +    bool stateChanged = activated != m_breakpointsActivated;
&gt;      m_breakpointsActivated = activated;
&gt; +    if (stateChanged)
&gt; +        recompileAllJSFunctions();
&gt;  }

I think we would normally write this with an early return if the state is not changing:

    if (m_breakpointsActivated == activated)
        return;
    m_breakpointsActivated = activated;
    recompileAllJSFunctions();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177792</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-24 15:43:27 -0700</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/198648</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274804</attachid>
            <date>2016-03-23 18:00:11 -0700</date>
            <delta_ts>2016-03-24 14:03:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>9033</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NjA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE2LTAzLTIzICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFNlcGFyYXRlIERlYnVnZ2VyIGVuYWJsZSBzdGF0ZSBmcm9tIGJlaW5n
IGF0dGFjaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTIxOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzODY3NTIwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYWxsIGJyZWFrcG9pbnRz
IGFyZSBkaXNhYmxlZCwgd2UgY2FuIHJlY29tcGlsZSBhbGwgSlMKKyAgICAgICAgY29kZSBhbmQg
cmVtb3ZlIHRoZSBuZWNlc3NhcnkgZGVidWdnaW5nIGNvZGUgdGhhdCBpcyBlbWl0dGVkLgorICAg
ICAgICBUaGlzIGFsbG93cyBmb3IgdGhlIGNvZGUgdGhhdCBpcyBleGVjdXRpbmcgdG8gYmUgYWxt
b3N0IGFzIGZhc3QKKyAgICAgICAgYXMgaXQgaXMgd2l0aCB0aGUgZGVidWdnZXIgY29tcGxldGVs
eSBkaXNhYmxlZC4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3I6CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4MDkKKyAgICAgICAgd2hpY2ggd2ls
bCBpbnRyb2R1Y2UgYSBoaWdoIGZpZGVsaXR5IHByb2ZpbGVyLiBUaGF0IHByb2ZpbGVyCisgICAg
ICAgIGNvdWxkIGJlIGJ1aWx0IG9mZiB0aGUgcHJpbmNpcGxlIHRoYXQgYnJlYWtwb2ludHMgYXJl
IGRpc2FibGVkCisgICAgICAgIHdoZW4gd2UncmUgcGVyZm9ybWluZyBhIGhpZ2ggZmlkZWxpdHkg
cHJvZmlsZS4gRG9pbmcgc28sIGZvciBleGFtcGxlLAorICAgICAgICBhbGxvd3MgdGhlIHNhbXBs
aW5nIHByb2ZpbGVyIHRvIGJldHRlciBtZWFzdXJlIHRoZSByZWFsIHBlcmZvcm1hbmNlCisgICAg
ICAgIG9mIHRoZSBKUyBvZiBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24uCisKKyAgICAgICAgKiBk
ZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAqIGRlYnVnZ2VyL1NjcmlwdFByb2ZpbGluZ1Nj
b3BlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdFByb2ZpbGluZ1Njb3BlOjpzaG91bGRTdGFydFBy
b2ZpbGUpOgorICAgICAgICAoSlNDOjpTY3JpcHRQcm9maWxpbmdTY29wZTo6c2hvdWxkRW5kUHJv
ZmlsZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6R3JhcGgpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldEJyZWFrcG9pbnRzQWN0aXZlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6aXNQYXVzZWQpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6Om5ld0NvZGVCbG9ja0Zvcik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVQcm9ncmFtQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OmNyZWF0ZUV2YWxDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6Y3JlYXRlTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpxdWV1ZU1pY3JvdGFzayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojpo
YXNEZWJ1Z2dlcik6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNJbnRlcmFjdGl2
ZURlYnVnZ2VyKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsT2JqZWN0OjpydW50aW1lRmxhZ3MpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6aGFzRGVidWdnZXIpOiBEZWxldGVkLgorCiAyMDE2LTAzLTIzICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTk4NTgyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmgJKHJldmlzaW9uIDE5ODYwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fY3VycmVudEV4Y2VwdGlvbjsKICAgICB9CiAKLSAgICBib29s
IG5lZWRzRXhjZXB0aW9uQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZU9uRXhjZXB0
aW9uc1N0YXRlICE9IERvbnRQYXVzZU9uRXhjZXB0aW9uczsgfQorICAgIGJvb2wgbmVlZHNFeGNl
cHRpb25DYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkICYm
IG1fcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSAhPSBEb250UGF1c2VPbkV4Y2VwdGlvbnM7IH0KKyAg
ICBib29sIGlzSW50ZXJhY3RpdmVseURlYnVnZ2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYnJlYWtw
b2ludHNBY3RpdmF0ZWQ7IH0KIAogICAgIGVudW0gUmVhc29uRm9yRGV0YWNoIHsKICAgICAgICAg
VGVybWluYXRpbmdEZWJ1Z2dpbmdTZXNzaW9uLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL1NjcmlwdFByb2ZpbGluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL1NjcmlwdFByb2ZpbGluZ1Njb3BlLmgJKHJldmlzaW9uIDE5
ODYwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9TY3JpcHRQcm9maWxpbmdT
Y29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmICghbV9nbG9iYWxPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAg
ICAgaWYgKCFtX2dsb2JhbE9iamVjdC0+aGFzRGVidWdnZXIoKSkKKyAgICAgICAgaWYgKCFtX2ds
b2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgIGlmICghbV9nbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCktPmhhc1By
b2ZpbGluZ0NsaWVudCgpKQpAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIERlYnVnZ2VyIG1heSBoYXZlIGJlZW4gcmVtb3Zl
ZC4KLSAgICAgICAgaWYgKCFtX2dsb2JhbE9iamVjdC0+aGFzRGVidWdnZXIoKSkKKyAgICAgICAg
aWYgKCFtX2dsb2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFByb2ZpbGluZyBDbGllbnQgbWF5IGhhdmUg
YmVlbiByZW1vdmVkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJ
KHJldmlzaW9uIDE5ODYwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIEdyYXBoOjpHcmFwaChWTSYgdm0s
IFBsYW4mIHBsYW4sIExvbmdMaXYKIHsKICAgICBBU1NFUlQobV9wcm9maWxlZEJsb2NrKTsKICAg
ICAKLSAgICBtX2hhc0RlYnVnZ2VyRW5hYmxlZCA9IG1fcHJvZmlsZWRCbG9jay0+Z2xvYmFsT2Jq
ZWN0KCktPmhhc0RlYnVnZ2VyKCkKKyAgICBtX2hhc0RlYnVnZ2VyRW5hYmxlZCA9IG1fcHJvZmls
ZWRCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmhhc0ludGVyYWN0aXZlRGVidWdnZXIoKQogICAgICAg
ICB8fCBPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCShyZXZpc2lvbiAxOTg2MDIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw4IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2kKICAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZl
ci5hY3RpdmF0ZUJyZWFrcG9pbnRzKCk7CiAgICAgZWxzZQogICAgICAgICBtX3NjcmlwdERlYnVn
U2VydmVyLmRlYWN0aXZhdGVCcmVha3BvaW50cygpOworCisgICAgbV9zY3JpcHREZWJ1Z1NlcnZl
ci5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogfQogCiBib29sIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OmlzUGF1c2VkKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuY3BwCShyZXZpc2lvbiAxOTg2MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk3LDcgKzI5Nyw3
IEBAIENvZGVCbG9jayogU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2MKICAgICBSRUxFQVNF
X0FTU0VSVCghZXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQpKTsKICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gc2NvcGUtPmdsb2JhbE9iamVjdCgpOwogICAgIFBhcnNlckVy
cm9yIGVycm9yOwotICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9iYWxPYmplY3Qt
Pmhhc0RlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7CisgICAgRGVidWdnZXJN
b2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigp
ID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwogICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1v
ZGUgPSBnbG9iYWxPYmplY3QtPmhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJv
ZmlsZXJPZmY7CiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxv
Y2sgPSAKICAgICAgICAgZXhlY3V0YWJsZS0+bV91bmxpbmtlZEV4ZWN1dGFibGUtPnVubGlua2Vk
Q29kZUJsb2NrRm9yKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMTk4NjAyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTks
NyArOTk5LDcgQEAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdAogewog
ICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2Rl
ID0gZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmlj
dCA6IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0OwotICAgIERlYnVnZ2VyTW9kZSBkZWJ1
Z2dlck1vZGUgPSBoYXNEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOworICAg
IERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBE
ZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7CiAgICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9
IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5s
aW5rZWRQcm9ncmFtQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCkuY29kZUNhY2hl
KCktPmdldFByb2dyYW1Db2RlQmxvY2soCiAgICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1
dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBzdHJpY3RN
b2RlLCAKQEAgLTEwMjAsNyArMTAyMCw3IEBAIFVubGlua2VkRXZhbENvZGVCbG9jayogSlNHbG9i
YWxPYmplY3Q6OmMKIHsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBKU1BhcnNlclN0cmlj
dE1vZGUgc3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpID8gSlNQYXJzZXJT
dHJpY3RNb2RlOjpTdHJpY3QgOiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsKLSAgICBE
ZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBE
ZWJ1Z2dlck9mZjsKKyAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzSW50ZXJhY3Rp
dmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwogICAgIFByb2ZpbGVyTW9k
ZSBwcm9maWxlck1vZGUgPSBoYXNMZWdhY3lQcm9maWxlcigpID8gUHJvZmlsZXJPbiA6IFByb2Zp
bGVyT2ZmOwogICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2
bSgpLmNvZGVDYWNoZSgpLT5nZXRFdmFsQ29kZUJsb2NrKAogICAgICAgICB2bSgpLCBleGVjdXRh
YmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRp
biwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGRlYnVn
Z2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgdmFyaWFibGVzVW5kZXJURFopOwpAQCAtMTAz
OSw3ICsxMDM5LDcgQEAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Ywog
VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTW9k
dWxlUHJvZ3JhbUNvZGVCbG9jayhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTW9kdWxlUHJvZ3JhbUV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUpCiB7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7Ci0gICAgRGVi
dWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGhhc0RlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVi
dWdnZXJPZmY7CisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGhhc0ludGVyYWN0aXZl
RGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKICAgICBQcm9maWxlck1vZGUg
cHJvZmlsZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxl
ck9mZjsKICAgICBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJs
b2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jaygKICAgICAg
ICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRp
bk1vZGU6Ok5vdEJ1aWx0aW4sIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvcik7CkBA
IC0xMTUxLDQgKzExNTEsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cXVldWVNaWNyb3Rhc2so
UGFzcwogICAgIHZtKCkucXVldWVNaWNyb3Rhc2sodGhpcywgdGFzayk7CiB9CiAKK2Jvb2wgSlNH
bG9iYWxPYmplY3Q6Omhhc0RlYnVnZ2VyKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG1fZGVidWdn
ZXI7Cit9CisKK2Jvb2wgSlNHbG9iYWxPYmplY3Q6Omhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSBj
b25zdCAKK3sgCisgICAgcmV0dXJuIG1fZGVidWdnZXIgJiYgbV9kZWJ1Z2dlci0+aXNJbnRlcmFj
dGl2ZWx5RGVidWdnaW5nKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAx
OTg2MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsNyArMzY4LDggQEAgcHVibGljOgogCiAgICAgREVDTEFS
RV9FWFBPUlRfSU5GTzsKIAotICAgIGJvb2wgaGFzRGVidWdnZXIoKSBjb25zdCB7IHJldHVybiBt
X2RlYnVnZ2VyOyB9CisgICAgYm9vbCBoYXNEZWJ1Z2dlcigpIGNvbnN0OworICAgIGJvb2wgaGFz
SW50ZXJhY3RpdmVEZWJ1Z2dlcigpIGNvbnN0OwogICAgIGJvb2wgaGFzTGVnYWN5UHJvZmlsZXIo
KSBjb25zdDsKICAgICBjb25zdCBSdW50aW1lRmxhZ3MmIHJ1bnRpbWVGbGFncygpIGNvbnN0IHsg
cmV0dXJuIG1fcnVudGltZUZsYWdzOyB9CiAK
</data>
<flag name="review"
          id="299211"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274854</attachid>
            <date>2016-03-24 14:03:07 -0700</date>
            <delta_ts>2016-03-24 14:21:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>12732</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NjA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE2LTAzLTIzICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFNlcGFyYXRlIERlYnVnZ2VyIGVuYWJsZSBzdGF0ZSBmcm9tIHRoZSBk
ZWJ1Z2dlciBicmVha3BvaW50cyBlbmFibGVkIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTIxOTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIzODY3NTIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gYWxsIGJyZWFrcG9pbnRzIGFyZSBkaXNhYmxlZCwgd2UgY2FuIHJlY29tcGlsZSBh
bGwgSlMKKyAgICAgICAgY29kZSBhbmQgcmVtb3ZlIHRoZSBuZWNlc3NhcnkgZGVidWdnaW5nIGNv
ZGUgdGhhdCBpcyBlbWl0dGVkLgorICAgICAgICBUaGlzIGFsbG93cyBmb3IgdGhlIGNvZGUgdGhh
dCBpcyBleGVjdXRpbmcgdG8gYmUgYWxtb3N0IGFzIGZhc3QKKyAgICAgICAgYXMgaXQgaXMgd2l0
aCB0aGUgZGVidWdnZXIgY29tcGxldGVseSBkaXNhYmxlZC4gVGhpcyBpcyBpbiBwcmVwYXJhdGlv
biBmb3I6CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU4MDkKKyAgICAgICAgd2hpY2ggd2lsbCBpbnRyb2R1Y2UgYSBoaWdoIGZpZGVsaXR5IHByb2Zp
bGVyLiBUaGF0IHByb2ZpbGVyCisgICAgICAgIGNvdWxkIGJlIGJ1aWx0IG9mZiB0aGUgcHJpbmNp
cGxlIHRoYXQgYnJlYWtwb2ludHMgYXJlIGRpc2FibGVkCisgICAgICAgIHdoZW4gd2UncmUgcGVy
Zm9ybWluZyBhIGhpZ2ggZmlkZWxpdHkgcHJvZmlsZS4gRG9pbmcgc28sIGZvciBleGFtcGxlLAor
ICAgICAgICBhbGxvd3MgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIHRvIGJldHRlciBtZWFzdXJlIHRo
ZSByZWFsIHBlcmZvcm1hbmNlCisgICAgICAgIG9mIHRoZSBKUyBvZiBhIHBhcnRpY3VsYXIgYXBw
bGljYXRpb24uCisKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAqIGRl
YnVnZ2VyL1NjcmlwdFByb2ZpbGluZ1Njb3BlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdFByb2Zp
bGluZ1Njb3BlOjpzaG91bGRTdGFydFByb2ZpbGUpOgorICAgICAgICAoSlNDOjpTY3JpcHRQcm9m
aWxpbmdTY29wZTo6c2hvdWxkRW5kUHJvZmlsZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6R3JhcGgpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRzQWN0aXZlKToKKyAgICAgICAg
KEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6aXNQYXVzZWQpOgorICAgICAgICAq
IHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6
Om5ld0NvZGVCbG9ja0Zvcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjcmVhdGVQcm9ncmFtQ29kZUJsb2NrKToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZUV2YWxDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpxdWV1ZU1pY3JvdGFzayk6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNEZWJ1Z2dlcik6CisgICAgICAgIChKU0M6OkpTR2xv
YmFsT2JqZWN0OjpoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpydW50aW1lRmxh
Z3MpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aGFzRGVidWdnZXIpOiBEZWxldGVk
LgorCiAyMDE2LTAzLTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk4NTgyLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCShyZXZpc2lvbiAxOTg2MDIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MjgsNyArNTI4LDEwIEBAIHZvaWQgRGVidWdnZXI6OmNsZWFyRGVidWdnZXJS
ZXF1ZXN0cyhKU0cKIAogdm9pZCBEZWJ1Z2dlcjo6c2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQoYm9v
bCBhY3RpdmF0ZWQpCiB7CisgICAgYm9vbCBzdGF0ZUNoYW5nZWQgPSBhY3RpdmF0ZWQgIT0gbV9i
cmVha3BvaW50c0FjdGl2YXRlZDsKICAgICBtX2JyZWFrcG9pbnRzQWN0aXZhdGVkID0gYWN0aXZh
dGVkOworICAgIGlmIChzdGF0ZUNoYW5nZWQpCisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zKCk7CiB9CiAKIHZvaWQgRGVidWdnZXI6OnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoUGF1
c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwYXVzZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlci5oCShyZXZpc2lvbiAxOTg2MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2N1cnJlbnRFeGNlcHRpb247CiAgICAgfQogCi0g
ICAgYm9vbCBuZWVkc0V4Y2VwdGlvbkNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fcGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZSAhPSBEb250UGF1c2VPbkV4Y2VwdGlvbnM7IH0KKyAgICBib29sIG5l
ZWRzRXhjZXB0aW9uQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9icmVha3BvaW50c0FjdGl2
YXRlZCAmJiBtX3BhdXNlT25FeGNlcHRpb25zU3RhdGUgIT0gRG9udFBhdXNlT25FeGNlcHRpb25z
OyB9CisgICAgYm9vbCBpc0ludGVyYWN0aXZlbHlEZWJ1Z2dpbmcoKSBjb25zdCB7IHJldHVybiBt
X2JyZWFrcG9pbnRzQWN0aXZhdGVkOyB9CiAKICAgICBlbnVtIFJlYXNvbkZvckRldGFjaCB7CiAg
ICAgICAgIFRlcm1pbmF0aW5nRGVidWdnaW5nU2Vzc2lvbiwKQEAgLTc1LDcgKzc2LDYgQEAgcHVi
bGljOgogICAgIEJyZWFrcG9pbnRJRCBzZXRCcmVha3BvaW50KEJyZWFrcG9pbnQsIHVuc2lnbmVk
JiBhY3R1YWxMaW5lLCB1bnNpZ25lZCYgYWN0dWFsQ29sdW1uKTsKICAgICB2b2lkIHJlbW92ZUJy
ZWFrcG9pbnQoQnJlYWtwb2ludElEKTsKICAgICB2b2lkIGNsZWFyQnJlYWtwb2ludHMoKTsKLSAg
ICB2b2lkIHNldEJyZWFrcG9pbnRzQWN0aXZhdGVkKGJvb2wpOwogICAgIHZvaWQgYWN0aXZhdGVC
cmVha3BvaW50cygpIHsgc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQodHJ1ZSk7IH0KICAgICB2b2lk
IGRlYWN0aXZhdGVCcmVha3BvaW50cygpIHsgc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQoZmFsc2Up
OyB9CiAKQEAgLTE5OSw2ICsxOTksNyBAQCBwcml2YXRlOgogICAgICAgICBCcmVha3BvaW50RGlz
YWJsZWQsCiAgICAgICAgIEJyZWFrcG9pbnRFbmFibGVkCiAgICAgfTsKKyAgICB2b2lkIHNldEJy
ZWFrcG9pbnRzQWN0aXZhdGVkKGJvb2wpOwogICAgIHZvaWQgdG9nZ2xlQnJlYWtwb2ludChDb2Rl
QmxvY2sqLCBCcmVha3BvaW50JiwgQnJlYWtwb2ludFN0YXRlKTsKICAgICB2b2lkIGFwcGx5QnJl
YWtwb2ludHMoQ29kZUJsb2NrKik7CiAgICAgdm9pZCB0b2dnbGVCcmVha3BvaW50KEJyZWFrcG9p
bnQmLCBCcmVha3BvaW50U3RhdGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAJKHJldmlzaW9uIDE5ODYwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIEdyYXBoOjpHcmFw
aChWTSYgdm0sIFBsYW4mIHBsYW4sIExvbmdMaXYKIHsKICAgICBBU1NFUlQobV9wcm9maWxlZEJs
b2NrKTsKICAgICAKLSAgICBtX2hhc0RlYnVnZ2VyRW5hYmxlZCA9IG1fcHJvZmlsZWRCbG9jay0+
Z2xvYmFsT2JqZWN0KCktPmhhc0RlYnVnZ2VyKCkKKyAgICBtX2hhc0RlYnVnZ2VyRW5hYmxlZCA9
IG1fcHJvZmlsZWRCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmhhc0ludGVyYWN0aXZlRGVidWdnZXIo
KQogICAgICAgICB8fCBPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcAkocmV2aXNp
b24gMTk4NjAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdFNjcmlwdERlYnVnU2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNiBA
QCBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyOjpKU0dsb2JhCiB2b2lkIEpTR2xvYmFs
T2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OmF0dGFjaERlYnVnZ2VyKCkKIHsKICAgICBhdHRhY2go
Jm1fZ2xvYmFsT2JqZWN0KTsKLSAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogfQogCiB2
b2lkIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXI6OmRldGFjaERlYnVnZ2VyKGJvb2wg
aXNCZWluZ0Rlc3Ryb3llZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
CShyZXZpc2lvbiAxOTg2MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyAr
ODgsNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiAgICAgaWYgKG1f
ZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5zZXRC
cmVha3BvaW50c0FjdGl2YXRlZCh0cnVlKTsKICAgICBtX3NjcmlwdERlYnVnU2VydmVyLmFkZExp
c3RlbmVyKHRoaXMpOwogCiAgICAgaWYgKG1fbGlzdGVuZXIpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTk4NjAyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5Nyw3ICsyOTcsNyBAQCBDb2RlQmxvY2sqIFNjcmlwdEV4ZWN1dGFibGU6Om5ld0Nv
ZGVCbG9jCiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5k
KSk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHNjb3BlLT5nbG9iYWxPYmpl
Y3QoKTsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKLSAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlID0gZ2xvYmFsT2JqZWN0LT5oYXNEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2Vy
T2ZmOworICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9iYWxPYmplY3QtPmhhc0lu
dGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKICAgICBQcm9m
aWxlck1vZGUgcHJvZmlsZXJNb2RlID0gZ2xvYmFsT2JqZWN0LT5oYXNMZWdhY3lQcm9maWxlcigp
ID8gUHJvZmlsZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqIHVubGlua2VkQ29kZUJsb2NrID0gCiAgICAgICAgIGV4ZWN1dGFibGUtPm1fdW5saW5rZWRF
eGVjdXRhYmxlLT51bmxpbmtlZENvZGVCbG9ja0ZvcigKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE5ODYwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTk5LDcgKzk5OSw3IEBAIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayog
SlNHbG9iYWxPYmplY3QKIHsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBKU1BhcnNlclN0
cmljdE1vZGUgc3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpID8gSlNQYXJz
ZXJTdHJpY3RNb2RlOjpTdHJpY3QgOiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsKLSAg
ICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzRGVidWdnZXIoKSA/IERlYnVnZ2VyT24g
OiBEZWJ1Z2dlck9mZjsKKyAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzSW50ZXJh
Y3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwogICAgIFByb2ZpbGVy
TW9kZSBwcm9maWxlck1vZGUgPSBoYXNMZWdhY3lQcm9maWxlcigpID8gUHJvZmlsZXJPbiA6IFBy
b2ZpbGVyT2ZmOwogICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxv
Y2sgPSB2bSgpLmNvZGVDYWNoZSgpLT5nZXRQcm9ncmFtQ29kZUJsb2NrKAogICAgICAgICB2bSgp
LCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6
Tm90QnVpbHRpbiwgc3RyaWN0TW9kZSwgCkBAIC0xMDIwLDcgKzEwMjAsNyBAQCBVbmxpbmtlZEV2
YWxDb2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjCiB7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7
CiAgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVjdXRhYmxlLT5pc1N0cmlj
dE1vZGUoKSA/IEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0IDogSlNQYXJzZXJTdHJpY3RNb2Rl
OjpOb3RTdHJpY3Q7Ci0gICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGhhc0RlYnVnZ2Vy
KCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7CisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSA9IGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9m
ZjsKICAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/
IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIHVu
bGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0RXZhbENvZGVCbG9jaygKICAg
ICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVp
bHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBpc0Fycm93RnVu
Y3Rpb25Db250ZXh0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IsIHZhcmlhYmxl
c1VuZGVyVERaKTsKQEAgLTEwMzksNyArMTAzOSw3IEBAIFVubGlua2VkRXZhbENvZGVCbG9jayog
SlNHbG9iYWxPYmplY3Q6OmMKIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogSlNHbG9i
YWxPYmplY3Q6OmNyZWF0ZU1vZHVsZVByb2dyYW1Db2RlQmxvY2soQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlKQogewogICAgIFBhcnNlckVy
cm9yIGVycm9yOwotICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNEZWJ1Z2dlcigp
ID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOworICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7
CiAgICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQ
cm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJs
b2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCkuY29kZUNhY2hlKCktPmdldE1vZHVsZVByb2dy
YW1Db2RlQmxvY2soCiAgICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJj
ZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBkZWJ1Z2dlck1vZGUsIHByb2Zp
bGVyTW9kZSwgZXJyb3IpOwpAQCAtMTE1MSw0ICsxMTUxLDE0IEBAIHZvaWQgSlNHbG9iYWxPYmpl
Y3Q6OnF1ZXVlTWljcm90YXNrKFBhc3MKICAgICB2bSgpLnF1ZXVlTWljcm90YXNrKHRoaXMsIHRh
c2spOwogfQogCitib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNEZWJ1Z2dlcigpIGNvbnN0Cit7IAor
ICAgIHJldHVybiBtX2RlYnVnZ2VyOworfQorCitib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNJbnRl
cmFjdGl2ZURlYnVnZ2VyKCkgY29uc3QgCit7IAorICAgIHJldHVybiBtX2RlYnVnZ2VyICYmIG1f
ZGVidWdnZXItPmlzSW50ZXJhY3RpdmVseURlYnVnZ2luZygpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAkocmV2aXNpb24gMTk4NjAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDcgKzM2OCw4IEBAIHB1
YmxpYzoKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBib29sIGhhc0RlYnVnZ2Vy
KCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlcjsgfQorICAgIGJvb2wgaGFzRGVidWdnZXIoKSBj
b25zdDsKKyAgICBib29sIGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSBjb25zdDsKICAgICBib29s
IGhhc0xlZ2FjeVByb2ZpbGVyKCkgY29uc3Q7CiAgICAgY29uc3QgUnVudGltZUZsYWdzJiBydW50
aW1lRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVGbGFnczsgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAko
cmV2aXNpb24gMTk4NjAyKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDYgQEAgUGFnZVNjcmlw
dERlYnVnU2VydmVyOjpQYWdlU2NyaXB0RGVidWdTZQogdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2
ZXI6OmF0dGFjaERlYnVnZ2VyKCkKIHsKICAgICBtX3BhZ2Uuc2V0RGVidWdnZXIodGhpcyk7Ci0g
ICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKIH0KIAogdm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OmRldGFjaERlYnVnZ2VyKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKSW5kZXg6IExheW91
dFRlc3RzL2luc3BlY3Rvci9zY3JpcHQtcHJvZmlsZXIvZXZlbnQtdHlwZS1BUEkuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc2NyaXB0LXByb2ZpbGVyL2V2ZW50LXR5
cGUtQVBJLmh0bWwJKHJldmlzaW9uIDE5ODYwMikKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9z
Y3JpcHQtcHJvZmlsZXIvZXZlbnQtdHlwZS1BUEkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgLy8g
RklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTIxOTM+IFdlYiBJbnNwZWN0b3I6IFNlcGFy
YXRlIERlYnVnZ2VyIGVuYWJsZSBzdGF0ZSBmcm9tIGJlaW5nIGF0dGFjaGVkCisgICAgLy8gRklY
TUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTU4NTE+IFdlYiBJbnNwZWN0b3I6IFdlIHNob3Vs
ZCBzZXBhcmF0ZSBvdXQgYXR0YWNoaW5nIHRoZSBkZWJ1Z2dlciBmcm9tIHRoZSBEZWJ1Z2dlci5l
bmFibGUgZXZlbnQKICAgICAvLyBEZWJ1Z2dlciBzaG91bGQgbm90IG5lZWQgdG8gYmUgZW5hYmxl
ZCBmb3IgcHJvZmlsaW5nIHRvIHdvcmsuCiAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKIApJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3NjcmlwdC1wcm9maWxlci9ldmVudC10eXBlLU1pY3JvdGFzay5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2luc3BlY3Rvci9zY3JpcHQtcHJvZmlsZXIvZXZlbnQtdHlwZS1NaWNyb3Rh
c2suaHRtbAkocmV2aXNpb24gMTk4NjAyKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Njcmlw
dC1wcm9maWxlci9ldmVudC10eXBlLU1pY3JvdGFzay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB9CiAgICAgfSk7CiAKLSAgICAv
LyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MjE5Mz4gV2ViIEluc3BlY3RvcjogU2Vw
YXJhdGUgRGVidWdnZXIgZW5hYmxlIHN0YXRlIGZyb20gYmVpbmcgYXR0YWNoZWQKKyAgICAvLyBG
SVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1NTg1MT4gV2ViIEluc3BlY3RvcjogV2Ugc2hv
dWxkIHNlcGFyYXRlIG91dCBhdHRhY2hpbmcgdGhlIGRlYnVnZ2VyIGZyb20gdGhlIERlYnVnZ2Vy
LmVuYWJsZSBldmVudAogICAgIC8vIERlYnVnZ2VyIHNob3VsZCBub3QgbmVlZCB0byBiZSBlbmFi
bGVkIGZvciBwcm9maWxpbmcgdG8gd29yay4KICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwogCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc2NyaXB0LXByb2ZpbGVyL2V2ZW50LXR5cGUtT3RoZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc2NyaXB0LXByb2ZpbGVyL2V2ZW50LXR5cGUtT3RoZXIuaHRt
bAkocmV2aXNpb24gMTk4NjAyKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NjcmlwdC1wcm9m
aWxlci9ldmVudC10eXBlLU90aGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIC8vIEZJWE1FOiA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUyMTkzPiBXZWIgSW5zcGVjdG9yOiBTZXBhcmF0ZSBEZWJ1
Z2dlciBlbmFibGUgc3RhdGUgZnJvbSBiZWluZyBhdHRhY2hlZAorICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTU1ODUxPiBXZWIgSW5zcGVjdG9yOiBXZSBzaG91bGQgc2VwYXJh
dGUgb3V0IGF0dGFjaGluZyB0aGUgZGVidWdnZXIgZnJvbSB0aGUgRGVidWdnZXIuZW5hYmxlIGV2
ZW50CiAgICAgLy8gRGVidWdnZXIgc2hvdWxkIG5vdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHBy
b2ZpbGluZyB0byB3b3JrLgogICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5lbmFibGUiLCB7fSk7CiAK
</data>
<flag name="review"
          id="299263"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>