<?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>177751</bug_id>
          
          <creation_ts>2017-10-02 10:17:04 -0700</creation_ts>
          <short_desc>webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey</short_desc>
          <delta_ts>2017-10-04 10:34:50 -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>Tools / Tests</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1355275</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-02 10:17:04 -0700</bug_when>
    <thetext>None of our webkitpy tests should ever be flakey.

Running the test stand-alone pretty readily reproduces it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355276</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-02 10:17:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/34769470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355303</commentid>
    <comment_count>2</comment_count>
      <attachid>322390</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-02 10:45:46 -0700</bug_when>
    <thetext>Created attachment 322390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355307</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-10-02 10:49:07 -0700</bug_when>
    <thetext>*** Bug 175692 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355309</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-10-02 10:49:12 -0700</bug_when>
    <thetext>*** Bug 169777 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355611</commentid>
    <comment_count>5</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-10-02 16:54:08 -0700</bug_when>
    <thetext>Sweet!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355975</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 12:35:22 -0700</bug_when>
    <thetext>Aakash asked for an example of what this failure looks like:

AssertionError: &quot;MOCK run_command: [&apos;perl&apos;, &apos;Tools/Scripts/webkit-build-directory&apos;, &apos;--mac&apos;], cw [truncated]... != &quot;MOCK run_and_throw_if_fail: [&apos;Tools/Scripts/run-api-tests&apos;, &apos;--release&apos;, &apos;--jso [truncated]...
  - MOCK run_command: [&apos;perl&apos;, &apos;Tools/Scripts/webkit-build-directory&apos;, &apos;--mac&apos;], cwd=/mock-checkout
    MOCK run_and_throw_if_fail: [&apos;Tools/Scripts/run-api-tests&apos;, &apos;--release&apos;, &apos;--json-output=/tmp/api_test_results.json&apos;], cwd=/mock-checkout

It is the first command, [&apos;perl&apos;, &apos;Tools/Scripts/webkit-build-directory&apos;, &apos;--mac&apos;], which is the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356036</commentid>
    <comment_count>7</comment_count>
      <attachid>322578</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 14:11:57 -0700</bug_when>
    <thetext>Created attachment 322578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356039</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 14:12:42 -0700</bug_when>
    <thetext>Aakash wanted to isolate this logic to the tests which have these problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356053</commentid>
    <comment_count>9</comment_count>
      <attachid>322578</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-10-03 14:33:06 -0700</bug_when>
    <thetext>Comment on attachment 322578
Patch

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

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:40
&gt; +def output_capture_logs_end_with(testcase, function, args=[], kwargs={}, expected_logs=None):

This method name can be improved. Should have assert in the name.

Also can we add a comment here describing why we need this?

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:46
&gt; +        (_, _, logs_string) = capture.restore_output()

It might be a good idea to also save stdout_string, stderr_string and assert them to be empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356055</commentid>
    <comment_count>10</comment_count>
      <attachid>322585</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 14:40:15 -0700</bug_when>
    <thetext>Created attachment 322585
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356060</commentid>
    <comment_count>11</comment_count>
      <attachid>322585</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 14:51:34 -0700</bug_when>
    <thetext>Comment on attachment 322585
Patch for landing

We use OutputCapture().assert_outputs() all over the code base. I do not understand why this solution is specific to Tools/Scripts/webkitpy/tool/steps/steps_unittest.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356085</commentid>
    <comment_count>12</comment_count>
      <attachid>322585</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 15:27:13 -0700</bug_when>
    <thetext>Comment on attachment 322585
Patch for landing

After talking with Jonathan today in person, I suggest that we have some kind of setup function that is invoked before running any test function in steps_unittest.py that calls _build_path() to prime it. This will ensure that OutputCapture().assert_outputs() gives consistent results regardless of executive order of the individual unit test functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356086</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 15:28:07 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #12)
&gt; executive order of the individual unit test functions.

*execution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356087</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 15:29:03 -0700</bug_when>
    <thetext>We should also try to audit for this bug throughout the other unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356112</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 16:07:52 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #14)
&gt; We should also try to audit for this bug throughout the other unit tests.

I&apos;ll work on auditing these problems...this particular flavor of test flakiness should be pretty easy to find.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356113</commentid>
    <comment_count>16</comment_count>
      <attachid>322603</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 16:08:10 -0700</bug_when>
    <thetext>Created attachment 322603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356137</commentid>
    <comment_count>17</comment_count>
      <attachid>322603</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 16:33:57 -0700</bug_when>
    <thetext>Comment on attachment 322603
Patch

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

&gt; Tools/ChangeLog:12
&gt; +        There are a number of unit tests in webkitpy which are flakey because they
&gt; +        neglected to consider logging inside memoized functions. Since we&apos;re capturing
&gt; +        logging in a block, if these memoized functions have been run, we don&apos;t see the
&gt; +        logging. But if they haven&apos;t yet been run, we will see the logging.

This is complicated and abstract. We should just explain the particular problem that is occurring in steps_unittest.py. Use my comment below as a template for how to explain this issue.

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:44
&gt; +        # Port._build_path() caches the result of a function which will use the executive. This can
&gt; +        # cause flakiness because we don&apos;t know the state of the cache, so force a value to be cached.

Maybe something like this would be better:

Port._build_path() calls Tools/Scripts/webkit-build-directory and caches the result. When capturing output this can cause the first invocation of this function to have additional output compared to subsequent invocations. This can cause flakiness when test order changes. We explicitly call _build_path() before running a unit test to avoid such flakiness between test runs.

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:45
&gt; +        tool = MockTool(log_executive=True)

Is it necessary to pass True for log_executive? Can we pass False?

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:46
&gt; +        tool._deprecated_port = DeprecatedPort()

This is not necessary. Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356142</commentid>
    <comment_count>18</comment_count>
      <attachid>322613</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-03 16:44:55 -0700</bug_when>
    <thetext>Created attachment 322613
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356165</commentid>
    <comment_count>19</comment_count>
      <attachid>322613</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 17:24:00 -0700</bug_when>
    <thetext>Comment on attachment 322613
Patch for landing

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

&gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:48
&gt; +

Are we sure this will affect all the other mock tools instances?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356166</commentid>
    <comment_count>20</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-03 17:24:25 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #19)
&gt; Comment on attachment 322613 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=322613&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:48
&gt; &gt; +
&gt; 
&gt; Are we sure this will affect all the other mock tools instances?

If so, feel free to cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356458</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-04 09:40:03 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #19)
&gt; Comment on attachment 322613 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=322613&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/steps_unittest.py:48
&gt; &gt; +
&gt; 
&gt; Are we sure this will affect all the other mock tools instances?

It won&apos;t affect all the other mock tools instances, but it does effect all of the tests running steps.RunTests(...).  It is actually steps.RunTests(...) which runs Port._build_path().

As an additional note, along with looking through webkitpy to find invocations of steps.RunTests(...), I also ran the entire test suite one test at a time, to see if any other unit tests were suffering from this same kind of flakiness.  I was able to confirm that every test in test-webkitpy can be run independently, meaning after this change, no test is dependent on a previously run test.

Note that this technique does not definitively confirm that every test is independent of previous test runs (ie, test-a sets some state which then causes test-b to fail)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356496</commentid>
    <comment_count>22</comment_count>
      <attachid>322613</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 10:34:48 -0700</bug_when>
    <thetext>Comment on attachment 322613
Patch for landing

Clearing flags on attachment: 322613

Committed r222856: &lt;http://trac.webkit.org/changeset/222856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356497</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-04 10:34:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322390</attachid>
            <date>2017-10-02 10:45:46 -0700</date>
            <delta_ts>2017-10-03 14:11:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177751-20171002104545.patch</filename>
            <type>text/plain</type>
            <size>4252</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjcxOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTEwLTAyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweS50b29sLnN0ZXBzLnN0ZXBzX3VuaXR0ZXN0LlN0ZXBzVGVz
dC50ZXN0X3J1bnRlc3RzX2FwaSBpcyBmbGFrZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzc1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3
Njk0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUgYXJlIGEgbnVtYmVyIG9mIHVuaXQgdGVzdHMgaW4gd2Via2l0cHkgd2hpY2ggYXJlIGZs
YWtleSBiZWNhdXNlIHRoZXkKKyAgICAgICAgbmVnbGVjdGVkIHRvIGNvbnNpZGVyIGxvZ2dpbmcg
aW5zaWRlIG1lbW9pemVkIGZ1bmN0aW9ucy4gU2luY2Ugd2UncmUgY2FwdHVyaW5nCisgICAgICAg
IGxvZ2dpbmcgaW4gYSBibG9jaywgaWYgdGhlc2UgbWVtb2l6ZWQgZnVuY3Rpb25zIGhhdmUgYmVl
biBydW4sIHdlIGRvbid0IHNlZSB0aGUKKyAgICAgICAgbG9nZ2luZy4gQnV0IGlmIHRoZXkgaGF2
ZW4ndCB5ZXQgYmVlbiBydW4sIHdlIHdpbGwgc2VlIHRoZSBsb2dnaW5nLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVz
dHMuX0Rpc2FibGVNZW1vaXplZExvZ2dpbmcpOiBBIGJhc2ljIGNvbnRleHQgbWFuYWdlciB0byBk
aXNhYmxlIGxvZ2dpbmcgZm9yCisgICAgICAgIGEgYmxvY2sgb2YgY29kZSwgaW4gdGhpcyBjYXNl
LCB0byBwcmV2ZW50IG1lbW9pemVkIGZ1bmN0aW9ucyBmcm9tIGNhdXNpbmcgdGVzdAorICAgICAg
ICBmbGFraW5lc3MuCisgICAgICAgIChSdW5UZXN0cy5fRGlzYWJsZU1lbW9pemVkTG9nZ2luZy5f
X2luaXRfXyk6CisgICAgICAgIChSdW5UZXN0cy5fRGlzYWJsZU1lbW9pemVkTG9nZ2luZy5fX2Vu
dGVyX18pOgorICAgICAgICAoUnVuVGVzdHMuX0Rpc2FibGVNZW1vaXplZExvZ2dpbmcuX19leGl0
X18pOgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyk6IERpc2Fi
bGUgbG9nZ2luZyB3aGVuIGNhbGN1bGF0aW5nIHRoZQorICAgICAgICByZXN1bHRzX2RpcmVjdG9y
eSwgYXMgdGhpcyBtYXkgY2FsbCB3ZWJraXQtYnVpbGQtZGlyZWN0b3J5LgorICAgICAgICAoUnVu
VGVzdHMuX3J1bl9iaW5kaW5nc190ZXN0cyk6IERpdHRvLgorICAgICAgICAoUnVuVGVzdHMuX3J1
bl9hcGlfdGVzdHMpOiBEaXR0by4KKwogMjAxNy0xMC0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBidWlsZCBhZnRlciByMjIyNzE1
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5
CShyZXZpc2lvbiAyMjI3MTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1OCwxNyArMTU4LDMyIEBAIGNsYXNzIFJ1
blRlc3RzKEFic3RyYWN0U3RlcCk6CiAKICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVu
X2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jv
b3QpCiAKKyAgICBjbGFzcyBfRGlzYWJsZU1lbW9pemVkTG9nZ2luZyhvYmplY3QpOgorICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nX2xldmVsPWxvZ2dpbmcuQ1JJVElDQUwpOgorICAgICAg
ICAgICAgc2VsZi5sb2dfbGV2ZWwgPSBsb2dfbGV2ZWwKKworICAgICAgICBkZWYgX19lbnRlcl9f
KHNlbGYpOgorICAgICAgICAgICAgbG9nZ2luZy5kaXNhYmxlKHNlbGYubG9nX2xldmVsKQorCisg
ICAgICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2sp
OgorICAgICAgICAgICAgbG9nZ2luZy5kaXNhYmxlKGxvZ2dpbmcuTk9UU0VUKQorCiAgICAgZGVm
IF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6CiAgICAgICAgIGFyZ3MgPSBzZWxmLl90
b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCiAKLSAgICAgICAgcmVzdWx0c19kaXJlY3RvcnkgPSBz
ZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLl9vcHRpb25zKS5qc2NfcmVz
dWx0c19kaXJlY3RvcnkoKQorICAgICAgICB3aXRoIHNlbGYuX0Rpc2FibGVNZW1vaXplZExvZ2dp
bmcoKToKKyAgICAgICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fdG9vbC5wb3J0X2Zh
Y3RvcnkuZ2V0KG9wdGlvbnM9c2VsZi5fb3B0aW9ucykuanNjX3Jlc3VsdHNfZGlyZWN0b3J5KCkK
KwogICAgICAgICByZXN1bHRzX2ZpbGVfcGF0aCA9IHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5qb2lu
KHJlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikKICAgICAgICAgYXJn
cy5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9JXMiICUgcmVzdWx0c19maWxlX3BhdGgpCiAgICAgICAg
IHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2Vs
Zi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQogCiAgICAgZGVmIF9ydW5fYmluZGluZ3NfdGVz
dHMoc2VsZik6CiAgICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1
bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKCkKLSAgICAgICAgcmVzdWx0c19kaXJlY3RvcnkgPSBz
ZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLl9vcHRpb25zKS5iaW5kaW5n
c19yZXN1bHRzX2RpcmVjdG9yeSgpCisKKyAgICAgICAgd2l0aCBzZWxmLl9EaXNhYmxlTWVtb2l6
ZWRMb2dnaW5nKCk6CisgICAgICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3Rvb2wu
cG9ydF9mYWN0b3J5LmdldChvcHRpb25zPXNlbGYuX29wdGlvbnMpLmJpbmRpbmdzX3Jlc3VsdHNf
ZGlyZWN0b3J5KCkKKwogICAgICAgICBzZWxmLl90b29sLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9k
aXJlY3RvcnkocmVzdWx0c19kaXJlY3RvcnkpCiAgICAgICAgIHJlc3VsdHNfZmlsZV9wYXRoID0g
c2VsZi5fdG9vbC5maWxlc3lzdGVtLmpvaW4ocmVzdWx0c19kaXJlY3RvcnksICJiaW5kaW5nc190
ZXN0X3Jlc3VsdHMuanNvbiIpCiAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWpzb24tb3V0cHV0PSVz
IiAlIHJlc3VsdHNfZmlsZV9wYXRoKQpAQCAtMTc2LDcgKzE5MSwxMCBAQCBjbGFzcyBSdW5UZXN0
cyhBYnN0cmFjdFN0ZXApOgogCiAgICAgZGVmIF9ydW5fYXBpX3Rlc3RzKHNlbGYpOgogICAgICAg
ICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fYXBpX3Rlc3RzX2NvbW1h
bmQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKLSAgICAgICAgcmVzdWx0c19kaXJlY3Rvcnkg
PSBzZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLl9vcHRpb25zKS5hcGlf
cmVzdWx0c19kaXJlY3RvcnkoKQorCisgICAgICAgIHdpdGggc2VsZi5fRGlzYWJsZU1lbW9pemVk
TG9nZ2luZygpOgorICAgICAgICAgICAgcmVzdWx0c19kaXJlY3RvcnkgPSBzZWxmLl90b29sLnBv
cnRfZmFjdG9yeS5nZXQob3B0aW9ucz1zZWxmLl9vcHRpb25zKS5hcGlfcmVzdWx0c19kaXJlY3Rv
cnkoKQorCiAgICAgICAgIHJlc3VsdHNfZmlsZV9wYXRoID0gc2VsZi5fdG9vbC5maWxlc3lzdGVt
LmpvaW4ocmVzdWx0c19kaXJlY3RvcnksICJhcGlfdGVzdF9yZXN1bHRzLmpzb24iKQogICAgICAg
ICBhcmdzLmFwcGVuZCgiLS1qc29uLW91dHB1dD0lcyIgJSByZXN1bHRzX2ZpbGVfcGF0aCkKICAg
ICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3
ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322578</attachid>
            <date>2017-10-03 14:11:57 -0700</date>
            <delta_ts>2017-10-03 14:40:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177751-20171003141157.patch</filename>
            <type>text/plain</type>
            <size>10331</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjgwNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDE3LTEwLTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweS50b29sLnN0ZXBzLnN0ZXBzX3VuaXR0ZXN0LlN0ZXBzVGVz
dC50ZXN0X3J1bnRlc3RzX2FwaSBpcyBmbGFrZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzc1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3
Njk0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUgYXJlIGEgbnVtYmVyIG9mIHVuaXQgdGVzdHMgaW4gd2Via2l0cHkgd2hpY2ggYXJlIGZs
YWtleSBiZWNhdXNlIHRoZXkKKyAgICAgICAgbmVnbGVjdGVkIHRvIGNvbnNpZGVyIGxvZ2dpbmcg
aW5zaWRlIGZ1bmN0aW9ucyB3aXRoIGNhY2hlZCByZXR1cm5lZCB2YWx1ZXMuIFNpbmNlCisgICAg
ICAgIHdlJ3JlIGNhcHR1cmluZyBsb2dnaW5nIGluIGEgYmxvY2ssIGlmIHRoZXNlIGNhY2hlZCBm
dW5jdGlvbnMgaGF2ZSBiZWVuIHJ1biwgd2UKKyAgICAgICAgZG9uJ3Qgc2VlIHRoZSBsb2dnaW5n
LiBCdXQgaWYgdGhleSBoYXZlbid0IHlldCBiZWVuIHJ1biwgd2Ugd2lsbCBzZWUgdGhlIGxvZ2dp
bmcuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRl
c3QucHk6CisgICAgICAgIChvdXRwdXRfY2FwdHVyZV9sb2dzX2VuZF93aXRoKTogQWRkZWQgZnVu
Y3Rpb24gdG8gY2hlY2sgaWYgdGhlIGxvZ3MgZnJvbSBhIGJsb2NrCisgICAgICAgIGVuZCB3aXRo
IHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF91cGRhdGVfc3Rl
cCk6IENoZWNrIGlmIGxvZ3MgZW5kIHdpdGgsIGluc3RlYWQgb2YgbWF0Y2gsIHRoZSBleHBlY3Rl
ZAorICAgICAgICBsb2cgc3RyaW5nLgorICAgICAgICAoU3RlcHNUZXN0Ll9hc3NlcnRfc3RlcF9v
dXRwdXRfd2l0aF9idWcpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3Rz
X2FyZ3MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3RzX2RlYnVnX2Fy
Z3MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3RzX2pzYyk6IERpdHRv
LgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfcnVudGVzdHNfanNjX2RlYnVnKTogRGl0dG8uCisg
ICAgICAgIChTdGVwc1Rlc3QudGVzdF9idWlsZF9qc2NfZGVidWcpOiBEaXR0by4KKyAgICAgICAg
KFN0ZXBzVGVzdC50ZXN0X2J1aWxkX2pzYyk6IERpdHRvLgorICAgICAgICAoU3RlcHNUZXN0LnRl
c3RfcGF0Y2hfcmVsZXZhbnQpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3BhdGNo
X3JlbGV2YW50X2pzYyk6IERpdHRvLgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfcGF0Y2hfbm90
X3JlbGV2YW50X2pzYyk6IERpdHRvLgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfcnVudGVzdHNf
YmluZGluZ3MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3BhdGNoX3JlbGV2YW50
X2JpbmRpbmdzKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9wYXRjaF9ub3RfcmVs
ZXZhbnRfYmluZGluZ3MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3Rz
X2FwaSk6IERpdHRvLgorCiAyMDE3LTEwLTAzICBPbGl2aWVyIEJsaW4gIDxvbGl2aWVyLmJsaW5A
c29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gQnVtcCBkZXBzIHRvIGFkZCBzdXBwb3J0
IGZvciB4ZGctc2hlbGwtdW5zdGFibGUtdjYgcHJvdG9jb2wKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkJKHJldmlzaW9u
IDIyMjcxMCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTggQEAgZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrTwogZnJvbSB3ZWJraXRweS50b29sIGltcG9ydCBzdGVw
cwogCiAKK2RlZiBvdXRwdXRfY2FwdHVyZV9sb2dzX2VuZF93aXRoKHRlc3RjYXNlLCBmdW5jdGlv
biwgYXJncz1bXSwga3dhcmdzPXt9LCBleHBlY3RlZF9sb2dzPU5vbmUpOgorICAgIGNhcHR1cmUg
PSBPdXRwdXRDYXB0dXJlKCkKKyAgICBjYXB0dXJlLmNhcHR1cmVfb3V0cHV0KCkKKyAgICB0cnk6
CisgICAgICAgIGZ1bmN0aW9uKCphcmdzLCAqKmt3YXJncykKKyAgICBmaW5hbGx5OgorICAgICAg
ICAoXywgXywgbG9nc19zdHJpbmcpID0gY2FwdHVyZS5yZXN0b3JlX291dHB1dCgpCisKKyAgICBp
ZiBleHBlY3RlZF9sb2dzIGlzIG5vdCBOb25lOgorICAgICAgICB0ZXN0Y2FzZS5hc3NlcnRUcnVl
KGxvZ3Nfc3RyaW5nLmVuZHN3aXRoKGV4cGVjdGVkX2xvZ3MpKQorCisKIGNsYXNzIFN0ZXBzVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF9zdGVwX29wdGlvbnMoc2VsZik6CiAgICAg
ICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCkBAIC02Myw3ICs3NSw3IEBAIGNsYXNzIFN0ZXBz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG9wdGlvbnMgPSBzZWxmLl9zdGVwX29w
dGlvbnMoKQogICAgICAgICBvcHRpb25zLnVwZGF0ZSA9IFRydWUKICAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9ICJVcGRhdGluZyB3b3JraW5nIGRpcmVjdG9yeVxuIgotICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc2VsZi5fcnVuX3N0ZXAsIFtzdGVwcy5VcGRhdGUs
IHRvb2wsIG9wdGlvbnNdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91
dHB1dF9jYXB0dXJlX2xvZ3NfZW5kX3dpdGgoc2VsZiwgc2VsZi5fcnVuX3N0ZXAsIFtzdGVwcy5V
cGRhdGUsIHRvb2wsIG9wdGlvbnNdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAg
ICBkZWYgdGVzdF9wcm9tcHRfZm9yX2J1Z19vcl90aXRsZV9zdGVwKHNlbGYpOgogICAgICAgICB0
b29sID0gTW9ja1Rvb2woKQpAQCAtODIsNyArOTQsNyBAQCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIF9hc3NlcnRfc3RlcF9vdXRwdXRfd2l0aF9idWcoc2Vs
Ziwgc3RlcCwgYnVnX2lkLCBleHBlY3RlZF9sb2dzLCBvcHRpb25zPU5vbmUpOgogICAgICAgICBz
dGF0ZSA9IHsnYnVnX2lkJzogYnVnX2lkfQotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc2VsZi5fcnVuX3N0ZXAsIFtzdGVwLCBNb2NrVG9vbCgpLCBvcHRpb25z
LCBzdGF0ZV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2Nh
cHR1cmVfbG9nc19lbmRfd2l0aChzZWxmLCBzZWxmLl9ydW5fc3RlcCwgW3N0ZXAsIE1vY2tUb29s
KCksIG9wdGlvbnMsIHN0YXRlXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAg
ZGVmIF9hc3NlcnRfcG9zdF9kaWZmX291dHB1dF9mb3JfYnVnKHNlbGYsIHN0ZXAsIGJ1Z19pZCwg
ZXhwZWN0ZWRfbG9ncyk6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9zdGVwX291dHB1dF93aXRoX2J1
ZyhzdGVwLCBidWdfaWQsIGV4cGVjdGVkX2xvZ3MsIHNlbGYuX3Bvc3RfZGlmZl9vcHRpb25zKCkp
CkBAIC0xMjEsNyArMTMzLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaQogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1yZWxlYXNlJywgJy0tcXVp
ZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFz
c2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5y
dW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1
bnRlc3RzX2RlYnVnX2FyZ3Moc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0
ZXBfb3B0aW9ucygpCkBAIC0xNDMsNyArMTU1LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2Zh
aWw6IFsnVG9vbHMvU2NyaQogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1
ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCi0gICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9n
cz1leHBlY3RlZF9sb2dzKQorICAgICAgICBvdXRwdXRfY2FwdHVyZV9sb2dzX2VuZF93aXRoKHNl
bGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBk
ZWYgdGVzdF9ydW50ZXN0c19qc2Moc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYu
X3N0ZXBfb3B0aW9ucygpCkBAIC0xNTcsNyArMTY5LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lm
X2ZhaWw6IFsnVG9vbHMvU2NyaQogICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwg
bW9ja19vcHRpb25zKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAn
LS1uby1mYWlsLWZhc3QnLCAnLS1yZWxlYXNlJywgJy0tanNvbi1vdXRwdXQ9L3RtcC9qc2NfdGVz
dF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2xvZ3NfZW5kX3dpdGgo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAg
IGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25z
ID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKQEAgLTE3MCw3ICsxODIsNyBAQCBNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0
cyh0b29sLCBtb2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10
ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWRlYnVnJywgJy0tanNvbi1vdXRwdXQ9L3RtcC9q
c2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2xvZ3NfZW5k
X3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
IAogICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19kZWJ1ZyhzZWxmKToKICAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKQEAgLTE4Niw3ICsxOTgsNyBAQCBNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAi
IiJCdWlsZGluZyBXZWJLaXQKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hl
Y2tvdXQsIGVudj17J1RFUk0nOiAnZHVtYicsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KICIi
IgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4s
IFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2NhcHR1
cmVfbG9nc19lbmRfd2l0aChzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBl
Y3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfYnVpbGRfanNjKHNlbGYpOgogICAgICAgICBtb2Nr
X29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQpAQCAtMjAyLDcgKzIxNCw3IEBAIE1PQ0sg
cnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmkKICAgICAgICAgZXhwZWN0ZWRfbG9n
cyA9ICIiIkJ1aWxkaW5nIFdlYktpdAogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9v
bHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1yZWxlYXNlJywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0LCBlbnY9eydURVJNJzogJ2R1bWInLCAnTU9DS19FTlZJUk9OX0NPUFknOiAn
MSd9CiAiIiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0
ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1
dF9jYXB0dXJlX2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xv
Z3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50KHNlbGYpOgog
ICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCkBAIC0yMTQsNyArMjI2LDcgQEAgTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaQogICAgICAgICBzdGVwID0gc3RlcHMuQ2hl
Y2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKICIiIgotICAgICAgICBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xv
Z3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2NhcHR1cmVfbG9nc19lbmRfd2l0aChz
ZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAg
ZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNjKHNlbGYpOgogICAgICAgICBzZWxmLm1heERpZmYg
PSBOb25lCkBAIC0yMjcsNyArMjM5LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
VG9vbHMvU2NyaQogICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29s
LCBtb2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxl
dmFuY2Ugb2YgcGF0Y2gKICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1
dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAg
ICAgICAgb3V0cHV0X2NhcHR1cmVfbG9nc19lbmRfd2l0aChzZWxmLCBzdGVwLnJ1biwgW3t9XSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3Jl
bGV2YW50X2pzYyhzZWxmKToKICAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQpAQCAtMjQyLDcg
KzI1NCw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmkKIFRoaXMg
cGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgogIiIiCiAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCisgICAgICAgICAgICBvdXRwdXRfY2FwdHVyZV9sb2dzX2VuZF93aXRoKHNl
bGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBk
ZWYgdGVzdF9ydW50ZXN0c19iaW5kaW5ncyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0g
c2VsZi5fc3RlcF9vcHRpb25zKCkKQEAgLTI1NSw3ICsyNjcsNyBAQCBUaGlzIHBhdGNoIGRvZXMg
bm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0
b29sLCBtb2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cycsICct
LWpzb24tb3V0cHV0PS90bXAvYmluZGluZ3NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiAiIiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNl
bGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAg
IG91dHB1dF9jYXB0dXJlX2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVj
dGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2Jp
bmRpbmdzKHNlbGYpOgogICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCkBAIC0yNjgsNyArMjgw
LDcgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZQogICAgICAgICBz
dGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCiAgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKICIiIgot
ICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7
fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2NhcHR1cmVf
bG9nc19lbmRfd2l0aChzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3Rl
ZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2JpbmRpbmdzKHNlbGYp
OgogICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCkBAIC0yOTQsNyArMzA2LDcgQEAgVGhpcyBw
YXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZQogICAgICAgICBzdGVwID0gc3RlcHMu
UnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25zKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIi
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYXBpLXRlc3Rz
JywgJy0tcmVsZWFzZScsICctLWpzb24tb3V0cHV0PS90bXAvYXBpX3Rlc3RfcmVzdWx0cy5qc29u
J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCi0gICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9s
b2dzKQorICAgICAgICBvdXRwdXRfY2FwdHVyZV9sb2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVu
LCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50
ZXN0c19hcGlfZGVidWcoc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBf
b3B0aW9ucygpCkBAIC0zMDcsNCArMzE5LDQgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJl
bGV2YW50IGNoYW5nZQogICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19v
cHRpb25zKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lm
X2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYXBpLXRlc3RzJywgJy0tZGVidWcnLCAnLS1qc29u
LW91dHB1dD0vdG1wL2FwaV90ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQK
ICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5y
dW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2Nh
cHR1cmVfbG9nc19lbmRfd2l0aChzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1l
eHBlY3RlZF9sb2dzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322585</attachid>
            <date>2017-10-03 14:40:15 -0700</date>
            <delta_ts>2017-10-03 16:08:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177751-20171003144014.patch</filename>
            <type>text/plain</type>
            <size>10563</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjgwNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDE3LTEwLTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweS50b29sLnN0ZXBzLnN0ZXBzX3VuaXR0ZXN0LlN0ZXBzVGVz
dC50ZXN0X3J1bnRlc3RzX2FwaSBpcyBmbGFrZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzc1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3
Njk0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWFrYXNoIEphaW4uCisKKyAgICAgICAgVGhl
cmUgYXJlIGEgbnVtYmVyIG9mIHVuaXQgdGVzdHMgaW4gd2Via2l0cHkgd2hpY2ggYXJlIGZsYWtl
eSBiZWNhdXNlIHRoZXkKKyAgICAgICAgbmVnbGVjdGVkIHRvIGNvbnNpZGVyIGxvZ2dpbmcgaW5z
aWRlIGZ1bmN0aW9ucyB3aXRoIGNhY2hlZCByZXR1cm5lZCB2YWx1ZXMuIFNpbmNlCisgICAgICAg
IHdlJ3JlIGNhcHR1cmluZyBsb2dnaW5nIGluIGEgYmxvY2ssIGlmIHRoZXNlIGNhY2hlZCBmdW5j
dGlvbnMgaGF2ZSBiZWVuIHJ1biwgd2UKKyAgICAgICAgZG9uJ3Qgc2VlIHRoZSBsb2dnaW5nLiBC
dXQgaWYgdGhleSBoYXZlbid0IHlldCBiZWVuIHJ1biwgd2Ugd2lsbCBzZWUgdGhlIGxvZ2dpbmcu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3Qu
cHk6CisgICAgICAgIChvdXRwdXRfY2FwdHVyZV9hc3NlcnRfbG9nc19lbmRfd2l0aCk6IEFkZGVk
IGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBsb2dzIGZyb20gYQorICAgICAgICBibG9jayBlbmQg
d2l0aCB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfdXBkYXRl
X3N0ZXApOiBDaGVjayBpZiBsb2dzIGVuZCB3aXRoLCBpbnN0ZWFkIG9mIG1hdGNoLCB0aGUgZXhw
ZWN0ZWQKKyAgICAgICAgbG9nIHN0cmluZy4KKyAgICAgICAgKFN0ZXBzVGVzdC5fYXNzZXJ0X3N0
ZXBfb3V0cHV0X3dpdGhfYnVnKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9ydW50
ZXN0c19hcmdzKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9ydW50ZXN0c19kZWJ1
Z19hcmdzKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9ydW50ZXN0c19qc2MpOiBE
aXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3RzX2pzY19kZWJ1Zyk6IERpdHRv
LgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfYnVpbGRfanNjX2RlYnVnKTogRGl0dG8uCisgICAg
ICAgIChTdGVwc1Rlc3QudGVzdF9idWlsZF9qc2MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVz
dC50ZXN0X3BhdGNoX3JlbGV2YW50KTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9w
YXRjaF9yZWxldmFudF9qc2MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3BhdGNo
X25vdF9yZWxldmFudF9qc2MpOiBEaXR0by4KKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRl
c3RzX2JpbmRpbmdzKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9wYXRjaF9yZWxl
dmFudF9iaW5kaW5ncyk6IERpdHRvLgorICAgICAgICAoU3RlcHNUZXN0LnRlc3RfcGF0Y2hfbm90
X3JlbGV2YW50X2JpbmRpbmdzKTogRGl0dG8uCisgICAgICAgIChTdGVwc1Rlc3QudGVzdF9ydW50
ZXN0c19hcGkpOiBEaXR0by4KKwogMjAxNy0xMC0wMyAgT2xpdmllciBCbGluICA8b2xpdmllci5i
bGluQHNvZnRhdGhvbWUuY29tPgogCiAgICAgICAgIFtXUEVdIEJ1bXAgZGVwcyB0byBhZGQgc3Vw
cG9ydCBmb3IgeGRnLXNoZWxsLXVuc3RhYmxlLXY2IHByb3RvY29sCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CShyZXZp
c2lvbiAyMjI3MTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNf
dW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDIxIEBAIGZyb20gd2Via2l0
cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja08KIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQg
c3RlcHMKIAogCitkZWYgb3V0cHV0X2NhcHR1cmVfYXNzZXJ0X2xvZ3NfZW5kX3dpdGgodGVzdGNh
c2UsIGZ1bmN0aW9uLCBhcmdzPVtdLCBrd2FyZ3M9e30sIGV4cGVjdGVkX2xvZ3M9Tm9uZSk6Cisg
ICAgY2FwdHVyZSA9IE91dHB1dENhcHR1cmUoKQorICAgIGNhcHR1cmUuY2FwdHVyZV9vdXRwdXQo
KQorICAgIHRyeToKKyAgICAgICAgZnVuY3Rpb24oKmFyZ3MsICoqa3dhcmdzKQorICAgIGZpbmFs
bHk6CisgICAgICAgIChzdGRvdXRfc3RyaW5nLCBzdGRlcnJfc3RyaW5nLCBsb2dzX3N0cmluZykg
PSBjYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKKworICAgIHRlc3RjYXNlLmFzc2VydEVxdWFsKHN0
ZG91dF9zdHJpbmcsICIiKQorICAgIHRlc3RjYXNlLmFzc2VydEVxdWFsKHN0ZGVycl9zdHJpbmcs
ICIiKQorCisgICAgaWYgZXhwZWN0ZWRfbG9ncyBpcyBub3QgTm9uZToKKyAgICAgICAgdGVzdGNh
c2UuYXNzZXJ0VHJ1ZShsb2dzX3N0cmluZy5lbmRzd2l0aChleHBlY3RlZF9sb2dzKSkKKworCiBj
bGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfc3RlcF9vcHRpb25z
KHNlbGYpOgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQpAQCAtNjMsNyArNzgsNyBA
QCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvcHRpb25zID0g
c2VsZi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAgb3B0aW9ucy51cGRhdGUgPSBUcnVlCiAgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcbiIKLSAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHNlbGYuX3J1bl9zdGVwLCBb
c3RlcHMuVXBkYXRlLCB0b29sLCBvcHRpb25zXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorICAgICAgICBvdXRwdXRfY2FwdHVyZV9hc3NlcnRfbG9nc19lbmRfd2l0aChzZWxmLCBzZWxm
Ll9ydW5fc3RlcCwgW3N0ZXBzLlVwZGF0ZSwgdG9vbCwgb3B0aW9uc10sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3Byb21wdF9mb3JfYnVnX29yX3RpdGxlX3N0
ZXAoc2VsZik6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCkBAIC04Miw3ICs5Nyw3IEBAIGNs
YXNzIFN0ZXBzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgX2Fzc2VydF9zdGVw
X291dHB1dF93aXRoX2J1ZyhzZWxmLCBzdGVwLCBidWdfaWQsIGV4cGVjdGVkX2xvZ3MsIG9wdGlv
bnM9Tm9uZSk6CiAgICAgICAgIHN0YXRlID0geydidWdfaWQnOiBidWdfaWR9Ci0gICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzZWxmLl9ydW5fc3RlcCwgW3N0ZXAs
IE1vY2tUb29sKCksIG9wdGlvbnMsIHN0YXRlXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorICAgICAgICBvdXRwdXRfY2FwdHVyZV9hc3NlcnRfbG9nc19lbmRfd2l0aChzZWxmLCBzZWxm
Ll9ydW5fc3RlcCwgW3N0ZXAsIE1vY2tUb29sKCksIG9wdGlvbnMsIHN0YXRlXSwgZXhwZWN0ZWRf
bG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIF9hc3NlcnRfcG9zdF9kaWZmX291dHB1dF9m
b3JfYnVnKHNlbGYsIHN0ZXAsIGJ1Z19pZCwgZXhwZWN0ZWRfbG9ncyk6CiAgICAgICAgIHNlbGYu
X2Fzc2VydF9zdGVwX291dHB1dF93aXRoX2J1ZyhzdGVwLCBidWdfaWQsIGV4cGVjdGVkX2xvZ3Ms
IHNlbGYuX3Bvc3RfZGlmZl9vcHRpb25zKCkpCkBAIC0xMjEsNyArMTM2LDcgQEAgTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaQogUnVubmluZyBydW4td2Via2l0LXRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHMnLCAnLS1yZWxlYXNlJywgJy0tcXVpZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIK
LSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBb
e31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJl
X2Fzc2VydF9sb2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50ZXN0c19kZWJ1Z19hcmdzKHNlbGYp
OgogICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQpAQCAtMTQzLDcg
KzE1OCw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmkKIFJ1bm5p
bmcgcnVuLXdlYmtpdC10ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tZGVidWcnLCAnLS1xdWlldCddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAg
ICAgb3V0cHV0X2NhcHR1cmVfYXNzZXJ0X2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7
fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1bnRlc3Rz
X2pzYyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkK
QEAgLTE1Nyw3ICsxNzIsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCiAg
ICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydU
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcs
ICctLXJlbGVhc2UnLCAnLS1qc29uLW91dHB1dD0vdG1wL2pzY190ZXN0X3Jlc3VsdHMuanNvbidd
LCBjd2Q9L21vY2stY2hlY2tvdXQKICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKyAgICAgICAgb3V0cHV0X2NhcHR1cmVfYXNzZXJ0X2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0
X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5f
c3RlcF9vcHRpb25zKCkKQEAgLTE3MCw3ICsxODUsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbDogWydUb29scy9TY3JpCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBt
b2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICct
LW5vLWZhaWwtZmFzdCcsICctLWRlYnVnJywgJy0tanNvbi1vdXRwdXQ9L3RtcC9qc2NfdGVzdF9y
ZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2Fzc2VydF9sb2dzX2VuZF93
aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAK
ICAgICBkZWYgdGVzdF9idWlsZF9qc2NfZGVidWcoc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9u
cyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCkBAIC0xODYsNyArMjAxLDcgQEAgTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIi
QnVpbGRpbmcgV2ViS2l0CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL2J1aWxkLWpzYycsICctLWRlYnVnJywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNr
b3V0LCBlbnY9eydURVJNJzogJ2R1bWInLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CiAiIiIK
LSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBb
e31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJl
X2Fzc2VydF9sb2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9idWlsZF9qc2Moc2VsZik6CiAgICAgICAg
IG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCkBAIC0yMDIsNyArMjE3LDcgQEAg
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaQogICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9VHJ1ZSddLCBj
d2Q9L21vY2stY2hlY2tvdXQsIGVudj17J1RFUk0nOiAnZHVtYicsICdNT0NLX0VOVklST05fQ09Q
WSc6ICcxJ30KICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2Vs
Ziwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAg
b3V0cHV0X2NhcHR1cmVfYXNzZXJ0X2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0s
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2
YW50KHNlbGYpOgogICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCkBAIC0yMTQsNyArMjI5LDcg
QEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaQogICAgICAgICBzdGVw
ID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCiAgICAgICAg
IGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKICIiIgotICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0s
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2NhcHR1cmVfYXNz
ZXJ0X2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhw
ZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2pzYyhzZWxmKToKICAg
ICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQpAQCAtMjI3LDcgKzI0Miw3IEBAIE1PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmkKICAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNr
UGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQogICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCiAiIiIKLSAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2Fzc2VydF9sb2dzX2VuZF93
aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAK
ICAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfanNjKHNlbGYpOgogICAgICAgICBzZWxm
Lm1heERpZmYgPSBOb25lCkBAIC0yNDIsNyArMjU3LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lm
X2ZhaWw6IFsnVG9vbHMvU2NyaQogVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNo
YW5nZXMuCiAiIiIKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
Ci0gICAgICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5y
dW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgICAgIG91dHB1
dF9jYXB0dXJlX2Fzc2VydF9sb2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50ZXN0c19iaW5kaW5n
cyhzZWxmKToKICAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKQEAg
LTI1NSw3ICsyNzAsNyBAQCBUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdl
CiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCiAgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29s
cy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cycsICctLWpzb24tb3V0cHV0PS90bXAvYmluZGlu
Z3NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2Fzc2VydF9s
b2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCiAKICAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudF9iaW5kaW5ncyhzZWxmKToKICAg
ICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQpAQCAtMjY4LDcgKzI4Myw3IEBAIFRoaXMgcGF0Y2gg
ZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2UKICAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNr
UGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQogICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCiAiIiIKLSAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCisgICAgICAgIG91dHB1dF9jYXB0dXJlX2Fzc2VydF9sb2dzX2VuZF93
aXRoKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAK
ICAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfYmluZGluZ3Moc2VsZik6CiAgICAgICAg
IHNlbGYubWF4RGlmZiA9IE5vbmUKQEAgLTI5NCw3ICszMDksNyBAQCBUaGlzIHBhdGNoIGRvZXMg
bm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0
b29sLCBtb2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1hcGktdGVzdHMnLCAnLS1yZWxl
YXNlJywgJy0tanNvbi1vdXRwdXQ9L3RtcC9hcGlfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiAiIiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRz
KHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisgICAg
ICAgIG91dHB1dF9jYXB0dXJlX2Fzc2VydF9sb2dzX2VuZF93aXRoKHNlbGYsIHN0ZXAucnVuLCBb
e31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50ZXN0
c19hcGlfZGVidWcoc2VsZik6CiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0
aW9ucygpCkBAIC0zMDcsNCArMzIyLDQgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2
YW50IGNoYW5nZQogICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRp
b25zKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2Zh
aWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYXBpLXRlc3RzJywgJy0tZGVidWcnLCAnLS1qc29uLW91
dHB1dD0vdG1wL2FwaV90ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKICIi
IgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4s
IFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKyAgICAgICAgb3V0cHV0X2NhcHR1
cmVfYXNzZXJ0X2xvZ3NfZW5kX3dpdGgoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xv
Z3M9ZXhwZWN0ZWRfbG9ncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322603</attachid>
            <date>2017-10-03 16:08:10 -0700</date>
            <delta_ts>2017-10-03 16:44:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177751-20171003160809.patch</filename>
            <type>text/plain</type>
            <size>1932</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjgxNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTEwLTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweS50b29sLnN0ZXBzLnN0ZXBzX3VuaXR0ZXN0LlN0ZXBzVGVz
dC50ZXN0X3J1bnRlc3RzX2FwaSBpcyBmbGFrZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzc1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3
Njk0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUgYXJlIGEgbnVtYmVyIG9mIHVuaXQgdGVzdHMgaW4gd2Via2l0cHkgd2hpY2ggYXJlIGZs
YWtleSBiZWNhdXNlIHRoZXkKKyAgICAgICAgbmVnbGVjdGVkIHRvIGNvbnNpZGVyIGxvZ2dpbmcg
aW5zaWRlIG1lbW9pemVkIGZ1bmN0aW9ucy4gU2luY2Ugd2UncmUgY2FwdHVyaW5nCisgICAgICAg
IGxvZ2dpbmcgaW4gYSBibG9jaywgaWYgdGhlc2UgbWVtb2l6ZWQgZnVuY3Rpb25zIGhhdmUgYmVl
biBydW4sIHdlIGRvbid0IHNlZSB0aGUKKyAgICAgICAgbG9nZ2luZy4gQnV0IGlmIHRoZXkgaGF2
ZW4ndCB5ZXQgYmVlbiBydW4sIHdlIHdpbGwgc2VlIHRoZSBsb2dnaW5nLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
U3RlcHNUZXN0KToKKyAgICAgICAgKFN0ZXBzVGVzdC5zZXRVcCk6IENhY2hlIHRoZSBidWlsZCBw
YXRoIGJlZm9yZSBydW5uaW5nIHRlc3RzLgorCiAyMDE3LTEwLTAzICBPbGl2aWVyIEJsaW4gIDxv
bGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gQnVtcCBkZXBzIHRv
IGFkZCBzdXBwb3J0IGZvciB4ZGctc2hlbGwtdW5zdGFibGUtdjYgcHJvdG9jb2wKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3Qu
cHkJKHJldmlzaW9uIDIyMjcxMCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9zdGVwc191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTQgQEAgZnJv
bSB3ZWJraXRweS50b29sIGltcG9ydCBzdGVwcwogCiAKIGNsYXNzIFN0ZXBzVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgUG9ydC5fYnVp
bGRfcGF0aCgpIGNhY2hlcyB0aGUgcmVzdWx0IG9mIGEgZnVuY3Rpb24gd2hpY2ggd2lsbCB1c2Ug
dGhlIGV4ZWN1dGl2ZS4gVGhpcyBjYW4KKyAgICAgICAgIyBjYXVzZSBmbGFraW5lc3MgYmVjYXVz
ZSB3ZSBkb24ndCBrbm93IHRoZSBzdGF0ZSBvZiB0aGUgY2FjaGUsIHNvIGZvcmNlIGEgdmFsdWUg
dG8gYmUgY2FjaGVkLgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVl
KQorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAg
ICAgIHRvb2wucG9ydF9mYWN0b3J5LmdldChvcHRpb25zPXNlbGYuX3N0ZXBfb3B0aW9ucygpKS5f
YnVpbGRfcGF0aCgpCisKICAgICBkZWYgX3N0ZXBfb3B0aW9ucyhzZWxmKToKICAgICAgICAgb3B0
aW9ucyA9IE1vY2tPcHRpb25zKCkKICAgICAgICAgb3B0aW9ucy5ncm91cCA9IE5vbmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322613</attachid>
            <date>2017-10-03 16:44:55 -0700</date>
            <delta_ts>2017-10-04 10:34:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177751-20171003164455.patch</filename>
            <type>text/plain</type>
            <size>2023</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjgxNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTEwLTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweS50b29sLnN0ZXBzLnN0ZXBzX3VuaXR0ZXN0LlN0ZXBzVGVz
dC50ZXN0X3J1bnRlc3RzX2FwaSBpcyBmbGFrZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzc1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3
Njk0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgIFBv
cnQuX2J1aWxkX3BhdGgoKSBjYWxscyBUb29scy9TY3JpcHRzL3dlYmtpdC1idWlsZC1kaXJlY3Rv
cnkgYW5kIGNhY2hlcyB0aGlzCisgICAgICAgIHJlc3VsdC4gV2hlbiBjYXB0dXJpbmcgb3V0cHV0
IGZyb20gdGhlIE1vY2tFeGVjdXRpdmUsIHRoZSBmaXJzdCBpbnZvY2F0aW9uIG9mCisgICAgICAg
IFBvcnQuX2J1aWxkX3BhdGgoKSB3aWxsIGxvZyB0aGUgcnVubmluZyBvZiBUb29scy9TY3JpcHRz
L3dlYmtpdC1idWlsZC1kaXJlY3RvcnkKKyAgICAgICAgYnV0IHN1YnNlcXVlbnQgaW52b2NhdGlv
bnMgd2lsbCBub3QuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3Rl
cHNfdW5pdHRlc3QucHk6CisgICAgICAgIChTdGVwc1Rlc3QpOgorICAgICAgICAoU3RlcHNUZXN0
LnNldFVwKTogQ2FjaGUgdGhlIGJ1aWxkIHBhdGggYmVmb3JlIHJ1bm5pbmcgdGVzdHMuCisKIDIw
MTctMTAtMDMgIE9saXZpZXIgQmxpbiAgPG9saXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KIAog
ICAgICAgICBbV1BFXSBCdW1wIGRlcHMgdG8gYWRkIHN1cHBvcnQgZm9yIHhkZy1zaGVsbC11bnN0
YWJsZS12NiBwcm90b2NvbApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3N0ZXBzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQkocmV2aXNpb24gMjIyNzEwKQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCwxNCBAQCBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IHN0ZXBzCiAK
IAogY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChz
ZWxmKToKKyAgICAgICAgIyBQb3J0Ll9idWlsZF9wYXRoKCkgY2FsbHMgVG9vbHMvU2NyaXB0cy93
ZWJraXQtYnVpbGQtZGlyZWN0b3J5IGFuZCBjYWNoZXMgdGhlIHJlc3VsdC4gV2hlbiBjYXB0dXJp
bmcgb3V0cHV0LAorICAgICAgICAjIHRoaXMgY2FuIGNhdXNlIHRoZSBmaXJzdCBpbnZvY2F0aW9u
IG9mIFBvcnQuX2J1aWxkX3BhdGgoKSB0byBoYXZlIG1vcmUgb3V0cHV0IHRoYW4gc3Vic2VxdWVu
dCBpbnZvY2F0aW9ucy4KKyAgICAgICAgIyBUaGlzIG1heSBjYXVzZSB0ZXN0IGZsYWtpbmVzcyB3
aGVuIHRlc3Qgb3JkZXIgY2hhbmdlcy4gQnkgZXhwbGljaXRseSBjYWxsaW5nIFBvcnQuX2J1aWxk
X3BhdGgoKSBiZWZvcmUgcnVubmluZworICAgICAgICAjIHRlc3RzIGluIHRoaXMgc3VpdGUsIHdl
IGF2b2lkIHN1Y2ggZmxha2luZXNzLgorICAgICAgICBNb2NrVG9vbCgpLnBvcnRfZmFjdG9yeS5n
ZXQob3B0aW9ucz1zZWxmLl9zdGVwX29wdGlvbnMoKSkuX2J1aWxkX3BhdGgoKQorCiAgICAgZGVm
IF9zdGVwX29wdGlvbnMoc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCiAg
ICAgICAgIG9wdGlvbnMuZ3JvdXAgPSBOb25lCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>