<?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>138525</bug_id>
          
          <creation_ts>2014-11-07 15:30:37 -0800</creation_ts>
          <short_desc>REGRESSION (r173484): Reducing content of scrollable region does not reset scroll position</short_desc>
          <delta_ts>2021-08-07 11:06:04 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228898</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1047210</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-07 15:30:37 -0800</bug_when>
    <thetext>* SUMMARY
If you scroll a scrollable region, then change the content of the scrollable region to very little content that is no longer scrollable, the region should scroll itself back to make the new content visible. This is no longer happening.

* STEPS
1. Open Attached reduction
2. Scroll the content area a bit
3. Click the button to change the content in the scrollable region
  =&gt; No new content is visible, it should be

* NOTES
- Checking in the inspector, $0.scrollTop is some &gt;0 value. Where before it used to be 0 after clicking the button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047211</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-07 15:30:55 -0800</bug_when>
    <thetext>I was at r175758.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047212</commentid>
    <comment_count>2</comment_count>
      <attachid>241215</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-07 15:31:07 -0800</bug_when>
    <thetext>Created attachment 241215
[TEST] Reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047213</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-07 15:31:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/18914565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047214</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-07 15:31:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/18914560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047402</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-09 11:14:51 -0800</bug_when>
    <thetext>I wasn&apos;t able to reproduce this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047723</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-10 19:00:03 -0800</bug_when>
    <thetext>I can reproduce 100%. It seems best to scroll almost all the way down but not quite all the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047735</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-10 20:26:41 -0800</bug_when>
    <thetext>I tried on Mavericks and Yosemite and couldn&apos;t repro on either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047736</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-10 20:29:01 -0800</bug_when>
    <thetext>Ah, it doesn&apos;t reproduce if you&apos;ve used a mouse wheel to scroll, only if you&apos;ve trackpad-scrolled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047740</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-10 20:36:26 -0800</bug_when>
    <thetext>Regressed with http://trac.webkit.org/changeset/173484</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061350</commentid>
    <comment_count>10</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-14 15:24:50 -0800</bug_when>
    <thetext>This doesn&apos;t repro for me anymore. Does it for you, Joe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061372</commentid>
    <comment_count>11</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-01-14 15:51:45 -0800</bug_when>
    <thetext>Ah ha! It does reproduce if you flick enough to allow the gesture to decelerate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061375</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-01-14 15:53:38 -0800</bug_when>
    <thetext>In Web Inspector this happened in the &quot;Computed&quot; section of the Styles sidebar. Have &quot;Show All&quot; properties checked, scroll down in this fashion, then uncheck &quot;Show All&quot; and the sidebar is blank instead of showing something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063240</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-21 17:30:25 -0800</bug_when>
    <thetext>We think we&apos;re rubber banding all the time, because RenderLayer::overhangAmount() returns a non-zero size because we&apos;re asking it before we apply any clamping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067755</commentid>
    <comment_count>14</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-08 19:39:08 -0800</bug_when>
    <thetext>*** Bug 140923 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073099</commentid>
    <comment_count>15</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-28 15:18:10 -0800</bug_when>
    <thetext>*** Bug 140924 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080749</commentid>
    <comment_count>16</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-27 14:28:05 -0700</bug_when>
    <thetext>If I remove the call to isRubberBandInProgress() from RenderLayer::updateScrollInfoAfterLayout(), which was added by https://bugs.webkit.org/show_bug.cgi?id=136650 then this bug goes away. The tricky thing is that it seems like that original bug (also about scrolling in the inspector) does not reproduce anymore with this fix taken out, which probably means that either the inspector is no longer updating layout on scroll, or maybe Hyatt&apos;s recent offsetWidth optimizations are preventing those layouts entirely.

So I do have a simple fix for this bug, but I am worried that it might cause the symptoms described in https://bugs.webkit.org/show_bug.cgi?id=136650 to reappear in some content. I just haven&apos;t found that content yet…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080785</commentid>
    <comment_count>17</comment_count>
      <attachid>249616</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-27 15:51:00 -0700</bug_when>
    <thetext>Created attachment 249616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080790</commentid>
    <comment_count>18</comment_count>
      <attachid>249616</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-27 15:59:04 -0700</bug_when>
    <thetext>Comment on attachment 249616
Patch

I think this should be easily testable, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080792</commentid>
    <comment_count>19</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-27 16:02:13 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Comment on attachment 249616 [details]
&gt; Patch
&gt; 
&gt; I think this should be easily testable, no?

The bug does not reproduce with a programatic scroll. Brent did add a way to momentum scroll in tests, so I might be able to make one of those tests reproduce the bug. I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080821</commentid>
    <comment_count>20</comment_count>
      <attachid>249625</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-27 17:36:25 -0700</bug_when>
    <thetext>Created attachment 249625
Patch with test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081260</commentid>
    <comment_count>21</comment_count>
      <attachid>249625</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-30 11:49:21 -0700</bug_when>
    <thetext>Comment on attachment 249625
Patch with test

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        REGRESSION (r173484): Reducing content of scrollable region does not reset scroll 
&gt; +        position

Unfortunate wrapping.

&gt; LayoutTests/ChangeLog:4
&gt; +        REGRESSION (r173484): Reducing content of scrollable region does not reset scroll 
&gt; +        position

Unfortunate wrapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081384</commentid>
    <comment_count>22</comment_count>
      <attachid>249782</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-30 16:54:44 -0700</bug_when>
    <thetext>Created attachment 249782
Patch

Thanks Simon, but I did end up finding a regression with that patch. This patch takes a totally new approach and adds an additional test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081387</commentid>
    <comment_count>23</comment_count>
      <attachid>249782</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-30 17:06:16 -0700</bug_when>
    <thetext>Comment on attachment 249782
Patch

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

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-reduced-content.html:84
&gt; +            &lt;h1&gt;Lots and lots of content&lt;/h1&gt;
&gt; +            &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla tincidunt vehicula lectus, in blandit nisl tempus eget. Suspendisse dapibus, nibh vitae scelerisque aliquet, elit leo pharetra risus, in convallis turpis magna at lorem. In placerat porta justo, eu euismod ex. Donec ultricies velit sed sollicitudin iaculis. Proin congue venenatis ipsum, iaculis bibendum felis elementum ac. Curabitur sed rhoncus elit. Aenean sit amet posuere arcu. Etiam eget tellus erat. Aliquam erat volutpat. Aliquam ornare ex et sollicitudin pulvinar. Cras elit orci, fermentum nec augue ac, viverra ultricies mi. Nam at erat aliquet, dapibus nibh non, interdum massa. Nam ullamcorper, sapien id dictum efficitur, leo ante porttitor nisl, sit amet consequat lectus velit quis nibh.&lt;/p&gt;
&gt; +            &lt;p&gt;Vestibulum dapibus ante sit amet mauris vulputate, non congue sem pretium. Integer nec gravida risus. Suspendisse quis nibh ultricies, ultricies tellus in, interdum dolor. Nunc feugiat, eros nec elementum porttitor, lorem enim dictum ligula, vitae volutpat elit mi ut diam. Donec at lectus quis risus dapibus sollicitudin. Morbi porta, nisi vel pellentesque fermentum, nisl felis placerat velit, id tempor nisi lectus eget dolor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur condimentum nisl id libero cursus, at egestas elit semper. Mauris lorem dui, rutrum id eros eu, cursus vestibulum odio. Etiam vel libero et nunc sodales commodo feugiat gravida tortor. Sed nisi leo, feugiat ac luctus et, faucibus non magna.&lt;/p&gt;
&gt; +            &lt;p&gt;Proin viverra cursus magna, aliquam auctor mauris mollis ac. Sed varius felis ex, et tempor nisl lobortis vitae. Suspendisse augue ante, pharetra quis purus et, pulvinar pharetra nibh. Etiam aliquet cursus sapien, at viverra dolor venenatis ac. Mauris semper bibendum urna sed tempor. Suspendisse placerat, mauris at tristique ultricies, risus libero congue nunc, id vulputate ligula arcu id eros. Vestibulum et porta ante. Mauris non dolor justo. Curabitur tincidunt diam id ipsum rhoncus tempor vel eget augue.&lt;/p&gt;
&gt; +            &lt;p&gt;Curabitur id tempus neque, ac facilisis risus. Aenean aliquam elementum tellus, in imperdiet mauris maximus sed. Morbi ac mi id nisl tincidunt viverra ac sed magna. Aliquam erat volutpat. Nulla efficitur risus sapien, sit amet vehicula felis bibendum sed. Nunc eget venenatis lectus. Pellentesque id tempor enim, sit amet suscipit dui. Suspendisse tempus tellus mi, mattis posuere ante pharetra quis. Cras pharetra quis massa id sollicitudin. Nunc vel nisi tempus, efficitur lacus at, molestie sem. Nulla elit ante, malesuada nec ligula ac, iaculis auctor risus. Donec hendrerit mauris sem, eu pellentesque mi sagittis id. Aliquam erat volutpat. Fusce ac tincidunt quam. Sed eget lacus eu erat ultrices pretium.&lt;/p&gt;
&gt; +            &lt;p&gt;In finibus elit nec ligula eleifend tincidunt. Nunc vel sapien posuere, venenatis erat vel, pulvinar metus. Vestibulum at augue elit. Nunc vehicula vel nunc nec fringilla. Quisque vel quam magna. Aenean scelerisque, mauris sed mollis commodo, lacus mi congue sem, pretium elementum dui odio non mauris. Quisque sed vestibulum lectus. Nullam ante ante, vulputate vitae mattis eu, ultrices non odio. Cras faucibus sodales ligula, id rutrum neque dictum sed. Sed molestie risus in metus dictum ornare. Maecenas consectetur elit mi, at suscipit tellus iaculis ut. Ut tempus leo eget dui viverra vehicula.&lt;/p&gt;
&gt; +        &lt;/div&gt;

Could this just be style=&quot;height: 1000px&quot;?

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:54
&gt; +    setTimeout(checkForZero, 500);

Please don&apos;t add a test that takes a half second!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081701</commentid>
    <comment_count>24</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-03-31 11:28:13 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Comment on attachment 249782 [details]
&gt; Patch
&gt; Could this just be style=&quot;height: 1000px&quot;?
&gt; 

Yes, fixed!

&gt; &gt; LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:54
&gt; &gt; +    setTimeout(checkForZero, 500);
&gt; 
&gt; Please don&apos;t add a test that takes a half second!

I was able to reduce it to 100, which is not great either. We should have a different mechanism I suppose. Hopefully the test won&apos;t be flaky.

http://trac.webkit.org/changeset/182191

Thanks!!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>241215</attachid>
            <date>2014-11-07 15:31:07 -0800</date>
            <delta_ts>2014-11-07 15:31:07 -0800</delta_ts>
            <desc>[TEST] Reduction</desc>
            <filename>reduction.html</filename>
            <type>text/html</type>
            <size>4101</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHN0eWxlPgoub3V0ZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAxMDBw
eDsKICAgIGhlaWdodDogNDAwcHg7CiAgICB3aWR0aDogMjAwcHg7CiAgICBib3JkZXI6IDFweCBz
b2xpZCBibHVlOwp9CgouaW5uZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAw
OwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwoKICAgIG92ZXJmbG93
LXg6IGhpZGRlbjsKICAgIG92ZXJmbG93LXk6IGF1dG87ICAgIAp9Cjwvc3R5bGU+Cgo8YnV0dG9u
IGlkPSJ4Ij5DbGljayBNZSB0byBjaGFuZ2UgQ29udGVudDwvYnV0dG9uPgoKPGRpdiBjbGFzcz0i
b3V0ZXIiPgogICAgPGRpdiBjbGFzcz0iaW5uZXIiPgogICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQi
PgogICAgICAgICAgICA8aDE+TG90cyBhbmQgbG90cyBvZiBjb250ZW50PC9oMT4KICAgICAgICAg
ICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2Npbmcg
ZWxpdC4gTnVsbGEgdGluY2lkdW50IHZlaGljdWxhIGxlY3R1cywgaW4gYmxhbmRpdCBuaXNsIHRl
bXB1cyBlZ2V0LiBTdXNwZW5kaXNzZSBkYXBpYnVzLCBuaWJoIHZpdGFlIHNjZWxlcmlzcXVlIGFs
aXF1ZXQsIGVsaXQgbGVvIHBoYXJldHJhIHJpc3VzLCBpbiBjb252YWxsaXMgdHVycGlzIG1hZ25h
IGF0IGxvcmVtLiBJbiBwbGFjZXJhdCBwb3J0YSBqdXN0bywgZXUgZXVpc21vZCBleC4gRG9uZWMg
dWx0cmljaWVzIHZlbGl0IHNlZCBzb2xsaWNpdHVkaW4gaWFjdWxpcy4gUHJvaW4gY29uZ3VlIHZl
bmVuYXRpcyBpcHN1bSwgaWFjdWxpcyBiaWJlbmR1bSBmZWxpcyBlbGVtZW50dW0gYWMuIEN1cmFi
aXR1ciBzZWQgcmhvbmN1cyBlbGl0LiBBZW5lYW4gc2l0IGFtZXQgcG9zdWVyZSBhcmN1LiBFdGlh
bSBlZ2V0IHRlbGx1cyBlcmF0LiBBbGlxdWFtIGVyYXQgdm9sdXRwYXQuIEFsaXF1YW0gb3JuYXJl
IGV4IGV0IHNvbGxpY2l0dWRpbiBwdWx2aW5hci4gQ3JhcyBlbGl0IG9yY2ksIGZlcm1lbnR1bSBu
ZWMgYXVndWUgYWMsIHZpdmVycmEgdWx0cmljaWVzIG1pLiBOYW0gYXQgZXJhdCBhbGlxdWV0LCBk
YXBpYnVzIG5pYmggbm9uLCBpbnRlcmR1bSBtYXNzYS4gTmFtIHVsbGFtY29ycGVyLCBzYXBpZW4g
aWQgZGljdHVtIGVmZmljaXR1ciwgbGVvIGFudGUgcG9ydHRpdG9yIG5pc2wsIHNpdCBhbWV0IGNv
bnNlcXVhdCBsZWN0dXMgdmVsaXQgcXVpcyBuaWJoLjwvcD4KICAgICAgICAgICAgPHA+VmVzdGli
dWx1bSBkYXBpYnVzIGFudGUgc2l0IGFtZXQgbWF1cmlzIHZ1bHB1dGF0ZSwgbm9uIGNvbmd1ZSBz
ZW0gcHJldGl1bS4gSW50ZWdlciBuZWMgZ3JhdmlkYSByaXN1cy4gU3VzcGVuZGlzc2UgcXVpcyBu
aWJoIHVsdHJpY2llcywgdWx0cmljaWVzIHRlbGx1cyBpbiwgaW50ZXJkdW0gZG9sb3IuIE51bmMg
ZmV1Z2lhdCwgZXJvcyBuZWMgZWxlbWVudHVtIHBvcnR0aXRvciwgbG9yZW0gZW5pbSBkaWN0dW0g
bGlndWxhLCB2aXRhZSB2b2x1dHBhdCBlbGl0IG1pIHV0IGRpYW0uIERvbmVjIGF0IGxlY3R1cyBx
dWlzIHJpc3VzIGRhcGlidXMgc29sbGljaXR1ZGluLiBNb3JiaSBwb3J0YSwgbmlzaSB2ZWwgcGVs
bGVudGVzcXVlIGZlcm1lbnR1bSwgbmlzbCBmZWxpcyBwbGFjZXJhdCB2ZWxpdCwgaWQgdGVtcG9y
IG5pc2kgbGVjdHVzIGVnZXQgZG9sb3IuIEludGVyZHVtIGV0IG1hbGVzdWFkYSBmYW1lcyBhYyBh
bnRlIGlwc3VtIHByaW1pcyBpbiBmYXVjaWJ1cy4gQ3VyYWJpdHVyIGNvbmRpbWVudHVtIG5pc2wg
aWQgbGliZXJvIGN1cnN1cywgYXQgZWdlc3RhcyBlbGl0IHNlbXBlci4gTWF1cmlzIGxvcmVtIGR1
aSwgcnV0cnVtIGlkIGVyb3MgZXUsIGN1cnN1cyB2ZXN0aWJ1bHVtIG9kaW8uIEV0aWFtIHZlbCBs
aWJlcm8gZXQgbnVuYyBzb2RhbGVzIGNvbW1vZG8gZmV1Z2lhdCBncmF2aWRhIHRvcnRvci4gU2Vk
IG5pc2kgbGVvLCBmZXVnaWF0IGFjIGx1Y3R1cyBldCwgZmF1Y2lidXMgbm9uIG1hZ25hLjwvcD4K
ICAgICAgICAgICAgPHA+UHJvaW4gdml2ZXJyYSBjdXJzdXMgbWFnbmEsIGFsaXF1YW0gYXVjdG9y
IG1hdXJpcyBtb2xsaXMgYWMuIFNlZCB2YXJpdXMgZmVsaXMgZXgsIGV0IHRlbXBvciBuaXNsIGxv
Ym9ydGlzIHZpdGFlLiBTdXNwZW5kaXNzZSBhdWd1ZSBhbnRlLCBwaGFyZXRyYSBxdWlzIHB1cnVz
IGV0LCBwdWx2aW5hciBwaGFyZXRyYSBuaWJoLiBFdGlhbSBhbGlxdWV0IGN1cnN1cyBzYXBpZW4s
IGF0IHZpdmVycmEgZG9sb3IgdmVuZW5hdGlzIGFjLiBNYXVyaXMgc2VtcGVyIGJpYmVuZHVtIHVy
bmEgc2VkIHRlbXBvci4gU3VzcGVuZGlzc2UgcGxhY2VyYXQsIG1hdXJpcyBhdCB0cmlzdGlxdWUg
dWx0cmljaWVzLCByaXN1cyBsaWJlcm8gY29uZ3VlIG51bmMsIGlkIHZ1bHB1dGF0ZSBsaWd1bGEg
YXJjdSBpZCBlcm9zLiBWZXN0aWJ1bHVtIGV0IHBvcnRhIGFudGUuIE1hdXJpcyBub24gZG9sb3Ig
anVzdG8uIEN1cmFiaXR1ciB0aW5jaWR1bnQgZGlhbSBpZCBpcHN1bSByaG9uY3VzIHRlbXBvciB2
ZWwgZWdldCBhdWd1ZS48L3A+CiAgICAgICAgICAgIDxwPkN1cmFiaXR1ciBpZCB0ZW1wdXMgbmVx
dWUsIGFjIGZhY2lsaXNpcyByaXN1cy4gQWVuZWFuIGFsaXF1YW0gZWxlbWVudHVtIHRlbGx1cywg
aW4gaW1wZXJkaWV0IG1hdXJpcyBtYXhpbXVzIHNlZC4gTW9yYmkgYWMgbWkgaWQgbmlzbCB0aW5j
aWR1bnQgdml2ZXJyYSBhYyBzZWQgbWFnbmEuIEFsaXF1YW0gZXJhdCB2b2x1dHBhdC4gTnVsbGEg
ZWZmaWNpdHVyIHJpc3VzIHNhcGllbiwgc2l0IGFtZXQgdmVoaWN1bGEgZmVsaXMgYmliZW5kdW0g
c2VkLiBOdW5jIGVnZXQgdmVuZW5hdGlzIGxlY3R1cy4gUGVsbGVudGVzcXVlIGlkIHRlbXBvciBl
bmltLCBzaXQgYW1ldCBzdXNjaXBpdCBkdWkuIFN1c3BlbmRpc3NlIHRlbXB1cyB0ZWxsdXMgbWks
IG1hdHRpcyBwb3N1ZXJlIGFudGUgcGhhcmV0cmEgcXVpcy4gQ3JhcyBwaGFyZXRyYSBxdWlzIG1h
c3NhIGlkIHNvbGxpY2l0dWRpbi4gTnVuYyB2ZWwgbmlzaSB0ZW1wdXMsIGVmZmljaXR1ciBsYWN1
cyBhdCwgbW9sZXN0aWUgc2VtLiBOdWxsYSBlbGl0IGFudGUsIG1hbGVzdWFkYSBuZWMgbGlndWxh
IGFjLCBpYWN1bGlzIGF1Y3RvciByaXN1cy4gRG9uZWMgaGVuZHJlcml0IG1hdXJpcyBzZW0sIGV1
IHBlbGxlbnRlc3F1ZSBtaSBzYWdpdHRpcyBpZC4gQWxpcXVhbSBlcmF0IHZvbHV0cGF0LiBGdXNj
ZSBhYyB0aW5jaWR1bnQgcXVhbS4gU2VkIGVnZXQgbGFjdXMgZXUgZXJhdCB1bHRyaWNlcyBwcmV0
aXVtLjwvcD4KICAgICAgICAgICAgPHA+SW4gZmluaWJ1cyBlbGl0IG5lYyBsaWd1bGEgZWxlaWZl
bmQgdGluY2lkdW50LiBOdW5jIHZlbCBzYXBpZW4gcG9zdWVyZSwgdmVuZW5hdGlzIGVyYXQgdmVs
LCBwdWx2aW5hciBtZXR1cy4gVmVzdGlidWx1bSBhdCBhdWd1ZSBlbGl0LiBOdW5jIHZlaGljdWxh
IHZlbCBudW5jIG5lYyBmcmluZ2lsbGEuIFF1aXNxdWUgdmVsIHF1YW0gbWFnbmEuIEFlbmVhbiBz
Y2VsZXJpc3F1ZSwgbWF1cmlzIHNlZCBtb2xsaXMgY29tbW9kbywgbGFjdXMgbWkgY29uZ3VlIHNl
bSwgcHJldGl1bSBlbGVtZW50dW0gZHVpIG9kaW8gbm9uIG1hdXJpcy4gUXVpc3F1ZSBzZWQgdmVz
dGlidWx1bSBsZWN0dXMuIE51bGxhbSBhbnRlIGFudGUsIHZ1bHB1dGF0ZSB2aXRhZSBtYXR0aXMg
ZXUsIHVsdHJpY2VzIG5vbiBvZGlvLiBDcmFzIGZhdWNpYnVzIHNvZGFsZXMgbGlndWxhLCBpZCBy
dXRydW0gbmVxdWUgZGljdHVtIHNlZC4gU2VkIG1vbGVzdGllIHJpc3VzIGluIG1ldHVzIGRpY3R1
bSBvcm5hcmUuIE1hZWNlbmFzIGNvbnNlY3RldHVyIGVsaXQgbWksIGF0IHN1c2NpcGl0IHRlbGx1
cyBpYWN1bGlzIHV0LiBVdCB0ZW1wdXMgbGVvIGVnZXQgZHVpIHZpdmVycmEgdmVoaWN1bGEuPC9w
PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3gnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewog
ICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpOwogICAg
Y29udGVudC50ZXh0Q29udGVudCA9ICdsaXR0bGUgY29udGVudCc7Cn0pOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249616</attachid>
            <date>2015-03-27 15:51:00 -0700</date>
            <delta_ts>2015-03-27 17:36:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>1688</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjA4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAzLTI3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTczNDg0KTog
UmVkdWNpbmcgY29udGVudCBvZiBzY3JvbGxhYmxlIHJlZ2lvbiBkb2VzIG5vdCByZXNldCBzY3Jv
bGwgCisgICAgICAgIHBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg1MjUKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8xODE2NjA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcm9sbHMgb3V0IHRoZSBjaGFuZ2UgdGhhdCBj
YXVzZWQgdGhpcyByZWdyZXNzaW9uLiBUaGUgb3JpZ2luYWwgYnVnIHRoYXQgCisgICAgICAgIHRo
YXQgY2hhbmdlIHdhcyBpbnRlbmRlZCB0byBmaXggbm8gbG9uZ2VyIHJlcHJvZHVjZXMsIGFuZCBJ
IGhhdmVu4oCZdCBmb3VuZCBhbm90aGVyIAorICAgICAgICB3YXkgdG8gcmVwcm9kdWNlIGl0IHll
dC4gCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQpOgorCiAyMDE1LTAz
LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFNh
ZmFyaSBmYWlscyB0byBmaXJlIHBhZ2UgImxvYWQiIGV2ZW50IHdpdGggdmlkZW9bcHJlbG9hZD1u
b25lXQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiAxODIwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNDQ4LDcgKzM0NDgsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMCiAKICAgICBjb21wdXRlU2Nyb2xsRGltZW5zaW9ucygpOwog
Ci0gICAgaWYgKGJveC0+c3R5bGUoKS5vdmVyZmxvd1goKSAhPSBPTUFSUVVFRSAmJiAhaXNSdWJi
ZXJCYW5kSW5Qcm9ncmVzcygpKSB7CisgICAgaWYgKGJveC0+c3R5bGUoKS5vdmVyZmxvd1goKSAh
PSBPTUFSUVVFRSkgewogICAgICAgICAvLyBMYXlvdXQgbWF5IGNhdXNlIHVzIHRvIGJlIGF0IGFu
IGludmFsaWQgc2Nyb2xsIHBvc2l0aW9uLiBJbiB0aGlzIGNhc2Ugd2UgbmVlZAogICAgICAgICAv
LyB0byBwdWxsIG91ciBzY3JvbGwgb2Zmc2V0cyBiYWNrIHRvIHRoZSBtYXggKG9yIHB1c2ggdGhl
bSB1cCB0byB0aGUgbWluKS4KICAgICAgICAgSW50U2l6ZSBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0g
Y2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249625</attachid>
            <date>2015-03-27 17:36:25 -0700</date>
            <delta_ts>2015-03-30 16:54:44 -0700</delta_ts>
            <desc>Patch with test</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>9349</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjA4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAzLTI3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTczNDg0KTog
UmVkdWNpbmcgY29udGVudCBvZiBzY3JvbGxhYmxlIHJlZ2lvbiBkb2VzIG5vdCByZXNldCBzY3Jv
bGwgCisgICAgICAgIHBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg1MjUKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8xODE2NjA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcm9sbHMgb3V0IHRoZSBjaGFuZ2UgdGhhdCBj
YXVzZWQgdGhpcyByZWdyZXNzaW9uLiBUaGUgb3JpZ2luYWwgYnVnIHRoYXQgCisgICAgICAgIHRo
YXQgY2hhbmdlIHdhcyBpbnRlbmRlZCB0byBmaXggbm8gbG9uZ2VyIHJlcHJvZHVjZXMsIGFuZCBJ
IGhhdmVu4oCZdCBmb3VuZCBhbm90aGVyIAorICAgICAgICB3YXkgdG8gcmVwcm9kdWNlIGl0IHll
dC4gCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQpOgorCiAyMDE1LTAz
LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFNh
ZmFyaSBmYWlscyB0byBmaXJlIHBhZ2UgImxvYWQiIGV2ZW50IHdpdGggdmlkZW9bcHJlbG9hZD1u
b25lXQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiAxODIwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNDQ4LDcgKzM0NDgsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMCiAKICAgICBjb21wdXRlU2Nyb2xsRGltZW5zaW9ucygpOwog
Ci0gICAgaWYgKGJveC0+c3R5bGUoKS5vdmVyZmxvd1goKSAhPSBPTUFSUVVFRSAmJiAhaXNSdWJi
ZXJCYW5kSW5Qcm9ncmVzcygpKSB7CisgICAgaWYgKGJveC0+c3R5bGUoKS5vdmVyZmxvd1goKSAh
PSBPTUFSUVVFRSkgewogICAgICAgICAvLyBMYXlvdXQgbWF5IGNhdXNlIHVzIHRvIGJlIGF0IGFu
IGludmFsaWQgc2Nyb2xsIHBvc2l0aW9uLiBJbiB0aGlzIGNhc2Ugd2UgbmVlZAogICAgICAgICAv
LyB0byBwdWxsIG91ciBzY3JvbGwgb2Zmc2V0cyBiYWNrIHRvIHRoZSBtYXggKG9yIHB1c2ggdGhl
bSB1cCB0byB0aGUgbWluKS4KICAgICAgICAgSW50U2l6ZSBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0g
Y2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTgy
MDkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTUtMDMtMjcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04gKHIxNzM0ODQpOiBSZWR1Y2luZyBjb250ZW50IG9mIHNjcm9sbGFibGUg
cmVnaW9uIGRvZXMgbm90IHJlc2V0IHNjcm9sbCAKKyAgICAgICAgcG9zaXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUyNQorICAgICAgICAt
YW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzE4MTY2MDQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNv
bnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRlbnQuaHRt
bDogQWRkZWQuCisKIDIwMTUtMDMtMjcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW01hY10gU2FmYXJpIGZhaWxzIHRvIGZpcmUgcGFnZSAibG9hZCIgZXZlbnQg
d2l0aCB2aWRlb1twcmVsb2FkPW5vbmVdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRl
bnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLXJlZHVjZWQtY29udGVu
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRl
bnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMiBAQAorUEFTUyBSZS1z
aXppbmcgdGhlIGNvbnRlbnQgb2YgdGhlIHNjcm9sbGVkIGRpdiBjb3JyZWN0bHkgc2V0IGEgbmV3
IHNjcm9sbCBwb3NpdGlvbi4KK1RoaXMgdGVzdCBzaG91bGQgYmUgcnVuIGluIHRoZSB0ZXN0IGhh
cm5lc3MuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRlbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRlbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZs
b3ctc2Nyb2xsLXJlZHVjZWQtY29udGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisub3V0ZXIgeworICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICBtYXJnaW46IDEwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgd2lk
dGg6IDIwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7Cit9CisKKyNpbm5lciB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworICAgIHJp
Z2h0OiAwOworICAgIGJvdHRvbTogMDsKKworICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICBv
dmVyZmxvdy15OiBhdXRvOyAgICAKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVu
Y3Rpb24gZGVjcmVhc2VDb250ZW50U2l6ZSgpCit7CisgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpOworICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAn
VGhpcyB0ZXN0IHNob3VsZCBiZSBydW4gaW4gdGhlIHRlc3QgaGFybmVzcy4nOworICAgIGludGVy
bmFscy51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNBbmRSdW5Qb3N0TGF5b3V0
VGFza3MoKTsKKworICAgIHZhciBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aW5uZXInKTsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKyAg
ICBpZiAoZGl2U2Nyb2xsUG9zID09IDApCisgICAgICAgIHRlc3RQYXNzZWQoIlJlLXNpemluZyB0
aGUgY29udGVudCBvZiB0aGUgc2Nyb2xsZWQgZGl2IGNvcnJlY3RseSBzZXQgYSBuZXcgc2Nyb2xs
IHBvc2l0aW9uLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUmUtc2l6aW5nIHRo
ZSBjb250ZW50IG9mIHRoZSBzY3JvbGxlZCBkaXYgZmFpbGVkIHRvIGNvcnJlY3RseSBzZXQgYSBu
ZXcgc2Nyb2xsIHBvc2l0aW9uLiAiKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBzY3JvbGxUZXN0KCkKK3sKKyAgICB2YXIgc3RhcnRQb3NYID0gMTUwOwor
ICAgIHZhciBzdGFydFBvc1kgPSAxNTA7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFu
Z2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywg
J25vbmUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51
ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKKwor
ICAgIHNldFRpbWVvdXQoZGVjcmVhc2VDb250ZW50U2l6ZSwgNTAwKTsKK30KKworZnVuY3Rpb24g
c2V0VXAoKSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisK
KyAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJzZXRVcCgpOyI+CisKKzxkaXYgY2xhc3M9Im91dGVy
Ij4KKyAgICA8ZGl2IGlkPSJpbm5lciI+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgorICAg
ICAgICAgICAgPGgxPkxvdHMgYW5kIGxvdHMgb2YgY29udGVudDwvaDE+CisgICAgICAgICAgICA8
cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0
LiBOdWxsYSB0aW5jaWR1bnQgdmVoaWN1bGEgbGVjdHVzLCBpbiBibGFuZGl0IG5pc2wgdGVtcHVz
IGVnZXQuIFN1c3BlbmRpc3NlIGRhcGlidXMsIG5pYmggdml0YWUgc2NlbGVyaXNxdWUgYWxpcXVl
dCwgZWxpdCBsZW8gcGhhcmV0cmEgcmlzdXMsIGluIGNvbnZhbGxpcyB0dXJwaXMgbWFnbmEgYXQg
bG9yZW0uIEluIHBsYWNlcmF0IHBvcnRhIGp1c3RvLCBldSBldWlzbW9kIGV4LiBEb25lYyB1bHRy
aWNpZXMgdmVsaXQgc2VkIHNvbGxpY2l0dWRpbiBpYWN1bGlzLiBQcm9pbiBjb25ndWUgdmVuZW5h
dGlzIGlwc3VtLCBpYWN1bGlzIGJpYmVuZHVtIGZlbGlzIGVsZW1lbnR1bSBhYy4gQ3VyYWJpdHVy
IHNlZCByaG9uY3VzIGVsaXQuIEFlbmVhbiBzaXQgYW1ldCBwb3N1ZXJlIGFyY3UuIEV0aWFtIGVn
ZXQgdGVsbHVzIGVyYXQuIEFsaXF1YW0gZXJhdCB2b2x1dHBhdC4gQWxpcXVhbSBvcm5hcmUgZXgg
ZXQgc29sbGljaXR1ZGluIHB1bHZpbmFyLiBDcmFzIGVsaXQgb3JjaSwgZmVybWVudHVtIG5lYyBh
dWd1ZSBhYywgdml2ZXJyYSB1bHRyaWNpZXMgbWkuIE5hbSBhdCBlcmF0IGFsaXF1ZXQsIGRhcGli
dXMgbmliaCBub24sIGludGVyZHVtIG1hc3NhLiBOYW0gdWxsYW1jb3JwZXIsIHNhcGllbiBpZCBk
aWN0dW0gZWZmaWNpdHVyLCBsZW8gYW50ZSBwb3J0dGl0b3IgbmlzbCwgc2l0IGFtZXQgY29uc2Vx
dWF0IGxlY3R1cyB2ZWxpdCBxdWlzIG5pYmguPC9wPgorICAgICAgICAgICAgPHA+VmVzdGlidWx1
bSBkYXBpYnVzIGFudGUgc2l0IGFtZXQgbWF1cmlzIHZ1bHB1dGF0ZSwgbm9uIGNvbmd1ZSBzZW0g
cHJldGl1bS4gSW50ZWdlciBuZWMgZ3JhdmlkYSByaXN1cy4gU3VzcGVuZGlzc2UgcXVpcyBuaWJo
IHVsdHJpY2llcywgdWx0cmljaWVzIHRlbGx1cyBpbiwgaW50ZXJkdW0gZG9sb3IuIE51bmMgZmV1
Z2lhdCwgZXJvcyBuZWMgZWxlbWVudHVtIHBvcnR0aXRvciwgbG9yZW0gZW5pbSBkaWN0dW0gbGln
dWxhLCB2aXRhZSB2b2x1dHBhdCBlbGl0IG1pIHV0IGRpYW0uIERvbmVjIGF0IGxlY3R1cyBxdWlz
IHJpc3VzIGRhcGlidXMgc29sbGljaXR1ZGluLiBNb3JiaSBwb3J0YSwgbmlzaSB2ZWwgcGVsbGVu
dGVzcXVlIGZlcm1lbnR1bSwgbmlzbCBmZWxpcyBwbGFjZXJhdCB2ZWxpdCwgaWQgdGVtcG9yIG5p
c2kgbGVjdHVzIGVnZXQgZG9sb3IuIEludGVyZHVtIGV0IG1hbGVzdWFkYSBmYW1lcyBhYyBhbnRl
IGlwc3VtIHByaW1pcyBpbiBmYXVjaWJ1cy4gQ3VyYWJpdHVyIGNvbmRpbWVudHVtIG5pc2wgaWQg
bGliZXJvIGN1cnN1cywgYXQgZWdlc3RhcyBlbGl0IHNlbXBlci4gTWF1cmlzIGxvcmVtIGR1aSwg
cnV0cnVtIGlkIGVyb3MgZXUsIGN1cnN1cyB2ZXN0aWJ1bHVtIG9kaW8uIEV0aWFtIHZlbCBsaWJl
cm8gZXQgbnVuYyBzb2RhbGVzIGNvbW1vZG8gZmV1Z2lhdCBncmF2aWRhIHRvcnRvci4gU2VkIG5p
c2kgbGVvLCBmZXVnaWF0IGFjIGx1Y3R1cyBldCwgZmF1Y2lidXMgbm9uIG1hZ25hLjwvcD4KKyAg
ICAgICAgICAgIDxwPlByb2luIHZpdmVycmEgY3Vyc3VzIG1hZ25hLCBhbGlxdWFtIGF1Y3RvciBt
YXVyaXMgbW9sbGlzIGFjLiBTZWQgdmFyaXVzIGZlbGlzIGV4LCBldCB0ZW1wb3IgbmlzbCBsb2Jv
cnRpcyB2aXRhZS4gU3VzcGVuZGlzc2UgYXVndWUgYW50ZSwgcGhhcmV0cmEgcXVpcyBwdXJ1cyBl
dCwgcHVsdmluYXIgcGhhcmV0cmEgbmliaC4gRXRpYW0gYWxpcXVldCBjdXJzdXMgc2FwaWVuLCBh
dCB2aXZlcnJhIGRvbG9yIHZlbmVuYXRpcyBhYy4gTWF1cmlzIHNlbXBlciBiaWJlbmR1bSB1cm5h
IHNlZCB0ZW1wb3IuIFN1c3BlbmRpc3NlIHBsYWNlcmF0LCBtYXVyaXMgYXQgdHJpc3RpcXVlIHVs
dHJpY2llcywgcmlzdXMgbGliZXJvIGNvbmd1ZSBudW5jLCBpZCB2dWxwdXRhdGUgbGlndWxhIGFy
Y3UgaWQgZXJvcy4gVmVzdGlidWx1bSBldCBwb3J0YSBhbnRlLiBNYXVyaXMgbm9uIGRvbG9yIGp1
c3RvLiBDdXJhYml0dXIgdGluY2lkdW50IGRpYW0gaWQgaXBzdW0gcmhvbmN1cyB0ZW1wb3IgdmVs
IGVnZXQgYXVndWUuPC9wPgorICAgICAgICAgICAgPHA+Q3VyYWJpdHVyIGlkIHRlbXB1cyBuZXF1
ZSwgYWMgZmFjaWxpc2lzIHJpc3VzLiBBZW5lYW4gYWxpcXVhbSBlbGVtZW50dW0gdGVsbHVzLCBp
biBpbXBlcmRpZXQgbWF1cmlzIG1heGltdXMgc2VkLiBNb3JiaSBhYyBtaSBpZCBuaXNsIHRpbmNp
ZHVudCB2aXZlcnJhIGFjIHNlZCBtYWduYS4gQWxpcXVhbSBlcmF0IHZvbHV0cGF0LiBOdWxsYSBl
ZmZpY2l0dXIgcmlzdXMgc2FwaWVuLCBzaXQgYW1ldCB2ZWhpY3VsYSBmZWxpcyBiaWJlbmR1bSBz
ZWQuIE51bmMgZWdldCB2ZW5lbmF0aXMgbGVjdHVzLiBQZWxsZW50ZXNxdWUgaWQgdGVtcG9yIGVu
aW0sIHNpdCBhbWV0IHN1c2NpcGl0IGR1aS4gU3VzcGVuZGlzc2UgdGVtcHVzIHRlbGx1cyBtaSwg
bWF0dGlzIHBvc3VlcmUgYW50ZSBwaGFyZXRyYSBxdWlzLiBDcmFzIHBoYXJldHJhIHF1aXMgbWFz
c2EgaWQgc29sbGljaXR1ZGluLiBOdW5jIHZlbCBuaXNpIHRlbXB1cywgZWZmaWNpdHVyIGxhY3Vz
IGF0LCBtb2xlc3RpZSBzZW0uIE51bGxhIGVsaXQgYW50ZSwgbWFsZXN1YWRhIG5lYyBsaWd1bGEg
YWMsIGlhY3VsaXMgYXVjdG9yIHJpc3VzLiBEb25lYyBoZW5kcmVyaXQgbWF1cmlzIHNlbSwgZXUg
cGVsbGVudGVzcXVlIG1pIHNhZ2l0dGlzIGlkLiBBbGlxdWFtIGVyYXQgdm9sdXRwYXQuIEZ1c2Nl
IGFjIHRpbmNpZHVudCBxdWFtLiBTZWQgZWdldCBsYWN1cyBldSBlcmF0IHVsdHJpY2VzIHByZXRp
dW0uPC9wPgorICAgICAgICAgICAgPHA+SW4gZmluaWJ1cyBlbGl0IG5lYyBsaWd1bGEgZWxlaWZl
bmQgdGluY2lkdW50LiBOdW5jIHZlbCBzYXBpZW4gcG9zdWVyZSwgdmVuZW5hdGlzIGVyYXQgdmVs
LCBwdWx2aW5hciBtZXR1cy4gVmVzdGlidWx1bSBhdCBhdWd1ZSBlbGl0LiBOdW5jIHZlaGljdWxh
IHZlbCBudW5jIG5lYyBmcmluZ2lsbGEuIFF1aXNxdWUgdmVsIHF1YW0gbWFnbmEuIEFlbmVhbiBz
Y2VsZXJpc3F1ZSwgbWF1cmlzIHNlZCBtb2xsaXMgY29tbW9kbywgbGFjdXMgbWkgY29uZ3VlIHNl
bSwgcHJldGl1bSBlbGVtZW50dW0gZHVpIG9kaW8gbm9uIG1hdXJpcy4gUXVpc3F1ZSBzZWQgdmVz
dGlidWx1bSBsZWN0dXMuIE51bGxhbSBhbnRlIGFudGUsIHZ1bHB1dGF0ZSB2aXRhZSBtYXR0aXMg
ZXUsIHVsdHJpY2VzIG5vbiBvZGlvLiBDcmFzIGZhdWNpYnVzIHNvZGFsZXMgbGlndWxhLCBpZCBy
dXRydW0gbmVxdWUgZGljdHVtIHNlZC4gU2VkIG1vbGVzdGllIHJpc3VzIGluIG1ldHVzIGRpY3R1
bSBvcm5hcmUuIE1hZWNlbmFzIGNvbnNlY3RldHVyIGVsaXQgbWksIGF0IHN1c2NpcGl0IHRlbGx1
cyBpYWN1bGlzIHV0LiBVdCB0ZW1wdXMgbGVvIGVnZXQgZHVpIHZpdmVycmEgdmVoaWN1bGEuPC9w
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgor
Cg==
</data>
<flag name="review"
          id="274451"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249782</attachid>
            <date>2015-03-30 16:54:44 -0700</date>
            <delta_ts>2015-03-30 17:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-3.txt</filename>
            <type>text/plain</type>
            <size>14015</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjE2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTMwICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTczNDg0KTog
UmVkdWNpbmcgY29udGVudCBvZiBzY3JvbGxhYmxlIHJlZ2lvbiBkb2VzIG5vdCByZXNldCBzY3Jv
bGwgCisgICAgICAgIHBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg1MjUKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8xODE2NjA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBjaGFuZ2UgdGhhdCBjYXVzZWQgdGhpcyByZWdyZXNzaW9u
IHdhcyBjb3JyZWN0LiBUaGF0IGNoYW5nZSBkb2VzIG5vdCBhbGxvdyAKKyAgICAgICAgUmVuZGVy
TGF5ZXIgdG8gdXBkYXRlIHNjcm9sbCBwb3NpdGlvbiBhZnRlciBhIGxheW91dCBpZiBhIHJ1YmJl
ci1iYW5kIGlzIGN1cnJlbnRseSAKKyAgICAgICAgaGFwcGVuaW5nLiBUaGUgY2hhbmdlIGNhdXNl
ZCB0aGlzIHJlZ3Jlc3Npb24gYmVjYXVzZSBhbGwgb2YgdGhlIG1lbWJlciB2YXJpYWJsZXMgCisg
ICAgICAgIGluIFNjcm9sbENvbnRyb2xsZXIgdGhhdCBhdHRlbXB0IHRvIGtlZXAgdHJhY2sgb2Yg
dGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNjcm9sbCAKKyAgICAgICAgZ2VzdHVyZSAobV9pblNj
cm9sbEdlc3R1cmUsIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzLCBhbmQgCisgICAgICAgIG1f
c25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlKSBhbGwgaW5kaWNhdGVkIHRoYXQgYSBtb21lbnR1
bSBzY3JvbGwgZ2VzdHVyZSB3YXMgCisgICAgICAgIHN0aWxsIGluIGFjdGlvbiBmb3IgdGhpcyBk
aXYgZXZlbiB0aG91Z2ggaXQgdmVyeSBtdWNoIGlzIG5vdCB3aGVuIHRoZSBidWcgaGFwcGVucy4g
CisgICAgICAgIFRob3NlIHZhcmlhYmxlcyB3ZXJlIG5ldmVyIHByb3Blcmx5IHJlLXNldCBiZWNh
dXNlIHRoZSAKKyAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCBldmVudHMgbmV2
ZXIgZ290IGRpc3BhdGNoZWQgdG8gdGhlIFNjcm9sbENvbnRyb2xsZXIsIAorICAgICAgICB3aGlj
aCBicm91Z2h0IHRoZSBpbnZlc3RpZ2F0aW9uIGJhY2sgdG8gRWxlbWVudC4KKworICAgICAgICBX
ZSBtdXN0IHN0aWxsIGRpc3BhdGNoIGV2ZW50cyB0aGF0IGhhdmUgemVybyBkZWx0YSBzbyB0aGF0
IHRoZSBkZWZhdWx0IGV2ZW50IAorICAgICAgICBoYW5kbGVycyBjYW4gaGFuZGxlIHRoZW0sIGJ1
dCB3ZSBzaG91bGQgc3RvcFByb3BhZ2F0aW9uKCkgc28gdGhhdCB0aGVzZSBldmVudHMgYXJlIAor
ICAgICAgICBub3Qgc2VudCB0byB0aGUgRE9NLiBXZWJzaXRlcyB3aWxsIGJyZWFrIGlmIHRoZXkg
Z2V0IHdoZWVsIGV2ZW50cyB3aXRoIG5vIGRlbHRhLgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxFdmVudCk6CisKIDIw
MTUtMDMtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVu
dCBFeHRlbnNpb25zXSBGbGVzaCBvdXQgdGhlIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4MjE0NikKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgxLDEwICsyODEsMTYgQEAg
Ym9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUAogCiBib29sIEVsZW1lbnQ6
OmRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogewor
ICAgIFJlZlB0cjxXaGVlbEV2ZW50PiB3aGVlbEV2ZW50ID0gV2hlZWxFdmVudDo6Y3JlYXRlKGV2
ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCkpOworCisgICAgLy8gRXZlbnRzIHdpdGggbm8g
ZGVsdGFzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSB0aGV5IGNvbnZleSBwbGF0Zm9ybSBpbmZvcm1h
dGlvbiBhYm91dCBzY3JvbGwgZ2VzdHVyZXMKKyAgICAvLyBhbmQgbW9tZW50dW0gYmVnaW5uaW5n
IG9yIGVuZGluZy4gSG93ZXZlciwgdGhvc2UgZXZlbnRzIHNob3VsZCBub3QgYmUgc2VudCB0byB0
aGUgRE9NIHNpbmNlIHNvbWUKKyAgICAvLyB3ZWJzaXRlcyB3aWxsIGJyZWFrLiBUaGV5IG5lZWQg
dG8gYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIGRpc3BhdGNoaW5nIHRoZW0gd2lsbCBjYWxsIGludG8g
dGhlIGRlZmF1bHQKKyAgICAvLyBldmVudCBoYW5kbGVyLCBhbmQgb3VyIHBsYXRmb3JtIGNvZGUg
d2lsbCBjb3JyZWN0bHkgaGFuZGxlIHRoZSBwaGFzZSBjaGFuZ2VzLiBDYWxsaW5nIHN0b3BQcm9w
b2dhdGlvbigpCisgICAgLy8gd2lsbCBwcmV2ZW50IHRoZSBldmVudCBmcm9tIGJlaW5nIHNlbnQg
dG8gdGhlIERPTSwgYnV0IHdpbGwgc3RpbGwgY2FsbCB0aGUgZGVmYXVsdCBldmVudCBoYW5kbGVy
LgogICAgIGlmICghZXZlbnQuZGVsdGFYKCkgJiYgIWV2ZW50LmRlbHRhWSgpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgd2hlZWxFdmVudC0+c3RvcFByb3BhZ2F0aW9uKCk7CiAKLSAg
ICBSZWZQdHI8V2hlZWxFdmVudD4gd2hlZWxFdmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShldmVu
dCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpKTsKICAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaEV2ZW50KHRoaXMsIHdoZWVsRXZlbnQpICYmICF3aGVlbEV2ZW50LT5kZWZhdWx0
SGFuZGxlZCgpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODIxNjIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0wMy0zMCAg
QmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjE3
MzQ4NCk6IFJlZHVjaW5nIGNvbnRlbnQgb2Ygc2Nyb2xsYWJsZSByZWdpb24gZG9lcyBub3QgcmVz
ZXQgc2Nyb2xsIAorICAgICAgICBwb3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI1CisgICAgICAgIC1hbmQgY29ycmVzcG9uZGluZy0K
KyAgICAgICAgcmRhcjovL3Byb2JsZW0vMTgxNjYwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2lu
Zy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLXJlZHVjZWQtY29udGVudC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvb3ZlcmZsb3ctc2Nyb2xsLXJlZHVjZWQtY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9s
bC16ZXJvLWRlbHRhLXdoZWVsLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xs
LXplcm8tZGVsdGEtd2hlZWwtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDE1LTAzLTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FjaGVkICJFeHBpcmVzIiBo
ZWFkZXIgaXMgbm90IHVwZGF0ZWQgdXBvbiBzdWNjZXNzZnVsIHJlc291cmNlIHJldmFsaWRhdGlv
bgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9vdmVyZmxvdy1zY3JvbGwtcmVkdWNlZC1jb250ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9vdmVyZmxvdy1zY3JvbGwtcmVkdWNlZC1jb250ZW50LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK1BBU1MgUmUtc2l6aW5nIHRoZSBjb250ZW50IG9mIHRo
ZSBzY3JvbGxlZCBkaXYgY29ycmVjdGx5IHNldCBhIG5ldyBzY3JvbGwgcG9zaXRpb24uCitUaGlz
IHRlc3Qgc2hvdWxkIGJlIHJ1biBpbiB0aGUgdGVzdCBoYXJuZXNzLgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3Jv
bGwtcmVkdWNlZC1jb250ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtcmVkdWNl
ZC1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1yZWR1Y2VkLWNvbnRl
bnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg5IEBACis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLm91dGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgbWFyZ2luOiAx
MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBib3JkZXI6
IDFweCBzb2xpZCBibHVlOworfQorCisjaW5uZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7
CisKKyAgICBvdmVyZmxvdy14OiBoaWRkZW47CisgICAgb3ZlcmZsb3cteTogYXV0bzsgICAgCit9
Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGRlY3JlYXNlQ29udGVudFNp
emUoKQoreworICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRl
bnQnKTsKKyAgICBjb250ZW50LnRleHRDb250ZW50ID0gJ1RoaXMgdGVzdCBzaG91bGQgYmUgcnVu
IGluIHRoZSB0ZXN0IGhhcm5lc3MuJzsKKyAgICBpbnRlcm5hbHMudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzQW5kUnVuUG9zdExheW91dFRhc2tzKCk7CisKKyAgICB2YXIgZGl2
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lubmVyJyk7CisgICAgdmFyIGRpdlNj
cm9sbFBvcyA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisgICAgaWYgKGRpdlNjcm9sbFBvcyA9PSAw
KQorICAgICAgICB0ZXN0UGFzc2VkKCJSZS1zaXppbmcgdGhlIGNvbnRlbnQgb2YgdGhlIHNjcm9s
bGVkIGRpdiBjb3JyZWN0bHkgc2V0IGEgbmV3IHNjcm9sbCBwb3NpdGlvbi4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoIlJlLXNpemluZyB0aGUgY29udGVudCBvZiB0aGUgc2Nyb2xs
ZWQgZGl2IGZhaWxlZCB0byBjb3JyZWN0bHkgc2V0IGEgbmV3IHNjcm9sbCBwb3NpdGlvbi4gIik7
CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsVGVz
dCgpCit7CisgICAgdmFyIHN0YXJ0UG9zWCA9IDE1MDsKKyAgICB2YXIgc3RhcnRQb3NZID0gMTUw
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdiZWdhbicsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdiZWdpbicpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29u
dGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CisKKyAgICBzZXRUaW1lb3V0KGRlY3JlYXNl
Q29udGVudFNpemUsIDUwMCk7Cit9CisKK2Z1bmN0aW9uIHNldFVwKCkgeworICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsVGVzdCwgMCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9h
ZD0ic2V0VXAoKTsiPgorCis8ZGl2IGNsYXNzPSJvdXRlciI+CisgICAgPGRpdiBpZD0iaW5uZXIi
PgorICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAgICAgIDxoMT5Mb3RzIGFuZCBs
b3RzIG9mIGNvbnRlbnQ8L2gxPgorICAgICAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0
IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gTnVsbGEgdGluY2lkdW50IHZlaGlj
dWxhIGxlY3R1cywgaW4gYmxhbmRpdCBuaXNsIHRlbXB1cyBlZ2V0LiBTdXNwZW5kaXNzZSBkYXBp
YnVzLCBuaWJoIHZpdGFlIHNjZWxlcmlzcXVlIGFsaXF1ZXQsIGVsaXQgbGVvIHBoYXJldHJhIHJp
c3VzLCBpbiBjb252YWxsaXMgdHVycGlzIG1hZ25hIGF0IGxvcmVtLiBJbiBwbGFjZXJhdCBwb3J0
YSBqdXN0bywgZXUgZXVpc21vZCBleC4gRG9uZWMgdWx0cmljaWVzIHZlbGl0IHNlZCBzb2xsaWNp
dHVkaW4gaWFjdWxpcy4gUHJvaW4gY29uZ3VlIHZlbmVuYXRpcyBpcHN1bSwgaWFjdWxpcyBiaWJl
bmR1bSBmZWxpcyBlbGVtZW50dW0gYWMuIEN1cmFiaXR1ciBzZWQgcmhvbmN1cyBlbGl0LiBBZW5l
YW4gc2l0IGFtZXQgcG9zdWVyZSBhcmN1LiBFdGlhbSBlZ2V0IHRlbGx1cyBlcmF0LiBBbGlxdWFt
IGVyYXQgdm9sdXRwYXQuIEFsaXF1YW0gb3JuYXJlIGV4IGV0IHNvbGxpY2l0dWRpbiBwdWx2aW5h
ci4gQ3JhcyBlbGl0IG9yY2ksIGZlcm1lbnR1bSBuZWMgYXVndWUgYWMsIHZpdmVycmEgdWx0cmlj
aWVzIG1pLiBOYW0gYXQgZXJhdCBhbGlxdWV0LCBkYXBpYnVzIG5pYmggbm9uLCBpbnRlcmR1bSBt
YXNzYS4gTmFtIHVsbGFtY29ycGVyLCBzYXBpZW4gaWQgZGljdHVtIGVmZmljaXR1ciwgbGVvIGFu
dGUgcG9ydHRpdG9yIG5pc2wsIHNpdCBhbWV0IGNvbnNlcXVhdCBsZWN0dXMgdmVsaXQgcXVpcyBu
aWJoLjwvcD4KKyAgICAgICAgICAgIDxwPlZlc3RpYnVsdW0gZGFwaWJ1cyBhbnRlIHNpdCBhbWV0
IG1hdXJpcyB2dWxwdXRhdGUsIG5vbiBjb25ndWUgc2VtIHByZXRpdW0uIEludGVnZXIgbmVjIGdy
YXZpZGEgcmlzdXMuIFN1c3BlbmRpc3NlIHF1aXMgbmliaCB1bHRyaWNpZXMsIHVsdHJpY2llcyB0
ZWxsdXMgaW4sIGludGVyZHVtIGRvbG9yLiBOdW5jIGZldWdpYXQsIGVyb3MgbmVjIGVsZW1lbnR1
bSBwb3J0dGl0b3IsIGxvcmVtIGVuaW0gZGljdHVtIGxpZ3VsYSwgdml0YWUgdm9sdXRwYXQgZWxp
dCBtaSB1dCBkaWFtLiBEb25lYyBhdCBsZWN0dXMgcXVpcyByaXN1cyBkYXBpYnVzIHNvbGxpY2l0
dWRpbi4gTW9yYmkgcG9ydGEsIG5pc2kgdmVsIHBlbGxlbnRlc3F1ZSBmZXJtZW50dW0sIG5pc2wg
ZmVsaXMgcGxhY2VyYXQgdmVsaXQsIGlkIHRlbXBvciBuaXNpIGxlY3R1cyBlZ2V0IGRvbG9yLiBJ
bnRlcmR1bSBldCBtYWxlc3VhZGEgZmFtZXMgYWMgYW50ZSBpcHN1bSBwcmltaXMgaW4gZmF1Y2li
dXMuIEN1cmFiaXR1ciBjb25kaW1lbnR1bSBuaXNsIGlkIGxpYmVybyBjdXJzdXMsIGF0IGVnZXN0
YXMgZWxpdCBzZW1wZXIuIE1hdXJpcyBsb3JlbSBkdWksIHJ1dHJ1bSBpZCBlcm9zIGV1LCBjdXJz
dXMgdmVzdGlidWx1bSBvZGlvLiBFdGlhbSB2ZWwgbGliZXJvIGV0IG51bmMgc29kYWxlcyBjb21t
b2RvIGZldWdpYXQgZ3JhdmlkYSB0b3J0b3IuIFNlZCBuaXNpIGxlbywgZmV1Z2lhdCBhYyBsdWN0
dXMgZXQsIGZhdWNpYnVzIG5vbiBtYWduYS48L3A+CisgICAgICAgICAgICA8cD5Qcm9pbiB2aXZl
cnJhIGN1cnN1cyBtYWduYSwgYWxpcXVhbSBhdWN0b3IgbWF1cmlzIG1vbGxpcyBhYy4gU2VkIHZh
cml1cyBmZWxpcyBleCwgZXQgdGVtcG9yIG5pc2wgbG9ib3J0aXMgdml0YWUuIFN1c3BlbmRpc3Nl
IGF1Z3VlIGFudGUsIHBoYXJldHJhIHF1aXMgcHVydXMgZXQsIHB1bHZpbmFyIHBoYXJldHJhIG5p
YmguIEV0aWFtIGFsaXF1ZXQgY3Vyc3VzIHNhcGllbiwgYXQgdml2ZXJyYSBkb2xvciB2ZW5lbmF0
aXMgYWMuIE1hdXJpcyBzZW1wZXIgYmliZW5kdW0gdXJuYSBzZWQgdGVtcG9yLiBTdXNwZW5kaXNz
ZSBwbGFjZXJhdCwgbWF1cmlzIGF0IHRyaXN0aXF1ZSB1bHRyaWNpZXMsIHJpc3VzIGxpYmVybyBj
b25ndWUgbnVuYywgaWQgdnVscHV0YXRlIGxpZ3VsYSBhcmN1IGlkIGVyb3MuIFZlc3RpYnVsdW0g
ZXQgcG9ydGEgYW50ZS4gTWF1cmlzIG5vbiBkb2xvciBqdXN0by4gQ3VyYWJpdHVyIHRpbmNpZHVu
dCBkaWFtIGlkIGlwc3VtIHJob25jdXMgdGVtcG9yIHZlbCBlZ2V0IGF1Z3VlLjwvcD4KKyAgICAg
ICAgICAgIDxwPkN1cmFiaXR1ciBpZCB0ZW1wdXMgbmVxdWUsIGFjIGZhY2lsaXNpcyByaXN1cy4g
QWVuZWFuIGFsaXF1YW0gZWxlbWVudHVtIHRlbGx1cywgaW4gaW1wZXJkaWV0IG1hdXJpcyBtYXhp
bXVzIHNlZC4gTW9yYmkgYWMgbWkgaWQgbmlzbCB0aW5jaWR1bnQgdml2ZXJyYSBhYyBzZWQgbWFn
bmEuIEFsaXF1YW0gZXJhdCB2b2x1dHBhdC4gTnVsbGEgZWZmaWNpdHVyIHJpc3VzIHNhcGllbiwg
c2l0IGFtZXQgdmVoaWN1bGEgZmVsaXMgYmliZW5kdW0gc2VkLiBOdW5jIGVnZXQgdmVuZW5hdGlz
IGxlY3R1cy4gUGVsbGVudGVzcXVlIGlkIHRlbXBvciBlbmltLCBzaXQgYW1ldCBzdXNjaXBpdCBk
dWkuIFN1c3BlbmRpc3NlIHRlbXB1cyB0ZWxsdXMgbWksIG1hdHRpcyBwb3N1ZXJlIGFudGUgcGhh
cmV0cmEgcXVpcy4gQ3JhcyBwaGFyZXRyYSBxdWlzIG1hc3NhIGlkIHNvbGxpY2l0dWRpbi4gTnVu
YyB2ZWwgbmlzaSB0ZW1wdXMsIGVmZmljaXR1ciBsYWN1cyBhdCwgbW9sZXN0aWUgc2VtLiBOdWxs
YSBlbGl0IGFudGUsIG1hbGVzdWFkYSBuZWMgbGlndWxhIGFjLCBpYWN1bGlzIGF1Y3RvciByaXN1
cy4gRG9uZWMgaGVuZHJlcml0IG1hdXJpcyBzZW0sIGV1IHBlbGxlbnRlc3F1ZSBtaSBzYWdpdHRp
cyBpZC4gQWxpcXVhbSBlcmF0IHZvbHV0cGF0LiBGdXNjZSBhYyB0aW5jaWR1bnQgcXVhbS4gU2Vk
IGVnZXQgbGFjdXMgZXUgZXJhdCB1bHRyaWNlcyBwcmV0aXVtLjwvcD4KKyAgICAgICAgICAgIDxw
PkluIGZpbmlidXMgZWxpdCBuZWMgbGlndWxhIGVsZWlmZW5kIHRpbmNpZHVudC4gTnVuYyB2ZWwg
c2FwaWVuIHBvc3VlcmUsIHZlbmVuYXRpcyBlcmF0IHZlbCwgcHVsdmluYXIgbWV0dXMuIFZlc3Rp
YnVsdW0gYXQgYXVndWUgZWxpdC4gTnVuYyB2ZWhpY3VsYSB2ZWwgbnVuYyBuZWMgZnJpbmdpbGxh
LiBRdWlzcXVlIHZlbCBxdWFtIG1hZ25hLiBBZW5lYW4gc2NlbGVyaXNxdWUsIG1hdXJpcyBzZWQg
bW9sbGlzIGNvbW1vZG8sIGxhY3VzIG1pIGNvbmd1ZSBzZW0sIHByZXRpdW0gZWxlbWVudHVtIGR1
aSBvZGlvIG5vbiBtYXVyaXMuIFF1aXNxdWUgc2VkIHZlc3RpYnVsdW0gbGVjdHVzLiBOdWxsYW0g
YW50ZSBhbnRlLCB2dWxwdXRhdGUgdml0YWUgbWF0dGlzIGV1LCB1bHRyaWNlcyBub24gb2Rpby4g
Q3JhcyBmYXVjaWJ1cyBzb2RhbGVzIGxpZ3VsYSwgaWQgcnV0cnVtIG5lcXVlIGRpY3R1bSBzZWQu
IFNlZCBtb2xlc3RpZSByaXN1cyBpbiBtZXR1cyBkaWN0dW0gb3JuYXJlLiBNYWVjZW5hcyBjb25z
ZWN0ZXR1ciBlbGl0IG1pLCBhdCBzdXNjaXBpdCB0ZWxsdXMgaWFjdWxpcyB1dC4gVXQgdGVtcHVz
IGxlbyBlZ2V0IGR1aSB2aXZlcnJhIHZlaGljdWxhLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtemVy
by1kZWx0YS13aGVlbC1ldmVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Ny
b2xsLXplcm8tZGVsdGEtd2hlZWwtZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3Zl
cmZsb3ctc2Nyb2xsLXplcm8tZGVsdGEtd2hlZWwtZXZlbnRzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK1BBU1MgV2hlZWwgZXZlbnRzIHdpdGggZGVsdGEgb2Yg
emVybyB3ZXJlIG5vdCBzZW50IHRvIHRoZSBET00uCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLXplcm8t
ZGVsdGEtd2hlZWwtZXZlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtemVyby1k
ZWx0YS13aGVlbC1ldmVudHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLXplcm8t
ZGVsdGEtd2hlZWwtZXZlbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyNzY3JvbGx5IHsKKyAgICBoZWlnaHQ6IDQwMHB4Owor
ICAgIHdpZHRoOiAyMDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibHVlOworCisgICAgb3Zl
cmZsb3cteDogaGlkZGVuOworICAgIG92ZXJmbG93LXk6IGF1dG87Cit9CisKKyNjb250ZW50IHsK
KyAgICBoZWlnaHQ6IDIwMDBweDsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFy
IGRlbHRhT2ZaZXJvID0gZmFsc2U7CisKK2Z1bmN0aW9uIGNoZWNrRm9yWmVybygpCit7CisgICAg
aWYgKGRlbHRhT2ZaZXJvKQorICAgICAgICB0ZXN0RmFpbGVkKCJXaGVlbCBldmVudHMgd2l0aCB6
ZXJvIGRlbHRhIHdlcmUgc2VudCB0byB0aGUgRE9NLiAiKTsKKyAgICBlbHNlCisgICAgICAgIHRl
c3RQYXNzZWQoIldoZWVsIGV2ZW50cyB3aXRoIGRlbHRhIG9mIHplcm8gd2VyZSBub3Qgc2VudCB0
byB0aGUgRE9NLiIpOworCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0
aW9uIGRpZFNjcm9sbChldmVudCkgeworICAgIGlmIChldmVudC53aGVlbERlbHRhWCA9PSAwICYm
IGV2ZW50LndoZWVsRGVsdGFZID09IDApCisgICAgICAgIGRlbHRhT2ZaZXJvID0gdHJ1ZTsKK30K
KworZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCit7CisgICAgdmFyIHN0YXJ0UG9zWCA9IDEwMDsKKyAg
ICB2YXIgc3RhcnRQb3NZID0gMTAwOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdu
b25lJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CisKKyAg
ICBzZXRUaW1lb3V0KGNoZWNrRm9yWmVybywgNTAwKTsKK30KKworZnVuY3Rpb24gc2V0VXAoKSB7
CisgICAgdmFyIHNjcm9sbHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xseSIpOwor
ICAgIHNjcm9sbHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIGRpZFNjcm9sbCk7CisK
KyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBz
ZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keSBvbmxvYWQ9InNldFVwKCk7Ij4KKworPGRpdiBpZD0ic2Nyb2xseSI+CisgICAgPGRp
diBpZD0iY29udGVudCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="274619"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>