<?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>105979</bug_id>
          
          <creation_ts>2013-01-02 17:45:20 -0800</creation_ts>
          <short_desc>getComputedStyle() should return zoom-adjusted offset values</short_desc>
          <delta_ts>2017-05-26 22:00:47 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>29084</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Craven">adammcraven</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>cbiesinger</cc>
    
    <cc>cerimorgan</cc>
    
    <cc>darin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>mike.sherov</cc>
    
    <cc>mithro</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>799138</commentid>
    <comment_count>0</comment_count>
      <attachid>181121</attachid>
    <who name="Adam Craven">adammcraven</who>
    <bug_when>2013-01-02 17:45:20 -0800</bug_when>
    <thetext>Created attachment 181121
Test Case

In WebKit, getComputedStyle() returns scaled values (seems to be +10%) for properties such as left, right, top and bottom (when the &apos;position&apos; of an element is &apos;relative&apos;). This makes it impossible to rely on these values.

Firefox reports the values accurately.

Please see the attached test case.


The jQuery community has stumbled upon the issue a few times over the years... This issue prevents jQuery.animate() from functioning correctly in WebKit. http://bugs.jquery.com/ticket/4993#comment:9
An example of that issue can be seen here: http://jsfiddle.net/sFYjc/2/


Related to https://bugs.webkit.org/show_bug.cgi?id=32230</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799150</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Craven">adammcraven</who>
    <bug_when>2013-01-02 17:59:38 -0800</bug_when>
    <thetext>To be more accurate, forget about &quot;(seems to be +10%)&quot;... it is scaled according to the zoom level... The 10% is for when the zoom is 110%...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799151</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Sherov">mike.sherov</who>
    <bug_when>2013-01-02 18:03:37 -0800</bug_when>
    <thetext>Please correct the title to getComputedStyle please. There&apos;s a typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799155</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Craven">adammcraven</who>
    <bug_when>2013-01-02 18:18:39 -0800</bug_when>
    <thetext>Sorry, typo fixed...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834451</commentid>
    <comment_count>4</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-15 16:11:10 -0800</bug_when>
    <thetext>Seems wrong. Thanks for the report and the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834524</commentid>
    <comment_count>5</comment_count>
      <attachid>188671</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-15 17:15:43 -0800</bug_when>
    <thetext>Created attachment 188671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834772</commentid>
    <comment_count>6</comment_count>
      <attachid>188671</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 12:43:11 -0800</bug_when>
    <thetext>Comment on attachment 188671
Patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:670
&gt; +        return zoomAdjustedPixelValue(l.value(), style);

Does this work correctly when &quot;l&quot; is a percentage? The test case does not cover that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836538</commentid>
    <comment_count>7</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-19 10:43:23 -0800</bug_when>
    <thetext>Good point, I&apos;ll make sure to add tests for percentage values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836848</commentid>
    <comment_count>8</comment_count>
      <attachid>189181</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-19 15:22:30 -0800</bug_when>
    <thetext>Created attachment 189181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838855</commentid>
    <comment_count>9</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-21 14:40:36 -0800</bug_when>
    <thetext>Darin, when you get a chance could you please take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839710</commentid>
    <comment_count>10</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-22 10:30:23 -0800</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842075</commentid>
    <comment_count>11</comment_count>
      <attachid>189181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-26 09:21:49 -0800</bug_when>
    <thetext>Comment on attachment 189181
Patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:662
&gt; +        renderer-&gt;document()-&gt;updateLayoutIgnorePendingStylesheets();
&gt; +        LayoutUnit containingBlockSize = (propertyID == CSSPropertyLeft || propertyID == CSSPropertyRight) ?
&gt; +            toRenderBox(renderer)-&gt;containingBlockLogicalWidthForContent() :
&gt; +            toRenderBox(renderer)-&gt;containingBlockLogicalHeightForContent(ExcludeMarginBorderPadding);

This code sequence is incorrect. Calling updateLayout can result in the renderer being destroyed, so it’s not safe to use renderer after that. The renderer may no longer exist, or may not be a box.

Generally speaking, when we update layout, all renderers are invalid and must be refetched. I believe that includes renderView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842078</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-26 09:22:51 -0800</bug_when>
    <thetext>Typically this means that calls to updateLayout need to be made at a higher level, not inside functions that take render tree arguments, but before even fetching the renderers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842309</commentid>
    <comment_count>13</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-02-26 13:27:00 -0800</bug_when>
    <thetext>Oh, of course. That makes more sense. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851299</commentid>
    <comment_count>14</comment_count>
    <who name="Mike Sherov">mike.sherov</who>
    <bug_when>2013-03-08 10:19:29 -0800</bug_when>
    <thetext>Will this patch also fix the values for offsetWidth and offsetHeight?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851302</commentid>
    <comment_count>15</comment_count>
    <who name="Mike Sherov">mike.sherov</who>
    <bug_when>2013-03-08 10:20:57 -0800</bug_when>
    <thetext>offsetWidth and offsetHeight are manifesting themselves as http://bugs.jquery.com/ticket/13543 in jQuery Core.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851305</commentid>
    <comment_count>16</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-08 10:25:13 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; offsetWidth and offsetHeight are manifesting themselves as http://bugs.jquery.com/ticket/13543 in jQuery Core.

No, that has to do with our pixel-snapping logic (see http://trac.webkit.org/wiki/LayoutUnit). For precise box metrics we recommend using getBoundingClientRect which returns values with decimal precision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851567</commentid>
    <comment_count>17</comment_count>
      <attachid>192295</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-08 15:39:19 -0800</bug_when>
    <thetext>Created attachment 192295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852683</commentid>
    <comment_count>18</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-11 13:53:37 -0700</bug_when>
    <thetext>(In reply to comment #11)

Found a better way to do it, thanks. Please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856181</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-15 12:17:38 -0700</bug_when>
    <thetext>I thought christian had recently posted a patch for this?  I must be confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856240</commentid>
    <comment_count>20</comment_count>
    <who name="Christian Biesinger">cbiesinger</who>
    <bug_when>2013-03-15 13:25:42 -0700</bug_when>
    <thetext>I didn&apos;t post a patch for this... I was mostly working on flexbox stuff lately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856260</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-15 13:50:47 -0700</bug_when>
    <thetext>Sorry, I&apos;m thinking of Mithro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856262</commentid>
    <comment_count>22</comment_count>
    <who name="Mike Sherov">mike.sherov</who>
    <bug_when>2013-03-15 13:53:48 -0700</bug_when>
    <thetext>Just chiming in here: Mithro is working on https://bugs.webkit.org/show_bug.cgi?id=29084, which hits similar code paths.

jQuery is eagerly awaiting both of these fixes ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864359</commentid>
    <comment_count>23</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-27 03:32:03 -0700</bug_when>
    <thetext>29084 hasn&apos;t been updated in weeks. What do you want me to do with this bug? Mark it as a duplicate or land it in preparation for the other change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865144</commentid>
    <comment_count>24</comment_count>
    <who name="Tim &apos;mithro&apos; Ansell">mithro</who>
    <bug_when>2013-03-27 20:48:42 -0700</bug_when>
    <thetext>Hi eae,

Sorry about blocking you, I&apos;ve been away on holidays for the last two weeks (attending PyCon in the US). I&apos;ll be back onto this as my first priority after the Easter break (I may get to some of it today too).

In my bug I have feedback from Eric that I need to respond too and I&apos;d like to merge your test into my patch to make sure it covers all your issues.

Looking at your code, your test seems to only cover a small section of these usage for these values. Does your patch break any of the other layout tests?

Sorry once again.

 - Tim &apos;mithro&apos; Ansell</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865296</commentid>
    <comment_count>25</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-28 03:03:14 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Looking at your code, your test seems to only cover a small section of these usage for these values. Does your patch break any of the other layout tests?

No worries. The new tests covers how zoomed values are handled, it doesn&apos;t try to test any of the existing behavior as we already have other tests for that. The cr-linux and mac ews bots runs the tests and as you can see they are both green indicating that all tests pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180410</commentid>
    <comment_count>26</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-04-04 10:43:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/25531120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313368</commentid>
    <comment_count>27</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-26 22:00:47 -0700</bug_when>
    <thetext>This will be fixed by the patch in bug 29084.

*** This bug has been marked as a duplicate of bug 29084 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>181121</attachid>
            <date>2013-01-02 17:45:20 -0800</date>
            <delta_ts>2013-01-02 17:45:20 -0800</delta_ts>
            <desc>Test Case</desc>
            <filename>testcase.html</filename>
            <type>text/html</type>
            <size>2051</size>
            <attacher name="Adam Craven">adammcraven</attacher>
            
              <data encoding="base64">DQo8IWRvY3R5cGUgaHRtbD4NCg0KPGh0bWw+DQoNCgk8aGVhZD4NCgkNCgkJPHRpdGxlPldlYktp
dDogZ2V0Q29tcHV0ZWRTdHlsZSgpIGFuZCBmdWxsLXBhZ2Ugem9vbTwvdGl0bGU+DQoJCQ0KCQk8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQ0KCQkJd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgew0KCQkJCQ0KCQkJCWZ1bmN0aW9uIHVwZGF0ZSgpIHsNCgkJCQkNCgkJCQkJdmFy
IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RlZScpOw0KCQkJCQl2YXIgc3R5bGUg
PSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCAnJyk7DQoJCQkJCQkN
CgkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1mb250c2l6ZScpLnZhbHVlID0g
c3R5bGUuZm9udFNpemU7DQoJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtd2lk
dGgnKS52YWx1ZSA9IHN0eWxlLndpZHRoOw0KCQkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0LWhlaWdodCcpLnZhbHVlID0gc3R5bGUuaGVpZ2h0Ow0KCQkJCQkNCgkJCQkJZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1sZWZ0JykudmFsdWUgPSBzdHlsZS5sZWZ0Ow0KCQkJ
CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXJpZ2h0JykudmFsdWUgPSBzdHlsZS5y
aWdodDsNCgkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC10b3AnKS52YWx1ZSA9
IHN0eWxlLnRvcDsNCgkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1ib3R0b20n
KS52YWx1ZSA9IHN0eWxlLmJvdHRvbTsNCgkJCQl9DQoJCQkJDQoJCQkJdXBkYXRlKCk7DQoJCQkJ
DQoJCQkJc2V0SW50ZXJ2YWwodXBkYXRlLCAxMDAwKTsNCgkJDQoJCQl9Ow0KCQkJDQoJCTwvc2Ny
aXB0Pg0KDQoJPC9oZWFkPg0KDQoJPGJvZHk+DQoNCgkJPGgyPlRlc3QgZWxlbWVudDwvaDI+DQoN
CgkJPGRpdiBpZD0idGVzdGVlIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MTAwcHg7
cmlnaHQ6MTAwcHg7dG9wOjEwMHB4O2JvdHRvbToxMDBweDsgYm9yZGVyOiAxcHggc29saWQgcmVk
OyBmb250LXNpemU6IDIwcHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAxMDBweDsiPkxvcmVtIGlw
c3VtPC9kaXY+DQoNCgkJPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjEwMHB4Ij5UaGVzZSB2YWx1ZXMg
c2hvdWxkIG5vdCBjaGFuZ2Ugd2hpbGUgem9vbWluZyBpbi9vdXQ6PC9oMj4NCg0KCQk8ZGw+DQoJ
CQk8ZHQ+Z2V0Q29tcHV0ZWRTdHlsZSgpLmxlZnQ8L2R0Pg0KCQkJPGRkPjxpbnB1dCBpZD0icmVz
dWx0LWxlZnQiIHJlYWRvbmx5PSJyZWFkb25seSIgLz48L2RkPg0KCQkJPGR0PmdldENvbXB1dGVk
U3R5bGUoKS5yaWdodDwvZHQ+DQoJCQk8ZGQ+PGlucHV0IGlkPSJyZXN1bHQtcmlnaHQiIHJlYWRv
bmx5PSJyZWFkb25seSIgLz48L2RkPg0KCQkJPGR0PmdldENvbXB1dGVkU3R5bGUoKS50b3A8L2R0
Pg0KCQkJPGRkPjxpbnB1dCBpZD0icmVzdWx0LXRvcCIgcmVhZG9ubHk9InJlYWRvbmx5IiAvPjwv
ZGQ+DQoJCQk8ZHQ+Z2V0Q29tcHV0ZWRTdHlsZSgpLmJvdHRvbTwvZHQ+DQoJCQk8ZGQ+PGlucHV0
IGlkPSJyZXN1bHQtYm90dG9tIiByZWFkb25seT0icmVhZG9ubHkiIC8+PC9kZD4JCQkNCgkJCTxk
dD4mbmJzcDs8L2R0PjxkZC8+DQoJCQk8ZHQ+Z2V0Q29tcHV0ZWRTdHlsZSgpLmZvbnRTaXplPC9k
dD4NCgkJCTxkZD48aW5wdXQgaWQ9InJlc3VsdC1mb250c2l6ZSIgcmVhZG9ubHk9InJlYWRvbmx5
IiAvPjwvZGQ+DQoJCQk8ZHQ+Z2V0Q29tcHV0ZWRTdHlsZSgpLndpZHRoPC9kdD4NCgkJCTxkZD48
aW5wdXQgaWQ9InJlc3VsdC13aWR0aCIgcmVhZG9ubHk9InJlYWRvbmx5IiAvPjwvZGQ+DQoJCQk8
ZHQ+Z2V0Q29tcHV0ZWRTdHlsZSgpLmhlaWdodDwvZHQ+DQoJCQk8ZGQ+PGlucHV0IGlkPSJyZXN1
bHQtaGVpZ2h0IiByZWFkb25seT0icmVhZG9ubHkiIC8+PC9kZD4NCgkJPC9kbD4NCg0KCQk8ZW0+
KHZhbHVlcyB1cGRhdGUgZXZlcnkgMTAwMG1zKTwvZW0+DQoNCgk8L2JvZHk+DQoNCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188671</attachid>
            <date>2013-02-15 17:15:43 -0800</date>
            <delta_ts>2013-02-19 15:22:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105979-20130215171209.patch</filename>
            <type>text/plain</type>
            <size>5516</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzA3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTE1ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBnZXRDb21wdXRlZFN0eWxlKCkg
c2hvdWxkIHJldHVybiB6b29tLWFkanVzdGVkIG9mZnNldCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTk3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgZ2V0Q29tcHV0ZWRTdHls
ZSgpLnRvcHxyaWdodHxib3R0b218bGVmdCBjdXJyZW50bHkgZmFpbHMgdG8KKyAgICAgICAgYWNj
b3VudCBmb3Igem9vbSBmb3IgcG9zaXRpb25lZCBlbGVtZW50cy4KKworICAgICAgICBUZXN0OiBm
YXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwKKworICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG9z
aXRpb25PZmZzZXRWYWx1ZSk6CisgICAgICAgIEFkanVzdCB2YWx1ZSB1c2luZyB6b29tQWRqdXN0
ZWRQaXhlbFZhbHVlIGZvciB0aGUKKyAgICAgICAgaGFzSW5GbG93UG9zaXRpb24gY2FzZS4KKwog
MjAxMy0wMi0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDb25zdHJhaW4gZml4ZWQgbGF5ZXJzIHRvIHRoZSB2aWV3cG9ydCwgbm90IHRoZSBkb2N1
bWVudApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDE0MzA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjcsNyAr
NjY3LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFBvc2l0aW9uTwogICAgICAg
ICAvLyBGSVhNRTogSXQncyBub3QgZW5vdWdoIHRvIHNpbXBseSByZXR1cm4gImF1dG8iIHZhbHVl
cyBmb3Igb25lIG9mZnNldCBpZiB0aGUgb3RoZXIgc2lkZSBpcyBkZWZpbmVkLgogICAgICAgICAv
LyBJbiBvdGhlciB3b3JkcyBpZiBsZWZ0IGlzIGF1dG8gYW5kIHJpZ2h0IGlzIG5vdCBhdXRvLCB0
aGVuIGxlZnQncyBjb21wdXRlZCB2YWx1ZSBpcyBuZWdhdGl2ZSByaWdodCgpLgogICAgICAgICAv
LyBTbyB3ZSBzaG91bGQgZ2V0IHRoZSBvcHBvc2l0ZSBsZW5ndGggdW5pdCBhbmQgc2VlIGlmIGl0
IGlzIGF1dG8uCi0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShsKTsK
KyAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUobC52YWx1ZSgpLCBzdHlsZSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1
ZShDU1NWYWx1ZUF1dG8pOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMDczKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMTUg
IEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIGdldENvbXB1dGVk
U3R5bGUoKSBzaG91bGQgcmV0dXJuIHpvb20tYWRqdXN0ZWQgb2Zmc2V0IHZhbHVlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1OTc5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgdGVz
dCBmb3IgY2hlY2tpbmcgdGhlIGNvbXB1dGVkIG9mZnNldCB3aGVuIHpvb21lZC4KKworICAgICAg
ICAqIGZhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWw6IEFk
ZGVkLgorCiAyMDEzLTAyLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIENvbnN0cmFpbiBmaXhlZCBsYXllcnMgdG8gdGhlIHZpZXdwb3J0LCBub3Qg
dGhlIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQt
d2l0aC16b29tLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbGVtZW50KS50b3AgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0ZXN0RWxlbWVudCkucmlnaHQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCkuYm90dG9tIGlzICcxMDBweCcKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLmxlZnQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCkudG9wIGlzICcxMDBweCcKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLnJpZ2h0IGlzICcxMDBweCcKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLmJvdHRvbSBpcyAnMTAwcHgnCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50KS5sZWZ0IGlzICcxMDBweCcKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLnRvcCBpcyAnMTAwcHgnCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50KS5yaWdodCBpcyAnMTAwcHgn
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50KS5ib3R0b20gaXMgJzEw
MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCkubGVmdCBpcyAn
MTAwcHgnCitSZXBvcnRlZCBjb21wdXRlZCBvZmZzZXQgc2hvdWxkIG5vdCBjaGFuZ2Ugd2l0aCB6
b29tIGxldmVsLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1
dGVkLW9mZnNldC13aXRoLXpvb20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICN0ZXN0IHsKKyAgICAgICAgICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAg
ICAgICAgICAgcmlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAg
ICAgICAgICAgICAgYm90dG9tOiAxMDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCByZWQ7CisgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
ICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxwPgorICAgICAgICAgICAgUmVwb3J0ZWQgY29tcHV0ZWQgb2Zmc2V0IHNob3Vs
ZCBub3QgY2hhbmdlIHdpdGggem9vbSBsZXZlbC4KKyAgICAgICAgPC9wPgorICAgICAgICA8ZGl2
IGlkPSJ0ZXN0Ij48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciB0ZXN0
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICAgICAgICAgICBm
dW5jdGlvbiB0ZXN0KHpvb21MZXZlbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS56b29tID0gem9vbUxldmVsOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLnRvcCIs
ICInMTAwcHgnIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCkucmlnaHQiLCAiJzEwMHB4JyIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpLmJv
dHRvbSIsICInMTAwcHgnIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCkubGVmdCIsICInMTAwcHgnIik7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0ZXN0KDAuNSk7CisgICAgICAgICAgICB0ZXN0KDEuMzMpOwor
ICAgICAgICAgICAgdGVzdCgxLjApOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRl
ZC1vZmZzZXQtd2l0aC16b29tLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189181</attachid>
            <date>2013-02-19 15:22:30 -0800</date>
            <delta_ts>2013-02-26 13:27:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105979-20130219151852.patch</filename>
            <type>text/plain</type>
            <size>13126</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzM4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTE1ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBnZXRDb21wdXRlZFN0eWxlKCkg
c2hvdWxkIHJldHVybiB6b29tLWFkanVzdGVkIG9mZnNldCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTk3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgZ2V0Q29tcHV0ZWRTdHls
ZSgpLnRvcHxyaWdodHxib3R0b218bGVmdCBjdXJyZW50bHkgZmFpbHMgdG8KKyAgICAgICAgYWNj
b3VudCBmb3Igem9vbSBmb3IgcG9zaXRpb25lZCBlbGVtZW50cy4gRnVydGhlcm1vcmUgZm9yCisg
ICAgICAgIHBlcmNlbnRhZ2UgdmFsdWVzIGl0IHJldHVybmVkIHRoZSBwZXJjZW50YWdlIHJhdGhl
ciB0aGFuIHRoZQorICAgICAgICBjb21wdXRlZCB2YWx1ZSBhbmQgZm9yIHZpZXdwb3J0IHBlcmNl
bnRhZ2UgdW5pdHMgaXQgcmV0dXJuZWQKKyAgICAgICAgYXV0by4KKworICAgICAgICBUZXN0OiBm
YXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwKKworICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG9z
aXRpb25PZmZzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICBVbmlmeSB0aGUgaGFzT3V0
T2ZGbG93UG9zaXRpb24gYW5kIGhhc0luRmxvd1Bvc2l0aW9uIGNvZGUgcGF0aHMsCisgICAgICAg
IHJlc29sdmUgcGVyY2VudGFnZSBhbmQgdmlld3BvcnQgcGVyY2VudGFnZSB1bml0cyBhbmQgYWRq
dXN0IGZvcgorICAgICAgICB6b29tLgorCiAyMDEzLTAyLTE5ICBFbGxpb3R0IFNwcmVobiAgPGVz
cHJlaG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBSZW5kZXJUZXh0Ojp1cGRhdGVU
ZXh0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMTQzMDQ0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzMiw3ICs2
MzIsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNyZWF0ZVBvCiAgICAgcmV0
dXJuIHBvc2l0aW9uTGlzdC5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KQorc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJl
bmRlclZpZXcqIHJlbmRlclZpZXcpCiB7CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC02NTUsMjIgKzY1NSwyMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0
UG9zaXRpb25PCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoc3R5bGUt
Pmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpIHsKLSAgICAgICAgaWYgKGwudHlwZSgpID09IFdlYkNv
cmU6OkZpeGVkKQotICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUobC52
YWx1ZSgpLCBzdHlsZSk7Ci0gICAgICAgIGVsc2UgaWYgKGwuaXNWaWV3cG9ydFBlcmNlbnRhZ2Uo
KSkKLSAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHZhbHVlRm9yTGVu
Z3RoKGwsIDAsIHJlbmRlclZpZXcpLCBzdHlsZSk7Ci0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShsKTsKLSAgICB9Ci0KLSAgICBpZiAoc3R5bGUtPmhhc0luRmxvd1Bv
c2l0aW9uKCkpIHsKKyAgICBpZiAobC5pc1BlcmNlbnQoKSAmJiByZW5kZXJlciAmJiByZW5kZXJl
ci0+aXNCb3goKSkgeworICAgICAgICByZW5kZXJlci0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIExheW91dFVuaXQgY29udGFpbmlu
Z0Jsb2NrU2l6ZSA9IChwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5TGVmdCB8fCBwcm9wZXJ0eUlE
ID09IENTU1Byb3BlcnR5UmlnaHQpID8KKyAgICAgICAgICAgIHRvUmVuZGVyQm94KHJlbmRlcmVy
KS0+Y29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yQ29udGVudCgpIDoKKyAgICAgICAgICAg
IHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvckNv
bnRlbnQoRXhjbHVkZU1hcmdpbkJvcmRlclBhZGRpbmcpOworICAgICAgICByZXR1cm4gem9vbUFk
anVzdGVkUGl4ZWxWYWx1ZSh2YWx1ZUZvckxlbmd0aChsLCBjb250YWluaW5nQmxvY2tTaXplLCAw
KSwgc3R5bGUpOworICAgIH0gaWYgKGwuaXNWaWV3cG9ydFBlcmNlbnRhZ2UoKSkKKyAgICAgICAg
cmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUodmFsdWVGb3JMZW5ndGgobCwgMCwgcmVuZGVy
VmlldyksIHN0eWxlKTsKKyAgICBpZiAobC5pc0F1dG8oKSkgewogICAgICAgICAvLyBGSVhNRTog
SXQncyBub3QgZW5vdWdoIHRvIHNpbXBseSByZXR1cm4gImF1dG8iIHZhbHVlcyBmb3Igb25lIG9m
ZnNldCBpZiB0aGUgb3RoZXIgc2lkZSBpcyBkZWZpbmVkLgogICAgICAgICAvLyBJbiBvdGhlciB3
b3JkcyBpZiBsZWZ0IGlzIGF1dG8gYW5kIHJpZ2h0IGlzIG5vdCBhdXRvLCB0aGVuIGxlZnQncyBj
b21wdXRlZCB2YWx1ZSBpcyBuZWdhdGl2ZSByaWdodCgpLgogICAgICAgICAvLyBTbyB3ZSBzaG91
bGQgZ2V0IHRoZSBvcHBvc2l0ZSBsZW5ndGggdW5pdCBhbmQgc2VlIGlmIGl0IGlzIGF1dG8uCiAg
ICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShsKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0
byk7CisgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgobCwgc3R5bGUp
OwogfQogCiBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcihSZW5kZXJTdHlsZSogc3R5bGUsIGNv
bnN0IENvbG9yJiBjb2xvcikgY29uc3QKQEAgLTE3NDcsNyArMTc0Nyw3IEBAIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlckxlZnRXaWR0aDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVl
KHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgc3R5bGUuZ2V0KCkpOwogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm90dG9tOgotICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFs
dWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5Qm90dG9tLCBtX25vZGUtPmRvY3VtZW50KCktPnJl
bmRlclZpZXcoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShz
dHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlCb3R0b20sIHJlbmRlcmVyLCBtX25vZGUtPmRvY3VtZW50
KCktPnJlbmRlclZpZXcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hBbGln
bjoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+
Ym94QWxpZ24oKSk7CiAjaWYgRU5BQkxFKENTU19CT1hfREVDT1JBVElPTl9CUkVBSykKQEAgLTE5
NzUsNyArMTk3NSw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMK
ICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHlsZS0+aW1h
Z2VSZXNvbHV0aW9uKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCk7CiAjZW5kaWYKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRp
b25PZmZzZXRWYWx1ZShzdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlMZWZ0LCBtX25vZGUtPmRvY3Vt
ZW50KCktPnJlbmRlclZpZXcoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZz
ZXRWYWx1ZShzdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlMZWZ0LCByZW5kZXJlciwgbV9ub2RlLT5k
b2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGV0dGVy
U3BhY2luZzoKICAgICAgICAgICAgIGlmICghc3R5bGUtPmxldHRlclNwYWNpbmcoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlTm9ybWFsKTsKQEAgLTIxMTgsNyArMjExOCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0aW9uOgog
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT5wb3Np
dGlvbigpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgICAgICAgICAgcmV0
dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5UmlnaHQs
IG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKKyAgICAgICAgICAgIHJldHVybiBn
ZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eVJpZ2h0LCByZW5k
ZXJlciwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0UnVieVBvc2l0aW9uOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT5ydWJ5UG9zaXRpb24oKSk7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlUYWJsZUxheW91dDoKQEAgLTIxODYsNyArMjE4Niw3IEBAIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRl
eHRUcmFuc2Zvcm06CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUoc3R5bGUtPnRleHRUcmFuc2Zvcm0oKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6
Ci0gICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShzdHlsZS5nZXQoKSwg
Q1NTUHJvcGVydHlUb3AsIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKKyAgICAg
ICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9w
ZXJ0eVRvcCwgcmVuZGVyZXIsIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpOgogICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT51bmljb2RlQmlkaSgpKTsKICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDMzODQp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxMy0wMi0xNSAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgZ2V0Q29tcHV0ZWRTdHlsZSgpIHNob3VsZCByZXR1cm4gem9vbS1hZGp1c3RlZCBvZmZzZXQg
dmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDU5NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIEFkZCB0ZXN0IGZvciBjaGVja2luZyB0aGUgY29tcHV0ZWQgb2Zmc2V0IHdoZW4gem9v
bWVkLgorCisgICAgICAgICogZmFzdC9jc3MvY29tcHV0ZWQtb2Zmc2V0LXdpdGgtem9vbS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRo
LXpvb20uaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMTkgIEdsZW5uIEFkYW1zICA8Z2xlbm5Ac2t5
bmF2LmNvbT4KIAogICAgICAgICBDU1MzOiBhZGQgbGluZS1icmVhayB0ZXN0cywgaW5pdGlhbGx5
IHNraXBwaW5nIG9uIGFsbCBwbGF0Zm9ybXMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29tcHV0ZWQtb2Zmc2V0LXdpdGgt
em9vbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS50b3AgaXMgJzEwMHB4JworUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1lbnQpLnJpZ2h0IGlzICcxMDBweCcKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5ib3R0b20gaXMgJzEwMHB4
JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1lbnQpLmxlZnQgaXMgJzEw
MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkudG9w
IGlzICc1MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVu
dCkucmlnaHQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50
YWdlRWxlbWVudCkuYm90dG9tIGlzICc1MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShwZXJjZW50YWdlRWxlbWVudCkubGVmdCBpcyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkudG9wIGlzICcxMjBweCcKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS5yaWdodCBpcyAnMTYwcHgnCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkuYm90dG9tIGlzICcxMjBweCcK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS5sZWZ0IGlzICcx
NjBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS50b3AgaXMg
JzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1lbnQpLnJpZ2h0
IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5i
b3R0b20gaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1l
bnQpLmxlZnQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50
YWdlRWxlbWVudCkudG9wIGlzICc1MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShw
ZXJjZW50YWdlRWxlbWVudCkucmlnaHQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkuYm90dG9tIGlzICc1MHB4JworUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkubGVmdCBpcyAnMTAwcHgnCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkudG9wIGlzICc0OHB4Jwor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1lbnQpLnJpZ2h0IGlzICc2
NHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1lbnQpLmJvdHRv
bSBpcyAnNDhweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50
KS5sZWZ0IGlzICc2NHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1l
bnQpLnRvcCBpcyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxl
bWVudCkucmlnaHQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhl
ZEVsZW1lbnQpLmJvdHRvbSBpcyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGZpeGVkRWxlbWVudCkubGVmdCBpcyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS50b3AgaXMgJzUwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS5yaWdodCBpcyAnMTAwcHgnCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS5ib3R0b20gaXMgJzUwcHgnCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS5sZWZ0IGlzICcx
MDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS50b3Ag
aXMgJzYwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCku
cmlnaHQgaXMgJzgwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxl
bWVudCkuYm90dG9tIGlzICc2MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3
cG9ydEVsZW1lbnQpLmxlZnQgaXMgJzgwcHgnCitSZXBvcnRlZCBjb21wdXRlZCBvZmZzZXQgc2hv
dWxkIG5vdCBjaGFuZ2Ugd2l0aCB6b29tIGxldmVsLgorCisKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20tZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0
aC16b29tLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNjb250
YWluZXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDUwMHB4OworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICNjb250YWluZXIgPiBkaXYgeworICAgICAgICAgICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBy
ZWQ7CisgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAg
fQorICAgICAgICAgICAgI3Rlc3QtZml4ZWQgIHsKKyAgICAgICAgICAgICAgICBsZWZ0OiAxMDBw
eDsKKyAgICAgICAgICAgICAgICByaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgdG9wOiAx
MDBweDsKKyAgICAgICAgICAgICAgICBib3R0b206IDEwMHB4OworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgI3Rlc3QtcGVyY2VudGFnZSB7CisgICAgICAgICAgICAgICAgbGVmdDogMjAlOwor
ICAgICAgICAgICAgICAgIHJpZ2h0OiAyMCU7CisgICAgICAgICAgICAgICAgdG9wOiAxMCU7Cisg
ICAgICAgICAgICAgICAgYm90dG9tOiAxMCU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAj
dGVzdC12aWV3cG9ydCB7CisgICAgICAgICAgICAgICAgbGVmdDogMTB2dzsKKyAgICAgICAgICAg
ICAgICByaWdodDogMTB2dzsKKyAgICAgICAgICAgICAgICB0b3A6IDEwdmg7CisgICAgICAgICAg
ICAgICAgYm90dG9tOiAxMHZoOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgUmVw
b3J0ZWQgY29tcHV0ZWQgb2Zmc2V0IHNob3VsZCBub3QgY2hhbmdlIHdpdGggem9vbSBsZXZlbC4K
KyAgICAgICAgPC9wPgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgICAgICAg
PGRpdiBpZD0idGVzdC1maXhlZCI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0LXBl
cmNlbnRhZ2UiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0idGVzdC12aWV3cG9ydCI+PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIGZp
eGVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWZpeGVkJyk7CisgICAg
ICAgICAgICB2YXIgcGVyY2VudGFnZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdC1wZXJjZW50YWdlJyk7CisgICAgICAgICAgICB2YXIgdmlld3BvcnRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qtdmlld3BvcnQnKTsKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHRlc3Qoem9vbUxldmVsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnN0eWxlLnpvb20gPSB6b29tTGV2ZWw7CisgICAgICAgICAgICAgICAgICAg
IHZhciB3aW5kb3dXaWR0aCA9ICInIiArICh3aW5kb3cuaW5uZXJXaWR0aCAvIDEwIC8gem9vbUxl
dmVsKSArICJweCciOworICAgICAgICAgICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gIici
ICsgKHdpbmRvdy5pbm5lckhlaWdodCAvIDEwIC8gem9vbUxldmVsKSArICJweCciOworICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCkudG9wIiwgIicxMDBweCciKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCku
cmlnaHQiLCAiJzEwMHB4JyIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5ib3R0b20iLCAiJzEwMHB4JyIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRF
bGVtZW50KS5sZWZ0IiwgIicxMDBweCciKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdl
RWxlbWVudCkudG9wIiwgIic1MHB4JyIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
d2luZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2VudGFnZUVsZW1lbnQpLnJpZ2h0IiwgIicxMDBw
eCciKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS5ib3R0b20iLCAiJzUwcHgnIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVu
dCkubGVmdCIsICInMTAwcHgnIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50
KS50b3AiLCB3aW5kb3dIZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS5yaWdodCIsIHdpbmRvd1dpZHRo
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHZpZXdwb3J0RWxlbWVudCkuYm90dG9tIiwgd2luZG93SGVpZ2h0KTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCku
bGVmdCIsIHdpbmRvd1dpZHRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3QoMC41
KTsKKyAgICAgICAgICAgIHRlc3QoMS4yNSk7CisgICAgICAgICAgICB0ZXN0KDEuMCk7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13aXRoLXpvb20uaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgTEYKCg==
</data>
<flag name="review"
          id="209504"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192295</attachid>
            <date>2013-03-08 15:39:19 -0800</date>
            <delta_ts>2013-04-08 12:57:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105979-20130308153522.patch</filename>
            <type>text/plain</type>
            <size>14270</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NTI3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTA4ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBnZXRDb21wdXRlZFN0eWxlKCkg
c2hvdWxkIHJldHVybiB6b29tLWFkanVzdGVkIG9mZnNldCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTk3OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgZ2V0Q29tcHV0ZWRTdHls
ZSgpLnRvcHxyaWdodHxib3R0b218bGVmdCBjdXJyZW50bHkgZmFpbHMgdG8KKyAgICAgICAgYWNj
b3VudCBmb3Igem9vbSBmb3IgcG9zaXRpb25lZCBlbGVtZW50cy4gRnVydGhlcm1vcmUgZm9yCisg
ICAgICAgIHBlcmNlbnRhZ2UgdmFsdWVzIGl0IHJldHVybmVkIHRoZSBwZXJjZW50YWdlIHJhdGhl
ciB0aGFuIHRoZQorICAgICAgICBjb21wdXRlZCB2YWx1ZSBhbmQgZm9yIHZpZXdwb3J0IHBlcmNl
bnRhZ2UgdW5pdHMgaXQgcmV0dXJuZWQKKyAgICAgICAgYXV0by4KKworICAgICAgICBUZXN0OiBm
YXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwKKworICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG9z
aXRpb25PZmZzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICBVbmlmeSB0aGUgaGFzT3V0
T2ZGbG93UG9zaXRpb24gYW5kIGhhc0luRmxvd1Bvc2l0aW9uIGNvZGUgcGF0aHMsCisgICAgICAg
IHJlc29sdmUgcGVyY2VudGFnZSBhbmQgdmlld3BvcnQgcGVyY2VudGFnZSB1bml0cyBhbmQgYWRq
dXN0IGZvcgorICAgICAgICB6b29tLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OmlzTGF5
b3V0RGVwZW5kZW50UHJvcGVydHkpOgorICAgICAgICBNYXJrIENTU1Byb3BlcnR5VG9wLCBDU1NQ
cm9wZXJ0eVJpZ2h0LCBDU1NQcm9wZXJ0eUJvdHRvbSBhbmQKKyAgICAgICAgQ1NTUHJvcGVydHlM
ZWZ0IGFzIGxheW91dCBkZXBlbmRlbnQuCisKIDIwMTMtMDMtMDggIENoYW5kcmEgU2hla2FyIFZh
bGxhbGEgIDxicmszNzZAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gS2V5ZG93
biBldmVudCBmb3IgJ3NoaWZ0K2FsdCcgcmV0dXJucyB3aW4ga2V5Y29kZSBpbnN0ZWFkIG9mICdh
bHQnCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMTQ1Mjc0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MSw3ICs2
NDEsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNyZWF0ZVBvCiAgICAgcmV0
dXJuIHBvc2l0aW9uTGlzdC5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KQorc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJl
bmRlclZpZXcqIHJlbmRlclZpZXcpCiB7CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC02NjQsMjIgKzY2NCwyMSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0
UG9zaXRpb25PCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoc3R5bGUt
Pmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpIHsKLSAgICAgICAgaWYgKGwudHlwZSgpID09IFdlYkNv
cmU6OkZpeGVkKQotICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUobC52
YWx1ZSgpLCBzdHlsZSk7Ci0gICAgICAgIGVsc2UgaWYgKGwuaXNWaWV3cG9ydFBlcmNlbnRhZ2Uo
KSkKLSAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHZhbHVlRm9yTGVu
Z3RoKGwsIDAsIHJlbmRlclZpZXcpLCBzdHlsZSk7Ci0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShsKTsKLSAgICB9Ci0KLSAgICBpZiAoc3R5bGUtPmhhc0luRmxvd1Bv
c2l0aW9uKCkpIHsKKyAgICBpZiAobC5pc1BlcmNlbnQoKSAmJiByZW5kZXJlciAmJiByZW5kZXJl
ci0+aXNCb3goKSkgeworICAgICAgICBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja1NpemUgPSAo
cHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eUxlZnQgfHwgcHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0
eVJpZ2h0KSA/CisgICAgICAgICAgICB0b1JlbmRlckJveChyZW5kZXJlciktPmNvbnRhaW5pbmdC
bG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKSA6CisgICAgICAgICAgICB0b1JlbmRlckJveChy
ZW5kZXJlciktPmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHRGb3JDb250ZW50KEV4Y2x1ZGVN
YXJnaW5Cb3JkZXJQYWRkaW5nKTsKKyAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFs
dWUodmFsdWVGb3JMZW5ndGgobCwgY29udGFpbmluZ0Jsb2NrU2l6ZSwgMCksIHN0eWxlKTsKKyAg
ICB9IGlmIChsLmlzVmlld3BvcnRQZXJjZW50YWdlKCkpCisgICAgICAgIHJldHVybiB6b29tQWRq
dXN0ZWRQaXhlbFZhbHVlKHZhbHVlRm9yTGVuZ3RoKGwsIDAsIHJlbmRlclZpZXcpLCBzdHlsZSk7
CisgICAgaWYgKGwuaXNBdXRvKCkpIHsKICAgICAgICAgLy8gRklYTUU6IEl0J3Mgbm90IGVub3Vn
aCB0byBzaW1wbHkgcmV0dXJuICJhdXRvIiB2YWx1ZXMgZm9yIG9uZSBvZmZzZXQgaWYgdGhlIG90
aGVyIHNpZGUgaXMgZGVmaW5lZC4KICAgICAgICAgLy8gSW4gb3RoZXIgd29yZHMgaWYgbGVmdCBp
cyBhdXRvIGFuZCByaWdodCBpcyBub3QgYXV0bywgdGhlbiBsZWZ0J3MgY29tcHV0ZWQgdmFsdWUg
aXMgbmVnYXRpdmUgcmlnaHQoKS4KICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGdldCB0aGUgb3Bw
b3NpdGUgbGVuZ3RoIHVuaXQgYW5kIHNlZSBpZiBpdCBpcyBhdXRvLgogICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUobCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgIHJldHVy
biB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKGwsIHN0eWxlKTsKIH0KIAogUGFzc1Jl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjdXJy
ZW50Q29sb3JPclZhbGlkQ29sb3IoUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBDb2xvciYgY29s
b3IpIGNvbnN0CkBAIC0xNDk2LDIxICsxNDk1LDI1IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBmb24KIHN0YXRpYyBib29sIGlzTGF5b3V0RGVwZW5kZW50UHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogewogICAgIHN3aXRjaCAocHJvcGVydHlJRCkgewot
ICAgIGNhc2UgQ1NTUHJvcGVydHlXaWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm90dG9tOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUxlZnQ6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbjoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9w
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b206CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eU1hcmdpbkxlZnQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlNYXJnaW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdC
b3R0b206CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgogICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nUmlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm1PcmlnaW46CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luOgorICAgIGNh
c2UgQ1NTUHJvcGVydHlXaWR0aDoKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICNlbmRpZgpAQCAtMTc1Niw3ICsxNzU5LDcgQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBp
eGVsVmFsdWUoc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpLCBzdHlsZS5nZXQoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3R0b206Ci0gICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25P
ZmZzZXRWYWx1ZShzdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlCb3R0b20sIG1fbm9kZS0+ZG9jdW1l
bnQoKS0+cmVuZGVyVmlldygpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNl
dFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUJvdHRvbSwgcmVuZGVyZXIsIG1fbm9kZS0+
ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEJveEFsaWduOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHN0eWxlLT5ib3hBbGlnbigpKTsKICNpZiBFTkFCTEUoQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KQpAQCAtMTk5Niw3ICsxOTk5LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlYwogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0
eWxlLT5pbWFnZVJlc29sdXRpb24oKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKICNl
bmRpZgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGVmdDoKLSAgICAgICAgICAgIHJldHVybiBn
ZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUxlZnQsIG1fbm9k
ZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3Np
dGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUxlZnQsIHJlbmRlcmVyLCBt
X25vZGUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlMZXR0ZXJTcGFjaW5nOgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+bGV0dGVyU3BhY2luZygp
KQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVOb3JtYWwpOwpAQCAtMjEzOSw3ICsyMTQyLDcgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UG9z
aXRpb246CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5
bGUtPnBvc2l0aW9uKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShzdHlsZS5nZXQoKSwgQ1NTUHJvcGVy
dHlSaWdodCwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOworICAgICAgICAgICAg
cmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5Umln
aHQsIHJlbmRlcmVyLCBtX25vZGUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSdWJ5UG9zaXRpb246CiAgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPnJ1YnlQb3NpdGlvbigpKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRhYmxlTGF5b3V0OgpAQCAtMjIwMyw3ICsyMjA2LDcgQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5VGV4dFRyYW5zZm9ybToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5j
cmVhdGVWYWx1ZShzdHlsZS0+dGV4dFRyYW5zZm9ybSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRvcDoKLSAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxl
LmdldCgpLCBDU1NQcm9wZXJ0eVRvcCwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkp
OworICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUuZ2V0KCks
IENTU1Byb3BlcnR5VG9wLCByZW5kZXJlciwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3
KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VW5pY29kZUJpZGk6CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPnVuaWNvZGVCaWRpKCkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbjoKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE0NTI3NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEzLTAzLTA4ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBnZXRDb21wdXRlZFN0eWxlKCkgc2hvdWxkIHJldHVybiB6b29tLWFkanVzdGVk
IG9mZnNldCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTk3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIHRlc3QgZm9yIGNoZWNraW5nIHRoZSBjb21wdXRlZCBvZmZzZXQg
d2hlbiB6b29tZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16
b29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29tcHV0ZWQtb2Zm
c2V0LXdpdGgtem9vbS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMy0wOCAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVwZGF0ZSBzb21lIG1vcmUgY2hyb21p
dW0gY29tcG9zaXRvciBwaXhlbCBiYXNlbGluZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLW9mZnNldC13
aXRoLXpvb20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCkudG9wIGlzICcxMDBweCcKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5yaWdodCBpcyAnMTAwcHgn
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCkuYm90dG9tIGlzICcx
MDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5sZWZ0IGlz
ICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2VudGFnZUVsZW1lbnQp
LnRvcCBpcyAnNTBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2VudGFnZUVs
ZW1lbnQpLnJpZ2h0IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGVy
Y2VudGFnZUVsZW1lbnQpLmJvdHRvbSBpcyAnNTBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUocGVyY2VudGFnZUVsZW1lbnQpLmxlZnQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1lbnQpLnRvcCBpcyAnMTIwcHgnCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkucmlnaHQgaXMgJzE2MHB4JworUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1lbnQpLmJvdHRvbSBpcyAnMTIw
cHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkubGVmdCBp
cyAnMTYwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCkudG9w
IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRFbGVtZW50KS5y
aWdodCBpcyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVu
dCkuYm90dG9tIGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRF
bGVtZW50KS5sZWZ0IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGVy
Y2VudGFnZUVsZW1lbnQpLnRvcCBpcyAnNTBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUocGVyY2VudGFnZUVsZW1lbnQpLnJpZ2h0IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUocGVyY2VudGFnZUVsZW1lbnQpLmJvdHRvbSBpcyAnNTBweCcKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2VudGFnZUVsZW1lbnQpLmxlZnQgaXMgJzEwMHB4Jwor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1lbnQpLnRvcCBpcyAnNDhw
eCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS5yaWdodCBp
cyAnNjRweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnRFbGVtZW50KS5i
b3R0b20gaXMgJzQ4cHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxl
bWVudCkubGVmdCBpcyAnNjRweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZml4ZWRF
bGVtZW50KS50b3AgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhl
ZEVsZW1lbnQpLnJpZ2h0IGlzICcxMDBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Zml4ZWRFbGVtZW50KS5ib3R0b20gaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShmaXhlZEVsZW1lbnQpLmxlZnQgaXMgJzEwMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkudG9wIGlzICc1MHB4JworUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkucmlnaHQgaXMgJzEwMHB4JworUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkuYm90dG9tIGlzICc1MHB4
JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkubGVmdCBp
cyAnMTAwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCku
dG9wIGlzICc2MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1l
bnQpLnJpZ2h0IGlzICc4MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9y
dEVsZW1lbnQpLmJvdHRvbSBpcyAnNjBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
dmlld3BvcnRFbGVtZW50KS5sZWZ0IGlzICc4MHB4JworUmVwb3J0ZWQgY29tcHV0ZWQgb2Zmc2V0
IHNob3VsZCBub3QgY2hhbmdlIHdpdGggem9vbSBsZXZlbC4KKworCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLWV4cGVj
dGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29tcHV0ZWQtb2Zmc2V0LXdpdGgtem9vbS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29tcHV0ZWQtb2Zmc2V0
LXdpdGgtem9vbS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAj
Y29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICAg
ICAgaGVpZ2h0OiA1MDBweDsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAjY29udGFpbmVyID4gZGl2IHsKKyAgICAgICAgICAg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29s
aWQgcmVkOworICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICAgICAgICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICN0ZXN0LWZpeGVkICB7CisgICAgICAgICAgICAgICAgbGVmdDog
MTAwcHg7CisgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHRv
cDogMTAwcHg7CisgICAgICAgICAgICAgICAgYm90dG9tOiAxMDBweDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICN0ZXN0LXBlcmNlbnRhZ2UgeworICAgICAgICAgICAgICAgIGxlZnQ6IDIw
JTsKKyAgICAgICAgICAgICAgICByaWdodDogMjAlOworICAgICAgICAgICAgICAgIHRvcDogMTAl
OworICAgICAgICAgICAgICAgIGJvdHRvbTogMTAlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgI3Rlc3Qtdmlld3BvcnQgeworICAgICAgICAgICAgICAgIGxlZnQ6IDEwdnc7CisgICAgICAg
ICAgICAgICAgcmlnaHQ6IDEwdnc7CisgICAgICAgICAgICAgICAgdG9wOiAxMHZoOworICAgICAg
ICAgICAgICAgIGJvdHRvbTogMTB2aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAg
IFJlcG9ydGVkIGNvbXB1dGVkIG9mZnNldCBzaG91bGQgbm90IGNoYW5nZSB3aXRoIHpvb20gbGV2
ZWwuCisgICAgICAgIDwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgICAg
ICAgIDxkaXYgaWQ9InRlc3QtZml4ZWQiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0idGVz
dC1wZXJjZW50YWdlIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InRlc3Qtdmlld3BvcnQi
PjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZh
ciBmaXhlZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1maXhlZCcpOwor
ICAgICAgICAgICAgdmFyIHBlcmNlbnRhZ2VFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QtcGVyY2VudGFnZScpOworICAgICAgICAgICAgdmFyIHZpZXdwb3J0RWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXZpZXdwb3J0Jyk7CisgICAgICAgICAgICBm
dW5jdGlvbiB0ZXN0KHpvb21MZXZlbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS56b29tID0gem9vbUxldmVsOworICAgICAgICAgICAgICAg
ICAgICB2YXIgd2luZG93V2lkdGggPSAiJyIgKyAod2luZG93LmlubmVyV2lkdGggLyAxMCAvIHpv
b21MZXZlbCkgKyAicHgnIjsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHdpbmRvd0hlaWdodCA9
ICInIiArICh3aW5kb3cuaW5uZXJIZWlnaHQgLyAxMCAvIHpvb21MZXZlbCkgKyAicHgnIjsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1lbnQpLnRvcCIsICInMTAwcHgnIik7CisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmaXhlZEVsZW1l
bnQpLnJpZ2h0IiwgIicxMDBweCciKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGZpeGVkRWxlbWVudCkuYm90dG9tIiwgIicxMDBweCciKTsK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZp
eGVkRWxlbWVudCkubGVmdCIsICInMTAwcHgnIik7CisgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2Vu
dGFnZUVsZW1lbnQpLnRvcCIsICInNTBweCciKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBlcmNlbnRhZ2VFbGVtZW50KS5yaWdodCIsICIn
MTAwcHgnIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShwZXJjZW50YWdlRWxlbWVudCkuYm90dG9tIiwgIic1MHB4JyIpOworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUocGVyY2VudGFnZUVs
ZW1lbnQpLmxlZnQiLCAiJzEwMHB4JyIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxl
bWVudCkudG9wIiwgd2luZG93SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZXdwb3J0RWxlbWVudCkucmlnaHQiLCB3aW5kb3dX
aWR0aCk7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh2aWV3cG9ydEVsZW1lbnQpLmJvdHRvbSIsIHdpbmRvd0hlaWdodCk7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh2aWV3cG9ydEVsZW1l
bnQpLmxlZnQiLCB3aW5kb3dXaWR0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0
KDAuNSk7CisgICAgICAgICAgICB0ZXN0KDEuMjUpOworICAgICAgICAgICAgdGVzdCgxLjApOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1vZmZzZXQtd2l0aC16b29tLmh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbApBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>