<?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>85921</bug_id>
          
          <creation_ts>2012-05-08 15:03:46 -0700</creation_ts>
          <short_desc>[chromium] Only increase size of Combo Box Options when displayed on touch screen</short_desc>
          <delta_ts>2012-05-28 14:55:45 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87403</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Flack">flackr</reporter>
          <assigned_to name="Robert Flack">flackr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>philn</cc>
    
    <cc>rbyers</cc>
    
    <cc>tdresser</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>618843</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-08 15:03:46 -0700</bug_when>
    <thetext>In https://bugs.webkit.org/show_bug.cgi?id=80027 the size of combo box options was increased when touch events were supported. Supporting touch events should not imply the use of a touch friendly layout as we would like to enable touch event support on all devices in case a touch screen is attached. When contents are being displayed on a touch screen we can use the setDeviceTouchScreen pref to enable the increased combo box option size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618859</commentid>
    <comment_count>1</comment_count>
      <attachid>140797</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-08 15:19:23 -0700</bug_when>
    <thetext>Created attachment 140797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618861</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-08 15:21:24 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618869</commentid>
    <comment_count>3</comment_count>
      <attachid>140797</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-08 15:28:14 -0700</bug_when>
    <thetext>Comment on attachment 140797
Patch

Attachment 140797 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12648414</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618872</commentid>
    <comment_count>4</comment_count>
      <attachid>140797</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-08 15:28:49 -0700</bug_when>
    <thetext>Comment on attachment 140797
Patch

Attachment 140797 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12651433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618887</commentid>
    <comment_count>5</comment_count>
      <attachid>140797</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-08 15:42:57 -0700</bug_when>
    <thetext>Comment on attachment 140797
Patch

Attachment 140797 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12648417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618906</commentid>
    <comment_count>6</comment_count>
      <attachid>140797</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-08 15:59:41 -0700</bug_when>
    <thetext>Comment on attachment 140797
Patch

Attachment 140797 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12653398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618913</commentid>
    <comment_count>7</comment_count>
      <attachid>140806</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-08 16:04:42 -0700</bug_when>
    <thetext>Created attachment 140806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618920</commentid>
    <comment_count>8</comment_count>
      <attachid>140806</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-08 16:21:05 -0700</bug_when>
    <thetext>Comment on attachment 140806
Patch

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

&gt; Source/WebCore/page/Settings.h:736
&gt; +        bool m_deviceTouchScreen : 1;

it doesn&apos;t make any sense for this to be a bitfield here - it&apos;ll pack out to a full word anyway.  move it up a bit if you want to be in the bitfield above.

does it make sense for this to exist when ENABLE(TOUCH_EVENTS) is not set?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619443</commentid>
    <comment_count>9</comment_count>
      <attachid>140933</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-09 06:50:37 -0700</bug_when>
    <thetext>Created attachment 140933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619445</commentid>
    <comment_count>10</comment_count>
      <attachid>140806</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-09 06:54:02 -0700</bug_when>
    <thetext>Comment on attachment 140806
Patch

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

&gt;&gt; Source/WebCore/page/Settings.h:736
&gt;&gt; +        bool m_deviceTouchScreen : 1;
&gt; 
&gt; it doesn&apos;t make any sense for this to be a bitfield here - it&apos;ll pack out to a full word anyway.  move it up a bit if you want to be in the bitfield above.
&gt; 
&gt; does it make sense for this to exist when ENABLE(TOUCH_EVENTS) is not set?

Moved up to be part of the bitfield.

I think conceptually this is orthogonal to whether touch events are enabled. Developers may want to set this flag to test how their site will lay out on a touch screen (especially if/when we have a media query for this), and users can use a touch screen to drive mouse events even if touch events are not enabled and some browsers may want to set this. That being said I&apos;m not strongly opposed to putting this behind ENABLE(TOUCH_EVENTS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619922</commentid>
    <comment_count>11</comment_count>
      <attachid>140933</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-09 15:37:36 -0700</bug_when>
    <thetext>Comment on attachment 140933
Patch

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

&gt; Source/WebKit/chromium/tests/PopupMenuTest.cpp:188
&gt; +        m_webView-&gt;page()-&gt;settings()-&gt;setDeviceTouchScreen(false);

should we also have tests for the inflated version?

the default is false, so this call doesn&apos;t seem to actually do anything</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625440</commentid>
    <comment_count>12</comment_count>
      <attachid>142263</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-16 07:56:57 -0700</bug_when>
    <thetext>Created attachment 142263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625442</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-16 07:59:48 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 140933 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140933&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/PopupMenuTest.cpp:188
&gt; &gt; +        m_webView-&gt;page()-&gt;settings()-&gt;setDeviceTouchScreen(false);
&gt; 
&gt; should we also have tests for the inflated version?
&gt; 
&gt; the default is false, so this call doesn&apos;t seem to actually do anything

You&apos;re right. I think these tests should actually not be dependent on a particular row height as most of them already aren&apos;t as it is. I&apos;ve fixed the remaining few places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627697</commentid>
    <comment_count>14</comment_count>
      <attachid>142263</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-18 07:52:49 -0700</bug_when>
    <thetext>Comment on attachment 142263
Patch

ping, can you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630668</commentid>
    <comment_count>15</comment_count>
      <attachid>142263</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-22 12:40:05 -0700</bug_when>
    <thetext>Comment on attachment 142263
Patch

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

This looks pretty good, I just have a number of smaller nits.  With one more round I think this is good to go.

&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:-635
&gt; -    if (RuntimeEnabledFeatures::touchEnabled())

It looks like you&apos;re deleting all callers of RuntimeEnabledFeatures::touchEnabled() / RuntimeEnabledFeatures::setTouchEnabled(). If that&apos;s true can you also remove the code for that? Do you expect it to come back?

&gt; Source/WebCore/platform/chromium/PopupListBox.h:84
&gt; +    bool isDeviceTouchScreen;

this (and defaultDeviceScaleFactor) should be documented. the name is pretty clear, but it&apos;s not clear why this is relevant to a PopupContainer so documenting what effect this has (i.e. increasing padding) would be helpful

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:78
&gt; +            v-&gt;frame()-&gt;page()-&gt;settings()-&gt;isDeviceTouchScreen();

nit: I think it&apos;d make sense to stash v-&gt;frame()-&gt;page()-&gt;settings() in a temporary. It&apos;s also a bit non-idiomatic to use single-letter variable names in WebKit, more typical names would be frameView instead of v and rect instead of r.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2829
&gt; +            m_page-&gt;settings()-&gt;isDeviceTouchScreen();

why does this reach through the Page instead of just grabbing settingsImpl() directly?

&gt; Source/WebKit/chromium/tests/PopupMenuTest.cpp:358
&gt; +    // menuHeight * 1.5 means the Y position on the item at index 1.

is menuHeight the height of the whole menu or a single row? I think it must be the latter for this to make sense, but the name had me confused for a bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631842</commentid>
    <comment_count>16</comment_count>
      <attachid>143602</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-23 11:28:48 -0700</bug_when>
    <thetext>Created attachment 143602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631849</commentid>
    <comment_count>17</comment_count>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-23 11:31:31 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=142263&amp;action=review

Thanks for the review! Changes have been uploaded.

&gt;&gt; Source/WebCore/platform/chromium/PopupListBox.cpp:-635
&gt;&gt; -    if (RuntimeEnabledFeatures::touchEnabled())
&gt; 
&gt; It looks like you&apos;re deleting all callers of RuntimeEnabledFeatures::touchEnabled() / RuntimeEnabledFeatures::setTouchEnabled(). If that&apos;s true can you also remove the code for that? Do you expect it to come back?

(set)TouchEnabled is still used by chromium to tell WebKit whether it should generate touch events.

&gt;&gt; Source/WebCore/platform/chromium/PopupListBox.h:84
&gt;&gt; +    bool isDeviceTouchScreen;
&gt; 
&gt; this (and defaultDeviceScaleFactor) should be documented. the name is pretty clear, but it&apos;s not clear why this is relevant to a PopupContainer so documenting what effect this has (i.e. increasing padding) would be helpful

Done.

&gt;&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:78
&gt;&gt; +            v-&gt;frame()-&gt;page()-&gt;settings()-&gt;isDeviceTouchScreen();
&gt; 
&gt; nit: I think it&apos;d make sense to stash v-&gt;frame()-&gt;page()-&gt;settings() in a temporary. It&apos;s also a bit non-idiomatic to use single-letter variable names in WebKit, more typical names would be frameView instead of v and rect instead of r.

Done and done.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2829
&gt;&gt; +            m_page-&gt;settings()-&gt;isDeviceTouchScreen();
&gt; 
&gt; why does this reach through the Page instead of just grabbing settingsImpl() directly?

I have now exposed these settings through WebSettingsImpl and use settingsImpl() directly. This was required since it does not grant direct access to the WebCore::Settings object directly.

&gt;&gt; Source/WebKit/chromium/tests/PopupMenuTest.cpp:358
&gt;&gt; +    // menuHeight * 1.5 means the Y position on the item at index 1.
&gt; 
&gt; is menuHeight the height of the whole menu or a single row? I think it must be the latter for this to make sense, but the name had me confused for a bit

Renamed to menuItemHeight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632110</commentid>
    <comment_count>18</comment_count>
      <attachid>143602</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-23 15:24:07 -0700</bug_when>
    <thetext>Comment on attachment 143602
Patch

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

&gt; Source/WebCore/page/Settings.h:571
&gt; +        void setDeviceTouchScreen(bool enabled) { m_deviceTouchScreen = enabled; }
&gt; +        bool isDeviceTouchScreen() const { return m_deviceTouchScreen; }

Do you still need this to exist on WebCore::Settings?  If this only is ever set or queried on chromium&apos;s WebSettings, you can save the value in a bool on WebSettingsImpl and use that instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632941</commentid>
    <comment_count>19</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-05-24 10:52:05 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 143602 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143602&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Settings.h:571
&gt; &gt; +        void setDeviceTouchScreen(bool enabled) { m_deviceTouchScreen = enabled; }
&gt; &gt; +        bool isDeviceTouchScreen() const { return m_deviceTouchScreen; }
&gt; 
&gt; Do you still need this to exist on WebCore::Settings?  If this only is ever set or queried on chromium&apos;s WebSettings, you can save the value in a bool on WebSettingsImpl and use that instead

I was about to start consuming this from WebCore to support the new pointer:coarse and hover:0 CSS media features: https://bugs.webkit.org/show_bug.cgi?id=87403.  Except I&apos;m probably going to eventually want this to be tri-state: has touch screen, doesn&apos;t have touch screen, unknown (for ports that don&apos;t support it).  If this CL is good as is, I can convert it to tri-state as part of my bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632946</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-24 10:59:48 -0700</bug_when>
    <thetext>Add the setting to WebCore::Settings in the patch where you need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632953</commentid>
    <comment_count>21</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-05-24 11:06:43 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Add the setting to WebCore::Settings in the patch where you need it.

That&apos;s fine with me.  Note that initially I expect to just add it back as a bool exactly how Rob has done.  Making it tri-state will hopefully something I won&apos;t need until a future CL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632981</commentid>
    <comment_count>22</comment_count>
      <attachid>143602</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-24 11:24:31 -0700</bug_when>
    <thetext>Comment on attachment 143602
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Settings.h:571
&gt;&gt;&gt; +        bool isDeviceTouchScreen() const { return m_deviceTouchScreen; }
&gt;&gt; 
&gt;&gt; Do you still need this to exist on WebCore::Settings?  If this only is ever set or queried on chromium&apos;s WebSettings, you can save the value in a bool on WebSettingsImpl and use that instead
&gt; 
&gt; I was about to start consuming this from WebCore to support the new pointer:coarse and hover:0 CSS media features: https://bugs.webkit.org/show_bug.cgi?id=87403.  Except I&apos;m probably going to eventually want this to be tri-state: has touch screen, doesn&apos;t have touch screen, unknown (for ports that don&apos;t support it).  If this CL is good as is, I can convert it to tri-state as part of my bug.

PopupMenuChromium (in WebCore/platform/chromium) needs to query isDeviceTouchScreen and as far as I can tell only has access to WebCore::Settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634703</commentid>
    <comment_count>23</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-05-26 18:30:37 -0700</bug_when>
    <thetext>Ping, James?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635335</commentid>
    <comment_count>24</comment_count>
      <attachid>143602</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-28 11:31:57 -0700</bug_when>
    <thetext>Comment on attachment 143602
Patch

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

This looks good.  You seem to have addressed all of James&apos; comments.  I&apos;ve got a handful of nits below and then I think we&apos;re ready to land this patch.

&gt; Source/WebCore/page/Settings.h:742
&gt; +        bool m_deviceTouchScreen : 1;

The name of the member should match the name of the accessor.  I might also have picked a name like &quot;device supports touch&quot; so that the if statements read more like English: &quot;if device supports touch&quot;.

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:75
&gt;          popupSettings.defaultDeviceScaleFactor =
&gt; -            v-&gt;frame()-&gt;page()-&gt;settings()-&gt;defaultDeviceScaleFactor();
&gt; +            settings-&gt;defaultDeviceScaleFactor();

This can be on one line.  There&apos;s no line limit in WebKit.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2954
&gt;          popupSettings.defaultDeviceScaleFactor =
&gt; -            m_page-&gt;settings()-&gt;defaultDeviceScaleFactor();
&gt; +            settingsImpl()-&gt;defaultDeviceScaleFactor();

One line.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2958
&gt; +        popupSettings.isDeviceTouchScreen =
&gt; +            settingsImpl()-&gt;isDeviceTouchScreen();

One line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635375</commentid>
    <comment_count>25</comment_count>
      <attachid>144389</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-28 13:05:16 -0700</bug_when>
    <thetext>Created attachment 144389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635377</commentid>
    <comment_count>26</comment_count>
      <attachid>143602</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-28 13:06:49 -0700</bug_when>
    <thetext>Comment on attachment 143602
Patch

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

&gt;&gt; Source/WebCore/page/Settings.h:742
&gt;&gt; +        bool m_deviceTouchScreen : 1;
&gt; 
&gt; The name of the member should match the name of the accessor.  I might also have picked a name like &quot;device supports touch&quot; so that the if statements read more like English: &quot;if device supports touch&quot;.

Done.

&gt;&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:75
&gt;&gt; +            settings-&gt;defaultDeviceScaleFactor();
&gt; 
&gt; This can be on one line.  There&apos;s no line limit in WebKit.

Done.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2954
&gt;&gt; +            settingsImpl()-&gt;defaultDeviceScaleFactor();
&gt; 
&gt; One line.

Done.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2958
&gt;&gt; +            settingsImpl()-&gt;isDeviceTouchScreen();
&gt; 
&gt; One line.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635378</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 13:07:25 -0700</bug_when>
    <thetext>Attachment 144389 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:10:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635380</commentid>
    <comment_count>28</comment_count>
      <attachid>144390</attachid>
    <who name="Robert Flack">flackr</who>
    <bug_when>2012-05-28 13:18:05 -0700</bug_when>
    <thetext>Created attachment 144390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635404</commentid>
    <comment_count>29</comment_count>
      <attachid>144390</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-28 14:16:53 -0700</bug_when>
    <thetext>Comment on attachment 144390
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635424</commentid>
    <comment_count>30</comment_count>
      <attachid>144390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 14:55:38 -0700</bug_when>
    <thetext>Comment on attachment 144390
Patch

Clearing flags on attachment: 144390

Committed r118707: &lt;http://trac.webkit.org/changeset/118707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635425</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 14:55:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140797</attachid>
            <date>2012-05-08 15:19:23 -0700</date>
            <delta_ts>2012-05-08 16:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120508181922.patch</filename>
            <type>text/plain</type>
            <size>10736</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTA4ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2
aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzRGV2aWNlVG91
Y2hTY3JlZW4pOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6Omdl
dFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6
CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVDaHJvbWl1bTo6c2hvdyk6CisKIDIwMTItMDUtMDggIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZh
ZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIVE1MRWxlbWVudFN0YWNrOjpoYXNPbmx5SFRN
TEVsZW1lbnRzSW5TY29wZSBpcyBubyBsb25nZXIgY2FsbGVkCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Niw3ICsyNjYsOCBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdC
ZWhhdmlvcihmYWxzZSkKICAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCh0cnVl
KQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcih0aGlzLCAmU2V0dGluZ3M6
OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyRmlyZWQpCi0gICAgLCBtX2luY3JlbWVudGFs
UmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNyZW1lbnRhbFJl
bmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcykKKyAgICAsIG1faW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoZGVmYXVsdEluY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKSwKKyAgICAsIG1fZGV2aWNlVG91Y2hT
Y3JlZW4oZmFsc2UpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUgYmVlbiBjcmVhdGVk
IHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nCiAgICAgLy8gaGFzaCBiZWZv
cmUgdHJ5aW5nIHRvIHVzZSBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9u
IDExNjQzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNTYxLDYgKzU2MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBz
ZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVlc3RB
bmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCBl
bmFibGVkKSB7IG1fZGV2aWNlVG91Y2hTY3JlZW4gPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wg
aXNEZXZpY2VUb3VjaFNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlVG91Y2hTY3JlZW47
IH0KKwogI2lmIFVTRShKU0MpCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFJlc3BlY3RQ
cmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycyhib29sKTsKICAgICAgICAgc3RhdGljIGJvb2wg
c2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCk7CkBAIC03MzAsNiAr
NzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGxvYWRzSW1hZ2VzQXV0
b21hdGljYWxseVRpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+Kik7CiAgICAgICAgIAogICAgICAg
ICBkb3VibGUgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25k
czsKKyAgICAgICAgYm9vbCBtX2RldmljZVRvdWNoU2NyZWVuIDogMTsKIAogI2lmIFVTRShBVkZP
VU5EQVRJT04pCiAgICAgICAgIHN0YXRpYyBib29sIGdBVkZvdW5kYXRpb25FbmFibGVkOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3gu
Y3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cExpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDcgQEAgaW50
IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAogewogICAgIGludCBzY2FsZSA9
IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIGludCBwYWRkaW5nRm9y
VG91Y2ggPSAwOwotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQo
KSkKKyAgICBpZiAobV9zZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuKQogICAgICAgICBwYWRk
aW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7
CiAgICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlz
RGlzcGxheU5vbmUoKSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVt
Um93SGVpZ2h0KCkgKiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAt
ODEsNiArODEsNyBAQCBzdHJ1Y3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyB7CiAgICAgYm9vbCBy
ZXN0cmljdFdpZHRoT2ZMaXN0Qm94OwogCiAgICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
cjsKKyAgICBib29sIGlzRGV2aWNlVG91Y2hTY3JlZW47CiB9OwogCiAvLyBBIGNvbnRhaW5lciBm
b3IgdGhlIGRhdGEgZm9yIGVhY2ggbWVudSBpdGVtIChlLmcuIHJlcHJlc2VudGVkIGJ5IDxvcHRp
b24+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc0LDYgKzc0LDggQEAgdm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRS
ZQogICAgICAgICAgICAgdi0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2
aWNlU2NhbGVGYWN0b3IoKTsKICAgICAgICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZp
Y2VTY2FsZUZhY3RvcikKICAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNj
YWxlRmFjdG9yID0gMTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVu
ID0KKyAgICAgICAgICAgIHYtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+aXNEZXZpY2VU
b3VjaFNjcmVlbigpOwogICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShj
bGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwgcG9wdXBTZXR0aW5ncyk7CiAgICAgfQog
ICAgIHAucG9wdXAtPnNob3dJblJlY3QociwgdiwgaW5kZXgpOwpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjQ1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUtMDggIFJv
YiBGbGFjayAgPGZsYWNrckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBPbmx5
IGluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgd2hlbiBkaXNwbGF5ZWQgb24gdG91
Y2ggc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODU5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3Vj
aCBzY3JlZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0
ZWQgYW5kIHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHB1
YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVRvdWNoU2NyZWVuKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAg
ICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToK
KyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vs
ZWN0UG9wdXBNZW51VGVzdDo6U2V0VXApOgorICAgICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1cE1l
bnVUZXN0OjpUZWFyRG93bik6CisgICAgICAgIChTZWxlY3RQb3B1cE1lbnVUZXN0KToKKwogMjAx
Mi0wNS0wOCAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBDcmVhdGUgTGlua0hpZ2hsaWdodExheWVyQ2hyb21pdW0gY2xhc3Mg
dG8gcHJvdmlkZSBsaW5rLWhpZ2hsaWdodCBwcmV2aWV3IGFuaW1hdGlvbnMgZm9yIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2V0dGluZ3MuaAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUoaW50KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihpbnQpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VUb3VjaFNjcmVlbihib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKSA9
IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2ICsxMTQsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHREZXZpY2VTYwogICAgIG1fc2V0dGluZ3MtPnNl
dERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpOwogfQog
Cit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCBkZXZpY2VU
b3VjaFNjcmVlbikKK3sKKyAgICBtX3NldHRpbmdzLT5zZXREZXZpY2VUb3VjaFNjcmVlbihkZXZp
Y2VUb3VjaFNjcmVlbik7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZhdWx0VGV4
dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmIGVuY29kaW5nKQogewogICAgIG1fc2V0dGlu
Z3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKChTdHJpbmcpZW5jb2RpbmcpOwpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJKHJldmlzaW9u
IDExNjQzNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZShpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVs
dFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVRvdWNoU2NyZWVuKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5KGJvb2wpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzkyLDYgKzI3OTIsOCBAQCB2b2lk
IFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvCiAgICAgICAgICAgICBtX3BhZ2Ut
PnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpOwogICAgICAgICBpZiAoIXBv
cHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKQogICAgICAgICAgICAgcG9wdXBT
ZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgICAgICBwb3B1cFNldHRp
bmdzLmlzRGV2aWNlVG91Y2hTY3JlZW4gPQorICAgICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygp
LT5pc0RldmljZVRvdWNoU2NyZWVuKCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cCA9IFBvcHVw
Q29udGFpbmVyOjpjcmVhdGUobV9hdXRvZmlsbFBvcHVwQ2xpZW50LmdldCgpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyOjpT
dWdnZXN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBvcHVwU2V0dGluZ3MpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Q
b3B1cE1lbnVUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1BvcHVwTWVudVRlc3QuY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIs
MTEgKzE4MiwxMCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNldFVw
KCkKICAgICB7Ci0gICAgICAgIC8vIFdoZW4gdG91Y2ggaXMgZW5hYmxlZCwgcGFkZGluZyBpcyBh
ZGRlZCB0byBvcHRpb24gZWxlbWVudHMKLSAgICAgICAgLy8gSW4gdGhlc2UgdGVzdHMsIHdlJ2xs
IGFzc3VtZSB0b3VjaCBpcyBkaXNhYmxlZC4KLSAgICAgICAgbV90b3VjaFdhc0VuYWJsZWQgPSBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKTsKLSAgICAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2V0VG91Y2hFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV93ZWJWaWV3
ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPihXZWJWaWV3OjpjcmVhdGUoJm1fd2Vidmlld0Ns
aWVudCkpOworICAgICAgICAvLyBXaGVuIGEgdG91Y2ggc2NyZWVuIGlzIHByZXNlbnQsIHBhZGRp
bmcgaXMgYWRkZWQgdG8gb3B0aW9uIGVsZW1lbnRzLgorICAgICAgICAvLyBJbiB0aGVzZSB0ZXN0
cywgd2UnbGwgYXNzdW1lIG5vIHRvdWNoIHNjcmVlbiBpcyBhdHRhY2hlZC4KKyAgICAgICAgbV93
ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNldERldmljZVRvdWNoU2NyZWVuKGZhbHNlKTsK
ICAgICAgICAgbV93ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1lQ2xpZW50
KTsKICAgICAgICAgbV9wb3B1cE1lbnUgPSBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hyb21pdW0o
Jm1fcG9wdXBNZW51Q2xpZW50KSk7CiAgICAgfQpAQCAtMTk2LDcgKzE5NSw2IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgbV9wb3B1cE1lbnUgPSAwOwogICAgICAgICBtX3dlYlZpZXctPmNsb3NlKCk7
CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwotICAg
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQobV90b3VjaFdhc0Vu
YWJsZWQpOwogICAgIH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBjdXJyZW50bHkg
aXMgYSBzZWxlY3QgcG9wdXAgaW4gdGhlIFdlYlZpZXcuCkBAIC0yODQsNyArMjgyLDYgQEAgcHJv
dGVjdGVkOgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCBtX3dlYkZyYW1lQ2xpZW50OwogICAgIFRl
c3RQb3B1cE1lbnVDbGllbnQgbV9wb3B1cE1lbnVDbGllbnQ7CiAgICAgUmVmUHRyPFBvcHVwTWVu
dT4gbV9wb3B1cE1lbnU7Ci0gICAgYm9vbCBtX3RvdWNoV2FzRW5hYmxlZDsKICAgICBzdGQ6OnN0
cmluZyBiYXNlVVJMOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140806</attachid>
            <date>2012-05-08 16:04:42 -0700</date>
            <delta_ts>2012-05-09 06:54:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120508190440.patch</filename>
            <type>text/plain</type>
            <size>10568</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTA4ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2
aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzRGV2aWNlVG91
Y2hTY3JlZW4pOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6Omdl
dFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6
CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVDaHJvbWl1bTo6c2hvdyk6CisKIDIwMTItMDUtMDggIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZh
ZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIVE1MRWxlbWVudFN0YWNrOjpoYXNPbmx5SFRN
TEVsZW1lbnRzSW5TY29wZSBpcyBubyBsb25nZXIgY2FsbGVkCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Nyw2ICsyNjcsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCh0
cnVlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcih0aGlzLCAmU2V0dGlu
Z3M6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyRmlyZWQpCiAgICAgLCBtX2luY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNyZW1lbnRh
bFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcykKKyAgICAsIG1fZGV2aWNlVG91
Y2hTY3JlZW4oZmFsc2UpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUgYmVlbiBjcmVh
dGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nCiAgICAgLy8gaGFzaCBi
ZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlz
aW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNTYxLDYgKzU2MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBzZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVl
c3RBbmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlv
bkZyYW1lRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9v
bCBlbmFibGVkKSB7IG1fZGV2aWNlVG91Y2hTY3JlZW4gPSBlbmFibGVkOyB9CisgICAgICAgIGJv
b2wgaXNEZXZpY2VUb3VjaFNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlVG91Y2hTY3Jl
ZW47IH0KKwogI2lmIFVTRShKU0MpCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFJlc3Bl
Y3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycyhib29sKTsKICAgICAgICAgc3RhdGljIGJv
b2wgc2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCk7CkBAIC03MzAs
NiArNzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGxvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseVRpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+Kik7CiAgICAgICAgIAogICAg
ICAgICBkb3VibGUgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kczsKKyAgICAgICAgYm9vbCBtX2RldmljZVRvdWNoU2NyZWVuIDogMTsKIAogI2lmIFVTRShB
VkZPVU5EQVRJT04pCiAgICAgICAgIHN0YXRpYyBib29sIGdBVkZvdW5kYXRpb25FbmFibGVkOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RC
b3guY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDcgQEAg
aW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAogewogICAgIGludCBzY2Fs
ZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIGludCBwYWRkaW5n
Rm9yVG91Y2ggPSAwOwotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJs
ZWQoKSkKKyAgICBpZiAobV9zZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuKQogICAgICAgICBw
YWRkaW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNo
KCk7CiAgICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgp
LmlzRGlzcGxheU5vbmUoKSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5p
bXVtUm93SGVpZ2h0KCkgKiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAkod29ya2luZyBjb3B5KQpA
QCAtODEsNiArODEsNyBAQCBzdHJ1Y3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyB7CiAgICAgYm9v
bCByZXN0cmljdFdpZHRoT2ZMaXN0Qm94OwogCiAgICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZh
Y3RvcjsKKyAgICBib29sIGlzRGV2aWNlVG91Y2hTY3JlZW47CiB9OwogCiAvLyBBIGNvbnRhaW5l
ciBmb3IgdGhlIGRhdGEgZm9yIGVhY2ggbWVudSBpdGVtIChlLmcuIHJlcHJlc2VudGVkIGJ5IDxv
cHRpb24+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVD
aHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJ
bnRSZQogICAgICAgICAgICAgdi0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0
RGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICAgICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvcikKICAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmlj
ZVNjYWxlRmFjdG9yID0gMTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5pc0RldmljZVRvdWNoU2Ny
ZWVuID0KKyAgICAgICAgICAgIHYtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+aXNEZXZp
Y2VUb3VjaFNjcmVlbigpOwogICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0
ZShjbGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwgcG9wdXBTZXR0aW5ncyk7CiAgICAg
fQogICAgIHAucG9wdXAtPnNob3dJblJlY3QociwgdiwgaW5kZXgpOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjQ1NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUtMDgg
IFJvYiBGbGFjayAgPGZsYWNrckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBP
bmx5IGluY3JlYXNlIHNpemUgb2YgQ29tYm8gQm94IE9wdGlvbnMgd2hlbiBkaXNwbGF5ZWQgb24g
dG91Y2ggc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRzIGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0
b3VjaCBzY3JlZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBw
b3J0ZWQgYW5kIHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAq
IHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVRvdWNoU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgor
ICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25z
KToKKyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U2VsZWN0UG9wdXBNZW51VGVzdDo6U2V0VXApOgorICAgICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1
cE1lbnVUZXN0OjpUZWFyRG93bik6CisgICAgICAgIChTZWxlY3RQb3B1cE1lbnVUZXN0KToKKwog
MjAxMi0wNS0wOCAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBDcmVhdGUgTGlua0hpZ2hsaWdodExheWVyQ2hyb21pdW0gY2xh
c3MgdG8gcHJvdmlkZSBsaW5rLWhpZ2hsaWdodCBwcmV2aWV3IGFuaW1hdGlvbnMgZm9yIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2V0dGluZ3MuaAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUoaW50KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihpbnQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2Vi
U3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VUb3VjaFNjcmVlbihib29s
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29s
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2ICsxMTQsMTEgQEAg
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHREZXZpY2VTYwogICAgIG1fc2V0dGluZ3Mt
PnNldERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpOwog
fQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCBkZXZp
Y2VUb3VjaFNjcmVlbikKK3sKKyAgICBtX3NldHRpbmdzLT5zZXREZXZpY2VUb3VjaFNjcmVlbihk
ZXZpY2VUb3VjaFNjcmVlbik7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZhdWx0
VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmIGVuY29kaW5nKQogewogICAgIG1fc2V0
dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKChTdHJpbmcpZW5jb2RpbmcpOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJKHJldmlz
aW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZShpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXREZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lk
IHNldERldmljZVRvdWNoU2NyZWVuKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2Ny
aXB0RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVk
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzkyLDYgKzI3OTIsOCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvCiAgICAgICAgICAgICBtX3Bh
Z2UtPnNldHRpbmdzKCktPmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpOwogICAgICAgICBpZiAo
IXBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKQogICAgICAgICAgICAgcG9w
dXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgICAgICBwb3B1cFNl
dHRpbmdzLmlzRGV2aWNlVG91Y2hTY3JlZW4gPQorICAgICAgICAgICAgbV9wYWdlLT5zZXR0aW5n
cygpLT5pc0RldmljZVRvdWNoU2NyZWVuKCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cCA9IFBv
cHVwQ29udGFpbmVyOjpjcmVhdGUobV9hdXRvZmlsbFBvcHVwQ2xpZW50LmdldCgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVy
OjpTdWdnZXN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcHVwU2V0dGluZ3MpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9Qb3B1cE1lbnVUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODIsMTEgKzE4MiwxMCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkKICAgICB7Ci0gICAgICAgIC8vIFdoZW4gdG91Y2ggaXMgZW5hYmxlZCwgcGFkZGluZyBp
cyBhZGRlZCB0byBvcHRpb24gZWxlbWVudHMKLSAgICAgICAgLy8gSW4gdGhlc2UgdGVzdHMsIHdl
J2xsIGFzc3VtZSB0b3VjaCBpcyBkaXNhYmxlZC4KLSAgICAgICAgbV90b3VjaFdhc0VuYWJsZWQg
PSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKTsKLSAgICAgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2V0VG91Y2hFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV93ZWJW
aWV3ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPihXZWJWaWV3OjpjcmVhdGUoJm1fd2Vidmll
d0NsaWVudCkpOworICAgICAgICAvLyBXaGVuIGEgdG91Y2ggc2NyZWVuIGlzIHByZXNlbnQsIHBh
ZGRpbmcgaXMgYWRkZWQgdG8gb3B0aW9uIGVsZW1lbnRzLgorICAgICAgICAvLyBJbiB0aGVzZSB0
ZXN0cywgd2UnbGwgYXNzdW1lIG5vIHRvdWNoIHNjcmVlbiBpcyBhdHRhY2hlZC4KKyAgICAgICAg
bV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNldERldmljZVRvdWNoU2NyZWVuKGZhbHNl
KTsKICAgICAgICAgbV93ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1lQ2xp
ZW50KTsKICAgICAgICAgbV9wb3B1cE1lbnUgPSBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hyb21p
dW0oJm1fcG9wdXBNZW51Q2xpZW50KSk7CiAgICAgfQpAQCAtMTk2LDcgKzE5NSw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgbV9wb3B1cE1lbnUgPSAwOwogICAgICAgICBtX3dlYlZpZXctPmNsb3Nl
KCk7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwot
ICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQobV90b3VjaFdh
c0VuYWJsZWQpOwogICAgIH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBjdXJyZW50
bHkgaXMgYSBzZWxlY3QgcG9wdXAgaW4gdGhlIFdlYlZpZXcuCkBAIC0yODQsNyArMjgyLDYgQEAg
cHJvdGVjdGVkOgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCBtX3dlYkZyYW1lQ2xpZW50OwogICAg
IFRlc3RQb3B1cE1lbnVDbGllbnQgbV9wb3B1cE1lbnVDbGllbnQ7CiAgICAgUmVmUHRyPFBvcHVw
TWVudT4gbV9wb3B1cE1lbnU7Ci0gICAgYm9vbCBtX3RvdWNoV2FzRW5hYmxlZDsKICAgICBzdGQ6
OnN0cmluZyBiYXNlVVJMOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140933</attachid>
            <date>2012-05-09 06:50:37 -0700</date>
            <delta_ts>2012-05-16 07:56:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120509095034.patch</filename>
            <type>text/plain</type>
            <size>10624</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTA4ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2
aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzRGV2aWNlVG91
Y2hTY3JlZW4pOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6Omdl
dFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6
CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVDaHJvbWl1bTo6c2hvdyk6CisKIDIwMTItMDUtMDggIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZh
ZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIVE1MRWxlbWVudFN0YWNrOjpoYXNPbmx5SFRN
TEVsZW1lbnRzSW5TY29wZSBpcyBubyBsb25nZXIgY2FsbGVkCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NSw2ICsyNjUsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24o
ZmFsc2UpCiAgICAgLCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoZmFs
c2UpCiAgICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1ZSkKKyAgICAsIG1f
ZGV2aWNlVG91Y2hTY3JlZW4oZmFsc2UpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eVRpbWVyKHRoaXMsICZTZXR0aW5nczo6bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJGaXJl
ZCkKICAgICAsIG1faW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29u
ZHMoZGVmYXVsdEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRz
KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNpb24gMTE2NDM3KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsNiArNTYx
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFJlcXVlc3RBbmltYXRp
b25GcmFtZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5h
YmxlZCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOyB9CiAK
KyAgICAgICAgdm9pZCBzZXREZXZpY2VUb3VjaFNjcmVlbihib29sIGVuYWJsZWQpIHsgbV9kZXZp
Y2VUb3VjaFNjcmVlbiA9IGVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBpc0RldmljZVRvdWNoU2Ny
ZWVuKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VUb3VjaFNjcmVlbjsgfQorCiAjaWYgVVNFKEpT
QykKICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKGJvb2wpOwogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXNwZWN0UHJp
b3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKTsKQEAgLTcyNSw2ICs3MjgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biA6IDE7CiAgICAgICAgIGJvb2wgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2
aW9yIDogMTsKICAgICAgICAgYm9vbCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgOiAx
OworICAgICAgICBib29sIG1fZGV2aWNlVG91Y2hTY3JlZW4gOiAxOwogCiAgICAgICAgIFRpbWVy
PFNldHRpbmdzPiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyOwogICAgICAgICB2b2lk
IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+Kik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJv
eC5jcHAJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzMiw3ICs2MzIsNyBAQCBp
bnQgUG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQoaW50IGluZGV4CiB7CiAgICAgaW50IHNjYWxl
ID0gbV9zZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgaW50IHBhZGRpbmdG
b3JUb3VjaCA9IDA7Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxl
ZCgpKQorICAgIGlmIChtX3NldHRpbmdzLmlzRGV2aWNlVG91Y2hTY3JlZW4pCiAgICAgICAgIHBh
ZGRpbmdGb3JUb3VjaCA9IFBvcHVwTWVudUNocm9taXVtOjpvcHRpb25QYWRkaW5nRm9yVG91Y2go
KTsKICAgICBpZiAoaW5kZXggPCAwIHx8IG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShpbmRleCku
aXNEaXNwbGF5Tm9uZSgpKQogICAgICAgICByZXR1cm4gUG9wdXBNZW51Q2hyb21pdW06Om1pbmlt
dW1Sb3dIZWlnaHQoKSAqIHNjYWxlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBMaXN0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCSh3b3JraW5nIGNvcHkpCkBA
IC04MSw2ICs4MSw3IEBAIHN0cnVjdCBQb3B1cENvbnRhaW5lclNldHRpbmdzIHsKICAgICBib29s
IHJlc3RyaWN0V2lkdGhPZkxpc3RCb3g7CiAKICAgICBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFj
dG9yOworICAgIGJvb2wgaXNEZXZpY2VUb3VjaFNjcmVlbjsKIH07CiAKIC8vIEEgY29udGFpbmVy
IGZvciB0aGUgZGF0YSBmb3IgZWFjaCBtZW51IGl0ZW0gKGUuZy4gcmVwcmVzZW50ZWQgYnkgPG9w
dGlvbj4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNo
cm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzQsNiArNzQsOCBAQCB2b2lkIFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IElu
dFJlCiAgICAgICAgICAgICB2LT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmRlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvcigpOwogICAgICAgICBpZiAoIXBvcHVwU2V0dGluZ3MuZGVmYXVsdERl
dmljZVNjYWxlRmFjdG9yKQogICAgICAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3IgPSAxOworICAgICAgICBwb3B1cFNldHRpbmdzLmlzRGV2aWNlVG91Y2hTY3Jl
ZW4gPQorICAgICAgICAgICAgdi0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5pc0Rldmlj
ZVRvdWNoU2NyZWVuKCk7CiAgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRl
KGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdzKTsKICAgICB9
CiAgICAgcC5wb3B1cC0+c2hvd0luUmVjdChyLCB2LCBpbmRleCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2NDU3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNS0wOCAg
Um9iIEZsYWNrICA8ZmxhY2tyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE9u
bHkgaW5jcmVhc2Ugc2l6ZSBvZiBDb21ibyBCb3ggT3B0aW9ucyB3aGVuIGRpc3BsYXllZCBvbiB0
b3VjaCBzY3JlZW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTkyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZHMgYSBmbGFnIHRvIHNldCB3aGV0aGVyIHRoZSBjdXJyZW50IGRldmljZSBpcyBhIHRv
dWNoIHNjcmVlbiwgaW5kZXBlbmRlbnQgb2Ygd2hldGhlciB0b3VjaCBldmVudHMgYXJlIHN1cHBv
cnRlZCBhbmQgdXNlIHRoaXMgZm9yIHRoZSBjb21ibyBib3ggc2l6aW5nLgorCisgICAgICAgICog
cHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGV2aWNlVG91Y2hTY3JlZW4p
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6Cisg
ICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMp
OgorICAgICAgICAqIHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
ZWxlY3RQb3B1cE1lbnVUZXN0OjpTZXRVcCk6CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdFBvcHVw
TWVudVRlc3Q6OlRlYXJEb3duKToKKyAgICAgICAgKFNlbGVjdFBvcHVwTWVudVRlc3QpOgorCiAy
MDEyLTA1LTA4ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIENyZWF0ZSBMaW5rSGlnaGxpZ2h0TGF5ZXJDaHJvbWl1bSBjbGFz
cyB0byBwcm92aWRlIGxpbmstaGlnaGxpZ2h0IHByZXZpZXcgYW5pbWF0aW9ucyBmb3IgR3JhcGhp
Y3NMYXllckNocm9taXVtLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZShpbnQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdERldmljZVNjYWxlRmFjdG9yKGludCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJT
dHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERldmljZVRvdWNoU2NyZWVuKGJvb2wp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wp
ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcAkocmV2aXNpb24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCwxMSBAQCB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RGVmYXVsdERldmljZVNjCiAgICAgbV9zZXR0aW5ncy0+
c2V0RGVmYXVsdERldmljZVNjYWxlRmFjdG9yKGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvcik7CiB9
CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VUb3VjaFNjcmVlbihib29sIGRldmlj
ZVRvdWNoU2NyZWVuKQoreworICAgIG1fc2V0dGluZ3MtPnNldERldmljZVRvdWNoU2NyZWVuKGRl
dmljZVRvdWNoU2NyZWVuKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYgZW5jb2RpbmcpCiB7CiAgICAgbV9zZXR0
aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKFN0cmluZyllbmNvZGluZyk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNp
b24gMTE2NDM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3Jp
cHRFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkoYm9vbCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCShyZXZpc2lvbiAxMTY0MzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OTIsNiArMjc5Miw4IEBAIHZv
aWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICAgICAgICAgIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIGlmICgh
cG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgICAgICBwb3B1
cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHBvcHVwU2V0
dGluZ3MuaXNEZXZpY2VUb3VjaFNjcmVlbiA9CisgICAgICAgICAgICBtX3BhZ2UtPnNldHRpbmdz
KCktPmlzRGV2aWNlVG91Y2hTY3JlZW4oKTsKICAgICAgICAgbV9hdXRvZmlsbFBvcHVwID0gUG9w
dXBDb250YWluZXI6OmNyZWF0ZShtX2F1dG9maWxsUG9wdXBDbGllbnQuZ2V0KCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6
OlN1Z2dlc3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9wdXBTZXR0aW5ncyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1BvcHVwTWVudVRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHJldmlzaW9uIDExNjQzNykKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4
MiwxMSArMTgyLDEwIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgU2V0
VXAoKQogICAgIHsKLSAgICAgICAgLy8gV2hlbiB0b3VjaCBpcyBlbmFibGVkLCBwYWRkaW5nIGlz
IGFkZGVkIHRvIG9wdGlvbiBlbGVtZW50cwotICAgICAgICAvLyBJbiB0aGVzZSB0ZXN0cywgd2Un
bGwgYXNzdW1lIHRvdWNoIGlzIGRpc2FibGVkLgotICAgICAgICBtX3RvdWNoV2FzRW5hYmxlZCA9
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxlZCgpOwotICAgICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQoZmFsc2UpOwogICAgICAgICBtX3dlYlZp
ZXcgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KFdlYlZpZXc6OmNyZWF0ZSgmbV93ZWJ2aWV3
Q2xpZW50KSk7CisgICAgICAgIC8vIFdoZW4gYSB0b3VjaCBzY3JlZW4gaXMgcHJlc2VudCwgcGFk
ZGluZyBpcyBhZGRlZCB0byBvcHRpb24gZWxlbWVudHMuCisgICAgICAgIC8vIEluIHRoZXNlIHRl
c3RzLCB3ZSdsbCBhc3N1bWUgbm8gdG91Y2ggc2NyZWVuIGlzIGF0dGFjaGVkLgorICAgICAgICBt
X3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0RGV2aWNlVG91Y2hTY3JlZW4oZmFsc2Up
OwogICAgICAgICBtX3dlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJm1fd2ViRnJhbWVDbGll
bnQpOwogICAgICAgICBtX3BvcHVwTWVudSA9IGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVDaHJvbWl1
bSgmbV9wb3B1cE1lbnVDbGllbnQpKTsKICAgICB9CkBAIC0xOTYsNyArMTk1LDYgQEAgcHJvdGVj
dGVkOgogICAgICAgICBtX3BvcHVwTWVudSA9IDA7CiAgICAgICAgIG1fd2ViVmlldy0+Y2xvc2Uo
KTsKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlVucmVnaXN0ZXJBbGxNb2NrZWRVUkxzKCk7Ci0g
ICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFRvdWNoRW5hYmxlZChtX3RvdWNoV2Fz
RW5hYmxlZCk7CiAgICAgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIGN1cnJlbnRs
eSBpcyBhIHNlbGVjdCBwb3B1cCBpbiB0aGUgV2ViVmlldy4KQEAgLTI4NCw3ICsyODIsNiBAQCBw
cm90ZWN0ZWQ6CiAgICAgVGVzdFdlYkZyYW1lQ2xpZW50IG1fd2ViRnJhbWVDbGllbnQ7CiAgICAg
VGVzdFBvcHVwTWVudUNsaWVudCBtX3BvcHVwTWVudUNsaWVudDsKICAgICBSZWZQdHI8UG9wdXBN
ZW51PiBtX3BvcHVwTWVudTsKLSAgICBib29sIG1fdG91Y2hXYXNFbmFibGVkOwogICAgIHN0ZDo6
c3RyaW5nIGJhc2VVUkw7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142263</attachid>
            <date>2012-05-16 07:56:57 -0700</date>
            <delta_ts>2012-05-23 11:28:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120516105656.patch</filename>
            <type>text/plain</type>
            <size>11511</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTE2ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2
aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzRGV2aWNlVG91
Y2hTY3JlZW4pOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6Omdl
dFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6
CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVDaHJvbWl1bTo6c2hvdyk6CisKIDIwMTItMDUtMTYgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNv
bT4KIAogICAgICAgICBTVkdTVkdFbGVtZW50IGNoZWNrSW50ZXJzZWN0aW9uIGFuZCBjaGVja0Vu
Y2xvc3VyZSBNZW0gY29ycnVwdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJl
dmlzaW9uIDExNzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjUsNiArMjY1LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgLCBtX3Nob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKGZhbHNlKQogICAgICwg
bV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yKGZhbHNlKQogICAgICwgbV9y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKHRydWUpCisgICAgLCBtX2RldmljZVRvdWNoU2Ny
ZWVuKGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcih0aGlzLCAm
U2V0dGluZ3M6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyRmlyZWQpCiAgICAgLCBtX2lu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKGRlZmF1bHRJbmNy
ZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcykKIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDExNzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTYxLDYgKzU2MSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVk
OyB9CiAgICAgICAgIGJvb2wgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQg
c2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCBlbmFibGVkKSB7IG1fZGV2aWNlVG91Y2hTY3JlZW4g
PSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wgaXNEZXZpY2VUb3VjaFNjcmVlbigpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlVG91Y2hTY3JlZW47IH0KKwogI2lmIFVTRShKU0MpCiAgICAgICAgIHN0
YXRpYyB2b2lkIHNldFNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycyhi
b29sKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKCk7CkBAIC03MjUsNiArNzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBib29sIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gOiAxOwogICAgICAg
ICBib29sIG1fd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciA6IDE7CiAgICAg
ICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIDogMTsKKyAgICAgICAgYm9v
bCBtX2RldmljZVRvdWNoU2NyZWVuIDogMTsKIAogICAgICAgICBUaW1lcjxTZXR0aW5ncz4gbV9s
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcjsKICAgICAgICAgdm9pZCBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiopOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCShyZXZpc2lv
biAxMTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RC
b3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDcgQEAgaW50IFBvcHVwTGlzdEJv
eDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAogewogICAgIGludCBzY2FsZSA9IG1fc2V0dGluZ3Mu
ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIGludCBwYWRkaW5nRm9yVG91Y2ggPSAwOwot
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKSkKKyAgICBpZiAo
bV9zZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuKQogICAgICAgICBwYWRkaW5nRm9yVG91Y2gg
PSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7CiAgICAgaWYgKGlu
ZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUo
KSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkg
KiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlz
dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBA
QCBzdHJ1Y3QgUG9wdXBDb250YWluZXJTZXR0aW5ncyB7CiAgICAgYm9vbCByZXN0cmljdFdpZHRo
T2ZMaXN0Qm94OwogCiAgICAgaW50IGRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBib29s
IGlzRGV2aWNlVG91Y2hTY3JlZW47CiB9OwogCiAvLyBBIGNvbnRhaW5lciBmb3IgdGhlIGRhdGEg
Zm9yIGVhY2ggbWVudSBpdGVtIChlLmcuIHJlcHJlc2VudGVkIGJ5IDxvcHRpb24+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwCShyZXZpc2lvbiAxMTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0
LDggQEAgdm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRSZQogICAgICAgICAg
ICAgdi0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3IoKTsKICAgICAgICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
cikKICAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0g
MTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuID0KKyAgICAgICAg
ICAgIHYtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+aXNEZXZpY2VUb3VjaFNjcmVlbigp
OwogICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9w
dXBDb250YWluZXI6OlNlbGVjdCwgcG9wdXBTZXR0aW5ncyk7CiAgICAgfQogICAgIHAucG9wdXAt
PnNob3dJblJlY3QociwgdiwgaW5kZXgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDExNzI5MCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDUtMTYgIFJvYiBGbGFjayAgPGZs
YWNrckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBPbmx5IGluY3JlYXNlIHNp
emUgb2YgQ29tYm8gQm94IE9wdGlvbnMgd2hlbiBkaXNwbGF5ZWQgb24gdG91Y2ggc2NyZWVuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTkyMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBmbGFn
IHRvIHNldCB3aGV0aGVyIHRoZSBjdXJyZW50IGRldmljZSBpcyBhIHRvdWNoIHNjcmVlbiwgaW5k
ZXBlbmRlbnQgb2Ygd2hldGhlciB0b3VjaCBldmVudHMgYXJlIHN1cHBvcnRlZCBhbmQgdXNlIHRo
aXMgZm9yIHRoZSBjb21ibyBib3ggc2l6aW5nLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRp
bmdzLmg6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGV2aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0
aW5nc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOgorICAgICAgICAqIHRl
c3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1cE1lbnVU
ZXN0OjpTZXRVcCk6CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdFBvcHVwTWVudVRlc3Q6OlRlYXJE
b3duKToKKyAgICAgICAgKFNlbGVjdFBvcHVwTWVudVRlc3QpOgorICAgICAgICAoV2ViS2l0OjpU
RVNUX0YpOgorCiAyMDEyLTA1LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gV2ViIEluc3BlY3RvcjogRGV2VG9vbHNTYW5pdHlU
ZXN0LlRlc3RTY3JpcHRzVGFiSXNQb3B1bGF0ZWRPbkluc3BlY3RlZFBhZ2VSZWZyZXNoIGlzIGJy
b2tlbgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CShyZXZpc2lvbiAxMTcyODEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZShpbnQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdERldmljZVNjYWxlRmFjdG9yKGludCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldERldmljZVRvdWNoU2NyZWVuKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAkocmV2
aXNpb24gMTE3MjgxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIFdlYlNldHRp
bmdzSW1wbDo6c2V0RGVmYXVsdERldmljZVNjCiAgICAgbV9zZXR0aW5ncy0+c2V0RGVmYXVsdERl
dmljZVNjYWxlRmFjdG9yKGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvcik7CiB9CiAKK3ZvaWQgV2Vi
U2V0dGluZ3NJbXBsOjpzZXREZXZpY2VUb3VjaFNjcmVlbihib29sIGRldmljZVRvdWNoU2NyZWVu
KQoreworICAgIG1fc2V0dGluZ3MtPnNldERldmljZVRvdWNoU2NyZWVuKGRldmljZVRvdWNoU2Ny
ZWVuKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKGNvbnN0IFdlYlN0cmluZyYgZW5jb2RpbmcpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoKFN0cmluZyllbmNvZGluZyk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNpb24gMTE3MjgxKQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRNaW5p
bXVtTG9naWNhbEZvbnRTaXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHREZXZp
Y2VTY2FsZUZhY3RvcihpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29k
aW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlVG91
Y2hTY3JlZW4oYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRFbmFibGVkKGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9v
bCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShy
ZXZpc2lvbiAxMTcyODEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MjUsNiArMjgyNSw4IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KICAgICAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3Mo
KS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIGlmICghcG9wdXBTZXR0aW5n
cy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRl
ZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuaXNEZXZp
Y2VUb3VjaFNjcmVlbiA9CisgICAgICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPmlzRGV2aWNl
VG91Y2hTY3JlZW4oKTsKICAgICAgICAgbV9hdXRvZmlsbFBvcHVwID0gUG9wdXBDb250YWluZXI6
OmNyZWF0ZShtX2F1dG9maWxsUG9wdXBDbGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9wdXBDb250YWluZXI6OlN1Z2dlc3Rpb24s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBT
ZXR0aW5ncyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRl
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBN
ZW51VGVzdC5jcHAJKHJldmlzaW9uIDExNzI4MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MiwxMCArMTgyLDYg
QEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCiAgICAgewot
ICAgICAgICAvLyBXaGVuIHRvdWNoIGlzIGVuYWJsZWQsIHBhZGRpbmcgaXMgYWRkZWQgdG8gb3B0
aW9uIGVsZW1lbnRzCi0gICAgICAgIC8vIEluIHRoZXNlIHRlc3RzLCB3ZSdsbCBhc3N1bWUgdG91
Y2ggaXMgZGlzYWJsZWQuCi0gICAgICAgIG1fdG91Y2hXYXNFbmFibGVkID0gUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkKCk7Ci0gICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNldFRvdWNoRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fd2ViVmlldyA9IHN0YXRpY19j
YXN0PFdlYlZpZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX3dlYnZpZXdDbGllbnQpKTsKICAg
ICAgICAgbV93ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1lQ2xpZW50KTsK
ICAgICAgICAgbV9wb3B1cE1lbnUgPSBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hyb21pdW0oJm1f
cG9wdXBNZW51Q2xpZW50KSk7CkBAIC0xOTYsNyArMTkyLDYgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBtX3BvcHVwTWVudSA9IDA7CiAgICAgICAgIG1fd2ViVmlldy0+Y2xvc2UoKTsKICAgICAgICAg
d2Via2l0X3N1cHBvcnQ6OlVucmVnaXN0ZXJBbGxNb2NrZWRVUkxzKCk7Ci0gICAgICAgIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNldFRvdWNoRW5hYmxlZChtX3RvdWNoV2FzRW5hYmxlZCk7CiAg
ICAgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIGN1cnJlbnRseSBpcyBhIHNlbGVj
dCBwb3B1cCBpbiB0aGUgV2ViVmlldy4KQEAgLTI4NCw3ICsyNzksNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgVGVzdFdlYkZyYW1lQ2xpZW50IG1fd2ViRnJhbWVDbGllbnQ7CiAgICAgVGVzdFBvcHVwTWVu
dUNsaWVudCBtX3BvcHVwTWVudUNsaWVudDsKICAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVw
TWVudTsKLSAgICBib29sIG1fdG91Y2hXYXNFbmFibGVkOwogICAgIHN0ZDo6c3RyaW5nIGJhc2VV
Ukw7CiB9OwogCkBAIC0zNjAsOCArMzU0LDkgQEAgVEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3Qs
IENsaWNrSXRlbSkKIHsKICAgICBzaG93UG9wdXAoKTsKIAotICAgIC8vIFkgb2YgMTggdG8gYmUg
b24gdGhlIGl0ZW0gYXQgaW5kZXggMSAoMTIgZm9udCBwbHVzIGJvcmRlciBhbmQgbW9yZSB0byBi
ZSBzYWZlKS4KLSAgICBJbnRQb2ludCByb3cxUG9pbnQoMiwgMTgpOworICAgIGludCBtZW51SGVp
Z2h0ID0gbV93ZWJWaWV3LT5zZWxlY3RQb3B1cCgpLT5tZW51SXRlbUhlaWdodCgpOworICAgIC8v
IG1lbnVIZWlnaHQgKiAxLjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5k
ZXggMS4KKyAgICBJbnRQb2ludCByb3cxUG9pbnQoMiwgbWVudUhlaWdodCAqIDEuNSk7CiAgICAg
Ly8gU2ltdWxhdGUgYSBjbGljayBkb3duL3VwIG9uIHRoZSBmaXJzdCBpdGVtLgogICAgIHNpbXVs
YXRlTGVmdE1vdXNlRG93bkV2ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VV
cEV2ZW50KHJvdzFQb2ludCk7CkBAIC0zNzcsOCArMzcyLDkgQEAgVEVTVF9GKFNlbGVjdFBvcHVw
TWVudVRlc3QsIE1vdXNlT3Zlckl0ZQogewogICAgIHNob3dQb3B1cCgpOwogCi0gICAgLy8gWSBv
ZiAxOCB0byBiZSBvbiB0aGUgaXRlbSBhdCBpbmRleCAxICgxMiBmb250IHBsdXMgYm9yZGVyIGFu
ZCBtb3JlIHRvIGJlIHNhZmUpLgotICAgIEludFBvaW50IHJvdzFQb2ludCgyLCAxOCk7CisgICAg
aW50IG1lbnVIZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCktPm1lbnVJdGVtSGVpZ2h0
KCk7CisgICAgLy8gbWVudUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUg
aXRlbSBhdCBpbmRleCAxLgorICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SGVpZ2h0ICog
MS41KTsKICAgICAvLyBTaW11bGF0ZSB0aGUgbW91c2UgbW92aW5nIG92ZXIgdGhlIGZpcnN0IGl0
ZW0uCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocm93MVBvaW50LCByb3cxUG9p
bnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143602</attachid>
            <date>2012-05-23 11:28:48 -0700</date>
            <delta_ts>2012-05-28 13:06:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120523142846.patch</filename>
            <type>text/plain</type>
            <size>15636</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTE2ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2
aWNlVG91Y2hTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzRGV2aWNlVG91
Y2hTY3JlZW4pOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6Omdl
dFJvd0hlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94Lmg6
CisgICAgICAgIChQb3B1cENvbnRhaW5lclNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVDaHJvbWl1bTo6c2hvdyk6CisKIDIwMTItMDUtMjMgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBh
ZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6bmFt
ZSBhdHRyaWJ1dGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxMTgx
ODApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjY3LDYgKzI2Nyw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihmYWxzZSkKICAgICAsIG1fd2FudHNCYWxh
bmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihmYWxzZSkKICAgICAsIG1fcmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZCh0cnVlKQorICAgICwgbV9kZXZpY2VUb3VjaFNjcmVlbihmYWxzZSkK
ICAgICAsIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayhmYWxzZSkKICAgICAsIG1fbG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXIodGhpcywgJlNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHlUaW1lckZpcmVkKQogICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvblRpbWVvdXRJblNlY29uZHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCShyZXZpc2lv
biAxMTgxODApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU2Nyw2ICs1NjcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
c2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9yZXF1ZXN0
QW5pbWF0aW9uRnJhbWVFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIHJlcXVlc3RB
bmltYXRpb25GcmFtZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RBbmltYXRpb25G
cmFtZUVuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldERldmljZVRvdWNoU2NyZWVuKGJvb2wg
ZW5hYmxlZCkgeyBtX2RldmljZVRvdWNoU2NyZWVuID0gZW5hYmxlZDsgfQorICAgICAgICBib29s
IGlzRGV2aWNlVG91Y2hTY3JlZW4oKSBjb25zdCB7IHJldHVybiBtX2RldmljZVRvdWNoU2NyZWVu
OyB9CisKICAgICAgICAgdm9pZCBzZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKGJvb2wg
bmVlZHNRdWlyaykgeyBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgPSBuZWVkc1F1aXJr
OyB9CiAgICAgICAgIGJvb2wgbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyaygpIGNvbnN0IHsg
cmV0dXJuIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyazsgfQogCkBAIC03MzYsNiArNzM5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24gOiAxOwogICAgICAgICBib29sIG1fd2FudHNCYWxhbmNlZFNldERlZmVy
c0xvYWRpbmdCZWhhdmlvciA6IDE7CiAgICAgICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkIDogMTsKKyAgICAgICAgYm9vbCBtX2RldmljZVRvdWNoU2NyZWVuIDogMTsKICAg
ICAgICAgYm9vbCBtX25lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsgOiAxOwogCiAgICAgICAg
IFRpbWVyPFNldHRpbmdzPiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3Bw
CShyZXZpc2lvbiAxMTgxODApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cExpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDcgQEAgaW50IFBv
cHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAogewogICAgIGludCBzY2FsZSA9IG1f
c2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIGludCBwYWRkaW5nRm9yVG91
Y2ggPSAwOwotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKSkK
KyAgICBpZiAobV9zZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuKQogICAgICAgICBwYWRkaW5n
Rm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7CiAg
ICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlzRGlz
cGxheU5vbmUoKSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93
SGVpZ2h0KCkgKiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTGlzdEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTgxODApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAtODAs
NyArODAsMTMgQEAgc3RydWN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgewogICAgIC8vIEF1dG9j
b21wbGV0ZSBwb3B1cHMgYXJlIHJlc3RyaWN0ZWQsIGNvbWJvLWJveGVzIChzZWxlY3QgdGFncykg
YXJlbid0LgogICAgIGJvb2wgcmVzdHJpY3RXaWR0aE9mTGlzdEJveDsKIAorICAgIC8vIFRoZSBk
ZWZhdWx0IGRldmljZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHNjcmVlbiB1c2VkIHRvIGRyYXcgdGhl
IG1lbnUKKyAgICAvLyBhdCB0aGlzIHNjYWxlIHN1aXRhYmxlIGZvciB0aGUgZGV2aWNlIERQSS4K
ICAgICBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOworCisgICAgLy8gSWYgdGhlIGRldmlj
ZSBpcyBhIHRvdWNoIHNjcmVlbiB3ZSBpbmNyZWFzZSB0aGUgaGVpZ2h0IG9mIG1lbnUgaXRlbXMK
KyAgICAvLyB0byBtYWtlIGl0IGVhc2llciB0byB1bmFtYmlndW91c2x5IHRvdWNoIHRoZW0uCisg
ICAgYm9vbCBpc0RldmljZVRvdWNoU2NyZWVuOwogfTsKIAogLy8gQSBjb250YWluZXIgZm9yIHRo
ZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAoZS5nLiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TWVudUNocm9taXVtLmNwcAkocmV2aXNpb24gMTE4MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NiwxNyArNjYsMTkgQEAgUG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiAg
ICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IEludFJl
Y3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIGZyYW1lVmlldywgaW50IGluZGV4
KQogewogICAgIGlmICghcC5wb3B1cCkgeworICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBm
cmFtZVZpZXctPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKTsKICAgICAgICAgUG9wdXBDb250
YWluZXJTZXR0aW5ncyBwb3B1cFNldHRpbmdzID0gZHJvcERvd25TZXR0aW5nczsKICAgICAgICAg
cG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQotICAgICAgICAgICAgdi0+
ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsK
KyAgICAgICAgICAgIHNldHRpbmdzLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICAg
ICAgaWYgKCFwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcikKICAgICAgICAg
ICAgIHBvcHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICAgICAg
cG9wdXBTZXR0aW5ncy5pc0RldmljZVRvdWNoU2NyZWVuID0gc2V0dGluZ3MtPmlzRGV2aWNlVG91
Y2hTY3JlZW4oKTsKICAgICAgICAgcC5wb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoY2xp
ZW50KCksIFBvcHVwQ29udGFpbmVyOjpTZWxlY3QsIHBvcHVwU2V0dGluZ3MpOwogICAgIH0KLSAg
ICBwLnBvcHVwLT5zaG93SW5SZWN0KHIsIHYsIGluZGV4KTsKKyAgICBwLnBvcHVwLT5zaG93SW5S
ZWN0KHJlY3QsIGZyYW1lVmlldywgaW5kZXgpOwogfQogCiB2b2lkIFBvcHVwTWVudUNocm9taXVt
OjpoaWRlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTgxODAp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI2IEBACisyMDEyLTA1LTE2ICBSb2IgRmxhY2sgIDxmbGFja3JAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNyZWFzZSBzaXplIG9mIENvbWJvIEJveCBP
cHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNjcmVlbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5MjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgZmxhZyB0byBzZXQgd2hldGhlciB0
aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3JlZW4sIGluZGVwZW5kZW50IG9mIHdoZXRo
ZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5kIHVzZSB0aGlzIGZvciB0aGUgY29tYm8g
Ym94IHNpemluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAq
IHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0lt
cGw6OnNldERldmljZVRvdWNoU2NyZWVuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VsZWN0UG9wdXBNZW51VGVzdDo6U2V0VXApOgorICAg
ICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1cE1lbnVUZXN0OjpUZWFyRG93bik6CisgICAgICAgIChT
ZWxlY3RQb3B1cE1lbnVUZXN0KToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKwogMjAxMi0w
NS0yMiAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBBcHBseSB2aWV3cG9ydCB0YWcgaW5pdGlhbC1zY2FsZSBvbmx5IG9uY2UKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAkocmV2aXNpb24g
MTE4MTgwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAko
d29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihpbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJp
bmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERldmljZVRvdWNoU2NyZWVuKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0g
MDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcAkocmV2aXNpb24gMTE4MTgwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCwyMSBAQCB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RGVmYXVsdERldmljZVNjCiAgICAgbV9zZXR0aW5ncy0+c2V0
RGVmYXVsdERldmljZVNjYWxlRmFjdG9yKGRlZmF1bHREZXZpY2VTY2FsZUZhY3Rvcik7CiB9CiAK
K2ludCBXZWJTZXR0aW5nc0ltcGw6OmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpCit7CisgICAg
cmV0dXJuIG1fc2V0dGluZ3MtPmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvcigpOworfQorCit2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RGV2aWNlVG91Y2hTY3JlZW4oYm9vbCBkZXZpY2VUb3VjaFNj
cmVlbikKK3sKKyAgICBtX3NldHRpbmdzLT5zZXREZXZpY2VUb3VjaFNjcmVlbihkZXZpY2VUb3Vj
aFNjcmVlbik7Cit9CisKK2Jvb2wgV2ViU2V0dGluZ3NJbXBsOjppc0RldmljZVRvdWNoU2NyZWVu
KCkKK3sKKyAgICByZXR1cm4gbV9zZXR0aW5ncy0+aXNEZXZpY2VUb3VjaFNjcmVlbigpOworfQor
CiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoYm9vbCBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRv
cikKIHsKICAgICBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0g
YXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNpb24gMTE4MTgw
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDggKzU1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWluaW11bUZvbnRTaXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1Mb2dpY2Fs
Rm9udFNpemUoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdERldmljZVNjYWxlRmFj
dG9yKGludCk7CisgICAgdmlydHVhbCBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShj
b25zdCBXZWJTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlVG91Y2hTY3JlZW4o
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIGlzRGV2aWNlVG91Y2hTY3JlZW4oKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDExODE4MCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjk1MSw5ICsyOTUxLDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0
aW8KICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkgewogICAgICAgICBQb3B1cENvbnRhaW5lclNl
dHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmlsbFBvcHVwU2V0dGluZ3M7CiAgICAgICAgIHBv
cHVwU2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yID0KLSAgICAgICAgICAgIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgICAgICBz
ZXR0aW5nc0ltcGwoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIGlmICgh
cG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgICAgICBwb3B1
cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHBvcHVwU2V0
dGluZ3MuaXNEZXZpY2VUb3VjaFNjcmVlbiA9CisgICAgICAgICAgICBzZXR0aW5nc0ltcGwoKS0+
aXNEZXZpY2VUb3VjaFNjcmVlbigpOwogICAgICAgICBtX2F1dG9maWxsUG9wdXAgPSBQb3B1cENv
bnRhaW5lcjo6Y3JlYXRlKG1fYXV0b2ZpbGxQb3B1cENsaWVudC5nZXQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lcjo6U3Vn
Z2VzdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb3B1cFNldHRpbmdzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9w
dXBNZW51VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9Qb3B1cE1lbnVUZXN0LmNwcAkocmV2aXNpb24gMTE4MTgwKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDEw
ICsxODIsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNldFVwKCkK
ICAgICB7Ci0gICAgICAgIC8vIFdoZW4gdG91Y2ggaXMgZW5hYmxlZCwgcGFkZGluZyBpcyBhZGRl
ZCB0byBvcHRpb24gZWxlbWVudHMKLSAgICAgICAgLy8gSW4gdGhlc2UgdGVzdHMsIHdlJ2xsIGFz
c3VtZSB0b3VjaCBpcyBkaXNhYmxlZC4KLSAgICAgICAgbV90b3VjaFdhc0VuYWJsZWQgPSBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKTsKLSAgICAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0VG91Y2hFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV93ZWJWaWV3ID0g
c3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPihXZWJWaWV3OjpjcmVhdGUoJm1fd2Vidmlld0NsaWVu
dCkpOwogICAgICAgICBtX3dlYlZpZXctPmluaXRpYWxpemVNYWluRnJhbWUoJm1fd2ViRnJhbWVD
bGllbnQpOwogICAgICAgICBtX3BvcHVwTWVudSA9IGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVDaHJv
bWl1bSgmbV9wb3B1cE1lbnVDbGllbnQpKTsKQEAgLTE5Niw3ICsxOTIsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIG1fcG9wdXBNZW51ID0gMDsKICAgICAgICAgbV93ZWJWaWV3LT5jbG9zZSgpOwog
ICAgICAgICB3ZWJraXRfc3VwcG9ydDo6VW5yZWdpc3RlckFsbE1vY2tlZFVSTHMoKTsKLSAgICAg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0VG91Y2hFbmFibGVkKG1fdG91Y2hXYXNFbmFi
bGVkKTsKICAgICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgY3VycmVudGx5IGlz
IGEgc2VsZWN0IHBvcHVwIGluIHRoZSBXZWJWaWV3LgpAQCAtMjg0LDcgKzI3OSw2IEBAIHByb3Rl
Y3RlZDoKICAgICBUZXN0V2ViRnJhbWVDbGllbnQgbV93ZWJGcmFtZUNsaWVudDsKICAgICBUZXN0
UG9wdXBNZW51Q2xpZW50IG1fcG9wdXBNZW51Q2xpZW50OwogICAgIFJlZlB0cjxQb3B1cE1lbnU+
IG1fcG9wdXBNZW51OwotICAgIGJvb2wgbV90b3VjaFdhc0VuYWJsZWQ7CiAgICAgc3RkOjpzdHJp
bmcgYmFzZVVSTDsKIH07CiAKQEAgLTM2MCw4ICszNTQsOSBAQCBURVNUX0YoU2VsZWN0UG9wdXBN
ZW51VGVzdCwgQ2xpY2tJdGVtKQogewogICAgIHNob3dQb3B1cCgpOwogCi0gICAgLy8gWSBvZiAx
OCB0byBiZSBvbiB0aGUgaXRlbSBhdCBpbmRleCAxICgxMiBmb250IHBsdXMgYm9yZGVyIGFuZCBt
b3JlIHRvIGJlIHNhZmUpLgotICAgIEludFBvaW50IHJvdzFQb2ludCgyLCAxOCk7CisgICAgaW50
IG1lbnVJdGVtSGVpZ2h0ID0gbV93ZWJWaWV3LT5zZWxlY3RQb3B1cCgpLT5tZW51SXRlbUhlaWdo
dCgpOworICAgIC8vIG1lbnVJdGVtSGVpZ2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9u
IHRoZSBpdGVtIGF0IGluZGV4IDEuCisgICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1lbnVJdGVt
SGVpZ2h0ICogMS41KTsKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGRvd24vdXAgb24gdGhlIGZp
cnN0IGl0ZW0uCiAgICAgc2ltdWxhdGVMZWZ0TW91c2VEb3duRXZlbnQocm93MVBvaW50KTsKICAg
ICBzaW11bGF0ZUxlZnRNb3VzZVVwRXZlbnQocm93MVBvaW50KTsKQEAgLTM3Nyw4ICszNzIsOSBA
QCBURVNUX0YoU2VsZWN0UG9wdXBNZW51VGVzdCwgTW91c2VPdmVySXRlCiB7CiAgICAgc2hvd1Bv
cHVwKCk7CiAKLSAgICAvLyBZIG9mIDE4IHRvIGJlIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEgKDEy
IGZvbnQgcGx1cyBib3JkZXIgYW5kIG1vcmUgdG8gYmUgc2FmZSkuCi0gICAgSW50UG9pbnQgcm93
MVBvaW50KDIsIDE4KTsKKyAgICBpbnQgbWVudUl0ZW1IZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVj
dFBvcHVwKCktPm1lbnVJdGVtSGVpZ2h0KCk7CisgICAgLy8gbWVudUl0ZW1IZWlnaHQgKiAxLjUg
bWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KKyAgICBJbnRQb2lu
dCByb3cxUG9pbnQoMiwgbWVudUl0ZW1IZWlnaHQgKiAxLjUpOwogICAgIC8vIFNpbXVsYXRlIHRo
ZSBtb3VzZSBtb3Zpbmcgb3ZlciB0aGUgZmlyc3QgaXRlbS4KICAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgbW91c2VFdmVudChyb3cxUG9pbnQsIHJvdzFQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDApOwpAQCAtNDIxLDkgKzQxNyw5IEBAIFRFU1RfRihT
ZWxlY3RQb3B1cE1lbnVUZXN0LCBESVNBQkxFRF9TZWwKIAogICAgIHNob3dQb3B1cCgpOwogCi0g
ICAgaW50IG1lbnVIZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCktPm1lbnVJdGVtSGVp
Z2h0KCk7Ci0gICAgLy8gbWVudUhlaWdodCAqIDAuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0
aGUgaXRlbSBhdCBpbmRleCAwLgotICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SGVpZ2h0
ICogMC41KTsKKyAgICBpbnQgbWVudUl0ZW1IZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVjdFBvcHVw
KCktPm1lbnVJdGVtSGVpZ2h0KCk7CisgICAgLy8gbWVudUl0ZW1IZWlnaHQgKiAwLjUgbWVhbnMg
dGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMC4KKyAgICBJbnRQb2ludCByb3cx
UG9pbnQoMiwgbWVudUl0ZW1IZWlnaHQgKiAwLjUpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlRG93
bkV2ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VVcEV2ZW50KHJvdzFQb2lu
dCk7CiAKQEAgLTQzNyw4ICs0MzMsOCBAQCBURVNUX0YoU2VsZWN0UG9wdXBNZW51VGVzdCwgRElT
QUJMRURfU2VsCiAgICAgbV9wb3B1cE1lbnVDbGllbnQuc2V0RGlzYWJsZWRJbmRleCgxKTsKIAog
ICAgIHNob3dQb3B1cCgpOwotICAgIC8vIG1lbnVIZWlnaHQgKiAxLjUgbWVhbnMgdGhlIFkgcG9z
aXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KLSAgICByb3cxUG9pbnQuc2V0WShtZW51SGVp
Z2h0ICogMS41KTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3Np
dGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgorICAgIHJvdzFQb2ludC5zZXRZKG1lbnVJdGVt
SGVpZ2h0ICogMS41KTsKICAgICBzaW11bGF0ZUxlZnRNb3VzZURvd25FdmVudChyb3cxUG9pbnQp
OwogICAgIHNpbXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cxUG9pbnQpOwogCkBAIC00NDYsOCAr
NDQyLDggQEAgVEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3QsIERJU0FCTEVEX1NlbAogICAgIEVY
UEVDVF9TVFJFUSgidXBjbGljayIsIHN0ZDo6c3RyaW5nKGVsZW1lbnQuaW5uZXJUZXh0KCkudXRm
OCgpKS5jX3N0cigpKTsKIAogICAgIHNob3dQb3B1cCgpOwotICAgIC8vIG1lbnVIZWlnaHQgKiAy
LjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMi4KLSAgICByb3cx
UG9pbnQuc2V0WShtZW51SGVpZ2h0ICogMi41KTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDIu
NSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAyLgorICAgIHJvdzFQ
b2ludC5zZXRZKG1lbnVJdGVtSGVpZ2h0ICogMi41KTsKICAgICBzaW11bGF0ZUxlZnRNb3VzZURv
d25FdmVudChyb3cxUG9pbnQpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cxUG9p
bnQpOwogCkBAIC00ODgsOSArNDg0LDkgQEAgVEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3QsIFNl
bGVjdEl0ZW1SZQogCiAgICAgc2hvd1BvcHVwKCk7CiAKLSAgICBpbnQgbWVudUhlaWdodCA9IG1f
d2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKLSAgICAvLyBtZW51SGVp
Z2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEuCi0g
ICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1lbnVIZWlnaHQgKiAxLjUpOworICAgIGludCBtZW51
SXRlbUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsK
KyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUg
aXRlbSBhdCBpbmRleCAxLgorICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SXRlbUhlaWdo
dCAqIDEuNSk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VEb3duRXZlbnQocm93MVBvaW50KTsKICAg
ICBzaW11bGF0ZUxlZnRNb3VzZVVwRXZlbnQocm93MVBvaW50KTsKIApAQCAtNTEwLDkgKzUwNiw5
IEBAIFRFU1RfRihTZWxlY3RQb3B1cE1lbnVUZXN0LCBTZWxlY3RJdGVtUmUKIAogICAgIHNob3dQ
b3B1cCgpOwogCi0gICAgaW50IG1lbnVIZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCkt
Pm1lbnVJdGVtSGVpZ2h0KCk7Ci0gICAgLy8gbWVudUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBw
b3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgotICAgIEludFBvaW50IHJvdzFQb2ludCgy
LCBtZW51SGVpZ2h0ICogMS41KTsKKyAgICBpbnQgbWVudUl0ZW1IZWlnaHQgPSBtX3dlYlZpZXct
PnNlbGVjdFBvcHVwKCktPm1lbnVJdGVtSGVpZ2h0KCk7CisgICAgLy8gbWVudUl0ZW1IZWlnaHQg
KiAxLjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KKyAgICBJ
bnRQb2ludCByb3cxUG9pbnQoMiwgbWVudUl0ZW1IZWlnaHQgKiAxLjUpOwogICAgIHNpbXVsYXRl
TGVmdE1vdXNlRG93bkV2ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VVcEV2
ZW50KHJvdzFQb2ludCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144389</attachid>
            <date>2012-05-28 13:05:16 -0700</date>
            <delta_ts>2012-05-28 13:17:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120528160515.patch</filename>
            <type>text/plain</type>
            <size>15917</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTI4ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIChPT1BTISkKKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2aWNlU3VwcG9ydHNUb3VjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGV2aWNlU3VwcG9ydHNUb3VjaCk6CisgICAgICAgIChT
ZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaDoKKyAgICAgICAgKFBvcHVwQ29udGFp
bmVyU2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKwog
MjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxh
eW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw2ICsyNzAsNyBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24oZmFsc2UpCiAgICAgLCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5n
QmVoYXZpb3IoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1
ZSkKKyAgICAsIG1fZGV2aWNlU3VwcG9ydHNUb3VjaChmYWxzZSkKICAgICAsIG1fbmVlZHNEaWRG
aW5pc2hMb2FkT3JkZXJRdWlyayhmYWxzZSkKICAgICAsIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNT
dGFja2luZ0NvbnRleHQoZmFsc2UpCiAgICAgLCBtX3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQo
dHJ1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDExODcwMykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTc1LDYgKzU3
NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVu
YWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDsgfQog
CisgICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sIGVuYWJsZWQpIHsgbV9k
ZXZpY2VTdXBwb3J0c1RvdWNoID0gZW5hYmxlZDsgfQorICAgICAgICBib29sIGRldmljZVN1cHBv
cnRzVG91Y2goKSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzVG91Y2g7IH0KKwogICAg
ICAgICB2b2lkIHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9vbCBuZWVkc1F1aXJr
KSB7IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVpcms7IH0KICAgICAg
ICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9u
ZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrOyB9CiAKQEAgLTc1Myw2ICs3NTYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiA6IDE7CiAgICAgICAgIGJvb2wgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0Jl
aGF2aW9yIDogMTsKICAgICAgICAgYm9vbCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQg
OiAxOworICAgICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNUb3VjaCA6IDE7CiAgICAgICAgIGJv
b2wgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrIDogMTsKIAogICAgICAgICBib29sIG1f
Zml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgOiAxOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCShyZXZpc2lv
biAxMTg3MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RC
b3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNyArNjMyLDcgQEAgaW50IFBvcHVwTGlzdEJv
eDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAogewogICAgIGludCBzY2FsZSA9IG1fc2V0dGluZ3Mu
ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwogICAgIGludCBwYWRkaW5nRm9yVG91Y2ggPSAwOwot
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEVuYWJsZWQoKSkKKyAgICBpZiAo
bV9zZXR0aW5ncy5kZXZpY2VTdXBwb3J0c1RvdWNoKQogICAgICAgICBwYWRkaW5nRm9yVG91Y2gg
PSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9uUGFkZGluZ0ZvclRvdWNoKCk7CiAgICAgaWYgKGlu
ZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUo
KSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkg
KiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlz
dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTg3MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsMTMg
QEAgc3RydWN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgewogICAgIC8vIEF1dG9jb21wbGV0ZSBw
b3B1cHMgYXJlIHJlc3RyaWN0ZWQsIGNvbWJvLWJveGVzIChzZWxlY3QgdGFncykgYXJlbid0Lgog
ICAgIGJvb2wgcmVzdHJpY3RXaWR0aE9mTGlzdEJveDsKIAorICAgIC8vIFRoZSBkZWZhdWx0IGRl
dmljZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHNjcmVlbiB1c2VkIHRvIGRyYXcgdGhlIG1lbnUKKyAg
ICAvLyBhdCB0aGlzIHNjYWxlIHN1aXRhYmxlIGZvciB0aGUgZGV2aWNlIERQSS4KICAgICBpbnQg
ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOworCisgICAgLy8gSWYgdGhlIGRldmljZSBpcyBhIHRv
dWNoIHNjcmVlbiB3ZSBpbmNyZWFzZSB0aGUgaGVpZ2h0IG9mIG1lbnUgaXRlbXMKKyAgICAvLyB0
byBtYWtlIGl0IGVhc2llciB0byB1bmFtYmlndW91c2x5IHRvdWNoIHRoZW0uCisgICAgYm9vbCBk
ZXZpY2VTdXBwb3J0c1RvdWNoOwogfTsKIAogLy8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZv
ciBlYWNoIG1lbnUgaXRlbSAoZS5nLiByZXByZXNlbnRlZCBieSA8b3B0aW9uPgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9t
aXVtLmNwcAkocmV2aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNyArNjYs
MTggQEAgUG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiAgICAgaGlkZSgp
OwogfQogCi12b2lkIFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZy
YW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25z
dCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIGZyYW1lVmlldywgaW50IGluZGV4KQogewogICAg
IGlmICghcC5wb3B1cCkgeworICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBmcmFtZVZpZXct
PmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKTsKICAgICAgICAgUG9wdXBDb250YWluZXJTZXR0
aW5ncyBwb3B1cFNldHRpbmdzID0gZHJvcERvd25TZXR0aW5nczsKLSAgICAgICAgcG9wdXBTZXR0
aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQotICAgICAgICAgICAgdi0+ZnJhbWUoKS0+
cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAg
cG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSBzZXR0aW5ncy0+ZGVmYXVs
dERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0
RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZp
Y2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGV2aWNlU3VwcG9ydHNU
b3VjaCA9IHNldHRpbmdzLT5kZXZpY2VTdXBwb3J0c1RvdWNoKCk7CiAgICAgICAgIHAucG9wdXAg
PSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0
LCBwb3B1cFNldHRpbmdzKTsKICAgICB9Ci0gICAgcC5wb3B1cC0+c2hvd0luUmVjdChyLCB2LCBp
bmRleCk7CisgICAgcC5wb3B1cC0+c2hvd0luUmVjdChyZWN0LCBmcmFtZVZpZXcsIGluZGV4KTsK
IH0KIAogdm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6aGlkZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkocmV2aXNpb24gMTE4NzA1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNS0yOCAgUm9i
IEZsYWNrICA8ZmxhY2tyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE9ubHkg
aW5jcmVhc2Ugc2l6ZSBvZiBDb21ibyBCb3ggT3B0aW9ucyB3aGVuIGRpc3BsYXllZCBvbiB0b3Vj
aCBzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1OTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkcyBhIGZsYWcgdG8gc2V0IHdoZXRoZXIgdGhlIGN1cnJlbnQgZGV2aWNlIGlzIGEgdG91Y2gg
c2NyZWVuLCBpbmRlcGVuZGVudCBvZiB3aGV0aGVyIHRvdWNoIGV2ZW50cyBhcmUgc3VwcG9ydGVk
IGFuZCB1c2UgdGhpcyBmb3IgdGhlIGNvbWJvIGJveCBzaXppbmcuCisKKyAgICAgICAgKiBwdWJs
aWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpz
ZXREZXZpY2VTdXBwb3J0c1RvdWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBs
OjpkZXZpY2VTdXBwb3J0c1RvdWNoKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6
CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlv
bnMpOgorICAgICAgICAqIHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTZWxlY3RQb3B1cE1lbnVUZXN0OjpTZXRVcCk6CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdFBv
cHVwTWVudVRlc3Q6OlRlYXJEb3duKToKKyAgICAgICAgKFNlbGVjdFBvcHVwTWVudVRlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorCiAyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBh
bGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBXZWJLaXRU
ZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAkocmV2aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9udEJvb3N0
aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2
aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3Jp
cHRFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFi
bGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseShib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAJKHJldmlzaW9uIDExODcwMykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExOCw2ICsxMTgsMjEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHREZXZp
Y2VTYwogICAgIG1fc2V0dGluZ3MtPnNldERlZmF1bHREZXZpY2VTY2FsZUZhY3RvcihkZWZhdWx0
RGV2aWNlU2NhbGVGYWN0b3IpOwogfQogCitpbnQgV2ViU2V0dGluZ3NJbXBsOjpkZWZhdWx0RGV2
aWNlU2NhbGVGYWN0b3IoKQoreworICAgIHJldHVybiBtX3NldHRpbmdzLT5kZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3IoKTsKK30KKwordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVN1cHBv
cnRzVG91Y2goYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKQoreworICAgIG1fc2V0dGluZ3MtPnNl
dERldmljZVN1cHBvcnRzVG91Y2goZGV2aWNlU3VwcG9ydHNUb3VjaCk7Cit9CisKK2Jvb2wgV2Vi
U2V0dGluZ3NJbXBsOjpkZXZpY2VTdXBwb3J0c1RvdWNoKCkKK3sKKyAgICByZXR1cm4gbV9zZXR0
aW5ncy0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBhcHBseURl
ZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcikKIHsKICAgICBtX2FwcGx5RGVmYXVs
dERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0gYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3I7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDkgKzU1LDEy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bUZvbnRTaXplKGludCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUoaW50KTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdERldmljZVNjYWxlRmFjdG9yKGludCk7CisgICAgdmlydHVhbCBp
bnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEFwcGx5
RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRGb250Qm9vc3RpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgZGV2aWNl
U3VwcG9ydHNUb3VjaCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0RW5hYmxlZChi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJv
b2wpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAko
cmV2aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTU1LDEwICsyOTU1LDEwIEBAIHZvaWQgV2ViVmll
d0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW8KIAogICAgIGlmICghbV9hdXRvZmlsbFBvcHVw
KSB7CiAgICAgICAgIFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGF1dG9m
aWxsUG9wdXBTZXR0aW5nczsKLSAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2Nh
bGVGYWN0b3IgPQotICAgICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3IoKTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3IgPSBzZXR0aW5nc0ltcGwoKS0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAg
ICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAg
ICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAg
IHBvcHVwU2V0dGluZ3MuZGV2aWNlU3VwcG9ydHNUb3VjaCA9IHNldHRpbmdzSW1wbCgpLT5kZXZp
Y2VTdXBwb3J0c1RvdWNoKCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cCA9IFBvcHVwQ29udGFp
bmVyOjpjcmVhdGUobV9hdXRvZmlsbFBvcHVwQ2xpZW50LmdldCgpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyOjpTdWdnZXN0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cHVwU2V0dGluZ3MpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1l
bnVUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Bv
cHVwTWVudVRlc3QuY3BwCShyZXZpc2lvbiAxMTg3MDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsMTAgKzE4
Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAg
IHsKLSAgICAgICAgLy8gV2hlbiB0b3VjaCBpcyBlbmFibGVkLCBwYWRkaW5nIGlzIGFkZGVkIHRv
IG9wdGlvbiBlbGVtZW50cwotICAgICAgICAvLyBJbiB0aGVzZSB0ZXN0cywgd2UnbGwgYXNzdW1l
IHRvdWNoIGlzIGRpc2FibGVkLgotICAgICAgICBtX3RvdWNoV2FzRW5hYmxlZCA9IFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxlZCgpOwotICAgICAgICBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQoZmFsc2UpOwogICAgICAgICBtX3dlYlZpZXcgPSBzdGF0
aWNfY2FzdDxXZWJWaWV3SW1wbCo+KFdlYlZpZXc6OmNyZWF0ZSgmbV93ZWJ2aWV3Q2xpZW50KSk7
CiAgICAgICAgIG1fd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSgmbV93ZWJGcmFtZUNsaWVu
dCk7CiAgICAgICAgIG1fcG9wdXBNZW51ID0gYWRvcHRSZWYobmV3IFBvcHVwTWVudUNocm9taXVt
KCZtX3BvcHVwTWVudUNsaWVudCkpOwpAQCAtMTk2LDcgKzE5Miw2IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgbV9wb3B1cE1lbnUgPSAwOwogICAgICAgICBtX3dlYlZpZXctPmNsb3NlKCk7CiAgICAg
ICAgIHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwotICAgICAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQobV90b3VjaFdhc0VuYWJsZWQp
OwogICAgIH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBjdXJyZW50bHkgaXMgYSBz
ZWxlY3QgcG9wdXAgaW4gdGhlIFdlYlZpZXcuCkBAIC0yODQsNyArMjc5LDYgQEAgcHJvdGVjdGVk
OgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCBtX3dlYkZyYW1lQ2xpZW50OwogICAgIFRlc3RQb3B1
cE1lbnVDbGllbnQgbV9wb3B1cE1lbnVDbGllbnQ7CiAgICAgUmVmUHRyPFBvcHVwTWVudT4gbV9w
b3B1cE1lbnU7Ci0gICAgYm9vbCBtX3RvdWNoV2FzRW5hYmxlZDsKICAgICBzdGQ6OnN0cmluZyBi
YXNlVVJMOwogfTsKIApAQCAtMzYwLDggKzM1NCw5IEBAIFRFU1RfRihTZWxlY3RQb3B1cE1lbnVU
ZXN0LCBDbGlja0l0ZW0pCiB7CiAgICAgc2hvd1BvcHVwKCk7CiAKLSAgICAvLyBZIG9mIDE4IHRv
IGJlIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEgKDEyIGZvbnQgcGx1cyBib3JkZXIgYW5kIG1vcmUg
dG8gYmUgc2FmZSkuCi0gICAgSW50UG9pbnQgcm93MVBvaW50KDIsIDE4KTsKKyAgICBpbnQgbWVu
dUl0ZW1IZWlnaHQgPSBtX3dlYlZpZXctPnNlbGVjdFBvcHVwKCktPm1lbnVJdGVtSGVpZ2h0KCk7
CisgICAgLy8gbWVudUl0ZW1IZWlnaHQgKiAxLjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhl
IGl0ZW0gYXQgaW5kZXggMS4KKyAgICBJbnRQb2ludCByb3cxUG9pbnQoMiwgbWVudUl0ZW1IZWln
aHQgKiAxLjUpOwogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgZG93bi91cCBvbiB0aGUgZmlyc3Qg
aXRlbS4KICAgICBzaW11bGF0ZUxlZnRNb3VzZURvd25FdmVudChyb3cxUG9pbnQpOwogICAgIHNp
bXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cxUG9pbnQpOwpAQCAtMzc3LDggKzM3Miw5IEBAIFRF
U1RfRihTZWxlY3RQb3B1cE1lbnVUZXN0LCBNb3VzZU92ZXJJdGUKIHsKICAgICBzaG93UG9wdXAo
KTsKIAotICAgIC8vIFkgb2YgMTggdG8gYmUgb24gdGhlIGl0ZW0gYXQgaW5kZXggMSAoMTIgZm9u
dCBwbHVzIGJvcmRlciBhbmQgbW9yZSB0byBiZSBzYWZlKS4KLSAgICBJbnRQb2ludCByb3cxUG9p
bnQoMiwgMTgpOworICAgIGludCBtZW51SXRlbUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9w
dXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDEuNSBtZWFu
cyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgorICAgIEludFBvaW50IHJv
dzFQb2ludCgyLCBtZW51SXRlbUhlaWdodCAqIDEuNSk7CiAgICAgLy8gU2ltdWxhdGUgdGhlIG1v
dXNlIG1vdmluZyBvdmVyIHRoZSBmaXJzdCBpdGVtLgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBt
b3VzZUV2ZW50KHJvdzFQb2ludCwgcm93MVBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCk7CkBAIC00MjEsOSArNDE3LDkgQEAgVEVTVF9GKFNlbGVj
dFBvcHVwTWVudVRlc3QsIERJU0FCTEVEX1NlbAogCiAgICAgc2hvd1BvcHVwKCk7CiAKLSAgICBp
bnQgbWVudUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQo
KTsKLSAgICAvLyBtZW51SGVpZ2h0ICogMC41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBp
dGVtIGF0IGluZGV4IDAuCi0gICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1lbnVIZWlnaHQgKiAw
LjUpOworICAgIGludCBtZW51SXRlbUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+
bWVudUl0ZW1IZWlnaHQoKTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDAuNSBtZWFucyB0aGUg
WSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAwLgorICAgIEludFBvaW50IHJvdzFQb2lu
dCgyLCBtZW51SXRlbUhlaWdodCAqIDAuNSk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VEb3duRXZl
bnQocm93MVBvaW50KTsKICAgICBzaW11bGF0ZUxlZnRNb3VzZVVwRXZlbnQocm93MVBvaW50KTsK
IApAQCAtNDM3LDggKzQzMyw4IEBAIFRFU1RfRihTZWxlY3RQb3B1cE1lbnVUZXN0LCBESVNBQkxF
RF9TZWwKICAgICBtX3BvcHVwTWVudUNsaWVudC5zZXREaXNhYmxlZEluZGV4KDEpOwogCiAgICAg
c2hvd1BvcHVwKCk7Ci0gICAgLy8gbWVudUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlv
biBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgotICAgIHJvdzFQb2ludC5zZXRZKG1lbnVIZWlnaHQg
KiAxLjUpOworICAgIC8vIG1lbnVJdGVtSGVpZ2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9u
IG9uIHRoZSBpdGVtIGF0IGluZGV4IDEuCisgICAgcm93MVBvaW50LnNldFkobWVudUl0ZW1IZWln
aHQgKiAxLjUpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlRG93bkV2ZW50KHJvdzFQb2ludCk7CiAg
ICAgc2ltdWxhdGVMZWZ0TW91c2VVcEV2ZW50KHJvdzFQb2ludCk7CiAKQEAgLTQ0Niw4ICs0NDIs
OCBAQCBURVNUX0YoU2VsZWN0UG9wdXBNZW51VGVzdCwgRElTQUJMRURfU2VsCiAgICAgRVhQRUNU
X1NUUkVRKCJ1cGNsaWNrIiwgc3RkOjpzdHJpbmcoZWxlbWVudC5pbm5lclRleHQoKS51dGY4KCkp
LmNfc3RyKCkpOwogCiAgICAgc2hvd1BvcHVwKCk7Ci0gICAgLy8gbWVudUhlaWdodCAqIDIuNSBt
ZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAyLgotICAgIHJvdzFQb2lu
dC5zZXRZKG1lbnVIZWlnaHQgKiAyLjUpOworICAgIC8vIG1lbnVJdGVtSGVpZ2h0ICogMi41IG1l
YW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDIuCisgICAgcm93MVBvaW50
LnNldFkobWVudUl0ZW1IZWlnaHQgKiAyLjUpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlRG93bkV2
ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VVcEV2ZW50KHJvdzFQb2ludCk7
CiAKQEAgLTQ4OCw5ICs0ODQsOSBAQCBURVNUX0YoU2VsZWN0UG9wdXBNZW51VGVzdCwgU2VsZWN0
SXRlbVJlCiAKICAgICBzaG93UG9wdXAoKTsKIAotICAgIGludCBtZW51SGVpZ2h0ID0gbV93ZWJW
aWV3LT5zZWxlY3RQb3B1cCgpLT5tZW51SXRlbUhlaWdodCgpOwotICAgIC8vIG1lbnVIZWlnaHQg
KiAxLjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KLSAgICBJ
bnRQb2ludCByb3cxUG9pbnQoMiwgbWVudUhlaWdodCAqIDEuNSk7CisgICAgaW50IG1lbnVJdGVt
SGVpZ2h0ID0gbV93ZWJWaWV3LT5zZWxlY3RQb3B1cCgpLT5tZW51SXRlbUhlaWdodCgpOworICAg
IC8vIG1lbnVJdGVtSGVpZ2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVt
IGF0IGluZGV4IDEuCisgICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1lbnVJdGVtSGVpZ2h0ICog
MS41KTsKICAgICBzaW11bGF0ZUxlZnRNb3VzZURvd25FdmVudChyb3cxUG9pbnQpOwogICAgIHNp
bXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cxUG9pbnQpOwogCkBAIC01MTAsOSArNTA2LDkgQEAg
VEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3QsIFNlbGVjdEl0ZW1SZQogCiAgICAgc2hvd1BvcHVw
KCk7CiAKLSAgICBpbnQgbWVudUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVu
dUl0ZW1IZWlnaHQoKTsKLSAgICAvLyBtZW51SGVpZ2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0
aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEuCi0gICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1l
bnVIZWlnaHQgKiAxLjUpOworICAgIGludCBtZW51SXRlbUhlaWdodCA9IG1fd2ViVmlldy0+c2Vs
ZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDEu
NSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgorICAgIEludFBv
aW50IHJvdzFQb2ludCgyLCBtZW51SXRlbUhlaWdodCAqIDEuNSk7CiAgICAgc2ltdWxhdGVMZWZ0
TW91c2VEb3duRXZlbnQocm93MVBvaW50KTsKICAgICBzaW11bGF0ZUxlZnRNb3VzZVVwRXZlbnQo
cm93MVBvaW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144390</attachid>
            <date>2012-05-28 13:18:05 -0700</date>
            <delta_ts>2012-05-28 14:55:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85921-20120528161804.patch</filename>
            <type>text/plain</type>
            <size>16004</size>
            <attacher name="Robert Flack">flackr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTI4ICBSb2IgRmxh
Y2sgIDxmbGFja3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gT25seSBpbmNy
ZWFzZSBzaXplIG9mIENvbWJvIEJveCBPcHRpb25zIHdoZW4gZGlzcGxheWVkIG9uIHRvdWNoIHNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IGEgZmxhZyB0byBzZXQgd2hldGhlciB0aGUgY3VycmVudCBkZXZpY2UgaXMgYSB0b3VjaCBzY3Jl
ZW4sIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdG91Y2ggZXZlbnRzIGFyZSBzdXBwb3J0ZWQgYW5k
IHVzZSB0aGlzIGZvciB0aGUgY29tYm8gYm94IHNpemluZy4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYXMgdGhpcyBpcyBhIGZsYWcgY2hhbmdlIGFuZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKKworICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
c2V0RGV2aWNlU3VwcG9ydHNUb3VjaCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGV2
aWNlU3VwcG9ydHNUb3VjaCk6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlz
dEJveDo6Z2V0Um93SGVpZ2h0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExp
c3RCb3guaDoKKyAgICAgICAgKFBvcHVwQ29udGFpbmVyU2V0dGluZ3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKwogMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1Q
YWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2
aXNpb24gMTE4NzAzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3MCw2ICsyNzAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFn
ZSkKICAgICAsIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oZmFsc2UpCiAgICAgLCBt
X3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IoZmFsc2UpCiAgICAgLCBtX3Jl
cXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQodHJ1ZSkKKyAgICAsIG1fZGV2aWNlU3VwcG9ydHNU
b3VjaChmYWxzZSkKICAgICAsIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayhmYWxzZSkK
ICAgICAsIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoZmFsc2UpCiAgICAg
LCBtX3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQodHJ1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgJKHJldmlzaW9uIDExODcwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtNTc1LDYgKzU3NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgeyBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAg
IGJvb2wgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVx
dWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGV2aWNlU3Vw
cG9ydHNUb3VjaChib29sIGVuYWJsZWQpIHsgbV9kZXZpY2VTdXBwb3J0c1RvdWNoID0gZW5hYmxl
ZDsgfQorICAgICAgICBib29sIGRldmljZVN1cHBvcnRzVG91Y2goKSBjb25zdCB7IHJldHVybiBt
X2RldmljZVN1cHBvcnRzVG91Y2g7IH0KKwogICAgICAgICB2b2lkIHNldE5lZWRzRGlkRmluaXNo
TG9hZE9yZGVyUXVpcmsoYm9vbCBuZWVkc1F1aXJrKSB7IG1fbmVlZHNEaWRGaW5pc2hMb2FkT3Jk
ZXJRdWlyayA9IG5lZWRzUXVpcms7IH0KICAgICAgICAgYm9vbCBuZWVkc0RpZEZpbmlzaExvYWRP
cmRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJr
OyB9CiAKQEAgLTc1Myw2ICs3NTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA6IDE7CiAgICAgICAgIGJvb2wgbV93
YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yIDogMTsKICAgICAgICAgYm9vbCBt
X3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgOiAxOworICAgICAgICBib29sIG1fZGV2aWNl
U3VwcG9ydHNUb3VjaCA6IDE7CiAgICAgICAgIGJvb2wgbV9uZWVkc0RpZEZpbmlzaExvYWRPcmRl
clF1aXJrIDogMTsKIAogICAgICAgICBib29sIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2lu
Z0NvbnRleHQgOiAxOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cExpc3RCb3guY3BwCShyZXZpc2lvbiAxMTg3MDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MzIsNyArNjMyLDcgQEAgaW50IFBvcHVwTGlzdEJveDo6Z2V0Um93SGVpZ2h0KGludCBpbmRleAog
ewogICAgIGludCBzY2FsZSA9IG1fc2V0dGluZ3MuZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwog
ICAgIGludCBwYWRkaW5nRm9yVG91Y2ggPSAwOwotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjp0b3VjaEVuYWJsZWQoKSkKKyAgICBpZiAobV9zZXR0aW5ncy5kZXZpY2VTdXBwb3J0c1Rv
dWNoKQogICAgICAgICBwYWRkaW5nRm9yVG91Y2ggPSBQb3B1cE1lbnVDaHJvbWl1bTo6b3B0aW9u
UGFkZGluZ0ZvclRvdWNoKCk7CiAgICAgaWYgKGluZGV4IDwgMCB8fCBtX3BvcHVwQ2xpZW50LT5p
dGVtU3R5bGUoaW5kZXgpLmlzRGlzcGxheU5vbmUoKSkKICAgICAgICAgcmV0dXJuIFBvcHVwTWVu
dUNocm9taXVtOjptaW5pbXVtUm93SGVpZ2h0KCkgKiBzY2FsZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTGlzdEJveC5oCShyZXZpc2lvbiAxMTg3
MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cExpc3RCb3guaAko
d29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsMTMgQEAgc3RydWN0IFBvcHVwQ29udGFpbmVyU2V0
dGluZ3MgewogICAgIC8vIEF1dG9jb21wbGV0ZSBwb3B1cHMgYXJlIHJlc3RyaWN0ZWQsIGNvbWJv
LWJveGVzIChzZWxlY3QgdGFncykgYXJlbid0LgogICAgIGJvb2wgcmVzdHJpY3RXaWR0aE9mTGlz
dEJveDsKIAorICAgIC8vIFRoZSBkZWZhdWx0IGRldmljZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHNj
cmVlbiB1c2VkIHRvIGRyYXcgdGhlIG1lbnUKKyAgICAvLyBhdCB0aGlzIHNjYWxlIHN1aXRhYmxl
IGZvciB0aGUgZGV2aWNlIERQSS4KICAgICBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9yOwor
CisgICAgLy8gSWYgdGhlIGRldmljZSBpcyBhIHRvdWNoIHNjcmVlbiB3ZSBpbmNyZWFzZSB0aGUg
aGVpZ2h0IG9mIG1lbnUgaXRlbXMKKyAgICAvLyB0byBtYWtlIGl0IGVhc2llciB0byB1bmFtYmln
dW91c2x5IHRvdWNoIHRoZW0uCisgICAgYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoOwogfTsKIAog
Ly8gQSBjb250YWluZXIgZm9yIHRoZSBkYXRhIGZvciBlYWNoIG1lbnUgaXRlbSAoZS5nLiByZXBy
ZXNlbnRlZCBieSA8b3B0aW9uPgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAkocmV2aXNpb24gMTE4NzAzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNyArNjYsMTggQEAgUG9wdXBNZW51Q2hyb21pdW06On5Q
b3B1cE1lbnVDaHJvbWl1bSgpCiAgICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudUNocm9t
aXVtOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9p
ZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcq
IGZyYW1lVmlldywgaW50IGluZGV4KQogewogICAgIGlmICghcC5wb3B1cCkgeworICAgICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBmcmFtZVZpZXctPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3Mo
KTsKICAgICAgICAgUG9wdXBDb250YWluZXJTZXR0aW5ncyBwb3B1cFNldHRpbmdzID0gZHJvcERv
d25TZXR0aW5nczsKLSAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0
b3IgPQotICAgICAgICAgICAgdi0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5kZWZhdWx0
RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3IgPSBzZXR0aW5ncy0+ZGVmYXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAg
ICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAg
ICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHREZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAg
IHBvcHVwU2V0dGluZ3MuZGV2aWNlU3VwcG9ydHNUb3VjaCA9IHNldHRpbmdzLT5kZXZpY2VTdXBw
b3J0c1RvdWNoKCk7CiAgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNs
aWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBwb3B1cFNldHRpbmdzKTsKICAgICB9Ci0g
ICAgcC5wb3B1cC0+c2hvd0luUmVjdChyLCB2LCBpbmRleCk7CisgICAgcC5wb3B1cC0+c2hvd0lu
UmVjdChyZWN0LCBmcmFtZVZpZXcsIGluZGV4KTsKIH0KIAogdm9pZCBQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4NzA1
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyOCBAQAorMjAxMi0wNS0yOCAgUm9iIEZsYWNrICA8ZmxhY2tyQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIE9ubHkgaW5jcmVhc2Ugc2l6ZSBvZiBDb21ibyBCb3gg
T3B0aW9ucyB3aGVuIGRpc3BsYXllZCBvbiB0b3VjaCBzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTIxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIGZsYWcgdG8gc2V0IHdoZXRoZXIg
dGhlIGN1cnJlbnQgZGV2aWNlIGlzIGEgdG91Y2ggc2NyZWVuLCBpbmRlcGVuZGVudCBvZiB3aGV0
aGVyIHRvdWNoIGV2ZW50cyBhcmUgc3VwcG9ydGVkIGFuZCB1c2UgdGhpcyBmb3IgdGhlIGNvbWJv
IGJveCBzaXppbmcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAg
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJ
bXBsOjpkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBwb3J0c1RvdWNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpkZXZpY2VTdXBwb3J0c1RvdWNoKToKKyAg
ICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOgorICAgICAgICAqIHRlc3RzL1BvcHVw
TWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWxlY3RQb3B1cE1lbnVUZXN0OjpTZXRV
cCk6CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdFBvcHVwTWVudVRlc3Q6OlRlYXJEb3duKToKKyAg
ICAgICAgKFNlbGVjdFBvcHVwTWVudVRlc3QpOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgor
CiAyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KIAogICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAkocmV2aXNpb24g
MTE4NzAzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGJvb2wpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9udEJvb3N0aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKSA9IDA7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAJKHJldmlzaW9uIDExODcwMykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsMjEgQEAgdm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldERlZmF1bHREZXZpY2VTYwogICAgIG1fc2V0dGluZ3MtPnNldERl
ZmF1bHREZXZpY2VTY2FsZUZhY3RvcihkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IpOwogfQogCitp
bnQgV2ViU2V0dGluZ3NJbXBsOjpkZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKQoreworICAgIHJl
dHVybiBtX3NldHRpbmdzLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKK30KKwordm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCBkZXZpY2VTdXBwb3J0
c1RvdWNoKQoreworICAgIG1fc2V0dGluZ3MtPnNldERldmljZVN1cHBvcnRzVG91Y2goZGV2aWNl
U3VwcG9ydHNUb3VjaCk7Cit9CisKK2Jvb2wgV2ViU2V0dGluZ3NJbXBsOjpkZXZpY2VTdXBwb3J0
c1RvdWNoKCkKK3sKKyAgICByZXR1cm4gbV9zZXR0aW5ncy0+ZGV2aWNlU3VwcG9ydHNUb3VjaCgp
OworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcikKIHsKICAgICBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yID0gYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNpb24g
MTE4NzAzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDkgKzU1LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TWluaW11bUZvbnRTaXplKGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE1pbmltdW1M
b2dpY2FsRm9udFNpemUoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdERldmljZVNj
YWxlRmFjdG9yKGludCk7CisgICAgdmlydHVhbCBpbnQgZGVmYXVsdERldmljZVNjYWxlRmFjdG9y
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEFwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb250Qm9vc3RpbmdFbmFibGVk
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25z
dCBXZWJTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChi
b29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaCgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRKYXZhU2NyaXB0RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gMTE4NzAzKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTU1LDEwICsyOTU1LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0
aW8KIAogICAgIGlmICghbV9hdXRvZmlsbFBvcHVwKSB7CiAgICAgICAgIFBvcHVwQ29udGFpbmVy
U2V0dGluZ3MgcG9wdXBTZXR0aW5ncyA9IGF1dG9maWxsUG9wdXBTZXR0aW5nczsKLSAgICAgICAg
cG9wdXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPQotICAgICAgICAgICAgbV9w
YWdlLT5zZXR0aW5ncygpLT5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgcG9w
dXBTZXR0aW5ncy5kZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IgPSBzZXR0aW5nc0ltcGwoKS0+ZGVm
YXVsdERldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIGlmICghcG9wdXBTZXR0aW5ncy5kZWZh
dWx0RGV2aWNlU2NhbGVGYWN0b3IpCiAgICAgICAgICAgICBwb3B1cFNldHRpbmdzLmRlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIHBvcHVwU2V0dGluZ3MuZGV2aWNlU3VwcG9y
dHNUb3VjaCA9IHNldHRpbmdzSW1wbCgpLT5kZXZpY2VTdXBwb3J0c1RvdWNoKCk7CiAgICAgICAg
IG1fYXV0b2ZpbGxQb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUobV9hdXRvZmlsbFBvcHVw
Q2xpZW50LmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBvcHVwQ29udGFpbmVyOjpTdWdnZXN0aW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwU2V0dGluZ3MpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCShyZXZpc2lvbiAx
MTg3MDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODIsMTAgKzE4Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKLSAgICAgICAgLy8gV2hlbiB0b3VjaCBp
cyBlbmFibGVkLCBwYWRkaW5nIGlzIGFkZGVkIHRvIG9wdGlvbiBlbGVtZW50cwotICAgICAgICAv
LyBJbiB0aGVzZSB0ZXN0cywgd2UnbGwgYXNzdW1lIHRvdWNoIGlzIGRpc2FibGVkLgotICAgICAg
ICBtX3RvdWNoV2FzRW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxl
ZCgpOwotICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEVuYWJsZWQoZmFs
c2UpOwogICAgICAgICBtX3dlYlZpZXcgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KFdlYlZp
ZXc6OmNyZWF0ZSgmbV93ZWJ2aWV3Q2xpZW50KSk7CiAgICAgICAgIG1fd2ViVmlldy0+aW5pdGlh
bGl6ZU1haW5GcmFtZSgmbV93ZWJGcmFtZUNsaWVudCk7CiAgICAgICAgIG1fcG9wdXBNZW51ID0g
YWRvcHRSZWYobmV3IFBvcHVwTWVudUNocm9taXVtKCZtX3BvcHVwTWVudUNsaWVudCkpOwpAQCAt
MTk2LDcgKzE5Miw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9wb3B1cE1lbnUgPSAwOwogICAg
ICAgICBtX3dlYlZpZXctPmNsb3NlKCk7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lz
dGVyQWxsTW9ja2VkVVJMcygpOwotICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRU
b3VjaEVuYWJsZWQobV90b3VjaFdhc0VuYWJsZWQpOwogICAgIH0KIAogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiB0aGVyZSBjdXJyZW50bHkgaXMgYSBzZWxlY3QgcG9wdXAgaW4gdGhlIFdlYlZpZXcu
CkBAIC0yODQsNyArMjc5LDYgQEAgcHJvdGVjdGVkOgogICAgIFRlc3RXZWJGcmFtZUNsaWVudCBt
X3dlYkZyYW1lQ2xpZW50OwogICAgIFRlc3RQb3B1cE1lbnVDbGllbnQgbV9wb3B1cE1lbnVDbGll
bnQ7CiAgICAgUmVmUHRyPFBvcHVwTWVudT4gbV9wb3B1cE1lbnU7Ci0gICAgYm9vbCBtX3RvdWNo
V2FzRW5hYmxlZDsKICAgICBzdGQ6OnN0cmluZyBiYXNlVVJMOwogfTsKIApAQCAtMzYwLDggKzM1
NCw5IEBAIFRFU1RfRihTZWxlY3RQb3B1cE1lbnVUZXN0LCBDbGlja0l0ZW0pCiB7CiAgICAgc2hv
d1BvcHVwKCk7CiAKLSAgICAvLyBZIG9mIDE4IHRvIGJlIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEg
KDEyIGZvbnQgcGx1cyBib3JkZXIgYW5kIG1vcmUgdG8gYmUgc2FmZSkuCi0gICAgSW50UG9pbnQg
cm93MVBvaW50KDIsIDE4KTsKKyAgICBpbnQgbWVudUl0ZW1IZWlnaHQgPSBtX3dlYlZpZXctPnNl
bGVjdFBvcHVwKCktPm1lbnVJdGVtSGVpZ2h0KCk7CisgICAgLy8gbWVudUl0ZW1IZWlnaHQgKiAx
LjUgbWVhbnMgdGhlIFkgcG9zaXRpb24gb24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KKyAgICBJbnRQ
b2ludCByb3cxUG9pbnQoMiwgbWVudUl0ZW1IZWlnaHQgKiAxLjUpOwogICAgIC8vIFNpbXVsYXRl
IGEgY2xpY2sgZG93bi91cCBvbiB0aGUgZmlyc3QgaXRlbS4KICAgICBzaW11bGF0ZUxlZnRNb3Vz
ZURvd25FdmVudChyb3cxUG9pbnQpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cx
UG9pbnQpOwpAQCAtMzc3LDggKzM3Miw5IEBAIFRFU1RfRihTZWxlY3RQb3B1cE1lbnVUZXN0LCBN
b3VzZU92ZXJJdGUKIHsKICAgICBzaG93UG9wdXAoKTsKIAotICAgIC8vIFkgb2YgMTggdG8gYmUg
b24gdGhlIGl0ZW0gYXQgaW5kZXggMSAoMTIgZm9udCBwbHVzIGJvcmRlciBhbmQgbW9yZSB0byBi
ZSBzYWZlKS4KLSAgICBJbnRQb2ludCByb3cxUG9pbnQoMiwgMTgpOworICAgIGludCBtZW51SXRl
bUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKKyAg
ICAvLyBtZW51SXRlbUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRl
bSBhdCBpbmRleCAxLgorICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SXRlbUhlaWdodCAq
IDEuNSk7CiAgICAgLy8gU2ltdWxhdGUgdGhlIG1vdXNlIG1vdmluZyBvdmVyIHRoZSBmaXJzdCBp
dGVtLgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KHJvdzFQb2ludCwgcm93MVBv
aW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCk7CkBA
IC00MjEsOSArNDE3LDkgQEAgVEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3QsIERJU0FCTEVEX1Nl
bAogCiAgICAgc2hvd1BvcHVwKCk7CiAKLSAgICBpbnQgbWVudUhlaWdodCA9IG1fd2ViVmlldy0+
c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKLSAgICAvLyBtZW51SGVpZ2h0ICogMC41
IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDAuCi0gICAgSW50UG9p
bnQgcm93MVBvaW50KDIsIG1lbnVIZWlnaHQgKiAwLjUpOworICAgIGludCBtZW51SXRlbUhlaWdo
dCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKKyAgICAvLyBt
ZW51SXRlbUhlaWdodCAqIDAuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBp
bmRleCAwLgorICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SXRlbUhlaWdodCAqIDAuNSk7
CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VEb3duRXZlbnQocm93MVBvaW50KTsKICAgICBzaW11bGF0
ZUxlZnRNb3VzZVVwRXZlbnQocm93MVBvaW50KTsKIApAQCAtNDM3LDggKzQzMyw4IEBAIFRFU1Rf
RihTZWxlY3RQb3B1cE1lbnVUZXN0LCBESVNBQkxFRF9TZWwKICAgICBtX3BvcHVwTWVudUNsaWVu
dC5zZXREaXNhYmxlZEluZGV4KDEpOwogCiAgICAgc2hvd1BvcHVwKCk7Ci0gICAgLy8gbWVudUhl
aWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUgaXRlbSBhdCBpbmRleCAxLgot
ICAgIHJvdzFQb2ludC5zZXRZKG1lbnVIZWlnaHQgKiAxLjUpOworICAgIC8vIG1lbnVJdGVtSGVp
Z2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEuCisg
ICAgcm93MVBvaW50LnNldFkobWVudUl0ZW1IZWlnaHQgKiAxLjUpOwogICAgIHNpbXVsYXRlTGVm
dE1vdXNlRG93bkV2ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VVcEV2ZW50
KHJvdzFQb2ludCk7CiAKQEAgLTQ0Niw4ICs0NDIsOCBAQCBURVNUX0YoU2VsZWN0UG9wdXBNZW51
VGVzdCwgRElTQUJMRURfU2VsCiAgICAgRVhQRUNUX1NUUkVRKCJ1cGNsaWNrIiwgc3RkOjpzdHJp
bmcoZWxlbWVudC5pbm5lclRleHQoKS51dGY4KCkpLmNfc3RyKCkpOwogCiAgICAgc2hvd1BvcHVw
KCk7Ci0gICAgLy8gbWVudUhlaWdodCAqIDIuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0aGUg
aXRlbSBhdCBpbmRleCAyLgotICAgIHJvdzFQb2ludC5zZXRZKG1lbnVIZWlnaHQgKiAyLjUpOwor
ICAgIC8vIG1lbnVJdGVtSGVpZ2h0ICogMi41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBp
dGVtIGF0IGluZGV4IDIuCisgICAgcm93MVBvaW50LnNldFkobWVudUl0ZW1IZWlnaHQgKiAyLjUp
OwogICAgIHNpbXVsYXRlTGVmdE1vdXNlRG93bkV2ZW50KHJvdzFQb2ludCk7CiAgICAgc2ltdWxh
dGVMZWZ0TW91c2VVcEV2ZW50KHJvdzFQb2ludCk7CiAKQEAgLTQ4OCw5ICs0ODQsOSBAQCBURVNU
X0YoU2VsZWN0UG9wdXBNZW51VGVzdCwgU2VsZWN0SXRlbVJlCiAKICAgICBzaG93UG9wdXAoKTsK
IAotICAgIGludCBtZW51SGVpZ2h0ID0gbV93ZWJWaWV3LT5zZWxlY3RQb3B1cCgpLT5tZW51SXRl
bUhlaWdodCgpOwotICAgIC8vIG1lbnVIZWlnaHQgKiAxLjUgbWVhbnMgdGhlIFkgcG9zaXRpb24g
b24gdGhlIGl0ZW0gYXQgaW5kZXggMS4KLSAgICBJbnRQb2ludCByb3cxUG9pbnQoMiwgbWVudUhl
aWdodCAqIDEuNSk7CisgICAgaW50IG1lbnVJdGVtSGVpZ2h0ID0gbV93ZWJWaWV3LT5zZWxlY3RQ
b3B1cCgpLT5tZW51SXRlbUhlaWdodCgpOworICAgIC8vIG1lbnVJdGVtSGVpZ2h0ICogMS41IG1l
YW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEuCisgICAgSW50UG9pbnQg
cm93MVBvaW50KDIsIG1lbnVJdGVtSGVpZ2h0ICogMS41KTsKICAgICBzaW11bGF0ZUxlZnRNb3Vz
ZURvd25FdmVudChyb3cxUG9pbnQpOwogICAgIHNpbXVsYXRlTGVmdE1vdXNlVXBFdmVudChyb3cx
UG9pbnQpOwogCkBAIC01MTAsOSArNTA2LDkgQEAgVEVTVF9GKFNlbGVjdFBvcHVwTWVudVRlc3Qs
IFNlbGVjdEl0ZW1SZQogCiAgICAgc2hvd1BvcHVwKCk7CiAKLSAgICBpbnQgbWVudUhlaWdodCA9
IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQoKTsKLSAgICAvLyBtZW51
SGVpZ2h0ICogMS41IG1lYW5zIHRoZSBZIHBvc2l0aW9uIG9uIHRoZSBpdGVtIGF0IGluZGV4IDEu
Ci0gICAgSW50UG9pbnQgcm93MVBvaW50KDIsIG1lbnVIZWlnaHQgKiAxLjUpOworICAgIGludCBt
ZW51SXRlbUhlaWdodCA9IG1fd2ViVmlldy0+c2VsZWN0UG9wdXAoKS0+bWVudUl0ZW1IZWlnaHQo
KTsKKyAgICAvLyBtZW51SXRlbUhlaWdodCAqIDEuNSBtZWFucyB0aGUgWSBwb3NpdGlvbiBvbiB0
aGUgaXRlbSBhdCBpbmRleCAxLgorICAgIEludFBvaW50IHJvdzFQb2ludCgyLCBtZW51SXRlbUhl
aWdodCAqIDEuNSk7CiAgICAgc2ltdWxhdGVMZWZ0TW91c2VEb3duRXZlbnQocm93MVBvaW50KTsK
ICAgICBzaW11bGF0ZUxlZnRNb3VzZVVwRXZlbnQocm93MVBvaW50KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>