<?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>88114</bug_id>
          
          <creation_ts>2012-06-01 11:35:57 -0700</creation_ts>
          <short_desc>Don&apos;t hardcode target dpi of 160 (it should be 96 on desktop)</short_desc>
          <delta_ts>2012-06-29 07:58:53 -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>New Bugs</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87407</dependson>
    
    <dependson>88047</dependson>
          <blocked>89984</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Mellor">johnme</reporter>
          <assigned_to name="Konrad Piascik">kpiascik</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>efidler</cc>
    
    <cc>fsamuel</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>kpiascik</cc>
    
    <cc>mjs</cc>
    
    <cc>peter</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zalan</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>639550</commentid>
    <comment_count>0</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-06-01 11:35:57 -0700</bug_when>
    <thetext>Since bug 87407 (and bug 88047) the deviceScaleFactor is computed as deviceDPI/160, where deviceDPI is supposedly the true dpi of the device.

This works on phones, but is incorrect on laptops/desktops. The definition of a CSS pixel (http://www.w3.org/TR/css3-values/#reference-pixel) requires a pixel density of 96dpi on devices used at arms length (the reason that 160 works well on phones is because they&apos;re held at about 60% of an arm length).

It&apos;s also common to discretize deviceScaleFactor to the nearest 0.25 or so.

So laptop/desktop ports that are considering turning on ENABLE(VIEWPORT) should consider factoring out 160 into a value passed by the embedding port (e.g. in ChromeClient.h) based on it&apos;s knowledge of the device&apos;s typical distance from the viewer.

Alternatively, instead of passing a value for the target dpi (e.g. 160), have the embedder provide the deviceScaleFactor directly (for example Android would probably provide DisplayMetrics.density[1], while iOS would just return 2 if retina else 1). This might be more flexible than having WebCore decide how to discretize fractional values.

ChromeOS folks, this might be of interest since afaik you plan to ship ENABLE(VIEWPORT).
Apple MacBook folks might also be interested, given rumors of high resolution displays which will require appropriate deviceScaleFactor.

[1]: http://developer.android.com/reference/android/util/DisplayMetrics.html#density</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640013</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-02 05:41:41 -0700</bug_when>
    <thetext>I&apos;m fine with any of these changes, though I fear some ports might get this wrong if we don&apos;t get it documented well somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654597</commentid>
    <comment_count>2</comment_count>
      <attachid>148817</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-21 09:33:19 -0700</bug_when>
    <thetext>Created attachment 148817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654627</commentid>
    <comment_count>3</comment_count>
      <attachid>148817</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-21 10:00:55 -0700</bug_when>
    <thetext>Comment on attachment 148817
Patch

Attachment 148817 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13027169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654676</commentid>
    <comment_count>4</comment_count>
      <attachid>148833</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-21 10:37:48 -0700</bug_when>
    <thetext>Created attachment 148833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654816</commentid>
    <comment_count>5</comment_count>
      <attachid>148833</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-21 13:09:40 -0700</bug_when>
    <thetext>Comment on attachment 148833
Patch

This looks like it&apos;s on the right track, but the patch doesn&apos;t do anything.  We should make this change when it actually does something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655380</commentid>
    <comment_count>6</comment_count>
      <attachid>149003</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-22 05:36:26 -0700</bug_when>
    <thetext>Created attachment 149003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655546</commentid>
    <comment_count>7</comment_count>
      <attachid>149003</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-22 10:14:04 -0700</bug_when>
    <thetext>Comment on attachment 149003
Patch

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

This patch looks reasonable, but I think there are other places where we use the 160 constant in WebCore.  Have you grepped WebCore to make sure you&apos;ve plumbed this value to all the right places?

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:3439
&gt;      int deviceDPI = int(roundf((currentPPI.width() + currentPPI.height()) / 2));

It seems like another option is to get rid of the deviceDPI parameter to computeViewportAttributes entirely and just pass in the device pixel ratio directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656609</commentid>
    <comment_count>8</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-25 09:08:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 149003 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149003&amp;action=review
&gt; 
&gt; This patch looks reasonable, but I think there are other places where we use the 160 constant in WebCore.  Have you grepped WebCore to make sure you&apos;ve plumbed this value to all the right places?
I did a grep for 160 and found a few places that it&apos;s being used.  I&apos;m not sure what sort of solution we want to this.  Do we want a static const defined in ViewportArguments.h or...?
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:3439
&gt; &gt;      int deviceDPI = int(roundf((currentPPI.width() + currentPPI.height()) / 2));
&gt; 
&gt; It seems like another option is to get rid of the deviceDPI parameter to computeViewportAttributes entirely and just pass in the device pixel ratio directly.

Getting rid of deviceDPI would not be a good idea imho.  The calculation of device pixel ratio made by computeViewportAttributes will still need to be made by every embedder calling this method baded on their device&apos;s DPI.  Doing this would cause more problems that it would solve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656643</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 09:51:28 -0700</bug_when>
    <thetext>&gt; Getting rid of deviceDPI would not be a good idea imho.

As far as I can tell, the only thing it&apos;s used for is divide by the targetDPI (and that&apos;s the only thing the targetDPI is used for).  Would it be easier for the caller to divide the two and then just pass in the device pixel ratio?

For context, if you look at the APIs on Mac OS X for getting this information, it returns the device pixel ratio, which we then multiply by 160 to get the (fake) deviceDPI.  At least on OS X, it would seem more direct to just deal with the device pixel ratio.

Anyway, I don&apos;t feel that strongly about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656678</commentid>
    <comment_count>10</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-25 10:21:49 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Getting rid of deviceDPI would not be a good idea imho.
&gt; 
&gt; As far as I can tell, the only thing it&apos;s used for is divide by the targetDPI (and that&apos;s the only thing the targetDPI is used for).  Would it be easier for the caller to divide the two and then just pass in the device pixel ratio?
&gt; 
&gt; For context, if you look at the APIs on Mac OS X for getting this information, it returns the device pixel ratio, which we then multiply by 160 to get the (fake) deviceDPI.  At least on OS X, it would seem more direct to just deal with the device pixel ratio.
&gt; 
&gt; Anyway, I don&apos;t feel that strongly about it.

The division of the deviceDPI by the targetDPI will happen on most ports that don&apos;t use WebKit2.  And for now having the division happen in one place is better than in multiple places imho.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656683</commentid>
    <comment_count>11</comment_count>
      <attachid>149003</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 10:24:56 -0700</bug_when>
    <thetext>Comment on attachment 149003
Patch

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656695</commentid>
    <comment_count>12</comment_count>
      <attachid>149003</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2012-06-25 10:37:37 -0700</bug_when>
    <thetext>Comment on attachment 149003
Patch

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

&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:3439
&gt;&gt;&gt;      int deviceDPI = int(roundf((currentPPI.width() + currentPPI.height()) / 2));
&gt;&gt; 
&gt;&gt; It seems like another option is to get rid of the deviceDPI parameter to computeViewportAttributes entirely and just pass in the device pixel ratio directly.
&gt; 
&gt; Getting rid of deviceDPI would not be a good idea imho.  The calculation of device pixel ratio made by computeViewportAttributes will still need to be made by every embedder calling this method baded on their device&apos;s DPI.  Doing this would cause more problems that it would solve.

In theory every embedder would perform such a calculation. But in practice iOS always chooses to use 1 or 2 for devicePixelRatio (depending on retina); Android ports will usually directly use the scaling factor provided by the OS[1]; and desktop ports will often hardcode it to 1 unless reliable dpi information is available (they currently just pass 160 * devicePixelRatio as the deviceDPI).

Essentially, most ports are in practice applying implementation-specific rounding to the device-width to snap it to &quot;nice&quot; values (e.g. 320, 360, 600, 1024), and as a result the devicePixelRatio gets snapped to a corresponding nice (though sometimes fractional) value (e.g. 1, 1.33333, 1.5, 2, 2.25). These values will approximately match what a true dpi-based calculation would have given, but not quite. Whether this snapping is actually useful is debatable, but it does give nice device-width values, and it helps to avoid rounding errors in a couple of cases.

Given this, I&apos;m inclined to agree with abarth that computeViewportAttributes should directly accept a devicePixelRatio/deviceScaleFactor instead of deviceDPI and targetDPI, though we should document this very clearly to emphasize that the devicePixelRatio should be computed using a calculation approximately based on true dpi and average distance the screen is held from the user&apos;s eyes (which can be estimated from the physical device size, which can be calculated if you know the true dpi and native screen resolution).

[1]: http://developer.android.com/reference/android/util/DisplayMetrics.html#density</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656702</commentid>
    <comment_count>13</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-25 10:47:58 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 149003 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149003&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:3439
&gt; &gt;&gt;&gt;      int deviceDPI = int(roundf((currentPPI.width() + currentPPI.height()) / 2));
&gt; &gt;&gt; 
&gt; &gt;&gt; It seems like another option is to get rid of the deviceDPI parameter to computeViewportAttributes entirely and just pass in the device pixel ratio directly.
&gt; &gt; 
&gt; &gt; Getting rid of deviceDPI would not be a good idea imho.  The calculation of device pixel ratio made by computeViewportAttributes will still need to be made by every embedder calling this method baded on their device&apos;s DPI.  Doing this would cause more problems that it would solve.
&gt; 
&gt; In theory every embedder would perform such a calculation. But in practice iOS always chooses to use 1 or 2 for devicePixelRatio (depending on retina); Android ports will usually directly use the scaling factor provided by the OS[1]; and desktop ports will often hardcode it to 1 unless reliable dpi information is available (they currently just pass 160 * devicePixelRatio as the deviceDPI).
&gt; 
&gt; Essentially, most ports are in practice applying implementation-specific rounding to the device-width to snap it to &quot;nice&quot; values (e.g. 320, 360, 600, 1024), and as a result the devicePixelRatio gets snapped to a corresponding nice (though sometimes fractional) value (e.g. 1, 1.33333, 1.5, 2, 2.25). These values will approximately match what a true dpi-based calculation would have given, but not quite. Whether this snapping is actually useful is debatable, but it does give nice device-width values, and it helps to avoid rounding errors in a couple of cases.
&gt; 
&gt; Given this, I&apos;m inclined to agree with abarth that computeViewportAttributes should directly accept a devicePixelRatio/deviceScaleFactor instead of deviceDPI and targetDPI, though we should document this very clearly to emphasize that the devicePixelRatio should be computed using a calculation approximately based on true dpi and average distance the screen is held from the user&apos;s eyes (which can be estimated from the physical device size, which can be calculated if you know the true dpi and native screen resolution).
&gt; 
&gt; [1]: http://developer.android.com/reference/android/util/DisplayMetrics.html#density

Does this block the already reviewed change?  It seems more like a bug in the computeViewportAttributes method itself rather than its inputs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656707</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 10:51:19 -0700</bug_when>
    <thetext>&gt; Does this block the already reviewed change?  It seems more like a bug in the computeViewportAttributes method itself rather than its inputs.

It sounds like there&apos;s some more to discuss there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656711</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 10:55:27 -0700</bug_when>
    <thetext>I do think it would be better if WebCore always worked in terms of device pixel ratios rather than DPIs.  Some platforms work in terms of DPI, which is fine, but other platforms work in terms of pixel ratios.  It seems odd for those platforms to need to make up a fake DPI just to appease WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656721</commentid>
    <comment_count>16</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-25 11:05:32 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I do think it would be better if WebCore always worked in terms of device pixel ratios rather than DPIs.  Some platforms work in terms of DPI, which is fine, but other platforms work in terms of pixel ratios.  It seems odd for those platforms to need to make up a fake DPI just to appease WebCore.

I agree that it&apos;s easier for platforms that work in terms of a DPI to convert to a pixel ratio.  Do we want to overload the computeViewportAttributes method?  So that it can be called with either a pixelRatio or a DPI?  I could have the one that accepts the DPI call the pixel ratio version after performing the division calculation.  This would me a more minimalistic change since none of the DRT support classes wouldn&apos;t need to be re-written.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656737</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 11:17:45 -0700</bug_when>
    <thetext>Rather than overload the function, it would be better (in my view) to remove the DPI parameter.  I&apos;m not sure how big a change that would be, but it would give us a sense for how feasible it is to remove the notion of DPI from WebCore.  If that turns out to be infeasible, we might want to return to the approach in your current patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656763</commentid>
    <comment_count>18</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-25 11:49:07 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Rather than overload the function, it would be better (in my view) to remove the DPI parameter.  I&apos;m not sure how big a change that would be, but it would give us a sense for how feasible it is to remove the notion of DPI from WebCore.  If that turns out to be infeasible, we might want to return to the approach in your current patch.

This is the list of files that will need to be modified if we replace the deviceDPI parameter by the devicePixelRatio instead.  This does not include all the LayoutTests that will need to be updated to pass in a devicePixelRatio instead of a DPI.

\Source\WebCore\dom\ViewportArguments.cpp
\Source\WebCore\dom\ViewportArguments.h
\Source\WebKit\blackberry\Api\WebPage.cpp
\Source\WebKit\blackberry\WebKitSupport\DumpRenderTreeSupport.cpp
\Source\WebKit\blackberry\WebKitSupport\DumpRenderTreeSupport.h
\Source\WebKit\chromium\public\WebView.h
\Source\WebKit\chromium\src\ChromeClientImpl.cpp
\Source\WebKit\efl\ewk\ewk_view.cpp
\Source\WebKit\efl\WebCoreSupport\DumpRenderTreeSupportEfl.cpp
\Source\WebKit\efl\WebCoreSupport\DumpRenderTreeSupportEfl.h
\Source\WebKit\gtk\WebCoreSupport\DumpRenderTreeSupportGtk.cpp
\Source\WebKit\gtk\WebCoreSupport\DumpRenderTreeSupportGtk.h
\Source\WebKit\gtk\webkit\webkitviewportattributes.cpp
\Source\WebKit\qt\Api\qwebpage.cpp
\Source\WebKit\qt\WebCoreSupport\DumpRenderTreeSupportQt.cpp
\Source\WebKit2\WebProcess\WebPage\WebPage.cpp
\Tools\DumpRenderTree\LayoutTestController.cpp
\Tools\DumpRenderTree\LayoutTestController.h
\Tools\DumpRenderTree\blackberry\LayoutTestControllerBlackBerry.cpp
\Tools\DumpRenderTree\efl\LayoutTestControllerEfl.cpp
\Tools\DumpRenderTree\gtk\LayoutTestControllerGtk.cpp
\Tools\DumpRenderTree\qt\LayoutTestControllerQt.cpp
\Tools\DumpRenderTree\qt\LayoutTestControllerQt.h
\Tools\DumpRenderTree\win\LayoutTestControllerWin.cpp
\Tools\DumpRenderTree\wx\LayoutTestControllerWx.cpp
\Tools\WebKitTestRunner\InjectedBundle\LayoutTestController.cpp
\Tools\WebKitTestRunner\InjectedBundle\LayoutTestController.h
\Tools\WebKitTestRunner\InjectedBundle\Bindings\LayoutTestController.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656799</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 12:55:58 -0700</bug_when>
    <thetext>We might want to do the LayoutTestController and LayoutTest changes in a separate pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657634</commentid>
    <comment_count>20</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-26 09:04:33 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; We might want to do the LayoutTestController and LayoutTest changes in a separate pass.

Half of the files mentioned in comment 18 still need to be touched even if it&apos;s just a change to the method signature of computeViewportAttributes.

I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=89984 to track the LayoutTestController and LayoutTest/fast/viewport changes.  I&apos;ll have a minimalist patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658096</commentid>
    <comment_count>21</comment_count>
      <attachid>149627</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-26 16:36:57 -0700</bug_when>
    <thetext>Created attachment 149627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658120</commentid>
    <comment_count>22</comment_count>
      <attachid>149627</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-26 17:00:51 -0700</bug_when>
    <thetext>Comment on attachment 149627
Patch

Attachment 149627 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13088631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658184</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-26 18:01:36 -0700</bug_when>
    <thetext>This patch looks like a step in the right direction.  The changes to the callers are a bit shallow in the sense that you&apos;re just dividing by 160 instead of pushing back the DPI calculation, but I can understand why you don&apos;t want this patch to spider.

Maybe add FIXMEs to these locations?  Also, I wonder if we should still have a name for this constant (perhaps in ViewportArguments.h) so we can grep the codebase for it more easily.  Maybe we should name the constant something with deprecated in its name and put the FIXME comment next to its declaration to explain that we&apos;d like to remove all uses of this constant in favor of just using the device scale factor everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658239</commentid>
    <comment_count>24</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-26 18:56:50 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; This patch looks like a step in the right direction.  The changes to the callers are a bit shallow in the sense that you&apos;re just dividing by 160 instead of pushing back the DPI calculation, but I can understand why you don&apos;t want this patch to spider.
&gt; 
&gt; Maybe add FIXMEs to these locations?  Also, I wonder if we should still have a name for this constant (perhaps in ViewportArguments.h) so we can grep the codebase for it more easily.  Maybe we should name the constant something with deprecated in its name and put the FIXME comment next to its declaration to explain that we&apos;d like to remove all uses of this constant in favor of just using the device scale factor everywhere.
I&apos;ll update the patch tomorrow with FIXMEs for each port and create a deprecated constant in ViewportArguments.h as well as the correct symbol in WebCore.exp.in

Should I open a bug for each call site or on bug to track all call sites?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658303</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-26 20:51:08 -0700</bug_when>
    <thetext>&gt; I&apos;ll update the patch tomorrow with FIXMEs for each port and create a deprecated constant in ViewportArguments.h as well as the correct symbol in WebCore.exp.in

It&apos;s probably fine to have one FIXME comment near the deprecated constant.  Folks can follow the trail from the use of the constant to its definition to the FIXME comment.

&gt; Should I open a bug for each call site or on bug to track all call sites?

You can file a bug if you like, but it&apos;s not necessary as long as the issue is documented in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658568</commentid>
    <comment_count>26</comment_count>
      <attachid>149627</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-06-27 06:21:27 -0700</bug_when>
    <thetext>Comment on attachment 149627
Patch

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

&gt; Source/WebKit/blackberry/Api/WebSettings.h:238
&gt; +    double devicePixelRaio() const;

Typo in the method name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659018</commentid>
    <comment_count>27</comment_count>
      <attachid>149833</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-27 17:50:17 -0700</bug_when>
    <thetext>Created attachment 149833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659026</commentid>
    <comment_count>28</comment_count>
      <attachid>149833</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-27 17:56:43 -0700</bug_when>
    <thetext>Comment on attachment 149833
Patch

This looks great.  Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659030</commentid>
    <comment_count>29</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-27 17:58:30 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 149833 [details])
&gt; This looks great.  Thank you.

I&apos;ll wait for EWS to run, then commit.  Thanks Adam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659076</commentid>
    <comment_count>30</comment_count>
      <attachid>149849</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-27 18:50:21 -0700</bug_when>
    <thetext>Created attachment 149849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659078</commentid>
    <comment_count>31</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-27 18:51:02 -0700</bug_when>
    <thetext>Sorry missed a refactor to GTK.  All should be good now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659093</commentid>
    <comment_count>32</comment_count>
      <attachid>149849</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-27 19:13:08 -0700</bug_when>
    <thetext>Comment on attachment 149849
Patch

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659122</commentid>
    <comment_count>33</comment_count>
      <attachid>149849</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-27 19:54:14 -0700</bug_when>
    <thetext>Comment on attachment 149849
Patch

Attachment 149849 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13093960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659509</commentid>
    <comment_count>34</comment_count>
      <attachid>149957</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-28 08:14:47 -0700</bug_when>
    <thetext>Created attachment 149957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659527</commentid>
    <comment_count>35</comment_count>
      <attachid>149957</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-28 08:49:06 -0700</bug_when>
    <thetext>Comment on attachment 149957
Patch

Compile errors on blackberry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659533</commentid>
    <comment_count>36</comment_count>
      <attachid>149959</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-28 08:54:38 -0700</bug_when>
    <thetext>Created attachment 149959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660413</commentid>
    <comment_count>37</comment_count>
      <attachid>149959</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 05:52:15 -0700</bug_when>
    <thetext>Comment on attachment 149959
Patch

Clearing flags on attachment: 149959

Committed r121555: &lt;http://trac.webkit.org/changeset/121555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660414</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 05:52:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660473</commentid>
    <comment_count>39</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2012-06-29 07:46:48 -0700</bug_when>
    <thetext>fast/viewport/viewport-91.html layout test fails after r121555 on Qt, EFL, GTK: 

--- /ramdisk/qt-linux-64-release/build/layout-test-results/fast/viewport/viewport-91-expected.txt 
+++ /ramdisk/qt-linux-64-release/build/layout-test-results/fast/viewport/viewport-91-actual.txt 
@@ -1,2 +1,2 @@
-viewport size 320x356 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
+viewport size 480x534 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660486</commentid>
    <comment_count>40</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-29 07:58:53 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; fast/viewport/viewport-91.html layout test fails after r121555 on Qt, EFL, GTK: 
&gt; 
&gt; --- /ramdisk/qt-linux-64-release/build/layout-test-results/fast/viewport/viewport-91-expected.txt 
&gt; +++ /ramdisk/qt-linux-64-release/build/layout-test-results/fast/viewport/viewport-91-actual.txt 
&gt; @@ -1,2 +1,2 @@
&gt; -viewport size 320x356 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000
&gt; +viewport size 480x534 scale 1.000000 with limits [1.000000, 5.000000] and userScalable -1.000000

I&apos;m looking into this now....</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148817</attachid>
            <date>2012-06-21 09:33:19 -0700</date>
            <delta_ts>2012-06-21 10:37:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120621123323.patch</filename>
            <type>text/plain</type>
            <size>2840</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uZGE4NTVhZGM5NDQ5ZGY2MmExYWU5ODYyNTBiMjdm
NmQxNzE3YmE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTIxICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFsbG93cyBlbWJlZGRl
cnMgdG8gc3BlY2lmeSB0aGUgdGFyZ2V0RFBJIGFuZCBkZWZhdWx0cyBpdCB0byAxNjAuCisgICAg
ICAgIERlc2t0b3AgZW1iZWRkZXJzIGNhbiBvdmVycmlkZSB0aGlzIHRvIDk2IGlmIGRlc2lyZWQu
CisKKyAgICAgICAgTm8gYmVoYXZpb3VyYWwgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9WaWV3
cG9ydEFyZ3VtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTA2LTIwICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgU3BlZWNoIEphdmFTY3JpcHQgQVBJOiBTcGVlY2hSZWNvZ25pdGlvbiBzaG91
bGQgaG9vayB1cCB3aXRoIEFjdGl2ZURPTU9iamVjdCBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCBhOTNlMTRlZWEyNjYwOTk0N2IyOGU1MWViM2FkNjIy
MThjYmRkMzZhLi4yZmNhYzllZDA1Zjc0OWQyZTYxZGFiYzVhZjM4M2M0NWU1YmViMGI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTQxLDExICs0MSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6
IFdlIHNob3VsZG4ndCBoYXJkY29kZSB0aGUgdGFyZ2V0RFBJIHRvIDE2MC4KLS8vIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKLXN0YXRpYyBmbG9hdCB0
YXJnZXREUEkgPSAxNjA7Ci0KLVZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZp
Y2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGRldmljZURQSSwgSW50U2l6ZSB2aXNpYmxl
Vmlld3BvcnQpCitWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhW
aWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgs
IGludCBkZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0
LCBpbnQgdGFyZ2V0RFBJKQogewogICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXggNzA3NjMwNTkyMTY2OGJhODNh
M2Y4NDIyNjgzNGViZjA3MTgxZmFlZi4uZTE0MTdhMDA2ZWY3M2VlNmYyMzJmYTk0NzBmOThiZTQw
M2ZiMjc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTExNCw3
ICsxMTQsNyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgIH0KIH07CiAKLVZpZXdw
b3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRz
IGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdo
dCwgaW50IGRldmljZURQSSwgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOworVmlld3BvcnRBdHRy
aWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywg
aW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQg
ZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCwgaW50IHRhcmdldERQSSA9IDE2MCk7
CiB2b2lkIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRB
dHRyaWJ1dGVzJiByZXN1bHQsIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJp
Y3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRy
aWJ1dGVzJiByZXN1bHQpOwogZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRl
bnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148833</attachid>
            <date>2012-06-21 10:37:48 -0700</date>
            <delta_ts>2012-06-22 05:36:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120621133751.patch</filename>
            <type>text/plain</type>
            <size>3699</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uZDIxZGY2MTJkMzVhMDdkMWZjMzRmY2RhNDA3ZjFm
ZDcyMDUxZDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTIxICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyB0ZXN0cyBhcmUgbmVlZGVk
IHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW91cmFsIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNv
cmUuZXhwLmluOiB1cGRhdGVkIHN5bWJvbCBmb3IgZXhwb3J0CisgICAgICAgICogZG9tL1ZpZXdw
b3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXMpOiBhZGRlZCBuZXcgcGFyYW1ldGVyIHRhcmdldERQSQorICAgICAgICAqIGRvbS9WaWV3
cG9ydEFyZ3VtZW50cy5oOiBtYWRlIHRhcmdldERQSSBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiAx
NjAKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA2LTIwICBIYW5zIFdlbm5ib3JnICA8aGFu
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3BlZWNoIEphdmFTY3JpcHQgQVBJOiBTcGVlY2hS
ZWNvZ25pdGlvbiBzaG91bGQgaG9vayB1cCB3aXRoIEFjdGl2ZURPTU9iamVjdCBtb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDczMzZjOTNmNDVhOWMwZmZhMWIyNzE3ZGMxNWIyMDk4YjQ2MWQ3
N2MuLmJlNmZhODI2OWNlYTk5NDE1ZDZkMGZlYjVmZTlmYTg1OTE3YWYyZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC02MDcsNyArNjA3LDcgQEAgX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVy
dHlMaXN0V3JpdGVyMTZ3cml0ZUhpc3RvcnlJdGVtRVJOU18zMEJpbmFyeVByb3BlcnR5TGkKIF9f
Wk43V2ViQ29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlcjZidWZmZXJFbQogX19aTjdXZWJD
b3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyQzJFdgogX19aTjdXZWJDb3JlMjVhZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyRVB2UEZ2UzBfRQotX19aTjdXZWJDb3JlMjVjb21wdXRlVmlld3Bv
cnRBdHRyaWJ1dGVzRU5TXzE3Vmlld3BvcnRBcmd1bWVudHNFaWlpaU5TXzdJbnRTaXplRQorX19a
TjdXZWJDb3JlMjVjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzRU5TXzE3Vmlld3BvcnRBcmd1bWVu
dHNFaWlpaU5TXzdJbnRTaXplRWkKIF9fWk43V2ViQ29yZTI2VXNlclR5cGluZ0dlc3R1cmVJbmRp
Y2F0b3IyN3Byb2Nlc3NpbmdVc2VyVHlwaW5nR2VzdHVyZUV2CiBfX1pON1dlYkNvcmUyNlVzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yMjhmb2N1c2VkRWxlbWVudEF0R2VzdHVyZVN0YXJ0RXYKIF9f
Wk43V2ViQ29yZTI2c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXNFdgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggYTkzZTE0ZWVhMjY2MDk5NDdiMjhlNTFlYjNh
ZDYyMjE4Y2JkZDM2YS4uMmZjYWM5ZWQwNWY3NDlkMmU2MWRhYmM1YWYzODNjNDVlNWJlYjBiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC00MSwxMSArNDEs
NyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgaGFyZGNvZGUgdGhlIHRhcmdldERQSSB0byAxNjAuCi0vLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTE0Ci1zdGF0aWMgZmxv
YXQgdGFyZ2V0RFBJID0gMTYwOwotCi1WaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0
QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQg
ZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlz
aWJsZVZpZXdwb3J0KQorVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0
ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdp
ZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3
cG9ydCwgaW50IHRhcmdldERQSSkKIHsKICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmluZGV4IDcwNzYzMDU5MjE2Njhi
YTgzYTNmODQyMjY4MzRlYmYwNzE4MWZhZWYuLmUxNDE3YTAwNmVmNzNlZTZmMjMyZmE5NDcwZjk4
YmU0MDNmYjI3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3Vt
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzIHsKICAgICB9CiB9OwogCi1W
aWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3Vt
ZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VI
ZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKK1ZpZXdwb3J0
QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFy
Z3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwg
aW50IGRldmljZURQSSwgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQsIGludCB0YXJnZXREUEkgPSAx
NjApOwogdm9pZCByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKFZpZXdw
b3J0QXR0cmlidXRlcyYgcmVzdWx0LCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCk7CiB2b2lkIHJl
c3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKFZpZXdwb3J0
QXR0cmlidXRlcyYgcmVzdWx0KTsKIGZsb2F0IGNvbXB1dGVNaW5pbXVtU2NhbGVGYWN0b3JGb3JD
b250ZW50Q29udGFpbmVkKGNvbnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgcmVzdWx0LCBjb25zdCBJ
bnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRTaXplKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149003</attachid>
            <date>2012-06-22 05:36:26 -0700</date>
            <delta_ts>2012-06-26 16:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120622083625.patch</filename>
            <type>text/plain</type>
            <size>8606</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uYzhhOGVhOGY3ZTYyNjU1M2IxMDBlYTIyMmEwYTky
YTYxNTZkNTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTIxICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3QgdGVzdGFibGUgc2luY2Ug
dGhpcyBuZWVkcyB0byBiZSBzZXQgcHJvZ3JhbWF0aWNhbGx5LgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZGVkIGV4cG9ydCBmb3IgbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAg
ICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDogR290IHJpZCBvZiBzdGF0aWMgdGFyZ2V0RFBJ
IGFuZCBtYWRlIGl0IGEgcGFyYW1ldGVyCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVmlld3Bv
cnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDogU2V0IGEg
ZGVmYXVsdCB2YWx1ZSBvZiAxNjAgZm9yIHRoZSBuZXcgdGFyZ2V0RFBJIHBhcmFtZXRlci4KKyAg
ICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA2LTIwICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgU3BlZWNoIEphdmFTY3JpcHQgQVBJOiBTcGVlY2hSZWNvZ25p
dGlvbiBzaG91bGQgaG9vayB1cCB3aXRoIEFjdGl2ZURPTU9iamVjdCBtb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCBhMTcyODVmNzk1NDBiYWVkNGUyZGEzYjkzNWNkYmJiMjdk
NmJhYTE4Li44YzhjNjgyNzQ0OWIxMzFjMjk5OGFmYzViNjcwMjY4MjczYzI5NzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0yMSAgS29u
cmFkIFBpYXNjaWsgIDxrcGlhc2Npa0ByaW0uY29tPgorCisgICAgICAgIERvbid0IGhhcmRjb2Rl
IHRhcmdldCBkcGkgb2YgMTYwIChpdCBzaG91bGQgYmUgOTYgb24gZGVza3RvcCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTE0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6
IFVzZSBuZXcgc2V0dGluZyB0byBzcGVjaWZ5IHRhcmdldERQSS4KKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OnJlY29tcHV0ZVZpcnR1YWxWaWV3cG9ydEZyb21W
aWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogQXBpL1dlYlNldHRpbmdzLmNwcDogQWRkZWQg
YSBuZXcgdGFyZ2V0RGVuc2l0eURQSSBzZXR0aW5nIHdoaWNoIGNhbiBiZSBzZXQgb24gYSBXZWJQ
YWdlLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U2V0dGluZ3M6OnN0YW5kYXJkU2V0dGluZ3MpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJTZXR0aW5nczo6dGFyZ2V0RGVuc2l0eURQSSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlNldHRpbmdzOjpzZXRUYXJnZXREZW5zaXR5RFBJKToKKyAgICAgICAgKiBBcGkv
V2ViU2V0dGluZ3MuaDoKKwogMjAxMi0wNi0yMSAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0u
Y29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbnB1dCBtb2RlIHNob3VsZCBhZGFwdCBhdXRv
bWF0aWNhbGx5IHRvIHNldHRpbmdzIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzMz
NmM5M2Y0NWE5YzBmZmExYjI3MTdkYzE1YjIwOThiNDYxZDc3Yy4uYmU2ZmE4MjY5Y2VhOTk0MTVk
NmQwZmViNWZlOWZhODU5MTdhZjJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYwNyw3ICs2
MDcsNyBAQCBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxNndyaXRlSGlz
dG9yeUl0ZW1FUk5TXzMwQmluYXJ5UHJvcGVydHlMaQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJv
cGVydHlMaXN0V3JpdGVyNmJ1ZmZlckVtCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxp
c3RXcml0ZXJDMkV2CiBfX1pON1dlYkNvcmUyNWFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHZQ
RnZTMF9FCi1fX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3
cG9ydEFyZ3VtZW50c0VpaWlpTlNfN0ludFNpemVFCitfX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3
cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0VpaWlpTlNfN0ludFNpemVFaQog
X19aTjdXZWJDb3JlMjZVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjI3cHJvY2Vzc2luZ1VzZXJU
eXBpbmdHZXN0dXJlRXYKIF9fWk43V2ViQ29yZTI2VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3Iy
OGZvY3VzZWRFbGVtZW50QXRHZXN0dXJlU3RhcnRFdgogX19aTjdXZWJDb3JlMjZzdG9wT2JzZXJ2
aW5nQ29va2llQ2hhbmdlc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNw
cAppbmRleCBhOTNlMTRlZWEyNjYwOTk0N2IyOGU1MWViM2FkNjIyMThjYmRkMzZhLi4yZmNhYzll
ZDA1Zjc0OWQyZTYxZGFiYzVhZjM4M2M0NWU1YmViMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTQxLDExICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXJk
Y29kZSB0aGUgdGFyZ2V0RFBJIHRvIDE2MC4KLS8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKLXN0YXRpYyBmbG9hdCB0YXJnZXREUEkgPSAxNjA7Ci0K
LVZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJn
dW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmlj
ZUhlaWdodCwgaW50IGRldmljZURQSSwgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpCitWaWV3cG9y
dEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBh
cmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQs
IGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0LCBpbnQgdGFyZ2V0RFBJKQog
ewogICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdw
b3J0QXJndW1lbnRzLmgKaW5kZXggNzA3NjMwNTkyMTY2OGJhODNhM2Y4NDIyNjgzNGViZjA3MTgx
ZmFlZi4uZTE0MTdhMDA2ZWY3M2VlNmYyMzJmYTk0NzBmOThiZTQwM2ZiMjc5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBzdHJ1Y3Qg
Vmlld3BvcnRBcmd1bWVudHMgewogICAgIH0KIH07CiAKLVZpZXdwb3J0QXR0cmlidXRlcyBjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9w
V2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGRldmljZURQSSwg
SW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOworVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVWaWV3
cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywgaW50IGRlc2t0b3BXaWR0aCwg
aW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJLCBJbnRTaXpl
IHZpc2libGVWaWV3cG9ydCwgaW50IHRhcmdldERQSSA9IDE2MCk7CiB2b2lkIHJlc3RyaWN0TWlu
aW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQs
IEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5p
dGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQpOwog
ZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRlbnRDb250YWluZWQoY29uc3Qg
Vmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwg
Y29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAKaW5kZXggNTE2YjJjNzUyMDRmODMwZDk3YWQ4ZWU2ZDBkNDI5ZDJmMTc5ZDM5
Zi4uZmI1OThmZWM1ZTU0ODU3MDA1ZjJkYWUxMmE0M2QzZGY1MjlkN2U1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0zNDM3LDcgKzM0MzcsOCBAQCBJbnRT
aXplIFdlYlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRB
cmd1bWVudHMoKQogICAgIGludCBkZXZpY2VIZWlnaHQgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNj
cmVlbjo6cHJpbWFyeVNjcmVlbigpLT5oZWlnaHQoKTsKICAgICBGbG9hdFNpemUgY3VycmVudFBQ
SSA9IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPnBpeGVsc1Bl
ckluY2goLTEpOwogICAgIGludCBkZXZpY2VEUEkgPSBpbnQocm91bmRmKChjdXJyZW50UFBJLndp
ZHRoKCkgKyBjdXJyZW50UFBJLmhlaWdodCgpKSAvIDIpKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0
ZXMgcmVzdWx0ID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhtX3ZpZXdwb3J0QXJndW1lbnRz
LCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgbV9k
ZWZhdWx0TGF5b3V0U2l6ZSk7CisgICAgaW50IHRhcmdldERQSSA9IG1fd2ViU2V0dGluZ3MtPnRh
cmdldERlbnNpdHlEUEkoKSA9PSAtMSA/IGRldmljZURQSSA6IG1fd2ViU2V0dGluZ3MtPnRhcmdl
dERlbnNpdHlEUEkoKTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0ID0gY29tcHV0ZVZp
ZXdwb3J0QXR0cmlidXRlcyhtX3ZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmlj
ZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgbV9kZWZhdWx0TGF5b3V0U2l6ZSwgdGFy
Z2V0RFBJKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQ
aXhlbFJhdGlvKTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgp
LCByZXN1bHQubGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDcwMmRjYzc3M2Q3NzU4ZjI5Njk2NzZjMjg5
MTA3NTgyMjI4NWFhYzAuLjBkN2QyMjNmMjQ1NjVmY2E2OTc4MzdmZmE4MjFmNzNiOTk0YjQxMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCkBAIC01
OCw2ICs1OCw3IEBAIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5Wm9vbVRv
Rml0T25Mb2FkRW5hYmxlZCwgKCJCbGFja0JlcnJ5Wm9vbVRvCiBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgQmxhY2tCZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUsICgiQmxhY2tCZXJyeUZ1
bGxTY3JlZW5WaWRlb0NhcGFibGUiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxh
Y2tCZXJyeUNyZWRlbnRpYWxBdXRvZmlsbEVuYWJsZWQsICgiQmxhY2tCZXJyeUNyZWRlbnRpYWxB
dXRvZmlsbEVuYWJsZWQiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJy
eUZvcm1BdXRvZmlsbEVuYWJsZWQsICgiQmxhY2tCZXJyeUZvcm1BdXRvZmlsbEVuYWJsZWQiKSk7
CitERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeVRhcmdldERlbnNpdHlEUEks
ICgiQmxhY2tCZXJyeVRhcmdldERlbnNpdHlEUEkiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCAoIlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBXZWJLaXREYXRhYmFzZVBhdGgsICgi
V2ViS2l0RGF0YWJhc2VQYXRoIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktp
dERhdGFiYXNlc0VuYWJsZWQsICgiV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCIpKTsKQEAgLTE3MSw2
ICsxNzIsNyBAQCBXZWJTZXR0aW5ncyogV2ViU2V0dGluZ3M6OnN0YW5kYXJkU2V0dGluZ3MoKQog
ICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeUZ1bGxTY3JlZW5W
aWRlb0NhcGFibGUsIGZhbHNlKTsKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRCb29sZWFu
KEJsYWNrQmVycnlDcmVkZW50aWFsQXV0b2ZpbGxFbmFibGVkLCBmYWxzZSk7CiAgICAgc2V0dGlu
Z3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5Rm9ybUF1dG9maWxsRW5hYmxlZCwg
ZmFsc2UpOworICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVnZXIoQmxhY2tCZXJyeVRh
cmdldERlbnNpdHlEUEksIDE2MCk7CiAKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRJbnRl
Z2VyKFdlYktpdERlZmF1bHRGb250U2l6ZSwgMTYpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUt
PnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZpeGVkRm9udFNpemUsIDEzKTsKQEAgLTgxMyw1ICs4
MTUsMTUgQEAgdm9pZCBXZWJTZXR0aW5nczo6c2V0Rm9ybUF1dG9maWxsRW5hYmxlZChib29sIGVu
YWJsZSkKICAgICByZXR1cm4gbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3JtQXV0
b2ZpbGxFbmFibGVkLCBlbmFibGUpOwogfQogCitpbnQgV2ViU2V0dGluZ3M6OnRhcmdldERlbnNp
dHlEUEkoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldEludGVnZXIoQmxhY2tC
ZXJyeVRhcmdldERlbnNpdHlEUEkpOworfQorCit2b2lkIFdlYlNldHRpbmdzOjpzZXRUYXJnZXRE
ZW5zaXR5RFBJKGludCBkcGkpCit7CisgICAgbV9wcml2YXRlLT5zZXRJbnRlZ2VyKEJsYWNrQmVy
cnlUYXJnZXREZW5zaXR5RFBJLCBkcGkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0g
Ly8gbmFtZXNwYWNlIEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
U2V0dGluZ3MuaAppbmRleCA1M2YyZWVlNGM5OTExMDlmYmZmODY5ODYxZjY4M2RlNzQ3NWEwMzA1
Li4xOGNlMjE4ZDM0NTkxNjgzNGYzMGYxMTdhMGFkYmIxNzBkNzgzZDQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oCkBAIC0yMzUsNiArMjM1LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNGb3JtQXV0b2ZpbGxFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRGb3JtQXV0b2ZpbGxFbmFibGVkKGJvb2wpOwogCisgICAgaW50IHRhcmdldERlbnNpdHlEUEko
KSBjb25zdDsKKyAgICB2b2lkIHNldFRhcmdldERlbnNpdHlEUEkoaW50KTsKKwogcHJpdmF0ZToK
ICAgICBXZWJTZXR0aW5nc1ByaXZhdGUqIG1fcHJpdmF0ZTsKICAgICBXZWJTZXR0aW5ncygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149627</attachid>
            <date>2012-06-26 16:36:57 -0700</date>
            <delta_ts>2012-06-27 17:50:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120626193708.patch</filename>
            <type>text/plain</type>
            <size>25227</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uMzA2NTQ0MDlkYjVhMDEyZjUwMGFiNjA5ZjY5NGY2
MjU3YzE5OWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTI2ICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvdXJhbCBjaGFu
Z2UsIGN1cnJlbnQgdGVzdHMgaW4gZmFzdC92aWV3cG9ydCBjb3ZlciBhbGwKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHN5bWJvbCBm
b3IgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBVc2UgbmV3IHBhcmFtZXRlciBmb3IgZGV2aWNlUGl4ZWxSYXRpbworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkb24ndCBjYWxjdWxhdGUgaXQgYW55
bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAg
ICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oOiBDaGFuZ2UgdGhlIGRldmljZURQSSBwYXJh
bWV0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlUGl4ZWxS
YXRpbyBhbmQgcHV0IHRoZSBvbnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uIHRoZSBlbWJlZGRlciB0byBzdXBwbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcnJlY3QgdmFsdWUuCisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNi0y
MCAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBK
YXZhU2NyaXB0IEFQSTogU3BlZWNoUmVjb2duaXRpb24gc2hvdWxkIGhvb2sgdXAgd2l0aCBBY3Rp
dmVET01PYmplY3QgbW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggYTE3Mjg1
Zjc5NTQwYmFlZDRlMmRhM2I5MzVjZGJiYjI3ZDZiYWExOC4uNWJhZTZkODk2NmNjMGMzMDY3YTIx
Y2Q0ZmMyM2ZiMTBhMmQ4NGZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNv
bT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxk
IGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIG5ldyBXZWJTZXR0aW5nIHRvIHNwZWNpZnkgd2hhdCB0aGUgZGV2aWNl
UGl4ZWxSYXRpbyBzaG91bGQgYmUuCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0
ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OnJlY29tcHV0ZVZpcnR1YWxW
aWV3cG9ydEZyb21WaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogQXBpL1dlYlNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlNldHRpbmdzOjpzdGFuZGFyZFNldHRpbmdzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViU2V0dGluZ3M6OnRhcmdldERlbnNpdHlEUEkpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0VGFyZ2V0RGVuc2l0eURQSSk6CisgICAgICAgICogQXBp
L1dlYlNldHRpbmdzLmg6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpkdW1wQ29uZmlndXJh
dGlvbkZvclZpZXdwb3J0KToKKwogMjAxMi0wNi0yMSAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkBy
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbnB1dCBtb2RlIHNob3VsZCBhZGFwdCBh
dXRvbWF0aWNhbGx5IHRvIHNldHRpbmdzIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZjc1NTZhY2NjMDFmNjhhY2Q4ZTU1ZmQ0ZmY4OGRhYmNkNjU1Y2ZiMS4uNjQwZGMwYWZk
N2NkMTBlNGFkZjBjNGNhODNhMjJlMzY4MmNhNGExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0yNiAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Np
a0ByaW0uY29tPgorCisgICAgICAgIERvbid0IGhhcmRjb2RlIHRhcmdldCBkcGkgb2YgMTYwIChp
dCBzaG91bGQgYmUgOTYgb24gZGVza3RvcCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0aGUgY2FsbCB0byBjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZSk6CisKIDIwMTItMDYtMjAgIFplZXYgTGllYmVyICA8emxpZWJlckBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBEYW1hZ2UgdHJhY2tlciBpcyBub3QgdXNlZCB3aXRob3V0
IHBhcnRpYWwgc3dhcCwgY2F1c2luZyB2YWxpZCByZW5kZXIgcGFzc2VzIHRvIGJlIHJlbW92ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA2MzEyMGI5NGE1NDJkZDBiNDMyZTg2M2JiYmVjN2Q4OWY5NTA0
NDU5Li4xNjlkOGE0NmRjNWIwM2QyYmRmYTQyMjc2M2I3MzNiZTA2NGY1NTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3Bp
YXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2
MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0
QXR0cmlidXRlcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBDb25m
aWd1cmF0aW9uRm9yVmlld3BvcnQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKToKKwogMjAxMi0wNi0x
OSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBD
YWxsaW5nIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgY2F1c2VzIGFzc2VydGlvbiBmYWls
dXJlOiBtX3ZlcmlmaWVyLmlzU2FmZVRvVXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyMGJkZDA4
NWU3NGU3OTBjZWVkYTEwMjM0OWQyMGQyMmYyYjAxYzNkLi5lYTQ0MjFmNDExYjIyYTJmOTJlMGFm
Nzg3ZDg1NDJiZjBhOTAzYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBE
b24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0
b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODEx
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAod2Vi
a2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKKwogMjAxMi0wNi0yMSAgRGFuaWVsIERy
YWtlICA8ZHNkQGxhcHRvcC5vcmc+CiAKICAgICAgICAgW0dUS10gQmFja3BvcnQgcnVuLWZpbGUt
Y2hvb3NlciB0byBXZWJLaXQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGRjOTA4NGE5Yjg0ZGM3YjRjNGJi
YmIyOTJhZDJlYmRjYzlkY2FkZjAuLjViOGQ0ZmZiYzA0MzkyNDlhNzg1ZDc1Mjk2YTIwZjM4NzY3
YmY0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMjYgIEtvbnJh
ZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0
YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8g
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6
CisgICAgICAgIChRV2ViUGFnZTo6dmlld3BvcnRBdHRyaWJ1dGVzRm9yU2l6ZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KToKKwogMjAxMi0wNi0yMSAg
VGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAg
ICAgICBbV0syXVtRdF0gQ29sb3IgY2hvb3NlciBBUEkgbWlzc2luZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdh
NTU1MjU1NWEzZmY4OTEwZTc2ZjU2ZDQ0ODVhOTgxMTJjYmZkZDUuLjk3NzI2OTQ5MDk2ZmY0Yzc3
ZTE5ZmJjYmY0MzliZDZjMTVkZWUzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0wNi0yNiAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Npa0ByaW0uY29tPgorCisgICAgICAgIERv
bid0IGhhcmRjb2RlIHRhcmdldCBkcGkgb2YgMTYwIChpdCBzaG91bGQgYmUgOTYgb24gZGVza3Rv
cCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTE0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
ZCB0aGUgY2FsbCB0byBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnZpZXdwb3J0Q29uZmlndXJhdGlvbkFzVGV4dCk6CisKIDIwMTItMDYtMjEgIFJ5dWFuIENob2kg
IDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxbV0syXSBBZGQgV0tWaWV3
RWZsIGFuZCBXZWJLaXQyIEFQSSBPYmplY3QgdG8gcmVwcmVzZW50IEV2YXNfT2JqZWN0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCA3MzM2YzkzZjQ1YTljMGZmYTFiMjcxN2RjMTViMjA5OGI0NjFk
NzdjLi5iZTZmYTgyNjljZWE5OTQxNWQ2ZDBmZWI1ZmU5ZmE4NTkxN2FmMmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtNjA3LDcgKzYwNyw3IEBAIF9fWk43V2ViQ29yZTI1SGlzdG9yeVByb3Bl
cnR5TGlzdFdyaXRlcjE2d3JpdGVIaXN0b3J5SXRlbUVSTlNfMzBCaW5hcnlQcm9wZXJ0eUxpCiBf
X1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXI2YnVmZmVyRW0KIF9fWk43V2Vi
Q29yZTI1SGlzdG9yeVByb3BlcnR5TGlzdFdyaXRlckMyRXYKIF9fWk43V2ViQ29yZTI1YWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlckVQdlBGdlMwX0UKLV9fWk43V2ViQ29yZTI1Y29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlc0VOU18xN1ZpZXdwb3J0QXJndW1lbnRzRWlpaWlOU183SW50U2l6ZUUKK19f
Wk43V2ViQ29yZTI1Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlc0VOU18xN1ZpZXdwb3J0QXJndW1l
bnRzRWlpaWlOU183SW50U2l6ZUVpCiBfX1pON1dlYkNvcmUyNlVzZXJUeXBpbmdHZXN0dXJlSW5k
aWNhdG9yMjdwcm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1cmVFdgogX19aTjdXZWJDb3JlMjZVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvcjI4Zm9jdXNlZEVsZW1lbnRBdEdlc3R1cmVTdGFydEV2CiBf
X1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzRXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGE5M2UxNGVlYTI2NjA5OTQ3YjI4ZTUxZWIz
YWQ2MjIxOGNiZGQzNmEuLjc2YzRhZWY5Mjc5OTViOTc4YzdmYjE5Y2MyZWYyNWVhN2U4ZTlkNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtNDEsMTEgKzQx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBG
SVhNRTogV2Ugc2hvdWxkbid0IGhhcmRjb2RlIHRoZSB0YXJnZXREUEkgdG8gMTYwLgotLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAotc3RhdGljIGZs
b2F0IHRhcmdldERQSSA9IDE2MDsKLQotVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9y
dEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywgaW50IGRlc2t0b3BXaWR0aCwgaW50
IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJLCBJbnRTaXplIHZp
c2libGVWaWV3cG9ydCkKK1ZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1
dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VX
aWR0aCwgaW50IGRldmljZUhlaWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2
aXNpYmxlVmlld3BvcnQpCiB7CiAgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsKIApAQCAt
NTQsNyArNTAsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRl
cyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcAogCiAgICAgQVNTRVJUKGF2YWls
YWJsZVdpZHRoID4gMCAmJiBhdmFpbGFibGVIZWlnaHQgPiAwKTsKIAotICAgIHJlc3VsdC5kZXZp
Y2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJIC8gdGFyZ2V0RFBJOworICAgIHJlc3VsdC5kZXZpY2VQ
aXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKIAogICAgIC8vIFJlc29sdmUgbm9uLSdhdXRv
JyB3aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVlcy4KICAgICBpZiAocmVzdWx0LmRldmlj
ZVBpeGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmll
d3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5o
CmluZGV4IDcwNzYzMDU5MjE2NjhiYTgzYTNmODQyMjY4MzRlYmYwNzE4MWZhZWYuLjgzM2M0Y2Qw
NTFhNTQzODViYjg1YjQ0OGI3ZTRiNjU0MjA0NWY2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3
cG9ydEFyZ3VtZW50cy5oCkBAIC03MiwxMCArNzIsNiBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVu
dHMgewogICAgICAgICBWYWx1ZURlc2t0b3BXaWR0aCA9IC0yLAogICAgICAgICBWYWx1ZURldmlj
ZVdpZHRoID0gLTMsCiAgICAgICAgIFZhbHVlRGV2aWNlSGVpZ2h0ID0gLTQsCi0gICAgICAgIFZh
bHVlRGV2aWNlRFBJID0gLTUsCi0gICAgICAgIFZhbHVlTG93RFBJID0gLTYsCi0gICAgICAgIFZh
bHVlTWVkaXVtRFBJID0gLTcsCi0gICAgICAgIFZhbHVlSGlnaERQSSA9IC04CiAgICAgfTsKIAog
ICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9IEltcGxpY2l0KQpAQCAtMTE0LDcgKzEx
MCw4IEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgfQogfTsKIAotVmlld3BvcnRB
dHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJn
cywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCk7CitWaWV3cG9ydEF0dHJpYnV0
ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQg
ZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGZsb2F0IGRl
dmljZVBpeGVsUmF0aW8sIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKKwogdm9pZCByZXN0cmlj
dE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKFZpZXdwb3J0QXR0cmlidXRlcyYgcmVz
dWx0LCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCk7CiB2b2lkIHJlc3RyaWN0U2NhbGVGYWN0b3JU
b0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKFZpZXdwb3J0QXR0cmlidXRlcyYgcmVzdWx0
KTsKIGZsb2F0IGNvbXB1dGVNaW5pbXVtU2NhbGVGYWN0b3JGb3JDb250ZW50Q29udGFpbmVkKGNv
bnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgcmVzdWx0LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwCmluZGV4IDUxNmIyYzc1MjA0ZjgzMGQ5N2FkOGVlNmQwZDQyOWQyZjE3
OWQzOWYuLjNiZjNlY2JiMGM1MjM4NjM0ZmY5MTQ4MmE0MTQ2MThhNDJlMzYxZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMzQzNSw5ICszNDM1LDcgQEAg
SW50U2l6ZSBXZWJQYWdlUHJpdmF0ZTo6cmVjb21wdXRlVmlydHVhbFZpZXdwb3J0RnJvbVZpZXdw
b3J0QXJndW1lbnRzKCkKICAgICBpbnQgZGVza3RvcFdpZHRoID0gZGVmYXVsdE1heExheW91dFNp
emUoKS53aWR0aCgpOwogICAgIGludCBkZXZpY2VXaWR0aCA9IFBsYXRmb3JtOjpHcmFwaGljczo6
U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPndpZHRoKCk7CiAgICAgaW50IGRldmljZUhlaWdodCA9
IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPmhlaWdodCgpOwot
ICAgIEZsb2F0U2l6ZSBjdXJyZW50UFBJID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnBy
aW1hcnlTY3JlZW4oKS0+cGl4ZWxzUGVySW5jaCgtMSk7Ci0gICAgaW50IGRldmljZURQSSA9IGlu
dChyb3VuZGYoKGN1cnJlbnRQUEkud2lkdGgoKSArIGN1cnJlbnRQUEkuaGVpZ2h0KCkpIC8gMikp
OwotICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1
dGVzKG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmlj
ZUhlaWdodCwgZGV2aWNlRFBJLCBtX2RlZmF1bHRMYXlvdXRTaXplKTsKKyAgICBWaWV3cG9ydEF0
dHJpYnV0ZXMgcmVzdWx0ID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhtX3ZpZXdwb3J0QXJn
dW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIG1fd2ViU2V0
dGluZ3MtPmRldmljZVBpeGVsUmF0aW8oKSwgbV9kZWZhdWx0TGF5b3V0U2l6ZSk7CiAgICAgbV9w
YWdlLT5zZXREZXZpY2VTY2FsZUZhY3RvcihyZXN1bHQuZGV2aWNlUGl4ZWxSYXRpbyk7CiAgICAg
cmV0dXJuIEludFNpemUocmVzdWx0LmxheW91dFNpemUud2lkdGgoKSwgcmVzdWx0LmxheW91dFNp
emUuaGVpZ2h0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRp
bmdzLmNwcAppbmRleCA3MDJkY2M3NzNkNzc1OGYyOTY5Njc2YzI4OTEwNzU4MjIyODVhYWMwLi44
ZDRmZTk5ODQ1M2FjYmNlNmE2YjI1N2FlZmEyNzMxZDk4NTg3OGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcApAQCAtNTgsNiArNTgsNyBAQCBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeVpvb21Ub0ZpdE9uTG9hZEVuYWJsZWQs
ICgiQmxhY2tCZXJyeVpvb21UbwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVy
cnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxlLCAoIkJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBh
YmxlIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlDcmVkZW50aWFs
QXV0b2ZpbGxFbmFibGVkLCAoIkJsYWNrQmVycnlDcmVkZW50aWFsQXV0b2ZpbGxFbmFibGVkIikp
OwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFi
bGVkLCAoIkJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFibGVkIikpOworREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCAoIkJsYWNrQmVycnlEZXZp
Y2VQaXhlbFJhdGlvIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCwgKCJTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQiKSk7CiBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgV2ViS2l0RGF0YWJhc2VQYXRoLCAoIldlYktpdERhdGFiYXNlUGF0
aCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBXZWJLaXREYXRhYmFzZXNFbmFibGVk
LCAoIldlYktpdERhdGFiYXNlc0VuYWJsZWQiKSk7CkBAIC0xNzIsNiArMTczLDEzIEBAIFdlYlNl
dHRpbmdzKiBXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5ncygpCiAgICAgc2V0dGluZ3MtPm1f
cHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCwg
ZmFsc2UpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeUZv
cm1BdXRvZmlsbEVuYWJsZWQsIGZhbHNlKTsKIAorICAgIGlmIChQbGF0Zm9ybTo6RGV2aWNlSW5m
bzo6aW5zdGFuY2UoKS0+aXNNb2JpbGUoKSkgeworICAgICAgICBGbG9hdFNpemUgY3VycmVudFBQ
SSA9IFBsYXRmb3JtOjpHcmFwaGljczo6U2NyZWVuOjpwcmltYXJ5U2NyZWVuKCktPnBpeGVsc1Bl
ckluY2goLTEpOworICAgICAgICBpbnQgZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVudFBQ
SS53aWR0aCgpICsgY3VycmVudFBQSS5oZWlnaHQoKSkgLyAyKSk7CisgICAgICAgIHNldHRpbmdz
LT5tX3ByaXZhdGUtPnNldERvdWJsZShCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbywgZGV2aWNl
RFBJIC8gMTYwKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0
RG91YmxlKEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCAxKTsKKwogICAgIHNldHRpbmdzLT5t
X3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZvbnRTaXplLCAxNik7CiAgICAgc2V0
dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50ZWdlcihXZWJLaXREZWZhdWx0Rml4ZWRGb250U2l6ZSwg
MTMpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldFN0cmluZyhXZWJLaXREZWZhdWx0VGV4
dEVuY29kaW5nTmFtZSwgImlzby04ODU5LTEiKTsKQEAgLTgxMyw1ICs4MjEsMTUgQEAgdm9pZCBX
ZWJTZXR0aW5nczo6c2V0Rm9ybUF1dG9maWxsRW5hYmxlZChib29sIGVuYWJsZSkKICAgICByZXR1
cm4gbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFibGVkLCBl
bmFibGUpOwogfQogCitkb3VibGUgV2ViU2V0dGluZ3M6OmRldmljZVBpeGVsUmF0aW8oKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldERvdWJsZShCbGFja0JlcnJ5RGV2aWNlUGl4
ZWxSYXRpbyk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldERldmljZVBpeGVsUmF0aW8oZG91
YmxlIHJhdGlvKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RG91YmxlKEJsYWNrQmVycnlEZXZpY2VQ
aXhlbFJhdGlvLCByYXRpbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogfSAvLyBuYW1l
c3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5n
cy5oCmluZGV4IDUzZjJlZWU0Yzk5MTEwOWZiZmY4Njk4NjFmNjgzZGU3NDc1YTAzMDUuLjIzZTcy
ZTQ4ZjliYzgwOWFjMDRlNmFmNDllM2VmMzBmMDhhN2I4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKQEAgLTIzNSw2ICsyMzUsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0Zvcm1BdXRvZmlsbEVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEZvcm1B
dXRvZmlsbEVuYWJsZWQoYm9vbCk7CiAKKyAgICBkb3VibGUgZGV2aWNlUGl4ZWxSYWlvKCkgY29u
c3Q7CisgICAgdm9pZCBzZXREZXZpY2VQaXhlbFJhdGlvKGRvdWJsZSk7CisKIHByaXZhdGU6CiAg
ICAgV2ViU2V0dGluZ3NQcml2YXRlKiBtX3ByaXZhdGU7CiAgICAgV2ViU2V0dGluZ3MoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCmluZGV4IGNkMWNiNGNmOWVmZDg4MTQ5MzRkZTZi
ODU1YjYwNTk3NmFlYzQxYjYuLjdhYmJhMjE2YjBiNTQyZDgxNDJlYjM4ZWQwNmVjYTIwYjA3Mjdh
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtODcsNyArODcsNyBAQCBi
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChG
cmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZp
Y2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCkKIHsKICAg
ICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSBtYWluRnJhbWUtPnBhZ2UoKS0+dmlld3Bv
cnRBcmd1bWVudHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5v
bi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VE
UEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdw
b3J0QXR0cmlidXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRz
LCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRl
dmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIDE2MCwgSW50U2l6ZShhdmFpbGFi
bGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0
b3JUb1ZpZXdwb3J0U2l6ZShhdHRycywgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxl
SGVpZ2h0KSk7CiAgICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2Vy
U2NhbGFibGUoYXR0cnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IGRkMWUyMTA0YmRiOGQwNzdkODgyMTZlZDVhNDdhMDJmM2Zk
MjJjYjkuLjI2NTViODM0MjFlNzdjNjg3NTFkM2I3ODk5MDYxNzllNGFiNzM3MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02NTUs
NyArNjU1LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW4KICAgICAvLyBDYWxsIHRoZSBjb21t
b24gdmlld3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KICAg
ICBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KAogICAgICAgICBhcmdzLCBzZXR0aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBkZXZpY2VS
ZWN0LndpZHRoLCBkZXZpY2VSZWN0LmhlaWdodCwKLSAgICAgICAgZHBpLCBJbnRTaXplKGRldmlj
ZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVpZ2h0KSk7CisgICAgICAgIGRwaSAvIDE2MCwgSW50
U2l6ZShkZXZpY2VSZWN0LndpZHRoLCBkZXZpY2VSZWN0LmhlaWdodCkpOwogCiAgICAgaW50IGxh
eW91dFdpZHRoID0gY29tcHV0ZWQubGF5b3V0U2l6ZS53aWR0aCgpOwogICAgIGludCBsYXlvdXRI
ZWlnaHQgPSBjb21wdXRlZC5sYXlvdXRTaXplLmhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKaW5kZXggZmUxZjcwZGFlMWI4OTc0Yzg2YzM3ZDc4NmQyYTJlMmI5NmY0MWRhMC4uNjM0
MjYwMDliNWRmYzg3NTljZDM2YjcwNDNkNGYwNzg5ZTI2OTQ2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuY3BwCkBAIC01ODcsNyArNTg3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRXZhc19PYmplY3QqIGV3a1ZpZXcKICAg
ICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1dGVWaWV3cG9y
dEF0dHJpYnV0ZXMoYXJndW1lbnRzLAogICAgICAgICAgICAgLyogZGVmYXVsdCBsYXlvdXQgd2lk
dGggZm9yIG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgwLAogICAgICAgICAgICAgZGV2aWNlU2l6ZS53
aWR0aCgpLCBkZXZpY2VTaXplLmhlaWdodCgpLAotICAgICAgICAgICAgZGV2aWNlRFBJLAorICAg
ICAgICAgICAgZGV2aWNlRFBJIC8gMTYwLAogICAgICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7CiAg
ICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVzLCBh
dmFpbGFibGVTaXplKTsKICAgICByZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5v
dFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmlu
ZGV4IGM0NTU2OWNlMTAxNmU4MzRjMjczN2MxNDRhNzgzNzliZTI1ZWU5NDAuLjY2ZmM5NDRmMTA2
OThmNWY3MmEwYWM1ZWM3NGExYzY0OTYyOTJiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcApAQCAtMTIzNyw3ICsxMjM3LDcgQEAgc3RhdGljIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmli
dXRlcyBfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKGNvbnN0IEUKICAgICBX
ZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKSk7CiAgICAgV2ViQ29yZTo6SW50UmVj
dCBkZXZpY2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPndpbmRvd1JlY3QoKSk7CiAKLSAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMg
YXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+dmll
d3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZpY2VS
ZWN0LmhlaWdodCgpLCBkZXZpY2VEUEksIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKKyAgICBXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3
cG9ydEF0dHJpYnV0ZXMocHJpdi0+dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2
aWNlUmVjdC53aWR0aCgpLCBkZXZpY2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEkgLyAxNjAsIGF2
YWlsYWJsZVJlY3Quc2l6ZSgpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZh
Y3RvclRvVmlld3BvcnRTaXplKGF0dHJpYnV0ZXMsIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKICAg
ICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2Fs
YWJsZShhdHRyaWJ1dGVzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggYTlkZTg3
NWM5NDdmMTJkMTg4M2U3ODZmMzBjZGY4MmZlMzdiNmI0MS4uMGNmM2U3NjcxNDRjM2UzZWQ1NDll
YTM4NmU0ZDg3Nzk4NjVlYmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC02MjMs
NyArNjIzLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBDb25maWd1cmF0
aW9uRm9yVmlld3BvcnQoV2ViS2l0V2ViVmlldyogd2ViVmkKICAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBh
cmd1bWVudHMgPSB3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50
KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJzID0g
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5b3V0IHdp
ZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdo
dCwgZGV2aWNlRFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsK
KyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUgcGFnZXMg
Ki8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEkgLyAxNjAsIEludFNp
emUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOwogICAgIHJlc3RyaWN0TWluaW11
bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cnMsIEludFNpemUoYXZhaWxhYmxlV2lkdGgs
IGF2YWlsYWJsZUhlaWdodCkpOwogICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2Fs
ZUlmTm90VXNlclNjYWxhYmxlKGF0dHJzKTsKICAgICBmcHJpbnRmKHN0ZG91dCwgInZpZXdwb3J0
IHNpemUgJWR4JWQgc2NhbGUgJWYgd2l0aCBsaW1pdHMgWyVmLCAlZl0gYW5kIHVzZXJTY2FsYWJs
ZSAlZlxuIiwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLndpZHRoKCkpLCBzdGF0
aWNfY2FzdDxpbnQ+KGF0dHJzLmxheW91dFNpemUuaGVpZ2h0KCkpLCBhdHRycy5pbml0aWFsU2Nh
bGUsIGF0dHJzLm1pbmltdW1TY2FsZSwgYXR0cnMubWF4aW11bVNjYWxlLCBhdHRycy51c2VyU2Nh
bGFibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3Bv
cnRhdHRyaWJ1dGVzLmNwcAppbmRleCBjMDgxOTFmYWVkYzhhYmQ5YWU3NGE2YjNjNWVkNDFiOTNl
MjI2ZWYxLi40MzNmZTNkZWEzYWRjZmJmYmFiY2FjNjdmOWMyM2U5MGJiMmZiNGZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVz
LmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgd2Via2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVj
b21wdXRlKFdlYktpdFZpZXdwb3J0QXR0cmlidXRlcyogdmlld3BvcnRBdHRyaWJ1CiAKICAgICBW
aWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSB3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+bWFp
bkZyYW1lKCktPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7CiAKLSAgICBWaWV3cG9y
dEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1l
bnRzLCBwcml2LT5kZXNrdG9wV2lkdGgsIHByaXYtPmRldmljZVdpZHRoLCBwcml2LT5kZXZpY2VI
ZWlnaHQsIHByaXYtPmRldmljZURQSSwgSW50U2l6ZShwcml2LT5hdmFpbGFibGVXaWR0aCwgcHJp
di0+YXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMg
PSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgcHJpdi0+ZGVza3RvcFdpZHRo
LCBwcml2LT5kZXZpY2VXaWR0aCwgcHJpdi0+ZGV2aWNlSGVpZ2h0LCBwcml2LT5kZXZpY2VEUEkg
LyAxNjAsIEludFNpemUocHJpdi0+YXZhaWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdo
dCkpOwogICAgIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cmli
dXRlcywgSW50U2l6ZShwcml2LT5hdmFpbGFibGVXaWR0aCwgcHJpdi0+YXZhaWxhYmxlSGVpZ2h0
KSk7CiAgICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFi
bGUoYXR0cmlidXRlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBiMWYyZWNj
ZGRiNjAzNTU3N2Q3OGI5ZWJjYTQxOTA3MDRiYjQ1MjRmLi5mODZjNDc3MDhjMGZhM2I5ZDI4YzA1
MjI1MGY0ZjAwNzUzYWY1MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0yNTU5
LDcgKzI1NTksNyBAQCBRV2ViUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIFFXZWJQYWdlOjp2aWV3
cG9ydEF0dHJpYnV0ZXNGb3JTaXplKGNvbnN0IFFTaXplJiBhdgogICAgICAgICBkZXZpY2VIZWln
aHQgPSBzaXplLmhlaWdodCgpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmli
dXRlcyBjb25mID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhkLT52aWV3cG9y
dEFyZ3VtZW50cygpLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIHF0
X2RlZmF1bHREcGkoKSwgYXZhaWxhYmxlU2l6ZSk7CisgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzIGNvbmYgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGQtPnZpZXdw
b3J0QXJndW1lbnRzKCksIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwg
cXRfZGVmYXVsdERwaSgpIC8gMTYwLCBhdmFpbGFibGVTaXplKTsKICAgICBXZWJDb3JlOjpyZXN0
cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGNvbmYsIGF2YWlsYWJsZVNpemUp
OwogICAgIFdlYkNvcmU6OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNl
clNjYWxhYmxlKGNvbmYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGEwOTRhMjViOGJl
Y2FhMzhkMmZhM2JjNWVlYWE2NGRhMmE5YjE0NmMuLjRmMzY1MzNhZTU2NmQwZGE2MjA4M2FiYjM4
Y2E0ZmYzOGY1ZjYyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03NDAsNyArNzQwLDcg
QEAgUVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dmlld3BvcnRBc1RleHQoUVdlYlBh
Z2UqIHBhZ2UsIGludCBkZXZpY2VEUEksIGMKICAgICAgICAgLyogZGVza3RvcC13aWR0aCAqLyA5
ODAsCiAgICAgICAgIC8qIGRldmljZS13aWR0aCAgKi8gZGV2aWNlU2l6ZS53aWR0aCgpLAogICAg
ICAgICAvKiBkZXZpY2UtaGVpZ2h0ICovIGRldmljZVNpemUuaGVpZ2h0KCksCi0gICAgICAgIC8q
IGRldmljZS1kcGkgICAgKi8gZGV2aWNlRFBJLAorICAgICAgICAvKiBkZXZpY2UtZHBpICAgICov
IGRldmljZURQSSAvIDE2MCwKICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7CiAgICAgV2ViQ29yZTo6
cmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShjb25mLCBhdmFpbGFibGVT
aXplKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5v
dFVzZXJTY2FsYWJsZShjb25mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAxNzM2YmM0NmEwZDU1NWI3N2Y2YjNmZjFhZDk2YTdiZDY3MzM3
YTJhLi4xMGFkMzgxYmUxNzBjNzMwNjY0MDc3ZDNkZTUwYjEyYTdlMTE3ZjFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MTgsNyArOTE4
LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpCiAgICAg
aW50IGRldmljZVdpZHRoID0gKHNldHRpbmdzLT5kZXZpY2VXaWR0aCgpID4gMCkgPyBzZXR0aW5n
cy0+ZGV2aWNlV2lkdGgoKSA6IG1fdmlld3BvcnRTaXplLndpZHRoKCk7CiAgICAgaW50IGRldmlj
ZUhlaWdodCA9IChzZXR0aW5ncy0+ZGV2aWNlSGVpZ2h0KCkgPiAwKSA/IHNldHRpbmdzLT5kZXZp
Y2VIZWlnaHQoKSA6IG1fdmlld3BvcnRTaXplLmhlaWdodCgpOwogCi0gICAgVmlld3BvcnRBdHRy
aWJ1dGVzIGF0dHIgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fcGFnZS0+dmlld3BvcnRB
cmd1bWVudHMoKSwgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGgsIGRldmljZVdpZHRoLCBkZXZp
Y2VIZWlnaHQsIHN0YXRpY19jYXN0PGludD4oMTYwICogbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3Rv
cigpKSwgbV92aWV3cG9ydFNpemUpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyID0gY29t
cHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhtX3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmlt
dW1MYXlvdXRGYWxsYmFja1dpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBtX3BhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCksIG1fdmlld3BvcnRTaXplKTsKIAogICAgIHNldFJlc2l6ZXNU
b0NvbnRlbnRzVXNpbmdMYXlvdXRTaXplKEludFNpemUoc3RhdGljX2Nhc3Q8aW50PihhdHRyLmxh
eW91dFNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oYXR0ci5sYXlvdXRTaXplLmhlaWdo
dCgpKSkpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3Bv
cnRQcm9wZXJ0aWVzKGF0dHIpKTsKQEAgLTMxMjQsNyArMzEyNCw3IEBAIHZvaWQgV2ViUGFnZTo6
c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRp
bWUpCiBTdHJpbmcgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQXNUZXh0KGludCBkZXZp
Y2VEUEksIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdp
ZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0KQogewogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3Vt
ZW50cyA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAg
IFZpZXdwb3J0QXR0cmlidXRlcyBhdHRycyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXMoYXJndW1lbnRzLCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBw
YWdlcyAqLyA5ODAsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgSW50U2l6
ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgVmlld3BvcnRBdHRyaWJ1
dGVzIGF0dHJzID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMs
IC8qIGRlZmF1bHQgbGF5b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2
aWNlV2lkdGgsIGRldmljZUhlaWdodCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBJbnRT
aXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0
cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJzLCBJbnRTaXplKGF2YWls
YWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxl
RmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCJ2aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRz
IFslZiwgJWZdIGFuZCB1c2VyU2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMu
bGF5b3V0U2l6ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhl
aWdodCgpKSwgYXR0cnMuaW5pdGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1h
eGltdW1TY2FsZSwgYXR0cnMudXNlclNjYWxhYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149833</attachid>
            <date>2012-06-27 17:50:17 -0700</date>
            <delta_ts>2012-06-27 18:50:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120627205017.patch</filename>
            <type>text/plain</type>
            <size>27983</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uMWJlMDU0ZDdmOGZiMzU2YTMyZjIzNjU3ZTAxMjk1
M2JiMzFmMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTI2ICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvdXJhbCBjaGFu
Z2UsIGN1cnJlbnQgdGVzdHMgaW4gZmFzdC92aWV3cG9ydCBjb3ZlciBhbGwKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHN5bWJvbCBm
b3IgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBVc2UgbmV3IHBhcmFtZXRlciBmb3IgZGV2aWNlUGl4ZWxSYXRpbworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkb24ndCBjYWxjdWxhdGUgaXQgYW55
bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAg
ICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oOiBDaGFuZ2UgdGhlIGRldmljZURQSSBwYXJh
bWV0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlUGl4ZWxS
YXRpbyBhbmQgcHV0IHRoZSBvbnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uIHRoZSBlbWJlZGRlciB0byBzdXBwbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcnJlY3QgdmFsdWUuICBBZGQgdGVtcG9yYXJ5IGNvbnN0YW50LgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFNwZWVjaFJlY29nbml0aW9u
IHNob3VsZCBob29rIHVwIHdpdGggQWN0aXZlRE9NT2JqZWN0IG1vcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGExNzI4NWY3OTU0MGJhZWQ0ZTJkYTNiOTM1Y2RiYmIyN2Q2YmFh
MTguLjVkMmNhMTJmZTk0ZDk0Y2ZiYzI0N2QxMjA2ODQ1OWE1NDI4MDQ1MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTI2ICBLb25yYWQg
UGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFy
Z2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgV2ViU2V0dGluZyB0
byBzcGVjaWZ5IHdoYXQgdGhlIGRldmljZVBpeGVsUmF0aW8gc2hvdWxkIGJlLgorICAgICAgICBV
cGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAg
KiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMpOgor
ICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5ncyk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpkZXZpY2VQaXhlbFJhdGlv
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6OnNldERldmljZVBp
eGVsUmF0aW8pOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCk6CisKIDIwMTItMDYtMjEg
IE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
SW5wdXQgbW9kZSBzaG91bGQgYWRhcHQgYXV0b21hdGljYWxseSB0byBzZXR0aW5ncyBjaGFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY3NTU2YWNjYzAxZjY4YWNkOGU1NWZkNGZm
ODhkYWJjZDY1NWNmYjEuLjY0MGRjMGFmZDdjZDEwZTRhZGYwYzRjYTgzYTIyZTM2ODJjYTRhMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMjYg
IEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJk
Y29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNh
bGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorCiAyMDEyLTA2LTIwICBaZWV2IExpZWJl
ciAgPHpsaWViZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRGFtYWdlIHRy
YWNrZXIgaXMgbm90IHVzZWQgd2l0aG91dCBwYXJ0aWFsIHN3YXAsIGNhdXNpbmcgdmFsaWQgcmVu
ZGVyIHBhc3NlcyB0byBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjMxMjBiOTRhNTQy
ZGQwYjQzMmU4NjNiYmJlYzdkODlmOTUwNDQ1OS4uMTY5ZDhhNDZkYzViMDNkMmJkZmE0MjI3NjNi
NzMzYmUwNjRmNTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2
LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3Qg
aGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRo
ZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAg
KiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0
ZXNfY29tcHV0ZSk6CisKIDIwMTItMDYtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggMjBiZGQwODVlNzRlNzkwY2VlZGExMDIzNDlkMjBkMjJmMmIwMWMz
ZC4uZWE0NDIxZjQxMWIyMmEyZjkyZTBhZjc4N2Q4NTQyYmYwYTkwM2IyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAg
KGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0
dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmln
dXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcDoKKyAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6
CisKIDIwMTItMDYtMjEgIERhbmllbCBEcmFrZSAgPGRzZEBsYXB0b3Aub3JnPgogCiAgICAgICAg
IFtHVEtdIEJhY2twb3J0IHJ1bi1maWxlLWNob29zZXIgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCBkYzkwODRhOWI4NGRjN2I0YzRiYmJiMjkyYWQyZWJkY2M5ZGNhZGYwLi41YjhkNGZmYmMw
NDM5MjQ5YTc4NWQ3NTI5NmEyMGYzODc2N2JmNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisK
KyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5
NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnZpZXdwb3J0QXR0
cmlidXRlc0ZvclNpemUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3cG9y
dEFzVGV4dCk6CisKIDIwMTItMDYtMjEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJ
IG1pc3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTU1NTI1NTVhM2ZmODkxMGU3NmY1NmQ0NDg1YTk4MTEy
Y2JmZGQ1Li45NzcyNjk0OTA5NmZmNGM3N2UxOWZiY2JmNDM5YmQ2YzE1ZGVlM2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNj
aWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAo
aXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0
cmlidXRlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1RleHQpOgor
CiAyMDEyLTA2LTIxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMW1dLMl0gQWRkIFdLVmlld0VmbCBhbmQgV2ViS2l0MiBBUEkgT2JqZWN0IHRvIHJl
cHJlc2VudCBFdmFzX09iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzMzNmM5M2Y0NWE5
YzBmZmExYjI3MTdkYzE1YjIwOThiNDYxZDc3Yy4uYjcwMGI0Nzk3NTRhMjM1MzRjM2E1OGUwODc2
NTZkYzlkODkyNTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYwNyw3ICs2MDcsNyBAQCBf
X1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxNndyaXRlSGlzdG9yeUl0ZW1F
Uk5TXzMwQmluYXJ5UHJvcGVydHlMaQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0
V3JpdGVyNmJ1ZmZlckVtCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJD
MkV2CiBfX1pON1dlYkNvcmUyNWFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHZQRnZTMF9FCi1f
X1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3Vt
ZW50c0VpaWlpTlNfN0ludFNpemVFCitfX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0VpaWlmTlNfN0ludFNpemVFCiBfX1pON1dlYkNv
cmUyNlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yMjdwcm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1
cmVFdgogX19aTjdXZWJDb3JlMjZVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjI4Zm9jdXNlZEVs
ZW1lbnRBdEdlc3R1cmVTdGFydEV2CiBfX1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGE5
M2UxNGVlYTI2NjA5OTQ3YjI4ZTUxZWIzYWQ2MjIxOGNiZGQzNmEuLjc2YzRhZWY5Mjc5OTViOTc4
YzdmYjE5Y2MyZWYyNWVhN2U4ZTlkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcApAQCAtNDEsMTEgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmRjb2RlIHRoZSB0
YXJnZXREUEkgdG8gMTYwLgotLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODExNAotc3RhdGljIGZsb2F0IHRhcmdldERQSSA9IDE2MDsKLQotVmlld3BvcnRB
dHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJn
cywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCkKK1ZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBk
ZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgZmxvYXQgZGV2
aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpCiB7CiAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzIHJlc3VsdDsKIApAQCAtNTQsNyArNTAsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVz
a3RvcAogCiAgICAgQVNTRVJUKGF2YWlsYWJsZVdpZHRoID4gMCAmJiBhdmFpbGFibGVIZWlnaHQg
PiAwKTsKIAotICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJIC8gdGFyZ2V0
RFBJOworICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKIAog
ICAgIC8vIFJlc29sdmUgbm9uLSdhdXRvJyB3aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVl
cy4KICAgICBpZiAocmVzdWx0LmRldmljZVBpeGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmluZGV4IDcwNzYzMDU5MjE2NjhiYTgzYTNmODQyMjY4
MzRlYmYwNzE4MWZhZWYuLmI2MjkzZWZiYTM0NzQ1MzA5MTFlMzZiNmRiY2U4NmIwZmY5YWQ0NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC03MiwxMCArNzIsNiBA
QCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICBWYWx1ZURlc2t0b3BXaWR0aCA9
IC0yLAogICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCiAgICAgICAgIFZhbHVlRGV2aWNl
SGVpZ2h0ID0gLTQsCi0gICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCi0gICAgICAgIFZhbHVl
TG93RFBJID0gLTYsCi0gICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCi0gICAgICAgIFZhbHVl
SGlnaERQSSA9IC04CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9
IEltcGxpY2l0KQpAQCAtMTEyLDkgKzEwOCwxMyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMg
ewogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KKyAgICAv
LyBGSVhNRTogV2UncmUgZ29pbmcgdG8ga2VlcCB0aGlzIGNvbnN0YW50IGFyb3VuZCB1bnRpbCBh
bGwgZW1iZWRkZXJzCisgICAgLy8gcmVmYWN0b3IgdGhlaXIgY29kZSB0byBubyBsb25nZXIgbmVl
ZCBpdC4KKyAgICBzdGF0aWMgY29uc3QgaW50IGRlcHJlY2F0ZWRUYXJnZXREUEkgPSAxNjA7CiB9
OwogCi1WaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9y
dEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKK1Zp
ZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1l
bnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhl
aWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOwor
CiB2b2lkIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRB
dHRyaWJ1dGVzJiByZXN1bHQsIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJp
Y3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRy
aWJ1dGVzJiByZXN1bHQpOwogZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRl
bnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTE2YjJjNzUyMDRmODMwZDk3YWQ4
ZWU2ZDBkNDI5ZDJmMTc5ZDM5Zi4uM2JmM2VjYmIwYzUyMzg2MzRmZjkxNDgyYTQxNDYxOGE0MmUz
NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0zNDM1
LDkgKzM0MzUsNyBAQCBJbnRTaXplIFdlYlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmll
d3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMoKQogICAgIGludCBkZXNrdG9wV2lkdGggPSBkZWZh
dWx0TWF4TGF5b3V0U2l6ZSgpLndpZHRoKCk7CiAgICAgaW50IGRldmljZVdpZHRoID0gUGxhdGZv
cm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+d2lkdGgoKTsKICAgICBpbnQg
ZGV2aWNlSGVpZ2h0ID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4o
KS0+aGVpZ2h0KCk7Ci0gICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhp
Y3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKLSAgICBpbnQg
ZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVudFBQSS53aWR0aCgpICsgY3VycmVudFBQSS5o
ZWlnaHQoKSkgLyAyKSk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMobV92aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZp
Y2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNpemUpOwor
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhl
aWdodCwgbV93ZWJTZXR0aW5ncy0+ZGV2aWNlUGl4ZWxSYXRpbygpLCBtX2RlZmF1bHRMYXlvdXRT
aXplKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhl
bFJhdGlvKTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCBy
ZXN1bHQubGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDcwMmRjYzc3M2Q3NzU4ZjI5Njk2NzZjMjg5MTA3
NTgyMjI4NWFhYzAuLjE5NGUwNzAwMzI1NjFjZWQwNGM3OGNkYzFhM2YzMjZlYjQ4N2IxNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtRm9udEluZm8uaD4KICNpbmNs
dWRlIDxDb2xvci5oPgogI2luY2x1ZGUgPFBhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFZpZXdwb3J0
QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTU4LDYgKzU5LDcgQEAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJs
YWNrQmVycnlab29tVG9GaXRPbkxvYWRFbmFibGVkLCAoIkJsYWNrQmVycnlab29tVG8KIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwg
KCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIpKTsKIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBCbGFja0JlcnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0Jl
cnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBCbGFja0JlcnJ5Rm9ybUF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0JlcnJ5Rm9ybUF1dG9m
aWxsRW5hYmxlZCIpKTsKK0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RGV2
aWNlUGl4ZWxSYXRpbywgKCJCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyIpKTsKIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsICgiU3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERh
dGFiYXNlUGF0aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRhYmFzZXNFbmFibGVk
IikpOwpAQCAtMTcyLDYgKzE3NCwxMyBAQCBXZWJTZXR0aW5ncyogV2ViU2V0dGluZ3M6OnN0YW5k
YXJkU2V0dGluZ3MoKQogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tC
ZXJyeUNyZWRlbnRpYWxBdXRvZmlsbEVuYWJsZWQsIGZhbHNlKTsKICAgICBzZXR0aW5ncy0+bV9w
cml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFibGVkLCBmYWxzZSk7
CiAKKyAgICBpZiAoUGxhdGZvcm06OkRldmljZUluZm86Omluc3RhbmNlKCktPmlzTW9iaWxlKCkp
IHsKKyAgICAgICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNj
cmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKKyAgICAgICAgaW50IGRl
dmljZURQSSA9IGludChyb3VuZGYoKGN1cnJlbnRQUEkud2lkdGgoKSArIGN1cnJlbnRQUEkuaGVp
Z2h0KCkpIC8gMikpOworICAgICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXREb3VibGUoQmxh
Y2tCZXJyeURldmljZVBpeGVsUmF0aW8sIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0dGlu
Z3MtPm1fcHJpdmF0ZS0+c2V0RG91YmxlKEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCAxKTsK
KwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZvbnRT
aXplLCAxNik7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50ZWdlcihXZWJLaXREZWZh
dWx0Rml4ZWRGb250U2l6ZSwgMTMpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldFN0cmlu
ZyhXZWJLaXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgImlzby04ODU5LTEiKTsKQEAgLTgxMyw1
ICs4MjIsMTUgQEAgdm9pZCBXZWJTZXR0aW5nczo6c2V0Rm9ybUF1dG9maWxsRW5hYmxlZChib29s
IGVuYWJsZSkKICAgICByZXR1cm4gbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3Jt
QXV0b2ZpbGxFbmFibGVkLCBlbmFibGUpOwogfQogCitkb3VibGUgV2ViU2V0dGluZ3M6OmRldmlj
ZVBpeGVsUmF0aW8oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldERvdWJsZShC
bGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldERl
dmljZVBpeGVsUmF0aW8oZG91YmxlIHJhdGlvKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RG91Ymxl
KEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCByYXRpbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5oCmluZGV4IDUzZjJlZWU0Yzk5MTEwOWZiZmY4Njk4NjFmNjgz
ZGU3NDc1YTAzMDUuLjMzYTc4ZTM0OTAyYzYwOWY5YmFjMWUwNmZjMGJkNzYwMTMzZGI2NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKQEAgLTIzNSw2ICsy
MzUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zvcm1BdXRvZmlsbEVuYWJsZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEZvcm1BdXRvZmlsbEVuYWJsZWQoYm9vbCk7CiAKKyAgICBkb3VibGUgZGV2
aWNlUGl4ZWxSYXRpbygpIGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlUGl4ZWxSYXRpbyhkb3Vi
bGUpOworCiBwcml2YXRlOgogICAgIFdlYlNldHRpbmdzUHJpdmF0ZSogbV9wcml2YXRlOwogICAg
IFdlYlNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGFiNTcwYTk3NTU2OGMxZTdmZTgwOTZkMGE4
ZWQzMWY3NmEyNTQ1ZDYuLjMyNzVlMjg0NzQwN2I4ZjAyZWYyZWMyYTQ1MzA4N2RlMmQ5MTQ1MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1
bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuY3BwCkBAIC04NSwxMiArODUsMTIgQEAgdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50
czo6c2V0SGVpZ2h0KGZsb2F0IGhlaWdodCkKICAgICBkLT5oZWlnaHQgPSBoZWlnaHQ7CiB9CiAK
LWZsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp0YXJnZXREZW5zaXR5RHBpKCkgY29uc3QKK2Zs
b2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0VGFyZ2V0RGVu
c2l0eURwaShmbG9hdCkKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldERldmljZVBpeGVs
UmF0aW8oZmxvYXQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAzMTIwYTM3YTFkY2ZhZGNiN2EyYjg1YjFk
ZDNjZmEwNzcyM2RhYjYzLi5lNDljMjVhNTgwMDgyNmU5MTkxNDU1NzM1ZGVlYTU2ZDkxZDgwM2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFy
Z3VtZW50cy5oCkBAIC01MCwxMCArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIFZhbHVlRGVza3Rv
cFdpZHRoID0gLTIsCiAgICAgICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMywKICAgICAgICAgVmFs
dWVEZXZpY2VIZWlnaHQgPSAtNCwKLSAgICAgICAgVmFsdWVEZXZpY2VEUEkgPSAtNSwKLSAgICAg
ICAgVmFsdWVMb3dEUEkgPSAtNiwKLSAgICAgICAgVmFsdWVNZWRpdW1EUEkgPSAtNywKLSAgICAg
ICAgVmFsdWVIaWdoRFBJID0gLTgKICAgICB9OwogCiAgICAgZmxvYXQgaW5pdGlhbFNjYWxlKCkg
Y29uc3Q7CkBAIC03MSw5ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBmbG9hdCBoZWlnaHQoKSBjb25z
dDsKICAgICB2b2lkIHNldEhlaWdodChmbG9hdCk7CiAKLSAgICAvLyBGSVhNRTogQ2FuIHdlIHJl
bW92ZSB0aGVzZSBmdW5jdGlvbnM/IFdlYktpdCBubyBsb25nZXIgc3VwcG9ydHMgdGFyZ2V0RGVu
c2l0eURwaS4KLSAgICBmbG9hdCB0YXJnZXREZW5zaXR5RHBpKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRUYXJnZXREZW5zaXR5RHBpKGZsb2F0KTsKKyAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvKCkg
Y29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VQaXhlbFJhdGlvKGZsb2F0KTsKIAogICAgIGZsb2F0
IHVzZXJTY2FsYWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlclNjYWxhYmxlKGZsb2F0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCmluZGV4IGNkMWNiNGNmOWVmZDg4MTQ5MzRk
ZTZiODU1YjYwNTk3NmFlYzQxYjYuLmIwYmMwZmM4ZjcwODQyNzI4YTA0ZGNhOTcxZThhMzQyZDJm
N2IyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtODcsNyArODcsNyBA
QCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigp
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9y
dChGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCkKIHsK
ICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSBtYWluRnJhbWUtPnBhZ2UoKS0+dmll
d3BvcnRBcmd1bWVudHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRl
Vmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9y
IG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZp
Y2VEUEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZp
ZXdwb3J0QXR0cmlidXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1l
bnRzLCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAs
IGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRz
OjpkZXByZWNhdGVkVGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVI
ZWlnaHQpKTsKICAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0
dHJzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0
cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5k
ZXggZGQxZTIxMDRiZGI4ZDA3N2Q4ODIxNmVkNWE0N2EwMmYzZmQyMmNiOS4uNGMwNDEwNzUzMWI0
OGIzZWM5ODU1MzNhN2I3ZDQ2NDM4MDMwYjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbgogICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21wdXRp
bmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgogICAgIFZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCiAgICAgICAgIGFyZ3MsIHNl
dHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJl
Y3QuaGVpZ2h0LAotICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNl
UmVjdC5oZWlnaHQpKTsKKyAgICAgICAgZHBpIC8gVmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0
ZWRUYXJnZXREUEksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNlUmVjdC5oZWlnaHQp
KTsKIAogICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsK
ICAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4NmMzN2Q3ODZkMmEy
ZTJiOTZmNDFkYTAuLjY3YjIzMTc5ZDM3YTk0MjA2ZTYyOTZmMjlkZTAzOTZlYjI2MmFjZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNTg3LDcgKzU4Nyw3IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3CiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMg
PSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywKICAgICAgICAgICAgIC8qIGRl
ZmF1bHQgbGF5b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwKICAgICAgICAg
ICAgIGRldmljZVNpemUud2lkdGgoKSwgZGV2aWNlU2l6ZS5oZWlnaHQoKSwKLSAgICAgICAgICAg
IGRldmljZURQSSwKKyAgICAgICAgICAgIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJLAogICAgICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7
CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVz
LCBhdmFpbGFibGVTaXplKTsKICAgICByZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJ
Zk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IGM0NTU2OWNlMTAxNmU4MzRjMjczN2MxNDRhNzgzNzliZTI1ZWU5NDAuLjFiNWI0Yzg1
Mzg1MDRkMmE0YjdkMTkwMjkxNjdmY2Y3MzAwZTJkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtMTIzNyw3ICsxMjM3LDcgQEAgc3RhdGljIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKGNvbnN0IEUKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYt
PnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKSk7CiAgICAgV2ViQ29yZTo6SW50
UmVjdCBkZXZpY2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPndpbmRvd1JlY3QoKSk7CiAKLSAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0
ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+
dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZp
Y2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEksIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKKyAgICBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwg
ZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZpY2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEkgLyBWaWV3
cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgYXZhaWxhYmxlUmVjdC5zaXplKCkp
OwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUo
YXR0cmlidXRlcywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0
U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHJpYnV0ZXMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCBhOWRlODc1Yzk0N2YxMmQxODgzZTc4NmYz
MGNkZjgyZmUzN2I2YjQxLi5kYzIxYTU0Y2FmYjliYzBkMTdiOTg0OTIwZDI4NWRjM2M0ZGJiYjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChXZWJL
aXRXZWJWaWV3KiB3ZWJWaQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9IHdlYlZpZXct
PnByaXYtPmNvcmVQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1bWVu
dHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUg
cGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIEludFNp
emUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRzLCAvKiBkZWZh
dWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRldmljZVdpZHRo
LCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRzOjpkZXByZWNhdGVk
VGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAg
ICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJzLCBJbnRTaXpl
KGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0cmljdFNjYWxlRmFj
dG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAgZnByaW50Zihz
dGRvdXQsICJ2aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRzIFslZiwgJWZd
IGFuZCB1c2VyU2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6
ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpKSwg
YXR0cnMuaW5pdGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1heGltdW1TY2Fs
ZSwgYXR0cnMudXNlclNjYWxhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKaW5kZXggYzA4MTkxZmFlZGM4YWJkOWFl
NzRhNmIzYzVlZDQxYjkzZTIyNmVmMS4uNmNlNTY2ZjUyOWEzYTk1M2M2Y2Q4N2IyNWIyMWFiYjIx
ZWNkNjI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlcy5jcHAKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIHdlYmtpdFZpZXdw
b3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIHZpZXdwb3J0
QXR0cmlidQogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gd2ViVmlldy0+cHJp
di0+Y29yZVBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygp
OwogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBjb21wdXRlVmlld3BvcnRB
dHRyaWJ1dGVzKGFyZ3VtZW50cywgcHJpdi0+ZGVza3RvcFdpZHRoLCBwcml2LT5kZXZpY2VXaWR0
aCwgcHJpdi0+ZGV2aWNlSGVpZ2h0LCBwcml2LT5kZXZpY2VEUEksIEludFNpemUocHJpdi0+YXZh
aWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBhdHRyaWJ1dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIHBy
aXYtPmRlc2t0b3BXaWR0aCwgcHJpdi0+ZGV2aWNlV2lkdGgsIHByaXYtPmRldmljZUhlaWdodCwg
cHJpdi0+ZGV2aWNlRFBJIC8gZGVwcmVjYXRlZFRhcmdldERQSSwgSW50U2l6ZShwcml2LT5hdmFp
bGFibGVXaWR0aCwgcHJpdi0+YXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAgcmVzdHJpY3RNaW5pbXVt
U2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVzLCBJbnRTaXplKHByaXYtPmF2YWls
YWJsZVdpZHRoLCBwcml2LT5hdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0cmljdFNjYWxlRmFj
dG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGIxZjJlY2NkZGI2MDM1NTc3ZDc4YjllYmNhNDE5MDcw
NGJiNDUyNGYuLjY2MjIzMThjOGVjNjE1YjUxOGYxYjY4Mzk4NDMzNDQ5MmUzN2VmOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTI1NTksNyArMjU1OSw3IEBAIFFXZWJQYWdlOjpW
aWV3cG9ydEF0dHJpYnV0ZXMgUVdlYlBhZ2U6OnZpZXdwb3J0QXR0cmlidXRlc0ZvclNpemUoY29u
c3QgUVNpemUmIGF2CiAgICAgICAgIGRldmljZUhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAg
fQogCi0gICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGNvbmYgPSBXZWJDb3JlOjpjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKGQtPnZpZXdwb3J0QXJndW1lbnRzKCksIGRlc2t0b3BXaWR0
aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgcXRfZGVmYXVsdERwaSgpLCBhdmFpbGFibGVT
aXplKTsKKyAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgY29uZiA9IFdlYkNvcmU6OmNv
bXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoZC0+dmlld3BvcnRBcmd1bWVudHMoKSwgZGVza3RvcFdp
ZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBxdF9kZWZhdWx0RHBpKCkgLyBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgYXZhaWxhYmxlU2l6ZSk7
CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShj
b25mLCBhdmFpbGFibGVTaXplKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9J
bml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShjb25mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cAppbmRleCBhMDk0YTI1YjhiZWNhYTM4ZDJmYTNiYzVlZWFhNjRkYTJhOWIxNDZjLi5hY2I1MGEz
M2ViZDYyYWM4MWU3MzZlOWM4YWQzZmNiYzdiMWYyNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cApAQCAtNzM3LDEwICs3MzcsMTAgQEAgUVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
dmlld3BvcnRBc1RleHQoUVdlYlBhZ2UqIHBhZ2UsIGludCBkZXZpY2VEUEksIGMKICAgICBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyBhcmdzID0gcGFnZS0+ZC0+dmlld3BvcnRBcmd1bWVudHMo
KTsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyBjb25mID0gV2ViQ29yZTo6Y29t
cHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmdzLAotICAgICAgICAvKiBkZXNrdG9wLXdpZHRoICov
IDk4MCwKLSAgICAgICAgLyogZGV2aWNlLXdpZHRoICAqLyBkZXZpY2VTaXplLndpZHRoKCksCi0g
ICAgICAgIC8qIGRldmljZS1oZWlnaHQgKi8gZGV2aWNlU2l6ZS5oZWlnaHQoKSwKLSAgICAgICAg
LyogZGV2aWNlLWRwaSAgICAqLyBkZXZpY2VEUEksCisgICAgICAgIC8qIGRlc2t0b3Atd2lkdGgg
ICAgKi8gOTgwLAorICAgICAgICAvKiBkZXZpY2Utd2lkdGggICAgICovIGRldmljZVNpemUud2lk
dGgoKSwKKyAgICAgICAgLyogZGV2aWNlLWhlaWdodCAgICAqLyBkZXZpY2VTaXplLmhlaWdodCgp
LAorICAgICAgICAvKiBkZXZpY2VQaXhlbFJhdGlvICovIGRldmljZURQSSAvIFdlYkNvcmU6OlZp
ZXdwb3J0QXJndW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJLAogICAgICAgICBhdmFpbGFibGVT
aXplKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRT
aXplKGNvbmYsIGF2YWlsYWJsZVNpemUpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0U2NhbGVGYWN0
b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNvbmYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE3MzZiYzQ2YTBkNTU1Yjc3
ZjZiM2ZmMWFkOTZhN2JkNjczMzdhMmEuLjEwYWQzODFiZTE3MGM3MzA2NjQwNzdkM2RlNTBiMTJh
N2UxMTdmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTkxOCw3ICs5MTgsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRWaWV3cG9ydEF0dHJp
YnV0ZXNDaGFuZ2VkKCkKICAgICBpbnQgZGV2aWNlV2lkdGggPSAoc2V0dGluZ3MtPmRldmljZVdp
ZHRoKCkgPiAwKSA/IHNldHRpbmdzLT5kZXZpY2VXaWR0aCgpIDogbV92aWV3cG9ydFNpemUud2lk
dGgoKTsKICAgICBpbnQgZGV2aWNlSGVpZ2h0ID0gKHNldHRpbmdzLT5kZXZpY2VIZWlnaHQoKSA+
IDApID8gc2V0dGluZ3MtPmRldmljZUhlaWdodCgpIDogbV92aWV3cG9ydFNpemUuaGVpZ2h0KCk7
CiAKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0ciA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0
ZXMobV9wYWdlLT52aWV3cG9ydEFyZ3VtZW50cygpLCBtaW5pbXVtTGF5b3V0RmFsbGJhY2tXaWR0
aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgc3RhdGljX2Nhc3Q8aW50PigxNjAgKiBtX3Bh
Z2UtPmRldmljZVNjYWxlRmFjdG9yKCkpLCBtX3ZpZXdwb3J0U2l6ZSk7CisgICAgVmlld3BvcnRB
dHRyaWJ1dGVzIGF0dHIgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fcGFnZS0+dmlld3Bv
cnRBcmd1bWVudHMoKSwgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGgsIGRldmljZVdpZHRoLCBk
ZXZpY2VIZWlnaHQsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV92aWV3cG9ydFNpemUp
OwogCiAgICAgc2V0UmVzaXplc1RvQ29udGVudHNVc2luZ0xheW91dFNpemUoSW50U2l6ZShzdGF0
aWNfY2FzdDxpbnQ+KGF0dHIubGF5b3V0U2l6ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50Pihh
dHRyLmxheW91dFNpemUuaGVpZ2h0KCkpKSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cikpOwpAQCAtMzEyNCw3ICszMTI0
LDcgQEAgdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKIFN0cmluZyBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3Vy
YXRpb25Bc1RleHQoaW50IGRldmljZURQSSwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVp
Z2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQpCiB7CiAgICAgVmll
d3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gbWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnZpZXdw
b3J0QXJndW1lbnRzKCk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJzID0gV2ViQ29yZTo6
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5b3V0IHdp
ZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdo
dCwgZGV2aWNlRFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsK
KyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRB
dHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2Jp
bGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBtX3BhZ2UtPmRldmlj
ZVNjYWxlRmFjdG9yKCksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkp
OwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUo
YXR0cnMsIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOwogICAgIFdl
YkNvcmU6OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxl
KGF0dHJzKTsKICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoInZpZXdwb3J0IHNpemUgJWR4JWQg
c2NhbGUgJWYgd2l0aCBsaW1pdHMgWyVmLCAlZl0gYW5kIHVzZXJTY2FsYWJsZSAlZlxuIiwgc3Rh
dGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLndpZHRoKCkpLCBzdGF0aWNfY2FzdDxpbnQ+
KGF0dHJzLmxheW91dFNpemUuaGVpZ2h0KCkpLCBhdHRycy5pbml0aWFsU2NhbGUsIGF0dHJzLm1p
bmltdW1TY2FsZSwgYXR0cnMubWF4aW11bVNjYWxlLCBhdHRycy51c2VyU2NhbGFibGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149849</attachid>
            <date>2012-06-27 18:50:21 -0700</date>
            <delta_ts>2012-06-28 08:14:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120627215020.patch</filename>
            <type>text/plain</type>
            <size>28002</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uMWJlMDU0ZDdmOGZiMzU2YTMyZjIzNjU3ZTAxMjk1
M2JiMzFmMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTI2ICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvdXJhbCBjaGFu
Z2UsIGN1cnJlbnQgdGVzdHMgaW4gZmFzdC92aWV3cG9ydCBjb3ZlciBhbGwKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHN5bWJvbCBm
b3IgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBVc2UgbmV3IHBhcmFtZXRlciBmb3IgZGV2aWNlUGl4ZWxSYXRpbworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkb24ndCBjYWxjdWxhdGUgaXQgYW55
bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAg
ICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oOiBDaGFuZ2UgdGhlIGRldmljZURQSSBwYXJh
bWV0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlUGl4ZWxS
YXRpbyBhbmQgcHV0IHRoZSBvbnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uIHRoZSBlbWJlZGRlciB0byBzdXBwbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcnJlY3QgdmFsdWUuICBBZGQgdGVtcG9yYXJ5IGNvbnN0YW50LgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFNwZWVjaFJlY29nbml0aW9u
IHNob3VsZCBob29rIHVwIHdpdGggQWN0aXZlRE9NT2JqZWN0IG1vcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGExNzI4NWY3OTU0MGJhZWQ0ZTJkYTNiOTM1Y2RiYmIyN2Q2YmFh
MTguLjVkMmNhMTJmZTk0ZDk0Y2ZiYzI0N2QxMjA2ODQ1OWE1NDI4MDQ1MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTI2ICBLb25yYWQg
UGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFy
Z2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgV2ViU2V0dGluZyB0
byBzcGVjaWZ5IHdoYXQgdGhlIGRldmljZVBpeGVsUmF0aW8gc2hvdWxkIGJlLgorICAgICAgICBV
cGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAg
KiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMpOgor
ICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5ncyk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpkZXZpY2VQaXhlbFJhdGlv
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6OnNldERldmljZVBp
eGVsUmF0aW8pOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCk6CisKIDIwMTItMDYtMjEg
IE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
SW5wdXQgbW9kZSBzaG91bGQgYWRhcHQgYXV0b21hdGljYWxseSB0byBzZXR0aW5ncyBjaGFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY3NTU2YWNjYzAxZjY4YWNkOGU1NWZkNGZm
ODhkYWJjZDY1NWNmYjEuLjY0MGRjMGFmZDdjZDEwZTRhZGYwYzRjYTgzYTIyZTM2ODJjYTRhMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMjYg
IEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJk
Y29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNh
bGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorCiAyMDEyLTA2LTIwICBaZWV2IExpZWJl
ciAgPHpsaWViZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRGFtYWdlIHRy
YWNrZXIgaXMgbm90IHVzZWQgd2l0aG91dCBwYXJ0aWFsIHN3YXAsIGNhdXNpbmcgdmFsaWQgcmVu
ZGVyIHBhc3NlcyB0byBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjMxMjBiOTRhNTQy
ZGQwYjQzMmU4NjNiYmJlYzdkODlmOTUwNDQ1OS4uMTY5ZDhhNDZkYzViMDNkMmJkZmE0MjI3NjNi
NzMzYmUwNjRmNTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2
LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3Qg
aGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRo
ZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAg
KiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0
ZXNfY29tcHV0ZSk6CisKIDIwMTItMDYtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggMjBiZGQwODVlNzRlNzkwY2VlZGExMDIzNDlkMjBkMjJmMmIwMWMz
ZC4uZWE0NDIxZjQxMWIyMmEyZjkyZTBhZjc4N2Q4NTQyYmYwYTkwM2IyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAg
KGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0
dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmln
dXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcDoKKyAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6
CisKIDIwMTItMDYtMjEgIERhbmllbCBEcmFrZSAgPGRzZEBsYXB0b3Aub3JnPgogCiAgICAgICAg
IFtHVEtdIEJhY2twb3J0IHJ1bi1maWxlLWNob29zZXIgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCBkYzkwODRhOWI4NGRjN2I0YzRiYmJiMjkyYWQyZWJkY2M5ZGNhZGYwLi41YjhkNGZmYmMw
NDM5MjQ5YTc4NWQ3NTI5NmEyMGYzODc2N2JmNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisK
KyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5
NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnZpZXdwb3J0QXR0
cmlidXRlc0ZvclNpemUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3cG9y
dEFzVGV4dCk6CisKIDIwMTItMDYtMjEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJ
IG1pc3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTU1NTI1NTVhM2ZmODkxMGU3NmY1NmQ0NDg1YTk4MTEy
Y2JmZGQ1Li45NzcyNjk0OTA5NmZmNGM3N2UxOWZiY2JmNDM5YmQ2YzE1ZGVlM2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNj
aWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAo
aXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0
cmlidXRlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1RleHQpOgor
CiAyMDEyLTA2LTIxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMW1dLMl0gQWRkIFdLVmlld0VmbCBhbmQgV2ViS2l0MiBBUEkgT2JqZWN0IHRvIHJl
cHJlc2VudCBFdmFzX09iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzMzNmM5M2Y0NWE5
YzBmZmExYjI3MTdkYzE1YjIwOThiNDYxZDc3Yy4uYjcwMGI0Nzk3NTRhMjM1MzRjM2E1OGUwODc2
NTZkYzlkODkyNTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYwNyw3ICs2MDcsNyBAQCBf
X1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxNndyaXRlSGlzdG9yeUl0ZW1F
Uk5TXzMwQmluYXJ5UHJvcGVydHlMaQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0
V3JpdGVyNmJ1ZmZlckVtCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJD
MkV2CiBfX1pON1dlYkNvcmUyNWFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHZQRnZTMF9FCi1f
X1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3Vt
ZW50c0VpaWlpTlNfN0ludFNpemVFCitfX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0VpaWlmTlNfN0ludFNpemVFCiBfX1pON1dlYkNv
cmUyNlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yMjdwcm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1
cmVFdgogX19aTjdXZWJDb3JlMjZVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjI4Zm9jdXNlZEVs
ZW1lbnRBdEdlc3R1cmVTdGFydEV2CiBfX1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGE5
M2UxNGVlYTI2NjA5OTQ3YjI4ZTUxZWIzYWQ2MjIxOGNiZGQzNmEuLjc2YzRhZWY5Mjc5OTViOTc4
YzdmYjE5Y2MyZWYyNWVhN2U4ZTlkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcApAQCAtNDEsMTEgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmRjb2RlIHRoZSB0
YXJnZXREUEkgdG8gMTYwLgotLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODExNAotc3RhdGljIGZsb2F0IHRhcmdldERQSSA9IDE2MDsKLQotVmlld3BvcnRB
dHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJn
cywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCkKK1ZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBk
ZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgZmxvYXQgZGV2
aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpCiB7CiAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzIHJlc3VsdDsKIApAQCAtNTQsNyArNTAsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVz
a3RvcAogCiAgICAgQVNTRVJUKGF2YWlsYWJsZVdpZHRoID4gMCAmJiBhdmFpbGFibGVIZWlnaHQg
PiAwKTsKIAotICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJIC8gdGFyZ2V0
RFBJOworICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKIAog
ICAgIC8vIFJlc29sdmUgbm9uLSdhdXRvJyB3aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVl
cy4KICAgICBpZiAocmVzdWx0LmRldmljZVBpeGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmluZGV4IDcwNzYzMDU5MjE2NjhiYTgzYTNmODQyMjY4
MzRlYmYwNzE4MWZhZWYuLmI2MjkzZWZiYTM0NzQ1MzA5MTFlMzZiNmRiY2U4NmIwZmY5YWQ0NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC03MiwxMCArNzIsNiBA
QCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICBWYWx1ZURlc2t0b3BXaWR0aCA9
IC0yLAogICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCiAgICAgICAgIFZhbHVlRGV2aWNl
SGVpZ2h0ID0gLTQsCi0gICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCi0gICAgICAgIFZhbHVl
TG93RFBJID0gLTYsCi0gICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCi0gICAgICAgIFZhbHVl
SGlnaERQSSA9IC04CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9
IEltcGxpY2l0KQpAQCAtMTEyLDkgKzEwOCwxMyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMg
ewogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KKyAgICAv
LyBGSVhNRTogV2UncmUgZ29pbmcgdG8ga2VlcCB0aGlzIGNvbnN0YW50IGFyb3VuZCB1bnRpbCBh
bGwgZW1iZWRkZXJzCisgICAgLy8gcmVmYWN0b3IgdGhlaXIgY29kZSB0byBubyBsb25nZXIgbmVl
ZCBpdC4KKyAgICBzdGF0aWMgY29uc3QgaW50IGRlcHJlY2F0ZWRUYXJnZXREUEkgPSAxNjA7CiB9
OwogCi1WaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9y
dEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKK1Zp
ZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1l
bnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhl
aWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOwor
CiB2b2lkIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRB
dHRyaWJ1dGVzJiByZXN1bHQsIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJp
Y3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRy
aWJ1dGVzJiByZXN1bHQpOwogZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRl
bnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTE2YjJjNzUyMDRmODMwZDk3YWQ4
ZWU2ZDBkNDI5ZDJmMTc5ZDM5Zi4uM2JmM2VjYmIwYzUyMzg2MzRmZjkxNDgyYTQxNDYxOGE0MmUz
NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0zNDM1
LDkgKzM0MzUsNyBAQCBJbnRTaXplIFdlYlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmll
d3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMoKQogICAgIGludCBkZXNrdG9wV2lkdGggPSBkZWZh
dWx0TWF4TGF5b3V0U2l6ZSgpLndpZHRoKCk7CiAgICAgaW50IGRldmljZVdpZHRoID0gUGxhdGZv
cm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+d2lkdGgoKTsKICAgICBpbnQg
ZGV2aWNlSGVpZ2h0ID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4o
KS0+aGVpZ2h0KCk7Ci0gICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhp
Y3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKLSAgICBpbnQg
ZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVudFBQSS53aWR0aCgpICsgY3VycmVudFBQSS5o
ZWlnaHQoKSkgLyAyKSk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMobV92aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZp
Y2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNpemUpOwor
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhl
aWdodCwgbV93ZWJTZXR0aW5ncy0+ZGV2aWNlUGl4ZWxSYXRpbygpLCBtX2RlZmF1bHRMYXlvdXRT
aXplKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhl
bFJhdGlvKTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCBy
ZXN1bHQubGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDcwMmRjYzc3M2Q3NzU4ZjI5Njk2NzZjMjg5MTA3
NTgyMjI4NWFhYzAuLjE5NGUwNzAwMzI1NjFjZWQwNGM3OGNkYzFhM2YzMjZlYjQ4N2IxNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtRm9udEluZm8uaD4KICNpbmNs
dWRlIDxDb2xvci5oPgogI2luY2x1ZGUgPFBhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFZpZXdwb3J0
QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTU4LDYgKzU5LDcgQEAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJs
YWNrQmVycnlab29tVG9GaXRPbkxvYWRFbmFibGVkLCAoIkJsYWNrQmVycnlab29tVG8KIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwg
KCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIpKTsKIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBCbGFja0JlcnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0Jl
cnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBCbGFja0JlcnJ5Rm9ybUF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0JlcnJ5Rm9ybUF1dG9m
aWxsRW5hYmxlZCIpKTsKK0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RGV2
aWNlUGl4ZWxSYXRpbywgKCJCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyIpKTsKIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsICgiU3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERh
dGFiYXNlUGF0aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRhYmFzZXNFbmFibGVk
IikpOwpAQCAtMTcyLDYgKzE3NCwxMyBAQCBXZWJTZXR0aW5ncyogV2ViU2V0dGluZ3M6OnN0YW5k
YXJkU2V0dGluZ3MoKQogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tC
ZXJyeUNyZWRlbnRpYWxBdXRvZmlsbEVuYWJsZWQsIGZhbHNlKTsKICAgICBzZXR0aW5ncy0+bV9w
cml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFibGVkLCBmYWxzZSk7
CiAKKyAgICBpZiAoUGxhdGZvcm06OkRldmljZUluZm86Omluc3RhbmNlKCktPmlzTW9iaWxlKCkp
IHsKKyAgICAgICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNj
cmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKKyAgICAgICAgaW50IGRl
dmljZURQSSA9IGludChyb3VuZGYoKGN1cnJlbnRQUEkud2lkdGgoKSArIGN1cnJlbnRQUEkuaGVp
Z2h0KCkpIC8gMikpOworICAgICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXREb3VibGUoQmxh
Y2tCZXJyeURldmljZVBpeGVsUmF0aW8sIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0dGlu
Z3MtPm1fcHJpdmF0ZS0+c2V0RG91YmxlKEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCAxKTsK
KwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZvbnRT
aXplLCAxNik7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50ZWdlcihXZWJLaXREZWZh
dWx0Rml4ZWRGb250U2l6ZSwgMTMpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldFN0cmlu
ZyhXZWJLaXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgImlzby04ODU5LTEiKTsKQEAgLTgxMyw1
ICs4MjIsMTUgQEAgdm9pZCBXZWJTZXR0aW5nczo6c2V0Rm9ybUF1dG9maWxsRW5hYmxlZChib29s
IGVuYWJsZSkKICAgICByZXR1cm4gbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3Jt
QXV0b2ZpbGxFbmFibGVkLCBlbmFibGUpOwogfQogCitkb3VibGUgV2ViU2V0dGluZ3M6OmRldmlj
ZVBpeGVsUmF0aW8oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldERvdWJsZShC
bGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldERl
dmljZVBpeGVsUmF0aW8oZG91YmxlIHJhdGlvKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RG91Ymxl
KEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCByYXRpbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5oCmluZGV4IDUzZjJlZWU0Yzk5MTEwOWZiZmY4Njk4NjFmNjgz
ZGU3NDc1YTAzMDUuLjMzYTc4ZTM0OTAyYzYwOWY5YmFjMWUwNmZjMGJkNzYwMTMzZGI2NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKQEAgLTIzNSw2ICsy
MzUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zvcm1BdXRvZmlsbEVuYWJsZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEZvcm1BdXRvZmlsbEVuYWJsZWQoYm9vbCk7CiAKKyAgICBkb3VibGUgZGV2
aWNlUGl4ZWxSYXRpbygpIGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlUGl4ZWxSYXRpbyhkb3Vi
bGUpOworCiBwcml2YXRlOgogICAgIFdlYlNldHRpbmdzUHJpdmF0ZSogbV9wcml2YXRlOwogICAg
IFdlYlNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGFiNTcwYTk3NTU2OGMxZTdmZTgwOTZkMGE4
ZWQzMWY3NmEyNTQ1ZDYuLjMyNzVlMjg0NzQwN2I4ZjAyZWYyZWMyYTQ1MzA4N2RlMmQ5MTQ1MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1
bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuY3BwCkBAIC04NSwxMiArODUsMTIgQEAgdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50
czo6c2V0SGVpZ2h0KGZsb2F0IGhlaWdodCkKICAgICBkLT5oZWlnaHQgPSBoZWlnaHQ7CiB9CiAK
LWZsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp0YXJnZXREZW5zaXR5RHBpKCkgY29uc3QKK2Zs
b2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0VGFyZ2V0RGVu
c2l0eURwaShmbG9hdCkKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldERldmljZVBpeGVs
UmF0aW8oZmxvYXQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAzMTIwYTM3YTFkY2ZhZGNiN2EyYjg1YjFk
ZDNjZmEwNzcyM2RhYjYzLi5lNDljMjVhNTgwMDgyNmU5MTkxNDU1NzM1ZGVlYTU2ZDkxZDgwM2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFy
Z3VtZW50cy5oCkBAIC01MCwxMCArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIFZhbHVlRGVza3Rv
cFdpZHRoID0gLTIsCiAgICAgICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMywKICAgICAgICAgVmFs
dWVEZXZpY2VIZWlnaHQgPSAtNCwKLSAgICAgICAgVmFsdWVEZXZpY2VEUEkgPSAtNSwKLSAgICAg
ICAgVmFsdWVMb3dEUEkgPSAtNiwKLSAgICAgICAgVmFsdWVNZWRpdW1EUEkgPSAtNywKLSAgICAg
ICAgVmFsdWVIaWdoRFBJID0gLTgKICAgICB9OwogCiAgICAgZmxvYXQgaW5pdGlhbFNjYWxlKCkg
Y29uc3Q7CkBAIC03MSw5ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBmbG9hdCBoZWlnaHQoKSBjb25z
dDsKICAgICB2b2lkIHNldEhlaWdodChmbG9hdCk7CiAKLSAgICAvLyBGSVhNRTogQ2FuIHdlIHJl
bW92ZSB0aGVzZSBmdW5jdGlvbnM/IFdlYktpdCBubyBsb25nZXIgc3VwcG9ydHMgdGFyZ2V0RGVu
c2l0eURwaS4KLSAgICBmbG9hdCB0YXJnZXREZW5zaXR5RHBpKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRUYXJnZXREZW5zaXR5RHBpKGZsb2F0KTsKKyAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvKCkg
Y29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VQaXhlbFJhdGlvKGZsb2F0KTsKIAogICAgIGZsb2F0
IHVzZXJTY2FsYWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlclNjYWxhYmxlKGZsb2F0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCmluZGV4IGNkMWNiNGNmOWVmZDg4MTQ5MzRk
ZTZiODU1YjYwNTk3NmFlYzQxYjYuLmIwYmMwZmM4ZjcwODQyNzI4YTA0ZGNhOTcxZThhMzQyZDJm
N2IyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtODcsNyArODcsNyBA
QCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigp
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9y
dChGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCkKIHsK
ICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSBtYWluRnJhbWUtPnBhZ2UoKS0+dmll
d3BvcnRBcmd1bWVudHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRl
Vmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9y
IG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZp
Y2VEUEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZp
ZXdwb3J0QXR0cmlidXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1l
bnRzLCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAs
IGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRz
OjpkZXByZWNhdGVkVGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVI
ZWlnaHQpKTsKICAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0
dHJzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0
cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5k
ZXggZGQxZTIxMDRiZGI4ZDA3N2Q4ODIxNmVkNWE0N2EwMmYzZmQyMmNiOS4uNGMwNDEwNzUzMWI0
OGIzZWM5ODU1MzNhN2I3ZDQ2NDM4MDMwYjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbgogICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21wdXRp
bmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgogICAgIFZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCiAgICAgICAgIGFyZ3MsIHNl
dHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJl
Y3QuaGVpZ2h0LAotICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNl
UmVjdC5oZWlnaHQpKTsKKyAgICAgICAgZHBpIC8gVmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0
ZWRUYXJnZXREUEksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNlUmVjdC5oZWlnaHQp
KTsKIAogICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsK
ICAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4NmMzN2Q3ODZkMmEy
ZTJiOTZmNDFkYTAuLjY3YjIzMTc5ZDM3YTk0MjA2ZTYyOTZmMjlkZTAzOTZlYjI2MmFjZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNTg3LDcgKzU4Nyw3IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3CiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMg
PSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywKICAgICAgICAgICAgIC8qIGRl
ZmF1bHQgbGF5b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwKICAgICAgICAg
ICAgIGRldmljZVNpemUud2lkdGgoKSwgZGV2aWNlU2l6ZS5oZWlnaHQoKSwKLSAgICAgICAgICAg
IGRldmljZURQSSwKKyAgICAgICAgICAgIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJLAogICAgICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7
CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVz
LCBhdmFpbGFibGVTaXplKTsKICAgICByZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJ
Zk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IGM0NTU2OWNlMTAxNmU4MzRjMjczN2MxNDRhNzgzNzliZTI1ZWU5NDAuLjFiNWI0Yzg1
Mzg1MDRkMmE0YjdkMTkwMjkxNjdmY2Y3MzAwZTJkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtMTIzNyw3ICsxMjM3LDcgQEAgc3RhdGljIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKGNvbnN0IEUKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYt
PnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKSk7CiAgICAgV2ViQ29yZTo6SW50
UmVjdCBkZXZpY2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPndpbmRvd1JlY3QoKSk7CiAKLSAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0
ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+
dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZp
Y2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEksIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKKyAgICBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwg
ZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZpY2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEkgLyBWaWV3
cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgYXZhaWxhYmxlUmVjdC5zaXplKCkp
OwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUo
YXR0cmlidXRlcywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0
U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHJpYnV0ZXMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCBhOWRlODc1Yzk0N2YxMmQxODgzZTc4NmYz
MGNkZjgyZmUzN2I2YjQxLi5kYzIxYTU0Y2FmYjliYzBkMTdiOTg0OTIwZDI4NWRjM2M0ZGJiYjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChXZWJL
aXRXZWJWaWV3KiB3ZWJWaQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9IHdlYlZpZXct
PnByaXYtPmNvcmVQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1bWVu
dHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmlld3BvcnRBdHRy
aWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUg
cGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIEludFNp
emUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRzLCAvKiBkZWZh
dWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRldmljZVdpZHRo
LCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRzOjpkZXByZWNhdGVk
VGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAg
ICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJzLCBJbnRTaXpl
KGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0cmljdFNjYWxlRmFj
dG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAgZnByaW50Zihz
dGRvdXQsICJ2aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRzIFslZiwgJWZd
IGFuZCB1c2VyU2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6
ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpKSwg
YXR0cnMuaW5pdGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1heGltdW1TY2Fs
ZSwgYXR0cnMudXNlclNjYWxhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKaW5kZXggYzA4MTkxZmFlZGM4YWJkOWFl
NzRhNmIzYzVlZDQxYjkzZTIyNmVmMS4uMTM4YmRjMzIxNTVkOWUyODQ1M2RjM2Q0OGY4MDRhNzFj
Y2IxNmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlcy5jcHAKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIHdlYmtpdFZpZXdw
b3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIHZpZXdwb3J0
QXR0cmlidQogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gd2ViVmlldy0+cHJp
di0+Y29yZVBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygp
OwogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBjb21wdXRlVmlld3BvcnRB
dHRyaWJ1dGVzKGFyZ3VtZW50cywgcHJpdi0+ZGVza3RvcFdpZHRoLCBwcml2LT5kZXZpY2VXaWR0
aCwgcHJpdi0+ZGV2aWNlSGVpZ2h0LCBwcml2LT5kZXZpY2VEUEksIEludFNpemUocHJpdi0+YXZh
aWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBhdHRyaWJ1dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIHBy
aXYtPmRlc2t0b3BXaWR0aCwgcHJpdi0+ZGV2aWNlV2lkdGgsIHByaXYtPmRldmljZUhlaWdodCwg
cHJpdi0+ZGV2aWNlRFBJIC8gVmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0ZWRUYXJnZXREUEks
IEludFNpemUocHJpdi0+YXZhaWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdodCkpOwog
ICAgIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cmlidXRlcywg
SW50U2l6ZShwcml2LT5hdmFpbGFibGVXaWR0aCwgcHJpdi0+YXZhaWxhYmxlSGVpZ2h0KSk7CiAg
ICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0
cmlidXRlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBiMWYyZWNjZGRiNjAz
NTU3N2Q3OGI5ZWJjYTQxOTA3MDRiYjQ1MjRmLi42NjIyMzE4YzhlYzYxNWI1MThmMWI2ODM5ODQz
MzQ0OTJlMzdlZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0yNTU5LDcgKzI1
NTksNyBAQCBRV2ViUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIFFXZWJQYWdlOjp2aWV3cG9ydEF0
dHJpYnV0ZXNGb3JTaXplKGNvbnN0IFFTaXplJiBhdgogICAgICAgICBkZXZpY2VIZWlnaHQgPSBz
aXplLmhlaWdodCgpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyBj
b25mID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhkLT52aWV3cG9ydEFyZ3Vt
ZW50cygpLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIHF0X2RlZmF1
bHREcGkoKSwgYXZhaWxhYmxlU2l6ZSk7CisgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
IGNvbmYgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGQtPnZpZXdwb3J0QXJn
dW1lbnRzKCksIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgcXRfZGVm
YXVsdERwaSgpIC8gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0ZWRUYXJnZXRE
UEksIGF2YWlsYWJsZVNpemUpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11bVNjYWxlRmFj
dG9yVG9WaWV3cG9ydFNpemUoY29uZiwgYXZhaWxhYmxlU2l6ZSk7CiAgICAgV2ViQ29yZTo6cmVz
dHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoY29uZik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggYTA5NGEyNWI4YmVjYWEzOGQyZmEzYmM1ZWVhYTY0
ZGEyYTliMTQ2Yy4uYWNiNTBhMzNlYmQ2MmFjODFlNzM2ZTljOGFkM2ZjYmM3YjFmMjcyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTczNywxMCArNzM3LDEwIEBAIFFTdHJpbmcgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KFFXZWJQYWdlKiBwYWdlLCBpbnQgZGV2
aWNlRFBJLCBjCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgYXJncyA9IHBhZ2UtPmQt
PnZpZXdwb3J0QXJndW1lbnRzKCk7CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29uZiA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJncywKLSAgICAgICAg
LyogZGVza3RvcC13aWR0aCAqLyA5ODAsCi0gICAgICAgIC8qIGRldmljZS13aWR0aCAgKi8gZGV2
aWNlU2l6ZS53aWR0aCgpLAotICAgICAgICAvKiBkZXZpY2UtaGVpZ2h0ICovIGRldmljZVNpemUu
aGVpZ2h0KCksCi0gICAgICAgIC8qIGRldmljZS1kcGkgICAgKi8gZGV2aWNlRFBJLAorICAgICAg
ICAvKiBkZXNrdG9wLXdpZHRoICAgICovIDk4MCwKKyAgICAgICAgLyogZGV2aWNlLXdpZHRoICAg
ICAqLyBkZXZpY2VTaXplLndpZHRoKCksCisgICAgICAgIC8qIGRldmljZS1oZWlnaHQgICAgKi8g
ZGV2aWNlU2l6ZS5oZWlnaHQoKSwKKyAgICAgICAgLyogZGV2aWNlUGl4ZWxSYXRpbyAqLyBkZXZp
Y2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwK
ICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RNaW5pbXVtU2Nh
bGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShjb25mLCBhdmFpbGFibGVTaXplKTsKICAgICBXZWJDb3Jl
OjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShjb25m
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAxNzM2YmM0NmEwZDU1NWI3N2Y2YjNmZjFhZDk2YTdiZDY3MzM3YTJhLi4xMGFkMzgxYmUxNzBj
NzMwNjY0MDc3ZDNkZTUwYjEyYTdlMTE3ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MTgsNyArOTE4LDcgQEAgdm9pZCBXZWJQYWdl
OjpzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpCiAgICAgaW50IGRldmljZVdpZHRoID0g
KHNldHRpbmdzLT5kZXZpY2VXaWR0aCgpID4gMCkgPyBzZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSA6
IG1fdmlld3BvcnRTaXplLndpZHRoKCk7CiAgICAgaW50IGRldmljZUhlaWdodCA9IChzZXR0aW5n
cy0+ZGV2aWNlSGVpZ2h0KCkgPiAwKSA/IHNldHRpbmdzLT5kZXZpY2VIZWlnaHQoKSA6IG1fdmll
d3BvcnRTaXplLmhlaWdodCgpOwogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHIgPSBjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fcGFnZS0+dmlld3BvcnRBcmd1bWVudHMoKSwgbWluaW11
bUxheW91dEZhbGxiYWNrV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIHN0YXRpY19j
YXN0PGludD4oMTYwICogbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKSwgbV92aWV3cG9ydFNp
emUpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyID0gY29tcHV0ZVZpZXdwb3J0QXR0cmli
dXRlcyhtX3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmltdW1MYXlvdXRGYWxsYmFja1dp
ZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9y
KCksIG1fdmlld3BvcnRTaXplKTsKIAogICAgIHNldFJlc2l6ZXNUb0NvbnRlbnRzVXNpbmdMYXlv
dXRTaXplKEludFNpemUoc3RhdGljX2Nhc3Q8aW50PihhdHRyLmxheW91dFNpemUud2lkdGgoKSks
IHN0YXRpY19jYXN0PGludD4oYXR0ci5sYXlvdXRTaXplLmhlaWdodCgpKSkpOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGF0dHIp
KTsKQEAgLTMxMjQsNyArMzEyNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlv
bihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiBTdHJpbmcgV2ViUGFn
ZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQXNUZXh0KGludCBkZXZpY2VEUEksIGludCBkZXZpY2VX
aWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxl
SGVpZ2h0KQogewogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9IG1haW5GcmFtZSgp
LT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAgIFZpZXdwb3J0QXR0cmlidXRl
cyBhdHRycyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRzLCAv
KiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRldmlj
ZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwg
YXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJzID0gV2ViQ29y
ZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5b3V0
IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmljZUhl
aWdodCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRo
LCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZh
Y3RvclRvVmlld3BvcnRTaXplKGF0dHJzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFi
bGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2Nh
bGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJ2
aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRzIFslZiwgJWZdIGFuZCB1c2Vy
U2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6ZS53aWR0aCgp
KSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpKSwgYXR0cnMuaW5p
dGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1heGltdW1TY2FsZSwgYXR0cnMu
dXNlclNjYWxhYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149957</attachid>
            <date>2012-06-28 08:14:47 -0700</date>
            <delta_ts>2012-06-28 08:49:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120628111446.patch</filename>
            <type>text/plain</type>
            <size>28011</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uMWJlMDU0ZDdmOGZiMzU2YTMyZjIzNjU3ZTAxMjk1
M2JiMzFmMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTI2ICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvdXJhbCBjaGFu
Z2UsIGN1cnJlbnQgdGVzdHMgaW4gZmFzdC92aWV3cG9ydCBjb3ZlciBhbGwKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHN5bWJvbCBm
b3IgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBVc2UgbmV3IHBhcmFtZXRlciBmb3IgZGV2aWNlUGl4ZWxSYXRpbworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkb24ndCBjYWxjdWxhdGUgaXQgYW55
bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAg
ICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oOiBDaGFuZ2UgdGhlIGRldmljZURQSSBwYXJh
bWV0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlUGl4ZWxS
YXRpbyBhbmQgcHV0IHRoZSBvbnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uIHRoZSBlbWJlZGRlciB0byBzdXBwbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcnJlY3QgdmFsdWUuICBBZGQgdGVtcG9yYXJ5IGNvbnN0YW50LgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFNwZWVjaFJlY29nbml0aW9u
IHNob3VsZCBob29rIHVwIHdpdGggQWN0aXZlRE9NT2JqZWN0IG1vcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGExNzI4NWY3OTU0MGJhZWQ0ZTJkYTNiOTM1Y2RiYmIyN2Q2YmFh
MTguLjVkMmNhMTJmZTk0ZDk0Y2ZiYzI0N2QxMjA2ODQ1OWE1NDI4MDQ1MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTI2ICBLb25yYWQg
UGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFy
Z2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgV2ViU2V0dGluZyB0
byBzcGVjaWZ5IHdoYXQgdGhlIGRldmljZVBpeGVsUmF0aW8gc2hvdWxkIGJlLgorICAgICAgICBV
cGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAg
KiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMpOgor
ICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5ncyk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpkZXZpY2VQaXhlbFJhdGlv
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6OnNldERldmljZVBp
eGVsUmF0aW8pOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCk6CisKIDIwMTItMDYtMjEg
IE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
SW5wdXQgbW9kZSBzaG91bGQgYWRhcHQgYXV0b21hdGljYWxseSB0byBzZXR0aW5ncyBjaGFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY3NTU2YWNjYzAxZjY4YWNkOGU1NWZkNGZm
ODhkYWJjZDY1NWNmYjEuLjY0MGRjMGFmZDdjZDEwZTRhZGYwYzRjYTgzYTIyZTM2ODJjYTRhMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMjYg
IEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJk
Y29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNh
bGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorCiAyMDEyLTA2LTIwICBaZWV2IExpZWJl
ciAgPHpsaWViZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRGFtYWdlIHRy
YWNrZXIgaXMgbm90IHVzZWQgd2l0aG91dCBwYXJ0aWFsIHN3YXAsIGNhdXNpbmcgdmFsaWQgcmVu
ZGVyIHBhc3NlcyB0byBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjMxMjBiOTRhNTQy
ZGQwYjQzMmU4NjNiYmJlYzdkODlmOTUwNDQ1OS4uMTY5ZDhhNDZkYzViMDNkMmJkZmE0MjI3NjNi
NzMzYmUwNjRmNTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2
LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3Qg
aGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRo
ZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAg
KiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0
ZXNfY29tcHV0ZSk6CisKIDIwMTItMDYtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggMjBiZGQwODVlNzRlNzkwY2VlZGExMDIzNDlkMjBkMjJmMmIwMWMz
ZC4uZWE0NDIxZjQxMWIyMmEyZjkyZTBhZjc4N2Q4NTQyYmYwYTkwM2IyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAg
KGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0
dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmln
dXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcDoKKyAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6
CisKIDIwMTItMDYtMjEgIERhbmllbCBEcmFrZSAgPGRzZEBsYXB0b3Aub3JnPgogCiAgICAgICAg
IFtHVEtdIEJhY2twb3J0IHJ1bi1maWxlLWNob29zZXIgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCBkYzkwODRhOWI4NGRjN2I0YzRiYmJiMjkyYWQyZWJkY2M5ZGNhZGYwLi41YjhkNGZmYmMw
NDM5MjQ5YTc4NWQ3NTI5NmEyMGYzODc2N2JmNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisK
KyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5
NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnZpZXdwb3J0QXR0
cmlidXRlc0ZvclNpemUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3cG9y
dEFzVGV4dCk6CisKIDIwMTItMDYtMjEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJ
IG1pc3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTU1NTI1NTVhM2ZmODkxMGU3NmY1NmQ0NDg1YTk4MTEy
Y2JmZGQ1Li45NzcyNjk0OTA5NmZmNGM3N2UxOWZiY2JmNDM5YmQ2YzE1ZGVlM2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNj
aWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAo
aXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0
cmlidXRlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1RleHQpOgor
CiAyMDEyLTA2LTIxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMW1dLMl0gQWRkIFdLVmlld0VmbCBhbmQgV2ViS2l0MiBBUEkgT2JqZWN0IHRvIHJl
cHJlc2VudCBFdmFzX09iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzMzNmM5M2Y0NWE5
YzBmZmExYjI3MTdkYzE1YjIwOThiNDYxZDc3Yy4uYjcwMGI0Nzk3NTRhMjM1MzRjM2E1OGUwODc2
NTZkYzlkODkyNTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYwNyw3ICs2MDcsNyBAQCBf
X1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxNndyaXRlSGlzdG9yeUl0ZW1F
Uk5TXzMwQmluYXJ5UHJvcGVydHlMaQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0
V3JpdGVyNmJ1ZmZlckVtCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJD
MkV2CiBfX1pON1dlYkNvcmUyNWFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHZQRnZTMF9FCi1f
X1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3Vt
ZW50c0VpaWlpTlNfN0ludFNpemVFCitfX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0VpaWlmTlNfN0ludFNpemVFCiBfX1pON1dlYkNv
cmUyNlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yMjdwcm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1
cmVFdgogX19aTjdXZWJDb3JlMjZVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjI4Zm9jdXNlZEVs
ZW1lbnRBdEdlc3R1cmVTdGFydEV2CiBfX1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGE5
M2UxNGVlYTI2NjA5OTQ3YjI4ZTUxZWIzYWQ2MjIxOGNiZGQzNmEuLjc2YzRhZWY5Mjc5OTViOTc4
YzdmYjE5Y2MyZWYyNWVhN2U4ZTlkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcApAQCAtNDEsMTEgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmRjb2RlIHRoZSB0
YXJnZXREUEkgdG8gMTYwLgotLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODExNAotc3RhdGljIGZsb2F0IHRhcmdldERQSSA9IDE2MDsKLQotVmlld3BvcnRB
dHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJn
cywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCkKK1ZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBk
ZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgZmxvYXQgZGV2
aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpCiB7CiAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzIHJlc3VsdDsKIApAQCAtNTQsNyArNTAsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVz
a3RvcAogCiAgICAgQVNTRVJUKGF2YWlsYWJsZVdpZHRoID4gMCAmJiBhdmFpbGFibGVIZWlnaHQg
PiAwKTsKIAotICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJIC8gdGFyZ2V0
RFBJOworICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKIAog
ICAgIC8vIFJlc29sdmUgbm9uLSdhdXRvJyB3aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVl
cy4KICAgICBpZiAocmVzdWx0LmRldmljZVBpeGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmluZGV4IDcwNzYzMDU5MjE2NjhiYTgzYTNmODQyMjY4
MzRlYmYwNzE4MWZhZWYuLmI2MjkzZWZiYTM0NzQ1MzA5MTFlMzZiNmRiY2U4NmIwZmY5YWQ0NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC03MiwxMCArNzIsNiBA
QCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICBWYWx1ZURlc2t0b3BXaWR0aCA9
IC0yLAogICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCiAgICAgICAgIFZhbHVlRGV2aWNl
SGVpZ2h0ID0gLTQsCi0gICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCi0gICAgICAgIFZhbHVl
TG93RFBJID0gLTYsCi0gICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCi0gICAgICAgIFZhbHVl
SGlnaERQSSA9IC04CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9
IEltcGxpY2l0KQpAQCAtMTEyLDkgKzEwOCwxMyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMg
ewogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KKyAgICAv
LyBGSVhNRTogV2UncmUgZ29pbmcgdG8ga2VlcCB0aGlzIGNvbnN0YW50IGFyb3VuZCB1bnRpbCBh
bGwgZW1iZWRkZXJzCisgICAgLy8gcmVmYWN0b3IgdGhlaXIgY29kZSB0byBubyBsb25nZXIgbmVl
ZCBpdC4KKyAgICBzdGF0aWMgY29uc3QgaW50IGRlcHJlY2F0ZWRUYXJnZXREUEkgPSAxNjA7CiB9
OwogCi1WaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9y
dEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKK1Zp
ZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1l
bnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhl
aWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOwor
CiB2b2lkIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRB
dHRyaWJ1dGVzJiByZXN1bHQsIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJp
Y3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRy
aWJ1dGVzJiByZXN1bHQpOwogZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRl
bnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTE2YjJjNzUyMDRmODMwZDk3YWQ4
ZWU2ZDBkNDI5ZDJmMTc5ZDM5Zi4uM2JmM2VjYmIwYzUyMzg2MzRmZjkxNDgyYTQxNDYxOGE0MmUz
NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0zNDM1
LDkgKzM0MzUsNyBAQCBJbnRTaXplIFdlYlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmll
d3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMoKQogICAgIGludCBkZXNrdG9wV2lkdGggPSBkZWZh
dWx0TWF4TGF5b3V0U2l6ZSgpLndpZHRoKCk7CiAgICAgaW50IGRldmljZVdpZHRoID0gUGxhdGZv
cm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+d2lkdGgoKTsKICAgICBpbnQg
ZGV2aWNlSGVpZ2h0ID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4o
KS0+aGVpZ2h0KCk7Ci0gICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhp
Y3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKLSAgICBpbnQg
ZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVudFBQSS53aWR0aCgpICsgY3VycmVudFBQSS5o
ZWlnaHQoKSkgLyAyKSk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMobV92aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZp
Y2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNpemUpOwor
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhl
aWdodCwgbV93ZWJTZXR0aW5ncy0+ZGV2aWNlUGl4ZWxSYXRpbygpLCBtX2RlZmF1bHRMYXlvdXRT
aXplKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhl
bFJhdGlvKTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCBy
ZXN1bHQubGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDcwMmRjYzc3M2Q3NzU4ZjI5Njk2NzZjMjg5MTA3
NTgyMjI4NWFhYzAuLjE5NGUwNzAwMzI1NjFjZWQwNGM3OGNkYzFhM2YzMjZlYjQ4N2IxNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtRm9udEluZm8uaD4KICNpbmNs
dWRlIDxDb2xvci5oPgogI2luY2x1ZGUgPFBhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFZpZXdwb3J0
QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTU4LDYgKzU5LDcgQEAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJs
YWNrQmVycnlab29tVG9GaXRPbkxvYWRFbmFibGVkLCAoIkJsYWNrQmVycnlab29tVG8KIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwg
KCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIpKTsKIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBCbGFja0JlcnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0Jl
cnJ5Q3JlZGVudGlhbEF1dG9maWxsRW5hYmxlZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBCbGFja0JlcnJ5Rm9ybUF1dG9maWxsRW5hYmxlZCwgKCJCbGFja0JlcnJ5Rm9ybUF1dG9m
aWxsRW5hYmxlZCIpKTsKK0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RGV2
aWNlUGl4ZWxSYXRpbywgKCJCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyIpKTsKIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsICgiU3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERh
dGFiYXNlUGF0aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRhYmFzZXNFbmFibGVk
IikpOwpAQCAtMTcyLDYgKzE3NCwxMyBAQCBXZWJTZXR0aW5ncyogV2ViU2V0dGluZ3M6OnN0YW5k
YXJkU2V0dGluZ3MoKQogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tC
ZXJyeUNyZWRlbnRpYWxBdXRvZmlsbEVuYWJsZWQsIGZhbHNlKTsKICAgICBzZXR0aW5ncy0+bV9w
cml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3JtQXV0b2ZpbGxFbmFibGVkLCBmYWxzZSk7
CiAKKyAgICBpZiAoUGxhdGZvcm06OkRldmljZUluZm86Omluc3RhbmNlKCktPmlzTW9iaWxlKCkp
IHsKKyAgICAgICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OlNj
cmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKKyAgICAgICAgaW50IGRl
dmljZURQSSA9IGludChyb3VuZGYoKGN1cnJlbnRQUEkud2lkdGgoKSArIGN1cnJlbnRQUEkuaGVp
Z2h0KCkpIC8gMikpOworICAgICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXREb3VibGUoQmxh
Y2tCZXJyeURldmljZVBpeGVsUmF0aW8sIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0dGlu
Z3MtPm1fcHJpdmF0ZS0+c2V0RG91YmxlKEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCAxKTsK
KwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZvbnRT
aXplLCAxNik7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50ZWdlcihXZWJLaXREZWZh
dWx0Rml4ZWRGb250U2l6ZSwgMTMpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldFN0cmlu
ZyhXZWJLaXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgImlzby04ODU5LTEiKTsKQEAgLTgxMyw1
ICs4MjIsMTUgQEAgdm9pZCBXZWJTZXR0aW5nczo6c2V0Rm9ybUF1dG9maWxsRW5hYmxlZChib29s
IGVuYWJsZSkKICAgICByZXR1cm4gbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGb3Jt
QXV0b2ZpbGxFbmFibGVkLCBlbmFibGUpOwogfQogCitkb3VibGUgV2ViU2V0dGluZ3M6OmRldmlj
ZVBpeGVsUmF0aW8oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldERvdWJsZShC
bGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbyk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldERl
dmljZVBpeGVsUmF0aW8oZG91YmxlIHJhdGlvKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RG91Ymxl
KEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCByYXRpbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5oCmluZGV4IDUzZjJlZWU0Yzk5MTEwOWZiZmY4Njk4NjFmNjgz
ZGU3NDc1YTAzMDUuLjMzYTc4ZTM0OTAyYzYwOWY5YmFjMWUwNmZjMGJkNzYwMTMzZGI2NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKQEAgLTIzNSw2ICsy
MzUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zvcm1BdXRvZmlsbEVuYWJsZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEZvcm1BdXRvZmlsbEVuYWJsZWQoYm9vbCk7CiAKKyAgICBkb3VibGUgZGV2
aWNlUGl4ZWxSYXRpbygpIGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlUGl4ZWxSYXRpbyhkb3Vi
bGUpOworCiBwcml2YXRlOgogICAgIFdlYlNldHRpbmdzUHJpdmF0ZSogbV9wcml2YXRlOwogICAg
IFdlYlNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGFiNTcwYTk3NTU2OGMxZTdmZTgwOTZkMGE4
ZWQzMWY3NmEyNTQ1ZDYuLjMyNzVlMjg0NzQwN2I4ZjAyZWYyZWMyYTQ1MzA4N2RlMmQ5MTQ1MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1
bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRB
cmd1bWVudHMuY3BwCkBAIC04NSwxMiArODUsMTIgQEAgdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50
czo6c2V0SGVpZ2h0KGZsb2F0IGhlaWdodCkKICAgICBkLT5oZWlnaHQgPSBoZWlnaHQ7CiB9CiAK
LWZsb2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjp0YXJnZXREZW5zaXR5RHBpKCkgY29uc3QKK2Zs
b2F0IFdlYlZpZXdwb3J0QXJndW1lbnRzOjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6c2V0VGFyZ2V0RGVu
c2l0eURwaShmbG9hdCkKK3ZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldERldmljZVBpeGVs
UmF0aW8oZmxvYXQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAzMTIwYTM3YTFkY2ZhZGNiN2EyYjg1YjFk
ZDNjZmEwNzcyM2RhYjYzLi5lNDljMjVhNTgwMDgyNmU5MTkxNDU1NzM1ZGVlYTU2ZDkxZDgwM2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0QXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFy
Z3VtZW50cy5oCkBAIC01MCwxMCArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIFZhbHVlRGVza3Rv
cFdpZHRoID0gLTIsCiAgICAgICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMywKICAgICAgICAgVmFs
dWVEZXZpY2VIZWlnaHQgPSAtNCwKLSAgICAgICAgVmFsdWVEZXZpY2VEUEkgPSAtNSwKLSAgICAg
ICAgVmFsdWVMb3dEUEkgPSAtNiwKLSAgICAgICAgVmFsdWVNZWRpdW1EUEkgPSAtNywKLSAgICAg
ICAgVmFsdWVIaWdoRFBJID0gLTgKICAgICB9OwogCiAgICAgZmxvYXQgaW5pdGlhbFNjYWxlKCkg
Y29uc3Q7CkBAIC03MSw5ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBmbG9hdCBoZWlnaHQoKSBjb25z
dDsKICAgICB2b2lkIHNldEhlaWdodChmbG9hdCk7CiAKLSAgICAvLyBGSVhNRTogQ2FuIHdlIHJl
bW92ZSB0aGVzZSBmdW5jdGlvbnM/IFdlYktpdCBubyBsb25nZXIgc3VwcG9ydHMgdGFyZ2V0RGVu
c2l0eURwaS4KLSAgICBmbG9hdCB0YXJnZXREZW5zaXR5RHBpKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRUYXJnZXREZW5zaXR5RHBpKGZsb2F0KTsKKyAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvKCkg
Y29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VQaXhlbFJhdGlvKGZsb2F0KTsKIAogICAgIGZsb2F0
IHVzZXJTY2FsYWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlclNjYWxhYmxlKGZsb2F0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCmluZGV4IGNkMWNiNGNmOWVmZDg4MTQ5MzRk
ZTZiODU1YjYwNTk3NmFlYzQxYjYuLmIwYmMwZmM4ZjcwODQyNzI4YTA0ZGNhOTcxZThhMzQyZDJm
N2IyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtODcsNyArODcsNyBA
QCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigp
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9y
dChGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCkKIHsK
ICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSBtYWluRnJhbWUtPnBhZ2UoKS0+dmll
d3BvcnRBcmd1bWVudHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRl
Vmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9y
IG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZp
Y2VEUEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZp
ZXdwb3J0QXR0cmlidXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1l
bnRzLCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAs
IGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRz
OjpkZXByZWNhdGVkVGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVI
ZWlnaHQpKTsKICAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0
dHJzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0
cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5k
ZXggZGQxZTIxMDRiZGI4ZDA3N2Q4ODIxNmVkNWE0N2EwMmYzZmQyMmNiOS4uNGMwNDEwNzUzMWI0
OGIzZWM5ODU1MzNhN2I3ZDQ2NDM4MDMwYjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbgogICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21wdXRp
bmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgogICAgIFZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCiAgICAgICAgIGFyZ3MsIHNl
dHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJl
Y3QuaGVpZ2h0LAotICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNl
UmVjdC5oZWlnaHQpKTsKKyAgICAgICAgZHBpIC8gVmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0
ZWRUYXJnZXREUEksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNlUmVjdC5oZWlnaHQp
KTsKIAogICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsK
ICAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGZlMWY3MGRhZTFiODk3NGM4NmMzN2Q3ODZkMmEy
ZTJiOTZmNDFkYTAuLjY3YjIzMTc5ZDM3YTk0MjA2ZTYyOTZmMjlkZTAzOTZlYjI2MmFjZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNTg3LDcgKzU4Nyw3IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3CiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMg
PSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywKICAgICAgICAgICAgIC8qIGRl
ZmF1bHQgbGF5b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwKICAgICAgICAg
ICAgIGRldmljZVNpemUud2lkdGgoKSwgZGV2aWNlU2l6ZS5oZWlnaHQoKSwKLSAgICAgICAgICAg
IGRldmljZURQSSwKKyAgICAgICAgICAgIGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzOjpkZXByZWNhdGVkVGFyZ2V0RFBJLAogICAgICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7
CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVz
LCBhdmFpbGFibGVTaXplKTsKICAgICByZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJ
Zk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IGM0NTU2OWNlMTAxNmU4MzRjMjczN2MxNDRhNzgzNzliZTI1ZWU5NDAuLmI4MWZiMTY5
NjcwYWRmZWYxNDExYmRlYjJkNjlhOGEyYjI4NDNlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtMTIzNyw3ICsxMjM3LDcgQEAgc3RhdGljIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKGNvbnN0IEUKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYt
PnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKSk7CiAgICAgV2ViQ29yZTo6SW50
UmVjdCBkZXZpY2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPndpbmRvd1JlY3QoKSk7CiAKLSAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0
ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+
dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZp
Y2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEksIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKKyAgICBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IFdlYkNvcmU6OmNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMocHJpdi0+dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwg
ZGV2aWNlUmVjdC53aWR0aCgpLCBkZXZpY2VSZWN0LmhlaWdodCgpLCBkZXZpY2VEUEkgLyBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgYXZhaWxhYmxlUmVj
dC5zaXplKCkpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3
cG9ydFNpemUoYXR0cmlidXRlcywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwogICAgIFdlYkNvcmU6
OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHJp
YnV0ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCBhOWRlODc1Yzk0N2YxMmQx
ODgzZTc4NmYzMGNkZjgyZmUzN2I2YjQxLi5kYzIxYTU0Y2FmYjliYzBkMTdiOTg0OTIwZDI4NWRj
M2M0ZGJiYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTYyMyw3ICs2MjMsNyBA
QCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3
cG9ydChXZWJLaXRXZWJWaWV3KiB3ZWJWaQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpKTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9
IHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3Bv
cnRBcmd1bWVudHMoKTsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5v
bi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VE
UEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdw
b3J0QXR0cmlidXRlcyBhdHRycyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRz
LCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRl
dmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRzOjpk
ZXByZWNhdGVkVGFyZ2V0RFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWln
aHQpKTsKICAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJz
LCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICByZXN0cmlj
dFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAg
ZnByaW50ZihzdGRvdXQsICJ2aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRz
IFslZiwgJWZdIGFuZCB1c2VyU2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMu
bGF5b3V0U2l6ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhl
aWdodCgpKSwgYXR0cnMuaW5pdGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1h
eGltdW1TY2FsZSwgYXR0cnMudXNlclNjYWxhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKaW5kZXggYzA4MTkxZmFl
ZGM4YWJkOWFlNzRhNmIzYzVlZDQxYjkzZTIyNmVmMS4uMTM4YmRjMzIxNTVkOWUyODQ1M2RjM2Q0
OGY4MDRhNzFjY2IxNmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIHdl
YmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMq
IHZpZXdwb3J0QXR0cmlidQogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gd2Vi
Vmlldy0+cHJpdi0+Y29yZVBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFy
Z3VtZW50cygpOwogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBjb21wdXRl
Vmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgcHJpdi0+ZGVza3RvcFdpZHRoLCBwcml2LT5k
ZXZpY2VXaWR0aCwgcHJpdi0+ZGV2aWNlSGVpZ2h0LCBwcml2LT5kZXZpY2VEUEksIEludFNpemUo
cHJpdi0+YXZhaWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdw
b3J0QXR0cmlidXRlcyBhdHRyaWJ1dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1
bWVudHMsIHByaXYtPmRlc2t0b3BXaWR0aCwgcHJpdi0+ZGV2aWNlV2lkdGgsIHByaXYtPmRldmlj
ZUhlaWdodCwgcHJpdi0+ZGV2aWNlRFBJIC8gVmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0ZWRU
YXJnZXREUEksIEludFNpemUocHJpdi0+YXZhaWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhl
aWdodCkpOwogICAgIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0
cmlidXRlcywgSW50U2l6ZShwcml2LT5hdmFpbGFibGVXaWR0aCwgcHJpdi0+YXZhaWxhYmxlSGVp
Z2h0KSk7CiAgICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2Nh
bGFibGUoYXR0cmlidXRlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBiMWYy
ZWNjZGRiNjAzNTU3N2Q3OGI5ZWJjYTQxOTA3MDRiYjQ1MjRmLi42NjIyMzE4YzhlYzYxNWI1MThm
MWI2ODM5ODQzMzQ0OTJlMzdlZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0y
NTU5LDcgKzI1NTksNyBAQCBRV2ViUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIFFXZWJQYWdlOjp2
aWV3cG9ydEF0dHJpYnV0ZXNGb3JTaXplKGNvbnN0IFFTaXplJiBhdgogICAgICAgICBkZXZpY2VI
ZWlnaHQgPSBzaXplLmhlaWdodCgpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBjb25mID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhkLT52aWV3
cG9ydEFyZ3VtZW50cygpLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQs
IHF0X2RlZmF1bHREcGkoKSwgYXZhaWxhYmxlU2l6ZSk7CisgICAgV2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzIGNvbmYgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGQtPnZp
ZXdwb3J0QXJndW1lbnRzKCksIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdo
dCwgcXRfZGVmYXVsdERwaSgpIC8gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0
ZWRUYXJnZXREUEksIGF2YWlsYWJsZVNpemUpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0TWluaW11
bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoY29uZiwgYXZhaWxhYmxlU2l6ZSk7CiAgICAgV2Vi
Q29yZTo6cmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUo
Y29uZik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggYTA5NGEyNWI4YmVjYWEzOGQyZmEz
YmM1ZWVhYTY0ZGEyYTliMTQ2Yy4uYWNiNTBhMzNlYmQ2MmFjODFlNzM2ZTljOGFkM2ZjYmM3YjFm
MjcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTczNywxMCArNzM3LDEwIEBAIFFTdHJp
bmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KFFXZWJQYWdlKiBwYWdl
LCBpbnQgZGV2aWNlRFBJLCBjCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgYXJncyA9
IHBhZ2UtPmQtPnZpZXdwb3J0QXJndW1lbnRzKCk7CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMgY29uZiA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJncywK
LSAgICAgICAgLyogZGVza3RvcC13aWR0aCAqLyA5ODAsCi0gICAgICAgIC8qIGRldmljZS13aWR0
aCAgKi8gZGV2aWNlU2l6ZS53aWR0aCgpLAotICAgICAgICAvKiBkZXZpY2UtaGVpZ2h0ICovIGRl
dmljZVNpemUuaGVpZ2h0KCksCi0gICAgICAgIC8qIGRldmljZS1kcGkgICAgKi8gZGV2aWNlRFBJ
LAorICAgICAgICAvKiBkZXNrdG9wLXdpZHRoICAgICovIDk4MCwKKyAgICAgICAgLyogZGV2aWNl
LXdpZHRoICAgICAqLyBkZXZpY2VTaXplLndpZHRoKCksCisgICAgICAgIC8qIGRldmljZS1oZWln
aHQgICAgKi8gZGV2aWNlU2l6ZS5oZWlnaHQoKSwKKyAgICAgICAgLyogZGV2aWNlUGl4ZWxSYXRp
byAqLyBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRh
cmdldERQSSwKICAgICAgICAgYXZhaWxhYmxlU2l6ZSk7CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RN
aW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShjb25mLCBhdmFpbGFibGVTaXplKTsKICAg
ICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2Fs
YWJsZShjb25mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAxNzM2YmM0NmEwZDU1NWI3N2Y2YjNmZjFhZDk2YTdiZDY3MzM3YTJhLi4xMGFk
MzgxYmUxNzBjNzMwNjY0MDc3ZDNkZTUwYjEyYTdlMTE3ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MTgsNyArOTE4LDcgQEAgdm9p
ZCBXZWJQYWdlOjpzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpCiAgICAgaW50IGRldmlj
ZVdpZHRoID0gKHNldHRpbmdzLT5kZXZpY2VXaWR0aCgpID4gMCkgPyBzZXR0aW5ncy0+ZGV2aWNl
V2lkdGgoKSA6IG1fdmlld3BvcnRTaXplLndpZHRoKCk7CiAgICAgaW50IGRldmljZUhlaWdodCA9
IChzZXR0aW5ncy0+ZGV2aWNlSGVpZ2h0KCkgPiAwKSA/IHNldHRpbmdzLT5kZXZpY2VIZWlnaHQo
KSA6IG1fdmlld3BvcnRTaXplLmhlaWdodCgpOwogCi0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0
dHIgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fcGFnZS0+dmlld3BvcnRBcmd1bWVudHMo
KSwgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQs
IHN0YXRpY19jYXN0PGludD4oMTYwICogbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKSwgbV92
aWV3cG9ydFNpemUpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyID0gY29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlcyhtX3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmltdW1MYXlvdXRG
YWxsYmFja1dpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBtX3BhZ2UtPmRldmljZVNj
YWxlRmFjdG9yKCksIG1fdmlld3BvcnRTaXplKTsKIAogICAgIHNldFJlc2l6ZXNUb0NvbnRlbnRz
VXNpbmdMYXlvdXRTaXplKEludFNpemUoc3RhdGljX2Nhc3Q8aW50PihhdHRyLmxheW91dFNpemUu
d2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oYXR0ci5sYXlvdXRTaXplLmhlaWdodCgpKSkpOwog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGF0dHIpKTsKQEAgLTMxMjQsNyArMzEyNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2ltdWxhdGVN
b3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiBTdHJp
bmcgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQXNUZXh0KGludCBkZXZpY2VEUEksIGlu
dCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQg
YXZhaWxhYmxlSGVpZ2h0KQogewogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9IG1h
aW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAgIFZpZXdwb3J0
QXR0cmlidXRlcyBhdHRycyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJn
dW1lbnRzLCAvKiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5
ODAsIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGRldmljZURQSSwgSW50U2l6ZShhdmFpbGFi
bGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJz
ID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1
bHQgbGF5b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgs
IGRldmljZUhlaWdodCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBJbnRTaXplKGF2YWls
YWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmlt
dW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRo
LCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9J
bml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CiAgICAgcmV0dXJuIFN0cmluZzo6
Zm9ybWF0KCJ2aWV3cG9ydCBzaXplICVkeCVkIHNjYWxlICVmIHdpdGggbGltaXRzIFslZiwgJWZd
IGFuZCB1c2VyU2NhbGFibGUgJWZcbiIsIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6
ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpKSwg
YXR0cnMuaW5pdGlhbFNjYWxlLCBhdHRycy5taW5pbXVtU2NhbGUsIGF0dHJzLm1heGltdW1TY2Fs
ZSwgYXR0cnMudXNlclNjYWxhYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149959</attachid>
            <date>2012-06-28 08:54:38 -0700</date>
            <delta_ts>2012-06-29 05:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88114-20120628115438.patch</filename>
            <type>text/plain</type>
            <size>28186</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1NWI4M2YzYzc2MmVk
NjBiNDc3NjU5NmZlYjU0OGViNDI3ODlkMC4uMWJlMDU0ZDdmOGZiMzU2YTMyZjIzNjU3ZTAxMjk1
M2JiMzFmMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTI2ICBLb25y
YWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUg
dGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvdXJhbCBjaGFu
Z2UsIGN1cnJlbnQgdGVzdHMgaW4gZmFzdC92aWV3cG9ydCBjb3ZlciBhbGwKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGVkIHN5bWJvbCBm
b3IgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1
bWVudHMuY3BwOiBVc2UgbmV3IHBhcmFtZXRlciBmb3IgZGV2aWNlUGl4ZWxSYXRpbworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkb24ndCBjYWxjdWxhdGUgaXQgYW55
bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAg
ICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5oOiBDaGFuZ2UgdGhlIGRldmljZURQSSBwYXJh
bWV0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlUGl4ZWxS
YXRpbyBhbmQgcHV0IHRoZSBvbnVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uIHRoZSBlbWJlZGRlciB0byBzdXBwbHkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvcnJlY3QgdmFsdWUuICBBZGQgdGVtcG9yYXJ5IGNvbnN0YW50LgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFNwZWVjaFJlY29nbml0aW9u
IHNob3VsZCBob29rIHVwIHdpdGggQWN0aXZlRE9NT2JqZWN0IG1vcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IGExNzI4NWY3OTU0MGJhZWQ0ZTJkYTNiOTM1Y2RiYmIyN2Q2YmFh
MTguLjVkMmNhMTJmZTk0ZDk0Y2ZiYzI0N2QxMjA2ODQ1OWE1NDI4MDQ1MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTI2ICBLb25yYWQg
UGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFy
Z2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgV2ViU2V0dGluZyB0
byBzcGVjaWZ5IHdoYXQgdGhlIGRldmljZVBpeGVsUmF0aW8gc2hvdWxkIGJlLgorICAgICAgICBV
cGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAg
KiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmlld3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMpOgor
ICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5ncyk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpkZXZpY2VQaXhlbFJhdGlv
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6OnNldERldmljZVBp
eGVsUmF0aW8pOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCk6CisKIDIwMTItMDYtMjEg
IE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
SW5wdXQgbW9kZSBzaG91bGQgYWRhcHQgYXV0b21hdGljYWxseSB0byBzZXR0aW5ncyBjaGFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY3NTU2YWNjYzAxZjY4YWNkOGU1NWZkNGZm
ODhkYWJjZDY1NWNmYjEuLjY0MGRjMGFmZDdjZDEwZTRhZGYwYzRjYTgzYTIyZTM2ODJjYTRhMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMjYg
IEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJk
Y29kZSB0YXJnZXQgZHBpIG9mIDE2MCAoaXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNh
bGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorCiAyMDEyLTA2LTIwICBaZWV2IExpZWJl
ciAgPHpsaWViZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRGFtYWdlIHRy
YWNrZXIgaXMgbm90IHVzZWQgd2l0aG91dCBwYXJ0aWFsIHN3YXAsIGNhdXNpbmcgdmFsaWQgcmVu
ZGVyIHBhc3NlcyB0byBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjMxMjBiOTRhNTQy
ZGQwYjQzMmU4NjNiYmJlYzdkODlmOTUwNDQ1OS4uMTY5ZDhhNDZkYzViMDNkMmJkZmE0MjI3NjNi
NzMzYmUwNjRmNTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2
LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3Qg
aGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRo
ZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAg
KiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0
ZXNfY29tcHV0ZSk6CisKIDIwMTItMDYtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggMjBiZGQwODVlNzRlNzkwY2VlZGExMDIzNDlkMjBkMjJmMmIwMWMz
ZC4uZWE0NDIxZjQxMWIyMmEyZjkyZTBhZjc4N2Q4NTQyYmYwYTkwM2IyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CisKKyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAg
KGl0IHNob3VsZCBiZSA5NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0
dHJpYnV0ZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmln
dXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcDoKKyAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6
CisKIDIwMTItMDYtMjEgIERhbmllbCBEcmFrZSAgPGRzZEBsYXB0b3Aub3JnPgogCiAgICAgICAg
IFtHVEtdIEJhY2twb3J0IHJ1bi1maWxlLWNob29zZXIgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCBkYzkwODRhOWI4NGRjN2I0YzRiYmJiMjkyYWQyZWJkY2M5ZGNhZGYwLi41YjhkNGZmYmMw
NDM5MjQ5YTc4NWQ3NTI5NmEyMGYzODc2N2JmNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA2LTI2ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CisK
KyAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3VsZCBiZSA5
NiBvbiBkZXNrdG9wKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODgxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVkIHRoZSBjYWxsIHRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnZpZXdwb3J0QXR0
cmlidXRlc0ZvclNpemUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3cG9y
dEFzVGV4dCk6CisKIDIwMTItMDYtMjEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bUXRdIENvbG9yIGNob29zZXIgQVBJ
IG1pc3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTU1NTI1NTVhM2ZmODkxMGU3NmY1NmQ0NDg1YTk4MTEy
Y2JmZGQ1Li45NzcyNjk0OTA5NmZmNGM3N2UxOWZiY2JmNDM5YmQ2YzE1ZGVlM2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjYgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNj
aWtAcmltLmNvbT4KKworICAgICAgICBEb24ndCBoYXJkY29kZSB0YXJnZXQgZHBpIG9mIDE2MCAo
aXQgc2hvdWxkIGJlIDk2IG9uIGRlc2t0b3ApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0
cmlidXRlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1RleHQpOgor
CiAyMDEyLTA2LTIxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMW1dLMl0gQWRkIFdLVmlld0VmbCBhbmQgV2ViS2l0MiBBUEkgT2JqZWN0IHRvIHJl
cHJlc2VudCBFdmFzX09iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzMzNmM5M2Y0NWE5
YzBmZmExYjI3MTdkYzE1YjIwOThiNDYxZDc3Yy4uYjcwMGI0Nzk3NTRhMjM1MzRjM2E1OGUwODc2
NTZkYzlkODkyNTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYwNyw3ICs2MDcsNyBAQCBf
X1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXIxNndyaXRlSGlzdG9yeUl0ZW1F
Uk5TXzMwQmluYXJ5UHJvcGVydHlMaQogX19aTjdXZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0
V3JpdGVyNmJ1ZmZlckVtCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJD
MkV2CiBfX1pON1dlYkNvcmUyNWFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJFUHZQRnZTMF9FCi1f
X1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3Vt
ZW50c0VpaWlpTlNfN0ludFNpemVFCitfX1pON1dlYkNvcmUyNWNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXNFTlNfMTdWaWV3cG9ydEFyZ3VtZW50c0VpaWlmTlNfN0ludFNpemVFCiBfX1pON1dlYkNv
cmUyNlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yMjdwcm9jZXNzaW5nVXNlclR5cGluZ0dlc3R1
cmVFdgogX19aTjdXZWJDb3JlMjZVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvcjI4Zm9jdXNlZEVs
ZW1lbnRBdEdlc3R1cmVTdGFydEV2CiBfX1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGE5
M2UxNGVlYTI2NjA5OTQ3YjI4ZTUxZWIzYWQ2MjIxOGNiZGQzNmEuLjc2YzRhZWY5Mjc5OTViOTc4
YzdmYjE5Y2MyZWYyNWVhN2U4ZTlkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcApAQCAtNDEsMTEgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmRjb2RlIHRoZSB0
YXJnZXREUEkgdG8gMTYwLgotLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODExNAotc3RhdGljIGZsb2F0IHRhcmdldERQSSA9IDE2MDsKLQotVmlld3BvcnRB
dHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJn
cywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJLCBJbnRTaXplIHZpc2libGVWaWV3cG9ydCkKK1ZpZXdwb3J0QXR0cmlidXRl
cyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBk
ZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgZmxvYXQgZGV2
aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpCiB7CiAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzIHJlc3VsdDsKIApAQCAtNTQsNyArNTAsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVz
a3RvcAogCiAgICAgQVNTRVJUKGF2YWlsYWJsZVdpZHRoID4gMCAmJiBhdmFpbGFibGVIZWlnaHQg
PiAwKTsKIAotICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJIC8gdGFyZ2V0
RFBJOworICAgIHJlc3VsdC5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKIAog
ICAgIC8vIFJlc29sdmUgbm9uLSdhdXRvJyB3aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVl
cy4KICAgICBpZiAocmVzdWx0LmRldmljZVBpeGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmluZGV4IDcwNzYzMDU5MjE2NjhiYTgzYTNmODQyMjY4
MzRlYmYwNzE4MWZhZWYuLmI2MjkzZWZiYTM0NzQ1MzA5MTFlMzZiNmRiY2U4NmIwZmY5YWQ0NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCkBAIC03MiwxMCArNzIsNiBA
QCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMgewogICAgICAgICBWYWx1ZURlc2t0b3BXaWR0aCA9
IC0yLAogICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCiAgICAgICAgIFZhbHVlRGV2aWNl
SGVpZ2h0ID0gLTQsCi0gICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCi0gICAgICAgIFZhbHVl
TG93RFBJID0gLTYsCi0gICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCi0gICAgICAgIFZhbHVl
SGlnaERQSSA9IC04CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9
IEltcGxpY2l0KQpAQCAtMTEyLDkgKzEwOCwxMyBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHMg
ewogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KKyAgICAv
LyBGSVhNRTogV2UncmUgZ29pbmcgdG8ga2VlcCB0aGlzIGNvbnN0YW50IGFyb3VuZCB1bnRpbCBh
bGwgZW1iZWRkZXJzCisgICAgLy8gcmVmYWN0b3IgdGhlaXIgY29kZSB0byBubyBsb25nZXIgbmVl
ZCBpdC4KKyAgICBzdGF0aWMgY29uc3QgaW50IGRlcHJlY2F0ZWRUYXJnZXREUEkgPSAxNjA7CiB9
OwogCi1WaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9y
dEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEksIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKK1Zp
ZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1l
bnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhl
aWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmlld3BvcnQpOwor
CiB2b2lkIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoVmlld3BvcnRB
dHRyaWJ1dGVzJiByZXN1bHQsIEludFNpemUgdmlzaWJsZVZpZXdwb3J0KTsKIHZvaWQgcmVzdHJp
Y3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoVmlld3BvcnRBdHRy
aWJ1dGVzJiByZXN1bHQpOwogZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRl
bnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXN1bHQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudFNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNTE2YjJjNzUyMDRmODMwZDk3YWQ4
ZWU2ZDBkNDI5ZDJmMTc5ZDM5Zi4uM2JmM2VjYmIwYzUyMzg2MzRmZjkxNDgyYTQxNDYxOGE0MmUz
NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0zNDM1
LDkgKzM0MzUsNyBAQCBJbnRTaXplIFdlYlBhZ2VQcml2YXRlOjpyZWNvbXB1dGVWaXJ0dWFsVmll
d3BvcnRGcm9tVmlld3BvcnRBcmd1bWVudHMoKQogICAgIGludCBkZXNrdG9wV2lkdGggPSBkZWZh
dWx0TWF4TGF5b3V0U2l6ZSgpLndpZHRoKCk7CiAgICAgaW50IGRldmljZVdpZHRoID0gUGxhdGZv
cm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+d2lkdGgoKTsKICAgICBpbnQg
ZGV2aWNlSGVpZ2h0ID0gUGxhdGZvcm06OkdyYXBoaWNzOjpTY3JlZW46OnByaW1hcnlTY3JlZW4o
KS0+aGVpZ2h0KCk7Ci0gICAgRmxvYXRTaXplIGN1cnJlbnRQUEkgPSBQbGF0Zm9ybTo6R3JhcGhp
Y3M6OlNjcmVlbjo6cHJpbWFyeVNjcmVlbigpLT5waXhlbHNQZXJJbmNoKC0xKTsKLSAgICBpbnQg
ZGV2aWNlRFBJID0gaW50KHJvdW5kZigoY3VycmVudFBQSS53aWR0aCgpICsgY3VycmVudFBQSS5o
ZWlnaHQoKSkgLyAyKSk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdCA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMobV92aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZp
Y2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIG1fZGVmYXVsdExheW91dFNpemUpOwor
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXN1bHQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KG1fdmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhl
aWdodCwgbV93ZWJTZXR0aW5ncy0+ZGV2aWNlUGl4ZWxSYXRpbygpLCBtX2RlZmF1bHRMYXlvdXRT
aXplKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHJlc3VsdC5kZXZpY2VQaXhl
bFJhdGlvKTsKICAgICByZXR1cm4gSW50U2l6ZShyZXN1bHQubGF5b3V0U2l6ZS53aWR0aCgpLCBy
ZXN1bHQubGF5b3V0U2l6ZS5oZWlnaHQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDcwMmRjYzc3M2Q3NzU4ZjI5Njk2NzZjMjg5MTA3
NTgyMjI4NWFhYzAuLjg3NjY2NmJhYjk1NjJlMGJiOGU2N2JkMWYyZDU0ODllZDllN2U2NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCkBAIC0yNCw5
ICsyNCwxMyBAQAogCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8QmFzZTY0Lmg+
CisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtRGV2aWNlSW5mby5oPgogI2luY2x1ZGUgPEJs
YWNrQmVycnlQbGF0Zm9ybUZvbnRJbmZvLmg+CisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3Jt
U2NyZWVuLmg+CiAjaW5jbHVkZSA8Q29sb3IuaD4KKyNpbmNsdWRlIDxGbG9hdFNpemUuaD4KICNp
bmNsdWRlIDxQYWdlQ2FjaGUuaD4KKyNpbmNsdWRlIDxWaWV3cG9ydEFyZ3VtZW50cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01OCw2
ICs2Miw3IEBAIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5Wm9vbVRvRml0
T25Mb2FkRW5hYmxlZCwgKCJCbGFja0JlcnJ5Wm9vbVRvCiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgQmxhY2tCZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUsICgiQmxhY2tCZXJyeUZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tC
ZXJyeUNyZWRlbnRpYWxBdXRvZmlsbEVuYWJsZWQsICgiQmxhY2tCZXJyeUNyZWRlbnRpYWxBdXRv
ZmlsbEVuYWJsZWQiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeUZv
cm1BdXRvZmlsbEVuYWJsZWQsICgiQmxhY2tCZXJyeUZvcm1BdXRvZmlsbEVuYWJsZWQiKSk7CitE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeURldmljZVBpeGVsUmF0aW8sICgi
QmxhY2tCZXJyeURldmljZVBpeGVsUmF0aW8iKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCAoIlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIp
KTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBXZWJLaXREYXRhYmFzZVBhdGgsICgiV2Vi
S2l0RGF0YWJhc2VQYXRoIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERh
dGFiYXNlc0VuYWJsZWQsICgiV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCIpKTsKQEAgLTE3Miw2ICsx
NzcsMTMgQEAgV2ViU2V0dGluZ3MqIFdlYlNldHRpbmdzOjpzdGFuZGFyZFNldHRpbmdzKCkKICAg
ICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlDcmVkZW50aWFsQXV0
b2ZpbGxFbmFibGVkLCBmYWxzZSk7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVh
bihCbGFja0JlcnJ5Rm9ybUF1dG9maWxsRW5hYmxlZCwgZmFsc2UpOwogCisgICAgaWYgKEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpEZXZpY2VJbmZvOjppbnN0YW5jZSgpLT5pc01vYmlsZSgpKSB7Cisg
ICAgICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjdXJyZW50UFBJID0gUGxhdGZvcm06OkdyYXBoaWNz
OjpTY3JlZW46OnByaW1hcnlTY3JlZW4oKS0+cGl4ZWxzUGVySW5jaCgtMSk7CisgICAgICAgIGlu
dCBkZXZpY2VEUEkgPSBpbnQocm91bmRmKChjdXJyZW50UFBJLndpZHRoKCkgKyBjdXJyZW50UFBJ
LmhlaWdodCgpKSAvIDIpKTsKKyAgICAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0RG91Ymxl
KEJsYWNrQmVycnlEZXZpY2VQaXhlbFJhdGlvLCBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSk7CisgICAgfSBlbHNlCisgICAgICAgIHNl
dHRpbmdzLT5tX3ByaXZhdGUtPnNldERvdWJsZShCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbywg
MSk7CisKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRJbnRlZ2VyKFdlYktpdERlZmF1bHRG
b250U2l6ZSwgMTYpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0
RGVmYXVsdEZpeGVkRm9udFNpemUsIDEzKTsKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRT
dHJpbmcoV2ViS2l0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUsICJpc28tODg1OS0xIik7CkBAIC04
MTMsNSArODI1LDE1IEBAIHZvaWQgV2ViU2V0dGluZ3M6OnNldEZvcm1BdXRvZmlsbEVuYWJsZWQo
Ym9vbCBlbmFibGUpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5
Rm9ybUF1dG9maWxsRW5hYmxlZCwgZW5hYmxlKTsKIH0KIAorZG91YmxlIFdlYlNldHRpbmdzOjpk
ZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5nZXREb3Vi
bGUoQmxhY2tCZXJyeURldmljZVBpeGVsUmF0aW8pOworfQorCit2b2lkIFdlYlNldHRpbmdzOjpz
ZXREZXZpY2VQaXhlbFJhdGlvKGRvdWJsZSByYXRpbykKK3sKKyAgICBtX3ByaXZhdGUtPnNldERv
dWJsZShCbGFja0JlcnJ5RGV2aWNlUGl4ZWxSYXRpbywgcmF0aW8pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAppbmRleCA1M2YyZWVlNGM5OTExMDlmYmZmODY5ODYx
ZjY4M2RlNzQ3NWEwMzA1Li4zM2E3OGUzNDkwMmM2MDlmOWJhYzFlMDZmYzBiZDc2MDEzM2RiNjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oCkBAIC0yMzUs
NiArMjM1LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGb3JtQXV0b2ZpbGxFbmFibGVkKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRGb3JtQXV0b2ZpbGxFbmFibGVkKGJvb2wpOwogCisgICAgZG91Ymxl
IGRldmljZVBpeGVsUmF0aW8oKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZVBpeGVsUmF0aW8o
ZG91YmxlKTsKKwogcHJpdmF0ZToKICAgICBXZWJTZXR0aW5nc1ByaXZhdGUqIG1fcHJpdmF0ZTsK
ICAgICBXZWJTZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCBhYjU3MGE5NzU1NjhjMWU3ZmU4MDk2
ZDBhOGVkMzFmNzZhMjU0NWQ2Li4zMjc1ZTI4NDc0MDdiOGYwMmVmMmVjMmE0NTMwODdkZTJkOTE0
NTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdwb3J0
QXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlZpZXdw
b3J0QXJndW1lbnRzLmNwcApAQCAtODUsMTIgKzg1LDEyIEBAIHZvaWQgV2ViVmlld3BvcnRBcmd1
bWVudHM6OnNldEhlaWdodChmbG9hdCBoZWlnaHQpCiAgICAgZC0+aGVpZ2h0ID0gaGVpZ2h0Owog
fQogCi1mbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6dGFyZ2V0RGVuc2l0eURwaSgpIGNvbnN0
CitmbG9hdCBXZWJWaWV3cG9ydEFyZ3VtZW50czo6ZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViVmlld3BvcnRBcmd1bWVudHM6OnNldFRhcmdl
dERlbnNpdHlEcGkoZmxvYXQpCit2b2lkIFdlYlZpZXdwb3J0QXJndW1lbnRzOjpzZXREZXZpY2VQ
aXhlbFJhdGlvKGZsb2F0KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXggMzEyMGEzN2ExZGNmYWRjYjdhMmI4
NWIxZGQzY2ZhMDc3MjNkYWI2My4uZTQ5YzI1YTU4MDA4MjZlOTE5MTQ1NTczNWRlZWE1NmQ5MWQ4
MDNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJWaWV3cG9y
dEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViVmlld3Bv
cnRBcmd1bWVudHMuaApAQCAtNTAsMTAgKzUwLDYgQEAgcHVibGljOgogICAgICAgICBWYWx1ZURl
c2t0b3BXaWR0aCA9IC0yLAogICAgICAgICBWYWx1ZURldmljZVdpZHRoID0gLTMsCiAgICAgICAg
IFZhbHVlRGV2aWNlSGVpZ2h0ID0gLTQsCi0gICAgICAgIFZhbHVlRGV2aWNlRFBJID0gLTUsCi0g
ICAgICAgIFZhbHVlTG93RFBJID0gLTYsCi0gICAgICAgIFZhbHVlTWVkaXVtRFBJID0gLTcsCi0g
ICAgICAgIFZhbHVlSGlnaERQSSA9IC04CiAgICAgfTsKIAogICAgIGZsb2F0IGluaXRpYWxTY2Fs
ZSgpIGNvbnN0OwpAQCAtNzEsOSArNjcsOCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgaGVpZ2h0KCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQpOwogCi0gICAgLy8gRklYTUU6IENhbiB3
ZSByZW1vdmUgdGhlc2UgZnVuY3Rpb25zPyBXZWJLaXQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRhcmdl
dERlbnNpdHlEcGkuCi0gICAgZmxvYXQgdGFyZ2V0RGVuc2l0eURwaSgpIGNvbnN0OwotICAgIHZv
aWQgc2V0VGFyZ2V0RGVuc2l0eURwaShmbG9hdCk7CisgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRp
bygpIGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlUGl4ZWxSYXRpbyhmbG9hdCk7CiAKICAgICBm
bG9hdCB1c2VyU2NhbGFibGUoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJTY2FsYWJsZShmbG9h
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcAppbmRleCBjZDFjYjRjZjllZmQ4ODE0
OTM0ZGU2Yjg1NWI2MDU5NzZhZWM0MWI2Li5iMGJjMGZjOGY3MDg0MjcyOGEwNGRjYTk3MWU4YTM0
MmQyZjdiMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKQEAgLTg3LDcgKzg3
LDcgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hh
aW4oKQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmR1bXBDb25maWd1cmF0aW9uRm9yVmll
d3BvcnQoRnJhbWUqIG1haW5GcmFtZSwgaW50IGRldmljZURQSSwgaW50IGRldmljZVdpZHRoLCBp
bnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQp
CiB7CiAgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gbWFpbkZyYW1lLT5wYWdlKCkt
PnZpZXdwb3J0QXJndW1lbnRzKCk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJzID0gY29t
cHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5b3V0IHdpZHRo
IGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwg
ZGV2aWNlRFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKKyAg
ICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFy
Z3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUgcGFnZXMgKi8g
OTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEkgLyBWaWV3cG9ydEFyZ3Vt
ZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxh
YmxlSGVpZ2h0KSk7CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6
ZShhdHRycywgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAg
cmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0cnMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CmluZGV4IGRkMWUyMTA0YmRiOGQwNzdkODgyMTZlZDVhNDdhMDJmM2ZkMjJjYjkuLjRjMDQxMDc1
MzFiNDhiM2VjOTg1NTMzYTdiN2Q0NjQzODAzMGI0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02NTUsNyArNjU1LDcgQEAgdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShj
b25zdCBWaWV3cG9ydEFyZ3VtZW4KICAgICAvLyBDYWxsIHRoZSBjb21tb24gdmlld3BvcnQgY29t
cHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KICAgICBWaWV3cG9ydEF0dHJp
YnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAogICAgICAgICBhcmdz
LCBzZXR0aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZp
Y2VSZWN0LmhlaWdodCwKLSAgICAgICAgZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRl
dmljZVJlY3QuaGVpZ2h0KSk7CisgICAgICAgIGRwaSAvIFZpZXdwb3J0QXJndW1lbnRzOjpkZXBy
ZWNhdGVkVGFyZ2V0RFBJLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVp
Z2h0KSk7CiAKICAgICBpbnQgbGF5b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRo
KCk7CiAgICAgaW50IGxheW91dEhlaWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCBmZTFmNzBkYWUxYjg5NzRjODZjMzdkNzg2
ZDJhMmUyYjk2ZjQxZGEwLi42N2IyMzE3OWQzN2E5NDIwNmU2Mjk2ZjI5ZGUwMzk2ZWIyNjJhY2Rh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTU4Nyw3ICs1ODcsNyBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChFdmFz
X09iamVjdCogZXdrVmlldwogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyBhdHRyaWJ1
dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsCiAgICAgICAgICAgICAv
KiBkZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsCiAgICAg
ICAgICAgICBkZXZpY2VTaXplLndpZHRoKCksIGRldmljZVNpemUuaGVpZ2h0KCksCi0gICAgICAg
ICAgICBkZXZpY2VEUEksCisgICAgICAgICAgICBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSSwKICAgICAgICAgICAgIGF2YWlsYWJsZVNp
emUpOwogICAgIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cmli
dXRlcywgYXZhaWxhYmxlU2l6ZSk7CiAgICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNj
YWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAppbmRleCBjNDU1NjljZTEwMTZlODM0YzI3MzdjMTQ0YTc4Mzc5YmUyNWVlOTQwLi5iODFm
YjE2OTY3MGFkZmVmMTQxMWJkZWIyZDY5YThhMmIyODQzZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKQEAgLTEyMzcsNyArMTIzNyw3IEBAIHN0YXRpYyBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMgX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZShjb25zdCBF
CiAgICAgV2ViQ29yZTo6SW50UmVjdCBhdmFpbGFibGVSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChw
cml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBhZ2VSZWN0KCkpOwogICAgIFdlYkNvcmU6
OkludFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOwogCi0gICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHBy
aXYtPnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmljZVJlY3Qud2lkdGgoKSwg
ZGV2aWNlUmVjdC5oZWlnaHQoKSwgZGV2aWNlRFBJLCBhdmFpbGFibGVSZWN0LnNpemUoKSk7Cisg
ICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lk
dGgsIGRldmljZVJlY3Qud2lkdGgoKSwgZGV2aWNlUmVjdC5oZWlnaHQoKSwgZGV2aWNlRFBJIC8g
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0ZWRUYXJnZXREUEksIGF2YWlsYWJs
ZVJlY3Quc2l6ZSgpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRv
Vmlld3BvcnRTaXplKGF0dHJpYnV0ZXMsIGF2YWlsYWJsZVJlY3Quc2l6ZSgpKTsKICAgICBXZWJD
b3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShh
dHRyaWJ1dGVzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggYTlkZTg3NWM5NDdm
MTJkMTg4M2U3ODZmMzBjZGY4MmZlMzdiNmI0MS4uZGMyMWE1NGNhZmI5YmMwZDE3Yjk4NDkyMGQy
ODVkYzNjNGRiYmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC02MjMsNyArNjIz
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBDb25maWd1cmF0aW9uRm9y
Vmlld3BvcnQoV2ViS2l0V2ViVmlldyogd2ViVmkKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVu
dHMgPSB3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnZp
ZXdwb3J0QXJndW1lbnRzKCk7Ci0gICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJzID0gY29tcHV0
ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5b3V0IHdpZHRoIGZv
ciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2
aWNlRFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKKyAgICBW
aWV3cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3Vt
ZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgw
LCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEkgLyBWaWV3cG9ydEFyZ3VtZW50
czo6ZGVwcmVjYXRlZFRhcmdldERQSSwgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxl
SGVpZ2h0KSk7CiAgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShh
dHRycywgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAgcmVz
dHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0cnMpOwog
ICAgIGZwcmludGYoc3Rkb3V0LCAidmlld3BvcnQgc2l6ZSAlZHglZCBzY2FsZSAlZiB3aXRoIGxp
bWl0cyBbJWYsICVmXSBhbmQgdXNlclNjYWxhYmxlICVmXG4iLCBzdGF0aWNfY2FzdDxpbnQ+KGF0
dHJzLmxheW91dFNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6
ZS5oZWlnaHQoKSksIGF0dHJzLmluaXRpYWxTY2FsZSwgYXR0cnMubWluaW11bVNjYWxlLCBhdHRy
cy5tYXhpbXVtU2NhbGUsIGF0dHJzLnVzZXJTY2FsYWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IGMwODE5
MWZhZWRjOGFiZDlhZTc0YTZiM2M1ZWQ0MWI5M2UyMjZlZjEuLjEzOGJkYzMyMTU1ZDllMjg0NTNk
YzNkNDhmODA0YTcxY2NiMTZmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgdm9p
ZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1
dGVzKiB2aWV3cG9ydEF0dHJpYnUKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyA9
IHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3Bv
cnRBcmd1bWVudHMoKTsKIAotICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyaWJ1dGVzID0gY29t
cHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIHByaXYtPmRlc2t0b3BXaWR0aCwgcHJp
di0+ZGV2aWNlV2lkdGgsIHByaXYtPmRldmljZUhlaWdodCwgcHJpdi0+ZGV2aWNlRFBJLCBJbnRT
aXplKHByaXYtPmF2YWlsYWJsZVdpZHRoLCBwcml2LT5hdmFpbGFibGVIZWlnaHQpKTsKKyAgICBW
aWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMo
YXJndW1lbnRzLCBwcml2LT5kZXNrdG9wV2lkdGgsIHByaXYtPmRldmljZVdpZHRoLCBwcml2LT5k
ZXZpY2VIZWlnaHQsIHByaXYtPmRldmljZURQSSAvIFZpZXdwb3J0QXJndW1lbnRzOjpkZXByZWNh
dGVkVGFyZ2V0RFBJLCBJbnRTaXplKHByaXYtPmF2YWlsYWJsZVdpZHRoLCBwcml2LT5hdmFpbGFi
bGVIZWlnaHQpKTsKICAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXpl
KGF0dHJpYnV0ZXMsIEludFNpemUocHJpdi0+YXZhaWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJs
ZUhlaWdodCkpOwogICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNl
clNjYWxhYmxlKGF0dHJpYnV0ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXgg
YjFmMmVjY2RkYjYwMzU1NzdkNzhiOWViY2E0MTkwNzA0YmI0NTI0Zi4uNjYyMjMxOGM4ZWM2MTVi
NTE4ZjFiNjgzOTg0MzM0NDkyZTM3ZWY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9B
cGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApA
QCAtMjU1OSw3ICsyNTU5LDcgQEAgUVdlYlBhZ2U6OlZpZXdwb3J0QXR0cmlidXRlcyBRV2ViUGFn
ZTo6dmlld3BvcnRBdHRyaWJ1dGVzRm9yU2l6ZShjb25zdCBRU2l6ZSYgYXYKICAgICAgICAgZGV2
aWNlSGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMgY29uZiA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoZC0+
dmlld3BvcnRBcmd1bWVudHMoKSwgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVp
Z2h0LCBxdF9kZWZhdWx0RHBpKCksIGF2YWlsYWJsZVNpemUpOworICAgIFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyBjb25mID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhk
LT52aWV3cG9ydEFyZ3VtZW50cygpLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZpY2VI
ZWlnaHQsIHF0X2RlZmF1bHREcGkoKSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpkZXBy
ZWNhdGVkVGFyZ2V0RFBJLCBhdmFpbGFibGVTaXplKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1p
bmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGNvbmYsIGF2YWlsYWJsZVNpemUpOwogICAg
IFdlYkNvcmU6OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxh
YmxlKGNvbmYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGEwOTRhMjViOGJlY2FhMzhk
MmZhM2JjNWVlYWE2NGRhMmE5YjE0NmMuLmFjYjUwYTMzZWJkNjJhYzgxZTczNmU5YzhhZDNmY2Jj
N2IxZjI3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03MzcsMTAgKzczNywxMCBAQCBR
U3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3cG9ydEFzVGV4dChRV2ViUGFnZSog
cGFnZSwgaW50IGRldmljZURQSSwgYwogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIGFy
Z3MgPSBwYWdlLT5kLT52aWV3cG9ydEFyZ3VtZW50cygpOwogCiAgICAgV2ViQ29yZTo6Vmlld3Bv
cnRBdHRyaWJ1dGVzIGNvbmYgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFy
Z3MsCi0gICAgICAgIC8qIGRlc2t0b3Atd2lkdGggKi8gOTgwLAotICAgICAgICAvKiBkZXZpY2Ut
d2lkdGggICovIGRldmljZVNpemUud2lkdGgoKSwKLSAgICAgICAgLyogZGV2aWNlLWhlaWdodCAq
LyBkZXZpY2VTaXplLmhlaWdodCgpLAotICAgICAgICAvKiBkZXZpY2UtZHBpICAgICovIGRldmlj
ZURQSSwKKyAgICAgICAgLyogZGVza3RvcC13aWR0aCAgICAqLyA5ODAsCisgICAgICAgIC8qIGRl
dmljZS13aWR0aCAgICAgKi8gZGV2aWNlU2l6ZS53aWR0aCgpLAorICAgICAgICAvKiBkZXZpY2Ut
aGVpZ2h0ICAgICovIGRldmljZVNpemUuaGVpZ2h0KCksCisgICAgICAgIC8qIGRldmljZVBpeGVs
UmF0aW8gKi8gZGV2aWNlRFBJIC8gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0
ZWRUYXJnZXREUEksCiAgICAgICAgIGF2YWlsYWJsZVNpemUpOwogICAgIFdlYkNvcmU6OnJlc3Ry
aWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoY29uZiwgYXZhaWxhYmxlU2l6ZSk7
CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2Vy
U2NhbGFibGUoY29uZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMTczNmJjNDZhMGQ1NTViNzdmNmIzZmYxYWQ5NmE3YmQ2NzMzN2EyYS4u
MTBhZDM4MWJlMTcwYzczMDY2NDA3N2QzZGU1MGIxMmE3ZTExN2YxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTE4LDcgKzkxOCw3IEBA
IHZvaWQgV2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQoKQogICAgIGludCBk
ZXZpY2VXaWR0aCA9IChzZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSA+IDApID8gc2V0dGluZ3MtPmRl
dmljZVdpZHRoKCkgOiBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpOwogICAgIGludCBkZXZpY2VIZWln
aHQgPSAoc2V0dGluZ3MtPmRldmljZUhlaWdodCgpID4gMCkgPyBzZXR0aW5ncy0+ZGV2aWNlSGVp
Z2h0KCkgOiBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsKIAotICAgIFZpZXdwb3J0QXR0cmlidXRl
cyBhdHRyID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhtX3BhZ2UtPnZpZXdwb3J0QXJndW1l
bnRzKCksIG1pbmltdW1MYXlvdXRGYWxsYmFja1dpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVp
Z2h0LCBzdGF0aWNfY2FzdDxpbnQ+KDE2MCAqIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSks
IG1fdmlld3BvcnRTaXplKTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0ciA9IGNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMobV9wYWdlLT52aWV3cG9ydEFyZ3VtZW50cygpLCBtaW5pbXVtTGF5
b3V0RmFsbGJhY2tXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgbV9wYWdlLT5kZXZp
Y2VTY2FsZUZhY3RvcigpLCBtX3ZpZXdwb3J0U2l6ZSk7CiAKICAgICBzZXRSZXNpemVzVG9Db250
ZW50c1VzaW5nTGF5b3V0U2l6ZShJbnRTaXplKHN0YXRpY19jYXN0PGludD4oYXR0ci5sYXlvdXRT
aXplLndpZHRoKCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGF0dHIubGF5b3V0U2l6ZS5oZWlnaHQoKSkp
KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyhhdHRyKSk7CkBAIC0zMTI0LDcgKzMxMjQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNpbXVs
YXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1lKQog
U3RyaW5nIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkFzVGV4dChpbnQgZGV2aWNlRFBJ
LCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwg
aW50IGF2YWlsYWJsZUhlaWdodCkKIHsKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMg
PSBtYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMgYXR0cnMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVz
KGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlvdXQgd2lkdGggZm9yIG5vbi1tb2JpbGUgcGFnZXMg
Ki8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIEludFNpemUoYXZh
aWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBh
dHRycyA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRzLCAvKiBk
ZWZhdWx0IGxheW91dCB3aWR0aCBmb3Igbm9uLW1vYmlsZSBwYWdlcyAqLyA5ODAsIGRldmljZVdp
ZHRoLCBkZXZpY2VIZWlnaHQsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgSW50U2l6ZShh
dmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RN
aW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRycywgSW50U2l6ZShhdmFpbGFibGVX
aWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CiAgICAgV2ViQ29yZTo6cmVzdHJpY3RTY2FsZUZhY3Rv
clRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0cnMpOwogICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgidmlld3BvcnQgc2l6ZSAlZHglZCBzY2FsZSAlZiB3aXRoIGxpbWl0cyBbJWYs
ICVmXSBhbmQgdXNlclNjYWxhYmxlICVmXG4iLCBzdGF0aWNfY2FzdDxpbnQ+KGF0dHJzLmxheW91
dFNpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oYXR0cnMubGF5b3V0U2l6ZS5oZWlnaHQo
KSksIGF0dHJzLmluaXRpYWxTY2FsZSwgYXR0cnMubWluaW11bVNjYWxlLCBhdHRycy5tYXhpbXVt
U2NhbGUsIGF0dHJzLnVzZXJTY2FsYWJsZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>