<?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>70556</bug_id>
          
          <creation_ts>2011-10-20 15:43:42 -0700</creation_ts>
          <short_desc>[Chromium] Plumb DPI info into PlatformScreen</short_desc>
          <delta_ts>2012-10-22 13:07:56 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77055</dependson>
          <blocked>70559</blocked>
    
    <blocked>73495</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>aelias</cc>
    
    <cc>alexander.shalamov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>rjkroege</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>487942</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-20 15:43:42 -0700</bug_when>
    <thetext>In order to properly implement the Viewport Meta tag, we need to make a full size web page&apos;s CSS pixel be equal to a reference pixel in size. To do the proper scaling calculations, we need access to the screen dpi in WebKit.

So plumb the DPI info through the following:

PlatformScreen.h
PlatformScreenChromium.cpp
PlatformSupport
WebWidgetClient
WebScreenInfo
WebScreenInfoFactory (x11) where we have a X Display to inquire things from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492509</commentid>
    <comment_count>1</comment_count>
      <attachid>112880</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-28 10:21:27 -0700</bug_when>
    <thetext>Created attachment 112880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492511</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 10:25:01 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492544</commentid>
    <comment_count>3</comment_count>
      <attachid>112880</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-28 11:21:12 -0700</bug_when>
    <thetext>Comment on attachment 112880
Patch

Attachment 112880 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10240100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492856</commentid>
    <comment_count>4</comment_count>
      <attachid>112880</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-28 18:23:12 -0700</bug_when>
    <thetext>Comment on attachment 112880
Patch

Attachment 112880 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/10237401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493158</commentid>
    <comment_count>5</comment_count>
      <attachid>112880</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-30 22:55:03 -0700</bug_when>
    <thetext>Comment on attachment 112880
Patch

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

What about the other factories?  Mac and Windows?

&gt; Source/WebCore/platform/PlatformScreen.h:50
&gt; +    int screenDpi(Widget*);

I think you should write &quot;DPI&quot; (see webkit style guide).

&gt; Source/WebKit/chromium/public/WebScreenInfo.h:39
&gt; +    // The screen (width) dpi.

when you say &quot;width&quot; here, do you mean horizontal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510862</commentid>
    <comment_count>6</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 09:44:58 -0800</bug_when>
    <thetext>
&gt; 
&gt; I think you should write &quot;DPI&quot; (see webkit style guide).

Use CamelCase. Capitalize the first letter, including all letters in an acronym, in a class, struct, protocol, or namespace name. Lower-case the first letter, including all letters in an acronym, in a variable or function name.

It seems like the style I used is correct?

&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebScreenInfo.h:39
&gt; &gt; +    // The screen (width) dpi.
&gt; 
&gt; when you say &quot;width&quot; here, do you mean horizontal?

Yes, I will include both horizontal and vertical DPI in a subsequent patch, and add Windows/Mac support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510929</commentid>
    <comment_count>7</comment_count>
      <attachid>117004</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 11:15:31 -0800</bug_when>
    <thetext>Created attachment 117004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510930</commentid>
    <comment_count>8</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 11:16:23 -0800</bug_when>
    <thetext>Plumbing both horizontal and vertical dpi now. Adding support for windows/mac shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510949</commentid>
    <comment_count>9</comment_count>
      <attachid>117004</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-29 11:32:24 -0800</bug_when>
    <thetext>Comment on attachment 117004
Patch

Attachment 117004 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10682469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510954</commentid>
    <comment_count>10</comment_count>
      <attachid>117010</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 11:37:37 -0800</bug_when>
    <thetext>Created attachment 117010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510956</commentid>
    <comment_count>11</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 11:39:42 -0800</bug_when>
    <thetext>Made it compile on qt (just a stub, no implementation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511148</commentid>
    <comment_count>12</comment_count>
      <attachid>117057</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 15:22:04 -0800</bug_when>
    <thetext>Created attachment 117057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511149</commentid>
    <comment_count>13</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-29 15:23:15 -0800</bug_when>
    <thetext>Made it compile on WebKit Mac (I think), and works on Chromium Mac (with a caveat).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513832</commentid>
    <comment_count>14</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 09:22:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 112880 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112880&amp;action=review
&gt; 
&gt; What about the other factories?  Mac and Windows?
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformScreen.h:50
&gt; &gt; +    int screenDpi(Widget*);
&gt; 
&gt; I think you should write &quot;DPI&quot; (see webkit style guide).
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebScreenInfo.h:39
&gt; &gt; +    // The screen (width) dpi.
&gt; 
&gt; when you say &quot;width&quot; here, do you mean horizontal?

Darin, I have untested Windows code for DPI plumbing but this works for Mac and Linux now. Is it possible to move towards landing this patch as it is (maybe after updating the changelog to say something useful), and then enabling DPI plumbing on Windows in a separate patch? I don&apos;t have unrestricted access to a Windows box at the moment (I share it with others, and occasionally use it when no one else is using it so getting the Windows changes done will take me a little longer). Mind you, there&apos;s only about 4 lines necessary to enable this on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516216</commentid>
    <comment_count>15</comment_count>
      <attachid>118106</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-06 13:53:13 -0800</bug_when>
    <thetext>Created attachment 118106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516218</commentid>
    <comment_count>16</comment_count>
      <attachid>118107</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-06 13:56:50 -0800</bug_when>
    <thetext>Created attachment 118107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516219</commentid>
    <comment_count>17</comment_count>
      <attachid>118107</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-06 13:57:27 -0800</bug_when>
    <thetext>Comment on attachment 118107
Patch

This is required before enabling the viewport meta tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516282</commentid>
    <comment_count>18</comment_count>
      <attachid>118107</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-06 15:09:54 -0800</bug_when>
    <thetext>Comment on attachment 118107
Patch

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

&gt; Source/WebCore/page/Screen.h:47
&gt; +        unsigned horizontalDpi() const;

webkit style would be horizontalDPI and verticalDPI

&gt; Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp:47
&gt; +    const float InchesPerMillimeter = 25.4;

nit: inchesPerMillimeter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516389</commentid>
    <comment_count>19</comment_count>
      <attachid>118148</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-06 17:07:47 -0800</bug_when>
    <thetext>Created attachment 118148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516390</commentid>
    <comment_count>20</comment_count>
      <attachid>118107</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-06 17:09:31 -0800</bug_when>
    <thetext>Comment on attachment 118107
Patch

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

&gt;&gt; Source/WebCore/page/Screen.h:47
&gt;&gt; +        unsigned horizontalDpi() const;
&gt; 
&gt; webkit style would be horizontalDPI and verticalDPI

Done.

&gt;&gt; Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp:47
&gt;&gt; +    const float InchesPerMillimeter = 25.4;
&gt; 
&gt; nit: inchesPerMillimeter

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516702</commentid>
    <comment_count>21</comment_count>
      <attachid>118148</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-07 10:09:47 -0800</bug_when>
    <thetext>Comment on attachment 118148
Patch

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

&gt; Source/WebCore/platform/PlatformScreen.h:50
&gt; +    int screenHorizontalDPI(Widget*);

maybe PlatformScreen functions should also return &apos;unsigned&apos;?  why be different?  i&apos;m guessing you were going for consistency.  hmm...

&gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:85
&gt; +    results.horizontalDPI = (int)deviceDPI.width;

shouldn&apos;t this use C++ style casts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516777</commentid>
    <comment_count>22</comment_count>
      <attachid>118240</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 11:29:06 -0800</bug_when>
    <thetext>Created attachment 118240
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516779</commentid>
    <comment_count>23</comment_count>
      <attachid>118148</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 11:30:59 -0800</bug_when>
    <thetext>Comment on attachment 118148
Patch

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

&gt;&gt; Source/WebCore/platform/PlatformScreen.h:50
&gt;&gt; +    int screenHorizontalDPI(Widget*);
&gt; 
&gt; maybe PlatformScreen functions should also return &apos;unsigned&apos;?  why be different?  i&apos;m guessing you were going for consistency.  hmm...

Yea, I&apos;ll leave it as is for consistency for now. There&apos;s another bug for cleanup of all this stuff (plus some refactoring out of WebKit for an implementation of WebScreenInfoFactory)

&gt;&gt; Source/WebKit/chromium/src/mac/WebScreenInfoFactory.mm:85
&gt;&gt; +    results.horizontalDPI = (int)deviceDPI.width;
&gt; 
&gt; shouldn&apos;t this use C++ style casts?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517005</commentid>
    <comment_count>24</comment_count>
      <attachid>118240</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 17:13:23 -0800</bug_when>
    <thetext>Comment on attachment 118240
Patch for landing

Rejecting attachment 118240 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
112974 --non-interactive --force --accept theirs-conflict --ignore-externals returned non-zero exit status 1 in /mnt/git/webkit-commit-queue/Source/WebKit/chromium
Error: &apos;depot_tools/gclient sync --force --reset --delete_unversioned_trees&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 109.
Re-trying &apos;depot_tools/gclient sync --force --reset --delete_unversioned_trees&apos;
No such file or directory at /mnt/git/webkit-commit-queue/Tools/Scripts/webkitdirs.pm line 2078.

Full output: http://queues.webkit.org/results/10790007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517107</commentid>
    <comment_count>25</comment_count>
      <attachid>118240</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 19:04:05 -0800</bug_when>
    <thetext>Comment on attachment 118240
Patch for landing

Clearing flags on attachment: 118240

Committed r102301: &lt;http://trac.webkit.org/changeset/102301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517108</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 19:04:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542728</commentid>
    <comment_count>27</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-25 15:58:55 -0800</bug_when>
    <thetext>Sorry to revert on such short notice, but this has too big of a negative impact to risk leaving in past the next milestone cut.

See http://code.google.com/p/chromium/issues/detail?id=111404 for description of the issues with this mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542871</commentid>
    <comment_count>28</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-25 21:27:45 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Sorry to revert on such short notice, but this has too big of a negative impact to risk leaving in past the next milestone cut.
&gt; 
&gt; See http://code.google.com/p/chromium/issues/detail?id=111404 for description of the issues with this mechanism.

Gah I&apos;m a dumbass, ignore me please! This comment and the rollout have nothing to do with this patch, which I haven&apos;t touched. Was meant for another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747402</commentid>
    <comment_count>29</comment_count>
      <attachid>118240</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 04:05:12 -0700</bug_when>
    <thetext>Comment on attachment 118240
Patch for landing

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

&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:1061
&gt; +int PlatformSupport::screenHorizontalDPI(Widget* widget)
&gt; +{
&gt; +    WebWidgetClient* client = toWebWidgetClient(widget);
&gt; +    if (!client)
&gt; +        return 0;
&gt; +    return client-&gt;screenInfo().horizontalDPI;
&gt; +}

DPI in Web is defines as density per CSS inch and not device inch. This is what is used for the &apos;resolution&apos; media query.

I wonder how you are actually using this. How are you calculating the device-pixel-ratio from this? as that depends on the kind of device. A device at arms length would have it calculated at 96 device DPI where as a mobile device usually uses 160 (which corresponds to 96 at around 60% of arms length)

&gt; Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp:47
&gt; +    const float inchesPerMillimeter = 25.4;

the style is to not use const for local variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747618</commentid>
    <comment_count>30</comment_count>
      <attachid>118240</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 09:32:39 -0700</bug_when>
    <thetext>Comment on attachment 118240
Patch for landing

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Make DPI information accessible from WebKit through
&gt; +        PlatformScreen. This is useful when making scaling 
&gt; +        computations on various devices (e.g. Viewport meta tag).
&gt; +
&gt; +        This patch adds DPI plumbing on Chromium Win/Mac/Linux
&gt; +        platforms.

I don&apos;t get this patch :-)

Well, exposing the DPI through PlatformScreen via the WebScreenInfo makes a lot of sense for what you describe, but I don&apos;t see why you need to expose this to window.screen (even though you do not declare this in the IDL).

So why am I complaining here? :) Well because I would like to use screen.horizontalDPI etc for the resolution media query, instead of introducing something similar, but that is specced to not use device DPI but dots per CSS inch (basically devicePixelRatio * 96).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747799</commentid>
    <comment_count>31</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 13:06:09 -0700</bug_when>
    <thetext>&gt; Well, exposing the DPI through PlatformScreen via the WebScreenInfo makes a lot of sense for what you describe, but I don&apos;t see why you need to expose this to window.screen (even though you do not declare this in the IDL).
&gt; 
&gt; So why am I complaining here? :) Well because I would like to use screen.horizontalDPI etc for the resolution media query, instead of introducing something similar, but that is specced to not use device DPI but dots per CSS inch (basically devicePixelRatio * 96).

I had a quick look at the chromium source and you don&apos;t seem to be using anything else than the WebScreenInfo

content/renderer/render_widget.cc:

     const WebKit::WebScreenInfo&amp; screen_info

 ...

 120 #if defined(OS_CHROMEOS) || defined(OS_MACOSX)
 121   device_scale_factor_ = screen_info.verticalDPI / kStandardDPI;
 122   // Unless an explicit scale factor was provided for testing, ensure the scale
 123   // is integral.
 124   if (!CommandLine::ForCurrentProcess()-&gt;HasSwitch(
 125       switches::kForceDeviceScaleFactor))
 126     device_scale_factor_ = static_cast&lt;int&gt;(device_scale_factor_);
 127   device_scale_factor_ = std::max(1.0f, device_scale_factor_);
 128 #endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747801</commentid>
    <comment_count>32</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 13:07:56 -0700</bug_when>
    <thetext>
&gt;  120 #if defined(OS_CHROMEOS) || defined(OS_MACOSX)
&gt;  121   device_scale_factor_ = screen_info.verticalDPI / kStandardDPI;
&gt;  122   // Unless an explicit scale factor was provided for testing, ensure the scale
&gt;  123   // is integral.
&gt;  124   if (!CommandLine::ForCurrentProcess()-&gt;HasSwitch(
&gt;  125       switches::kForceDeviceScaleFactor))
&gt;  126     device_scale_factor_ = static_cast&lt;int&gt;(device_scale_factor_);
&gt;  127   device_scale_factor_ = std::max(1.0f, device_scale_factor_);
&gt;  128 #endif

And for Android it is not used:

content/browser/renderer_host/render_widget_host_view_android.cc:

493 // static
494 void RenderWidgetHostViewPort::GetDefaultScreenInfo(
495     WebKit::WebScreenInfo* results) {
496   DeviceInfo info;
497   const int width = info.GetWidth();
498   const int height = info.GetHeight();
499   results-&gt;horizontalDPI = 160 * info.GetDPIScale();
500   results-&gt;verticalDPI = 160 * info.GetDPIScale();</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112880</attachid>
            <date>2011-10-28 10:21:27 -0700</date>
            <delta_ts>2011-11-29 11:15:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111028132125.patch</filename>
            <type>text/plain</type>
            <size>11403</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0MTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzYwNDEzMDJkZTg1Yjc1
N2Q0ZTE5Y2Q4ZjExMDE2MmNhOTBjYTVjLi42Y2E1NWQ0MTcwMTBlNzQ0MDAzZjkxNzg1NmU4OGJl
MTkwYWJkNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTAtMjggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBQbHVt
YiBEUEkgaW5mbyBpbnRvIFBsYXRmb3JtU2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlJ3Mgbm8gY2hh
bmdlIGluIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHksIGFuZCBzY3JlZW5EcGkncyBpbXBsZW1lbnRh
dGlvbiBpcyBub3QgYWNjZXNzZWQgZnJvbSB3aXRoaW4gV2ViS2l0IChvbiBDaHJvbWl1bSkuCisK
KyAgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46OmRw
aSk6CisgICAgICAgICogcGFnZS9TY3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVNjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRHBpKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UGxhdGZvcm1TY3JlZW5FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRHBpKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2NyZWVuRHBpKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5N
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5EcGkpOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRHBpKToK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NyZWVuRHBpKToKKwogMjAxMS0xMC0yNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBXaW5kb3dzIGJ1aWxkLiAg
V2luZG93cyBtYXNoZXMgYWxsIHRoZXNlIGZpbGVzIGludG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNzk3ZTM4YTcyZDMzMjRhMzg3M2RkM2IzNDQ1ZmNiZTYwNTgyYzJhMC4uMGZmNzkz
NDJmNzIyOTQ4NzE0MjNjMDJhODcyMWIzZjI3NjIwMTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0yOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFBsdW1iIERQSSBpbmZvIGludG8g
UGxhdGZvcm1TY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcwNTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViU2NyZWVuSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3Jl
ZW5JbmZvOjpXZWJTY3JlZW5JbmZvKToKKyAgICAgICAgKiBzcmMvUGxhdGZvcm1TdXBwb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuRHBpKToKKyAgICAg
ICAgKiBzcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorCiAyMDExLTEwLTI1ICBBbnRvaW5l
IExhYm91ciAgPHBpbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggdGVhcmRvd24gaW4g
V2ViKkxheWVySW1wbCwgYW5kIGFkZCB0ZXN0cyBmb3IgV2ViKkxheWVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVl
bi5jcHAKaW5kZXggYmRkYzAzMGY5ZWZlYmJmZmYzMDRiZDQ4MTIwNzVjODgxYWY4MTg0Zi4uNGQ1
OGM1ZTA2YWY3MTg1ZjgwNjI1YTY0MzVjNGU2MjM5NTc1YmUyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVu
LmNwcApAQCAtNTMsNiArNTMsMTMgQEAgdm9pZCBTY3JlZW46OmRpc2Nvbm5lY3RGcmFtZSgpCiAg
ICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Vuc2lnbmVkIFNjcmVlbjo6ZHBpKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oc2NyZWVuRHBpKG1fZnJhbWUtPnZpZXcoKSkpOworfQorCiB1bnNpZ25lZCBT
Y3JlZW46OmhlaWdodCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVu
LmgKaW5kZXggNTcxNmQ0NjFkMTEyYmU4ZDNhYTBjN2I3ZmZmMjBiMzg1MjFkMTQwNS4uNTZjYTAx
ZjA0YjBiNTU2MjdmYTE2MTI1ODhiNjEyNjVmZjI3MTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCkBA
IC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRnJhbWUqIGZyYW1l
KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CiAKKyAgICAgICAgdW5z
aWduZWQgZHBpKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OwogICAg
ICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBjb2xvckRlcHRo
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAppbmRleCA5
ZDMwNThjNTliMGVjN2IyZWUyY2EwNWQyNTI4Mjc1MmQ2YWE4ZDdlLi5kYzM0NTQ2YjIzMGJkZGFl
ZjljNGVlZDU3OGRjMjE5MmFiMTdmODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU2NyZWVuLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIEZsb2F0UmVjdDsKICAgICBjbGFzcyBXaWRnZXQ7CiAKKyAgICBpbnQgc2NyZWVuRHBpKFdp
ZGdldCopOwogICAgIGludCBzY3JlZW5EZXB0aChXaWRnZXQqKTsKICAgICBpbnQgc2NyZWVuRGVw
dGhQZXJDb21wb25lbnQoV2lkZ2V0Kik7CiAgICAgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lk
Z2V0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybVNjcmVlbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCmluZGV4IGE3YTc4MTFkNzk1NDA1NGZlODYzODUy
NDQxM2MxNjBhZDc5OGRlM2QuLjQxNjFlYjY5ZGNlOTYzYzMyMWM1OWNjZjRkOGIxYjkyY2U0NDkz
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
U2NyZWVuQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCkBAIC0zNiw2ICszNiwxMSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2ludCBzY3JlZW5EcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0
dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuRHBpKHdpZGdldCk7Cit9CisKIGludCBzY3JlZW5E
ZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKICAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3Jl
ZW5EZXB0aCh3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVN1cHBvcnQuaAppbmRleCAwMzJmZTZhNmM0NmZkODhkNmU5YjU3MzQyOTcwOWQw
NzBmY2M0Mzg0Li4yMWM0YTk5ZWY4YTk4NjM3NGI0ODU4YmJhMTk5ZTM3YWE2MzYxY2U4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQu
aApAQCAtMjMyLDYgKzIzMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzYW5kYm94RW5h
YmxlZCgpOwogCiAgICAgLy8gU2NyZWVuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgaW50IHNjcmVlbkRwaShX
aWRnZXQqKTsKICAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOwogICAgIHN0YXRp
YyBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0Kik7CiAgICAgc3RhdGljIGJvb2wg
c2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKaW5kZXggMTM3NDk0NWZiODFkZjAzNTQ5ZWJl
M2JkMGFiNTA0NzUxZTg5MTg3NS4uNmQ0OGJjNDVkMTRjOWU2YTUyZDQzNDAwNjBjNTE4OWNmYmJh
YmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2Ny
ZWVuRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3Jl
ZW5FZmwuY3BwCkBAIC00Myw2ICs0MywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2lu
dCBzY3JlZW5EcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCA0ZTBiMjVlYmQ2N2U2NjQ2MTI0NDUxYTQ2Mjk5MzZj
ZTg4MTY5ZGNlLi5hMTM2ZDI1ZjhiYTE3MzU0OWQ2Yzk5NDUwODI2OGQxNmVkMmNhNDQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRl
ICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJT
Y3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKQEAgLTY3LDYgKzY4LDEyIEBAIHN0
YXRpYyBHZGtWaXN1YWwqIGdldFZpc3VhbChXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gY29u
dGFpbmVyID8gZ2RrX3dpbmRvd19nZXRfdmlzdWFsKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhjb250
YWluZXIpKSA6IDA7CiB9CiAKK2ludCBzY3JlZW5EcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdp
ZGdldCogd2lkZ2V0KQogewogICAgIEdka1Zpc3VhbCogdmlzdWFsID0gZ2V0VmlzdWFsKHdpZGdl
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMu
bW0KaW5kZXggOTE2ZmM5ZjlmNWY1MjQzYTQ1MDkzMTNhYTVlZGJhZmQxOTE0NWM0Ni4uY2ZkNjli
NjFiMTM1MzgxMTNjZDU2ZGNkYjI5ODBhMTdlNTNjNDE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMzAsOSArMzAsMTYgQEAK
ICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIlBhZ2Uu
aCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
aW50IHNjcmVlbkRwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKIHsKICAgICByZXR1
cm4gTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0
aF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3Jl
ZW5RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cAppbmRleCA5MjU1ZTc5ZmYwZTlmYjQyMDM1YmIyMWY4NzRhMzExMTc0ZDE2MjliLi5mMzRjZTZl
NTg4ODM5MDg2MjJiYjJjODE1NTRmOWM0ODgzNWQ2MjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSG9zdFdp
bmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2lkZ2V0Lmgi
CiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CkBA
IC00Miw2ICs0MywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBpbnQgc2Ny
ZWVuRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CiBzdGF0aWMgaW50IHNjcmVlbk51bWJlcihXaWRnZXQqIHcpCiB7CiAgICAgaWYg
KCF3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2Ny
ZWVuV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldp
bi5jcHAKaW5kZXggMjFmYTEwZDU0OWVjOTAyZTkwMDYyMzUxNWU5Mzg5MGRhNDFhOWEzZC4uNGY5
ODAzNTgzMDkxOWZhOWMzY2RiZGMwMGM4OWU4ZDQyZDRiMmVmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwCkBAIC0yNywxMSArMjcs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgog
Ci0jaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgorI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d2luZG93
cy5oPgogCkBAIC02NSw2ICs2NiwxMiBAQCBzdGF0aWMgREVWTU9ERSBkZXZpY2VJbmZvRm9yV2lk
Z2V0KFdpZGdldCogd2lkZ2V0KQogICAgIHJldHVybiBkZXZpY2VJbmZvOwogfQogCitpbnQgc2Ny
ZWVuRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKIGludCBzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKICAgICBERVZN
T0RFIGRldmljZUluZm8gPSBkZXZpY2VJbmZvRm9yV2lkZ2V0KHdpZGdldCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKaW5kZXggZDNkMjY4YWE5ZjEy
MDlmOTZjYzBhNDZjM2IzYWMxYjY1MThhMjU0OC4uNjExODU2ZGFhODNiNDQ0ZjE3NWU2OGRkNWI2
NmE2OWQwOWU4ZGVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2NyZWVuSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNj
cmVlbkluZm8uaApAQCAtMzYsNiArMzYsOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVj
dCBXZWJTY3JlZW5JbmZvIHsKKyAgICAvLyBUaGUgc2NyZWVuICh3aWR0aCkgZHBpLgorICAgIGlu
dCBkcGk7CisKICAgICAvLyBUaGUgc2NyZWVuIGRlcHRoIGluIGJpdHMgcGVyIHBpeGVsCiAgICAg
aW50IGRlcHRoOwogCkBAIC02NCw3ICs2Nyw4IEBAIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsKICAg
ICBXZWJSZWN0IGF2YWlsYWJsZVJlY3Q7CiAKICAgICBXZWJTY3JlZW5JbmZvKCkKLSAgICAgICAg
OiBkZXB0aCgwKQorICAgICAgICA6IGRwaSgwKQorICAgICAgICAsIGRlcHRoKDApCiAgICAgICAg
ICwgZGVwdGhQZXJDb21wb25lbnQoMCkKICAgICAgICAgLCBpc01vbm9jaHJvbWUoZmFsc2UpIHsg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3Vw
cG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3Bw
CmluZGV4IDU0NTIxYjgyZWViN2RhZjBkMWRhYWFjMmU4Y2JkNzA5MTIyZDAzNDMuLjdkN2FlNjQz
N2EwMDczMDQ1NjkzYmY0ZWQ3Y2Y2NmEyY2Y4NmZmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcApAQCAtMTA0MCw2ICsxMDQwLDE0IEBAIGlu
dCBQbGF0Zm9ybVN1cHBvcnQ6OmhpZ2hVc2FnZURlbHRhTUIoKQogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxpbnQ+KHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5oaWdoVXNhZ2VEZWx0YU1CKCkpOwog
fQogCitpbnQgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5EcGkoV2lkZ2V0KiB3aWRnZXQpCit7Cisg
ICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOwor
ICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5z
Y3JlZW5JbmZvKCkuZHBpOworfQorCiBpbnQgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5EZXB0aChX
aWRnZXQqIHdpZGdldCkKIHsKICAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lk
Z2V0Q2xpZW50KHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcAppbmRleCA3ZTFmOTZlY2UwYTgwNzQ5NmMw
MjI0M2YwYWJjMGIzOTZmYjg0NzhkLi45NDhjNjMxNzNiMjMzZjQ5MzJjY2ViMjU0MzlhNGVlYzk4
N2MyYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2Ny
ZWVuSW5mb0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9X
ZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJT
Y3JlZW5JbmZvLmgiCiAKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogLy8gZnVuY3Rpb24sIGJ1dCBpdCBhcHBlYXJzIHRvIHJldHVybiBzdGFsZSBkYXRhIGFm
dGVyIHRoZSBzY3JlZW4gaXMgcmVzaXplZC4KIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0Zh
Y3Rvcnk6OnNjcmVlbkluZm8oRGlzcGxheSogZGlzcGxheSwgaW50IHNjcmVlbk51bWJlcikKIHsK
KyAgICBjb25zdCBmbG9hdCBJbmNoZXNQZXJNaWxsaW1ldGVyID0gMjUuNDsKICAgICAvLyBYRGlz
cGxheVdpZHRoKCkgYW5kIFhEaXNwbGF5SGVpZ2h0KCkgcmV0dXJuIGNhY2hlZCB2YWx1ZXMuIFRv
IGVuc3VyZSB0aGF0CiAgICAgLy8gd2UgcmV0dXJuIHRoZSBjb3JyZWN0IGRpbWVuc2lvbnMgYWZ0
ZXIgdGhlIHNjcmVlbiBpcyByZXNpemVkLCBxdWVyeSB0aGUKICAgICAvLyByb290IHdpbmRvdydz
IGdlb21ldHJ5IGVhY2ggdGltZS4KQEAgLTU0LDYgKzU2LDEwIEBAIFdlYlNjcmVlbkluZm8gV2Vi
U2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oRGlzcGxheSogZGlzcGxheSwgaW50IHNjcmVl
bk51bWJlCiAgICAgICAgIGRpc3BsYXksIHJvb3QsICZyb290UmV0LCAmeCwgJnksICZ3aWR0aCwg
JmhlaWdodCwgJmJvcmRlciwgJmRlcHRoKTsKIAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsK
KyAgICBpbnQgZGlzcGxheVdpZHRoID0gRGlzcGxheVdpZHRoKGRpc3BsYXksIHNjcmVlbk51bWJl
cik7CisgICAgaW50IGRpc3BsYXlXaWR0aEluTWlsbGltZXRlcnMgPSBEaXNwbGF5V2lkdGhNTShk
aXNwbGF5LCBzY3JlZW5OdW1iZXIpOworICAgIHJlc3VsdHMuZHBpID0gc3RhdGljX2Nhc3Q8aW50
PihJbmNoZXNQZXJNaWxsaW1ldGVyICogZGlzcGxheVdpZHRoIC8gZGlzcGxheVdpZHRoSW5NaWxs
aW1ldGVycyk7CisKICAgICAvLyBGSVhNRTogTm90IGFsbCBzY3JlZW5zIHVzZSA4YnBwLgogICAg
IHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPSA4OwogICAgIHJlc3VsdHMuZGVwdGggPSBkZXB0
aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117004</attachid>
            <date>2011-11-29 11:15:31 -0800</date>
            <delta_ts>2011-11-29 11:37:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111129141530.patch</filename>
            <type>text/plain</type>
            <size>14145</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQwYjk0YjA5N2Q5ODJl
NDI0ZjU1NWRjYzU4Y2M1NzA3MzQzMzdjYS4uNzIwMDEzNDk2ZWJmMzljMzgwZTgwOGY0NWZiOTE4
MWYzNzZlYWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDExLTExLTI5ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworCisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyZWVuOjpob3Jpem9udGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6
dmVydGljYWxEcGkpOgorICAgICAgICAqIHBhZ2UvU2NyZWVuLmg6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVNjcmVlbkNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxE
cGkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9u
dGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERw
aSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJDb3JlOjpzY3Jl
ZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZv
cm1TY3JlZW5XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6
CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisKIDIwMTEtMTEtMjggIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogVGV4dFByb21wdCBzaG91bGQgc2hvdyBzdWdnZXN0IGFib3ZlIG9yIHVuZGVyIHNvIHRo
YXQgaXQgaGFzIG1heGltYWwgaGVpZ2h0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAw
ODkyOWM0MGY3MWE2ZDQ1YjkyNzUxODU1MTJjMTg2Y2ZjMjUwYmJhLi4zMDM1YTc5YjkwYWM3OWMz
N2ViZmFmY2EwMjYwOThhNDRhZWE4NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDExLTExLTI5ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNj
cmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJTY3JlZW5JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm86Oldl
YlNjcmVlbkluZm8pOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxEcGkpOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXNpemUpOgorICAgICAgICAqIHNyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyk6CisKIDIwMTEt
MTEtMjkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHNwbGl0IFByZWZlcmVuY2VzIGludG8gUHJlZmVyZW5jZXMgYW5kIENhcGFi
aWxpdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBiZGRjMDMwZjllZmViYmZmZjMwNGJk
NDgxMjA3NWM4ODFhZjgxODRmLi5jYWI2ZTljMzhmNDkxNjFmZjA4ZjhlMDAwOGFjNDk0M2ZkOTk4
MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC01Myw2ICs1MywyMCBAQCB2b2lkIFNjcmVl
bjo6ZGlzY29ubmVjdEZyYW1lKCkKICAgICBtX2ZyYW1lID0gMDsKIH0KIAordW5zaWduZWQgU2Ny
ZWVuOjpob3Jpem9udGFsRHBpKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpv
bnRhbERwaShtX2ZyYW1lLT52aWV3KCkpKTsKK30KKwordW5zaWduZWQgU2NyZWVuOjp2ZXJ0aWNh
bERwaSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZlcnRpY2FsRHBpKG1fZnJhbWUt
PnZpZXcoKSkpOworfQorCiB1bnNpZ25lZCBTY3JlZW46OmhlaWdodCgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKaW5kZXggNTcxNmQ0NjFkMTEyYmU4ZDNhYTBj
N2I3ZmZmMjBiMzg1MjFkMTQwNS4uYzA0M2RiNjEwOTBmZTBhMzNlNzA5MDIzYWM0NzI4ZTUzYWRm
ZWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCkBAIC00NCw2ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgZGlzY29u
bmVjdEZyYW1lKCk7CiAKKyAgICAgICAgdW5zaWduZWQgaG9yaXpvbnRhbERwaSgpIGNvbnN0Owor
ICAgICAgICB1bnNpZ25lZCB2ZXJ0aWNhbERwaSgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBo
ZWlnaHQoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKICAgICAgICAg
dW5zaWduZWQgY29sb3JEZXB0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU2NyZWVuLmgKaW5kZXggNWJiNGQyZTkyOTZkM2M1OTU1Yzk2YzcwZjI5MTZhZDJkMDFmYjgz
NS4uMmJhM2Y5NjFkM2QyMmE5NWJjZTEzOTUxMGE0NmVjZmZiN2VkZjIxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC00Nyw2ICs0Nyw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgV2lkZ2V0OwogCisg
ICAgaW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0Kik7CisgICAgaW50IHNjcmVlblZlcnRp
Y2FsRHBpKFdpZGdldCopOwogICAgIGludCBzY3JlZW5EZXB0aChXaWRnZXQqKTsKICAgICBpbnQg
c2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0Kik7CiAgICAgYm9vbCBzY3JlZW5Jc01vbm9j
aHJvbWUoV2lkZ2V0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCmluZGV4IDU0MzY1ZTI4ZWU5MDky
ZWRjNjA2YTU1OTVmNDkwMDljZGUxOWFhN2QuLjkxOGNiYWNmN2JiMjA0OTNmOTU5OWQ0NTY5MzNk
MmIzZWMyYTU3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCkBAIC0zNiw2ICszNiwxNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCog
d2lkZ2V0KQoreworICAgIHJldHVybiBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxE
cGkod2lkZ2V0KTsKK30KKworaW50IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0KQor
eworICAgIHJldHVybiBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblZlcnRpY2FsRHBpKHdpZGdldCk7
Cit9CisKIGludCBzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKICAgICByZXR1cm4gUGxh
dGZvcm1TdXBwb3J0OjpzY3JlZW5EZXB0aCh3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAppbmRleCA0MDc0ODA0OTI0Yzkx
MzBkNTY2ZGFhMjg1NTFlMzA3NDRhMWEwMzg3Li40MGMxMWYwMDFhNjdlM2E5NDgwOGU0M2I0MGIy
YWZlMDRlNjM1YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVN1cHBvcnQuaApAQCAtMjM5LDYgKzIzOSw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBzYW5kYm94RW5hYmxlZCgpOwogCiAgICAgLy8gU2NyZWVuIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0
aWMgaW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0Kik7CisgICAgc3RhdGljIGludCBzY3Jl
ZW5WZXJ0aWNhbERwaShXaWRnZXQqKTsKICAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoKFdpZGdl
dCopOwogICAgIHN0YXRpYyBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0Kik7CiAg
ICAgc3RhdGljIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKaW5kZXggMTM3NDk0
NWZiODFkZjAzNTQ5ZWJlM2JkMGFiNTA0NzUxZTg5MTg3NS4uN2Q0OGFjOWRkOTk5ODE0NzY4YTkw
OWY0MWUwMTdkMjlhM2YyODM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCkBAIC00Miw2ICs0MiwxOCBAQAogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworIAoraW50IHNjcmVlbkhv
cml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIGludCBzY3JlZW5E
ZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCmluZGV4IDRlMGIyNWViZDY3ZTY2NDYxMjQ0NTFhNDYy
OTkzNmNlODgxNjlkY2UuLjM5ZDdjMzg2ZDNiODdjNDFhMjhjZmFmNDg5ZDdkNGY3NTdiYWFmYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3Rr
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2lu
Y2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIApAQCAtNjcsNiArNjgsMTgg
QEAgc3RhdGljIEdka1Zpc3VhbCogZ2V0VmlzdWFsKFdpZGdldCogd2lkZ2V0KQogICAgIHJldHVy
biBjb250YWluZXIgPyBnZGtfd2luZG93X2dldF92aXN1YWwoZ3RrX3dpZGdldF9nZXRfd2luZG93
KGNvbnRhaW5lcikpIDogMDsKIH0KIAoraW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50
IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIGludCBzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkK
IHsKICAgICBHZGtWaXN1YWwqIHZpc3VhbCA9IGdldFZpc3VhbCh3aWRnZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCmluZGV4IDkxNmZj
OWY5ZjVmNTI0M2E0NTA5MzEzYWE1ZWRiYWZkMTkxNDVjNDYuLmZjYzAzOGM0Yzk4MDU1MGQ2NmJj
NzM2ZjM1ZjBmMjg4MDZhYzgwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KQEAgLTMwLDkgKzMwLDIyIEBACiAjaW1wb3J0ICJGcmFt
ZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJO
b3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2ludCBzY3JlZW5Ib3Jp
em9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KikKIHsKICAgICByZXR1cm4gTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1Nj
cmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0aF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAppbmRleCA5MjU1ZTc5ZmYwZTlmYjQyMDM1YmIyMWY4
NzRhMzExMTc0ZDE2MjliLi4yYzYyY2U1NGMyMGUyMzZlNWMxNzI4Mzk4NzBhNjNhMjU3NjVhODgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNp
bmNsdWRlIDxRQXBwbGljYXRpb24+CkBAIC00Miw2ICs0MywxOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK3N0YXRpYyBpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50
IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgc2NyZWVuTnVtYmVyKFdpZGdldCog
dykKIHsKICAgICBpZiAoIXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtU2NyZWVuV2luLmNwcAppbmRleCAyMWZhMTBkNTQ5ZWM5MDJlOTAwNjIzNTE1ZTkzODkw
ZGE0MWE5YTNkLi5hMjAxMTAwMWE5YmU2MmEwN2EyYTM2OWY4Mjk3NGI1MjBhZjMwYmQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAK
QEAgLTI3LDExICsyNywxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU2NyZWVuLmgiCiAKLSNpbmNsdWRlICJIb3N0V2luZG93LmgiCi0jaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIkludFJl
Y3QuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAKQEAgLTY1LDYgKzY2LDE4IEBAIHN0YXRpYyBERVZNT0RFIGRl
dmljZUluZm9Gb3JXaWRnZXQoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGRldmljZUluZm87
CiB9CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERw
aShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgREVWTU9ERSBk
ZXZpY2VJbmZvID0gZGV2aWNlSW5mb0ZvcldpZGdldCh3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCmluZGV4IGNhNjhmNTQwY2Q3N2ExYWM4
NTZhZDc2MWMyNWQxMjk1YmVhMTMxYzkuLmMwZTZiMGY2MzE1ZTZiYjMzOTY0YmY2MTU4OGY0ZTgy
MTRlMTJiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNj
cmVlbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5J
bmZvLmgKQEAgLTM2LDYgKzM2LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFdl
YlNjcmVlbkluZm8geworICAgIC8vIFRoZSBob3Jpem9udGFsIHNjcmVlbiBkcGkuCisgICAgaW50
IGhvcml6b250YWxEcGk7CisKKyAgICAvLyBUaGUgdmVydGljYWwgc2NyZWVuIGRwaS4KKyAgICBp
bnQgdmVydGljYWxEcGk7CisKICAgICAvLyBUaGUgc2NyZWVuIGRlcHRoIGluIGJpdHMgcGVyIHBp
eGVsCiAgICAgaW50IGRlcHRoOwogCkBAIC02Nyw3ICs3Myw5IEBAIHN0cnVjdCBXZWJTY3JlZW5J
bmZvIHsKICAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiAKICAgICBXZWJTY3JlZW5JbmZvKCkKLSAg
ICAgICAgOiBkZXB0aCgwKQorICAgICAgICA6IGhvcml6b250YWxEcGkoMCkKKyAgICAgICAgLCB2
ZXJ0aWNhbERwaSgwKQorICAgICAgICAsIGRlcHRoKDApCiAgICAgICAgICwgZGVwdGhQZXJDb21w
b25lbnQoMCkKICAgICAgICAgLCBpc01vbm9jaHJvbWUoZmFsc2UpCiAgICAgICAgICwgcmVmcmVz
aFJhdGUoMCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0
Zm9ybVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBw
b3J0LmNwcAppbmRleCA3OGE5NGM3MjZkNTJhZmM2MmJlODdiYjhkOGZkYWNkMDU2NWQxNmJhLi4z
YWYzYjdhODU3ZTQyNmQyZTE5YmQxMjUyNzFjZTlkNWQ4NzQxMDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKQEAgLTEwNDYsNiArMTA0Niwy
MiBAQCBpbnQgUGxhdGZvcm1TdXBwb3J0OjpoaWdoVXNhZ2VEZWx0YU1CKCkKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+aGlnaFVzYWdlRGVsdGFN
QigpKTsKIH0KIAoraW50IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERwaShXaWRn
ZXQqIHdpZGdldCkKK3sKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0
Q2xpZW50KHdpZGdldCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBjbGllbnQtPnNjcmVlbkluZm8oKS5ob3Jpem9udGFsRHBpOworfQorCitpbnQgUGxh
dGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBX
ZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAg
aWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBjbGllbnQtPnNjcmVl
bkluZm8oKS52ZXJ0aWNhbERwaTsKK30KKwogaW50IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuRGVw
dGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dl
YldpZGdldENsaWVudCh3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IGE4ZmMxYTZmZGY0ZDk2NWY0NWYyN2Y5MzY5Y2JjNDFiYjE1NzFkNDYu
LmJjMjlkN2ExYTkwMTVkOTlkMDRkYTk5NzY4NjQ1N2U1ZmZlNjA4YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEwNDYsNiArMTA0Niw4IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnJlc2l6ZShjb25zdCBXZWJTaXplJiBuZXdTaXplKQogICAgIG1fc2l6
ZSA9IG5ld1NpemU7CiAKICAgICBpZiAobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldlYlZpZXdJbXBsOjpyZXNpemUgaG9yaXpvbnRhbCBE
UEkgJWRcbiIsIHNjcmVlbkhvcml6b250YWxEcGkobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXco
KSkpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldlYlZpZXdJbXBsOjpyZXNpemUgdmVydGlj
YWwgRFBJICVkXG4iLCBzY3JlZW5WZXJ0aWNhbERwaShtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpKSk7CiAgICAgICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCktPnJlc2l6ZShtX3Np
emUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpOwogICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLT5zZW5kUmVzaXplRXZlbnQoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNw
cAppbmRleCA3ZTFmOTZlY2UwYTgwNzQ5NmMwMjI0M2YwYWJjMGIzOTZmYjg0NzhkLi5iYWU1ZDRl
ZDc0ZTBmY2VjYWY0NWFlNzQ5MDk2OGNlYThjNTRmNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAKICNpbmNsdWRlIDxYMTEv
WGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00
Myw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gZnVuY3Rpb24sIGJ1dCBpdCBhcHBl
YXJzIHRvIHJldHVybiBzdGFsZSBkYXRhIGFmdGVyIHRoZSBzY3JlZW4gaXMgcmVzaXplZC4KIFdl
YlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oRGlzcGxheSogZGlz
cGxheSwgaW50IHNjcmVlbk51bWJlcikKIHsKKyAgICBjb25zdCBmbG9hdCBJbmNoZXNQZXJNaWxs
aW1ldGVyID0gMjUuNDsKICAgICAvLyBYRGlzcGxheVdpZHRoKCkgYW5kIFhEaXNwbGF5SGVpZ2h0
KCkgcmV0dXJuIGNhY2hlZCB2YWx1ZXMuIFRvIGVuc3VyZSB0aGF0CiAgICAgLy8gd2UgcmV0dXJu
IHRoZSBjb3JyZWN0IGRpbWVuc2lvbnMgYWZ0ZXIgdGhlIHNjcmVlbiBpcyByZXNpemVkLCBxdWVy
eSB0aGUKICAgICAvLyByb290IHdpbmRvdydzIGdlb21ldHJ5IGVhY2ggdGltZS4KQEAgLTU0LDYg
KzU2LDE0IEBAIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8o
RGlzcGxheSogZGlzcGxheSwgaW50IHNjcmVlbk51bWJlCiAgICAgICAgIGRpc3BsYXksIHJvb3Qs
ICZyb290UmV0LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCwgJmJvcmRlciwgJmRlcHRoKTsKIAog
ICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsKKyAgICBpbnQgZGlzcGxheVdpZHRoID0gRGlzcGxh
eVdpZHRoKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgaW50IGRpc3BsYXlXaWR0aEluTWls
bGltZXRlcnMgPSBEaXNwbGF5V2lkdGhNTShkaXNwbGF5LCBzY3JlZW5OdW1iZXIpOworICAgIHJl
c3VsdHMuaG9yaXpvbnRhbERwaSA9IHN0YXRpY19jYXN0PGludD4oSW5jaGVzUGVyTWlsbGltZXRl
ciAqIGRpc3BsYXlXaWR0aCAvIGRpc3BsYXlXaWR0aEluTWlsbGltZXRlcnMpOworCisgICAgaW50
IGRpc3BsYXlIZWlnaHQgPSBEaXNwbGF5SGVpZ2h0KGRpc3BsYXksIHNjcmVlbk51bWJlcik7Cisg
ICAgaW50IGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJzID0gRGlzcGxheUhlaWdodE1NKGRpc3Bs
YXksIHNjcmVlbk51bWJlcik7CisgICAgcmVzdWx0cy52ZXJ0aWNhbERwaSA9IHN0YXRpY19jYXN0
PGludD4oSW5jaGVzUGVyTWlsbGltZXRlciAqIGRpc3BsYXlIZWlnaHQgLyBkaXNwbGF5SGVpZ2h0
SW5NaWxsaW1ldGVycyk7CisKICAgICAvLyBGSVhNRTogTm90IGFsbCBzY3JlZW5zIHVzZSA4YnBw
LgogICAgIHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPSA4OwogICAgIHJlc3VsdHMuZGVwdGgg
PSBkZXB0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117010</attachid>
            <date>2011-11-29 11:37:37 -0800</date>
            <delta_ts>2011-11-29 15:21:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111129143735.patch</filename>
            <type>text/plain</type>
            <size>14129</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQwYjk0YjA5N2Q5ODJl
NDI0ZjU1NWRjYzU4Y2M1NzA3MzQzMzdjYS4uMDJlYjZiMWVhMjYyYmM3MDE1MjlhMTM1MTMwYzA2
MDNmNTZkMGYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTI5ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbjo6aG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46OnZl
cnRpY2FsRHBpKToKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1T
Y3JlZW5DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRHBp
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UGxhdGZvcm1TY3JlZW5FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRh
bERwaSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNj
cmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkp
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVu
VmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJD
b3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BsYXRmb3Jt
U2NyZWVuV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkpOgorCiAyMDExLTExLTI4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRleHRQcm9tcHQgc2hvdWxkIHNob3cgc3VnZ2VzdCBhYm92ZSBvciB1bmRlciBzbyB0aGF0
IGl0IGhhcyBtYXhpbWFsIGhlaWdodC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDg5
MjljNDBmNzFhNmQ0NWI5Mjc1MTg1NTEyYzE4NmNmYzI1MGJiYS4uMzAzNWE3OWI5MGFjNzljMzdl
YmZhZmNhMDI2MDk4YTQ0YWVhODVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMS0xMS0yOSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIFBsdW1iIERQSSBpbmZvIGludG8gUGxhdGZvcm1TY3Jl
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJs
aWMvV2ViU2NyZWVuSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvOjpXZWJT
Y3JlZW5JbmZvKToKKyAgICAgICAgKiBzcmMvUGxhdGZvcm1TdXBwb3J0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVz
aXplKToKKyAgICAgICAgKiBzcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorCiAyMDExLTEx
LTI5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBzcGxpdCBQcmVmZXJlbmNlcyBpbnRvIFByZWZlcmVuY2VzIGFuZCBDYXBhYmls
aXRpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5kZXggYmRkYzAzMGY5ZWZlYmJmZmYzMDRiZDQ4
MTIwNzVjODgxYWY4MTg0Zi4uY2FiNmU5YzM4ZjQ5MTYxZmYwOGY4ZTAwMDhhYzQ5NDNmZDk5ODMx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtNTMsNiArNTMsMjAgQEAgdm9pZCBTY3JlZW46
OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Vuc2lnbmVkIFNjcmVl
bjo6aG9yaXpvbnRhbERwaSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250
YWxEcGkobV9mcmFtZS0+dmlldygpKSk7Cit9CisKK3Vuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxE
cGkoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5WZXJ0aWNhbERwaShtX2ZyYW1lLT52
aWV3KCkpKTsKK30KKwogdW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogewogICAgIGlm
ICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCmluZGV4IDU3MTZkNDYxZDExMmJlOGQzYWEwYzdi
N2ZmZjIwYjM4NTIxZDE0MDUuLmMwNDNkYjYxMDkwZmUwYTMzZTcwOTAyM2FjNDcyOGU1M2FkZmVl
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TY3JlZW4uaApAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgICAgICB2b2lkIGRpc2Nvbm5l
Y3RGcmFtZSgpOwogCisgICAgICAgIHVuc2lnbmVkIGhvcml6b250YWxEcGkoKSBjb25zdDsKKyAg
ICAgICAgdW5zaWduZWQgdmVydGljYWxEcGkoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgaGVp
Z2h0KCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAgICAgICAgIHVu
c2lnbmVkIGNvbG9yRGVwdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVNjcmVlbi5oCmluZGV4IDViYjRkMmU5Mjk2ZDNjNTk1NWM5NmM3MGYyOTE2YWQyZDAxZmI4MzUu
LjJiYTNmOTYxZDNkMjJhOTViY2UxMzk1MTBhNDZlY2ZmYjdlZGYyMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaApAQCAtNDcsNiArNDcsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIFdpZGdldDsKIAorICAg
IGludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCopOworICAgIGludCBzY3JlZW5WZXJ0aWNh
bERwaShXaWRnZXQqKTsKICAgICBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0Kik7CiAgICAgaW50IHNj
cmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopOwogICAgIGJvb2wgc2NyZWVuSXNNb25vY2hy
b21lKFdpZGdldCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAppbmRleCA1NDM2NWUyOGVlOTA5MmVk
YzYwNmE1NTk1ZjQ5MDA5Y2RlMTlhYTdkLi45MThjYmFjZjdiYjIwNDkzZjk1OTlkNDU2OTMzZDJi
M2VjMmE1NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
bGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcApAQCAtMzYsNiArMzYsMTYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdp
ZGdldCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5Ib3Jpem9udGFsRHBp
KHdpZGdldCk7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sK
KyAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERwaSh3aWRnZXQpOwor
fQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgcmV0dXJuIFBsYXRm
b3JtU3VwcG9ydDo6c2NyZWVuRGVwdGgod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggNDA3NDgwNDkyNGM5MTMw
ZDU2NmRhYTI4NTUxZTMwNzQ0YTFhMDM4Ny4uNDBjMTFmMDAxYTY3ZTNhOTQ4MDhlNDNiNDBiMmFm
ZTA0ZTYzNWIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGxhdGZvcm1TdXBwb3J0LmgKQEAgLTIzOSw2ICsyMzksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgc2FuZGJveEVuYWJsZWQoKTsKIAogICAgIC8vIFNjcmVlbiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3RhdGlj
IGludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCopOworICAgIHN0YXRpYyBpbnQgc2NyZWVu
VmVydGljYWxEcGkoV2lkZ2V0Kik7CiAgICAgc3RhdGljIGludCBzY3JlZW5EZXB0aChXaWRnZXQq
KTsKICAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopOwogICAg
IHN0YXRpYyBib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCmluZGV4IDEzNzQ5NDVm
YjgxZGYwMzU0OWViZTNiZDBhYjUwNDc1MWU4OTE4NzUuLjdkNDhhYzlkZDk5OTgxNDc2OGE5MDlm
NDFlMDE3ZDI5YTNmMjgzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1BsYXRmb3JtU2NyZWVuRWZsLmNwcApAQCAtNDIsNiArNDIsMTggQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAKK2ludCBzY3JlZW5Ib3Jp
em9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQogCiBpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KiB3aWRnZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCA0ZTBiMjVlYmQ2N2U2NjQ2MTI0NDUxYTQ2Mjk5
MzZjZTg4MTY5ZGNlLi4zOWQ3YzM4NmQzYjg3YzQxYTI4Y2ZhZjQ4OWQ3ZDRmNzU3YmFhZmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNs
dWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKQEAgLTY3LDYgKzY4LDE4IEBA
IHN0YXRpYyBHZGtWaXN1YWwqIGdldFZpc3VhbChXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4g
Y29udGFpbmVyID8gZ2RrX3dpbmRvd19nZXRfdmlzdWFsKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhj
b250YWluZXIpKSA6IDA7CiB9CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCogd2lk
Z2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBz
Y3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7
CiAgICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBnZXRWaXN1YWwod2lkZ2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQppbmRleCA5MTZmYzlm
OWY1ZjUyNDNhNDUwOTMxM2FhNWVkYmFmZDE5MTQ1YzQ2Li5mY2MwMzhjNGM5ODA1NTBkNjZiYzcz
NmYzNWYwZjI4ODA2YWM4MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0zMCw5ICszMCwyMiBAQAogI2ltcG9ydCAiRnJhbWUu
aCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAiTm90
SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitpbnQgc2NyZWVuSG9yaXpv
bnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRo
KFdpZGdldCopCiB7CiAgICAgcmV0dXJuIE5TQml0c1BlclBpeGVsRnJvbURlcHRoKFtbTlNTY3Jl
ZW4gZGVlcGVzdFNjcmVlbl0gZGVwdGhdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKaW5kZXggOTI1NWU3OWZmMGU5ZmI0MjAzNWJiMjFmODc0
YTMxMTE3NGQxNjI5Yi4uYjJiZGNhZWVmNWNhOWMzYzgxM2RlYWNjZWJiZDRhZjgxYTY4ZTIyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAjaW5j
bHVkZSA8UUFwcGxpY2F0aW9uPgpAQCAtNDIsNiArNDMsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxE
cGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKwogc3RhdGljIGludCBzY3JlZW5OdW1iZXIoV2lkZ2V0KiB3KQogewogICAgIGlmICgh
dykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVl
bldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4u
Y3BwCmluZGV4IDIxZmExMGQ1NDllYzkwMmU5MDA2MjM1MTVlOTM4OTBkYTQxYTlhM2QuLmEyMDEx
MDAxYTliZTYyYTA3YTJhMzY5ZjgyOTc0YjUyMGFmMzBiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcApAQCAtMjcsMTEgKzI3LDEy
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKIAot
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KIApAQCAtNjUsNiArNjYsMTggQEAgc3RhdGljIERFVk1PREUgZGV2aWNlSW5mb0ZvcldpZGdl
dChXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gZGV2aWNlSW5mbzsKIH0KIAoraW50IHNjcmVl
bkhvcml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworaW50IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIGludCBzY3Jl
ZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKICAgICBERVZNT0RFIGRldmljZUluZm8gPSBkZXZp
Y2VJbmZvRm9yV2lkZ2V0KHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTY3JlZW5JbmZvLmgKaW5kZXggY2E2OGY1NDBjZDc3YTFhYzg1NmFkNzYxYzI1ZDEyOTVi
ZWExMzFjOS4uYzBlNmIwZjYzMTVlNmJiMzM5NjRiZjYxNTg4ZjRlODIxNGUxMmI2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaApAQCAtMzYsNiAr
MzYsMTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViU2NyZWVuSW5mbyB7Cisg
ICAgLy8gVGhlIGhvcml6b250YWwgc2NyZWVuIGRwaS4KKyAgICBpbnQgaG9yaXpvbnRhbERwaTsK
KworICAgIC8vIFRoZSB2ZXJ0aWNhbCBzY3JlZW4gZHBpLgorICAgIGludCB2ZXJ0aWNhbERwaTsK
KwogICAgIC8vIFRoZSBzY3JlZW4gZGVwdGggaW4gYml0cyBwZXIgcGl4ZWwKICAgICBpbnQgZGVw
dGg7CiAKQEAgLTY3LDcgKzczLDkgQEAgc3RydWN0IFdlYlNjcmVlbkluZm8gewogICAgIGRvdWJs
ZSByZWZyZXNoUmF0ZTsKIAogICAgIFdlYlNjcmVlbkluZm8oKQotICAgICAgICA6IGRlcHRoKDAp
CisgICAgICAgIDogaG9yaXpvbnRhbERwaSgwKQorICAgICAgICAsIHZlcnRpY2FsRHBpKDApCisg
ICAgICAgICwgZGVwdGgoMCkKICAgICAgICAgLCBkZXB0aFBlckNvbXBvbmVudCgwKQogICAgICAg
ICAsIGlzTW9ub2Nocm9tZShmYWxzZSkKICAgICAgICAgLCByZWZyZXNoUmF0ZSgwKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCmluZGV4IDc4
YTk0YzcyNmQ1MmFmYzYyYmU4N2JiOGQ4ZmRhY2QwNTY1ZDE2YmEuLjNhZjNiN2E4NTdlNDI2ZDJl
MTliZDEyNTI3MWNlOWQ1ZDg3NDEwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvUGxhdGZvcm1TdXBwb3J0LmNwcApAQCAtMTA0Niw2ICsxMDQ2LDIyIEBAIGludCBQbGF0Zm9y
bVN1cHBvcnQ6OmhpZ2hVc2FnZURlbHRhTUIoKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5oaWdoVXNhZ2VEZWx0YU1CKCkpOwogfQogCitpbnQg
UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQorewor
ICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsK
KyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNsaWVudC0+
c2NyZWVuSW5mbygpLmhvcml6b250YWxEcGk7Cit9CisKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6OnNj
cmVlblZlcnRpY2FsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIFdlYldpZGdldENsaWVudCog
Y2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsKKyAgICBpZiAoIWNsaWVudCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLnZlcnRpY2Fs
RHBpOworfQorCiBpbnQgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdl
dCkKIHsKICAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdp
ZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
YThmYzFhNmZkZjRkOTY1ZjQ1ZjI3ZjkzNjljYmM0MWJiMTU3MWQ0Ni4uYmMyOWQ3YTFhOTAxNWQ5
OWQwNGRhOTk3Njg2NDU3ZTVmZmU2MDhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtMTA0Niw2ICsxMDQ2LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUpCiAgICAgbV9zaXplID0gbmV3U2l6ZTsKIAog
ICAgIGlmIChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiV2ViVmlld0ltcGw6OnJlc2l6ZSBob3Jpem9udGFsIERQSSAlZFxuIiwgc2NyZWVu
SG9yaXpvbnRhbERwaShtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKSk7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiV2ViVmlld0ltcGw6OnJlc2l6ZSB2ZXJ0aWNhbCBEUEkgJWRcbiIsIHNj
cmVlblZlcnRpY2FsRHBpKG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpKTsKICAgICAgICAg
bWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+cmVzaXplKG1fc2l6ZS53aWR0aCwgbV9zaXpl
LmhlaWdodCk7CiAgICAgICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVy
KCktPnNlbmRSZXNpemVFdmVudCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCmluZGV4IDdlMWY5NmVj
ZTBhODA3NDk2YzAyMjQzZjBhYmMwYjM5NmZiODQ3OGQuLmJhZTVkNGVkNzRlMGZjZWNhZjQ1YWU3
NDkwOTY4Y2VhOGM1NGY0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIldlYlNjcmVlbkluZm8uaCIKIAogI2luY2x1ZGUgPFgxMS9YbGliLmg+CisjaW5jbHVk
ZSA8c3RkaW8uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQzLDYgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAvLyBmdW5jdGlvbiwgYnV0IGl0IGFwcGVhcnMgdG8gcmV0dXJuIHN0
YWxlIGRhdGEgYWZ0ZXIgdGhlIHNjcmVlbiBpcyByZXNpemVkLgogV2ViU2NyZWVuSW5mbyBXZWJT
Y3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhEaXNwbGF5KiBkaXNwbGF5LCBpbnQgc2NyZWVu
TnVtYmVyKQogeworICAgIGNvbnN0IGZsb2F0IEluY2hlc1Blck1pbGxpbWV0ZXIgPSAyNS40Owog
ICAgIC8vIFhEaXNwbGF5V2lkdGgoKSBhbmQgWERpc3BsYXlIZWlnaHQoKSByZXR1cm4gY2FjaGVk
IHZhbHVlcy4gVG8gZW5zdXJlIHRoYXQKICAgICAvLyB3ZSByZXR1cm4gdGhlIGNvcnJlY3QgZGlt
ZW5zaW9ucyBhZnRlciB0aGUgc2NyZWVuIGlzIHJlc2l6ZWQsIHF1ZXJ5IHRoZQogICAgIC8vIHJv
b3Qgd2luZG93J3MgZ2VvbWV0cnkgZWFjaCB0aW1lLgpAQCAtNTQsNiArNTYsMTQgQEAgV2ViU2Ny
ZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhEaXNwbGF5KiBkaXNwbGF5
LCBpbnQgc2NyZWVuTnVtYmUKICAgICAgICAgZGlzcGxheSwgcm9vdCwgJnJvb3RSZXQsICZ4LCAm
eSwgJndpZHRoLCAmaGVpZ2h0LCAmYm9yZGVyLCAmZGVwdGgpOwogCiAgICAgV2ViU2NyZWVuSW5m
byByZXN1bHRzOworICAgIGludCBkaXNwbGF5V2lkdGggPSBEaXNwbGF5V2lkdGgoZGlzcGxheSwg
c2NyZWVuTnVtYmVyKTsKKyAgICBpbnQgZGlzcGxheVdpZHRoSW5NaWxsaW1ldGVycyA9IERpc3Bs
YXlXaWR0aE1NKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgcmVzdWx0cy5ob3Jpem9udGFs
RHBpID0gc3RhdGljX2Nhc3Q8aW50PihJbmNoZXNQZXJNaWxsaW1ldGVyICogZGlzcGxheVdpZHRo
IC8gZGlzcGxheVdpZHRoSW5NaWxsaW1ldGVycyk7CisKKyAgICBpbnQgZGlzcGxheUhlaWdodCA9
IERpc3BsYXlIZWlnaHQoZGlzcGxheSwgc2NyZWVuTnVtYmVyKTsKKyAgICBpbnQgZGlzcGxheUhl
aWdodEluTWlsbGltZXRlcnMgPSBEaXNwbGF5SGVpZ2h0TU0oZGlzcGxheSwgc2NyZWVuTnVtYmVy
KTsKKyAgICByZXN1bHRzLnZlcnRpY2FsRHBpID0gc3RhdGljX2Nhc3Q8aW50PihJbmNoZXNQZXJN
aWxsaW1ldGVyICogZGlzcGxheUhlaWdodCAvIGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJzKTsK
KwogICAgIC8vIEZJWE1FOiBOb3QgYWxsIHNjcmVlbnMgdXNlIDhicHAuCiAgICAgcmVzdWx0cy5k
ZXB0aFBlckNvbXBvbmVudCA9IDg7CiAgICAgcmVzdWx0cy5kZXB0aCA9IGRlcHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117057</attachid>
            <date>2011-11-29 15:22:04 -0800</date>
            <delta_ts>2011-12-06 13:53:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111129182202.patch</filename>
            <type>text/plain</type>
            <size>15180</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmNzY1NmUyYmU3MzYw
ZGZmNmNmMjA2N2IyMzQyMmM2YzVmZDQxYy4uYTg3OTIzMjdiOGRmYTg3OGQxYzM4OWZkYjk2YTQ4
ZGVlM2I3Y2E5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTExLTI5ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbjo6aG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46OnZl
cnRpY2FsRHBpKToKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1T
Y3JlZW5DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRHBp
KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UGxhdGZvcm1TY3JlZW5FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRh
bERwaSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNj
cmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkp
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVu
VmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAgICAgIChXZWJD
b3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BsYXRmb3Jt
U2NyZWVuV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkpOgorCiAyMDExLTExLTI5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZmxleC1hbGlnbjpzdHJldGNo
ICsgbWF4LWhlaWdodCBuZWVkcyB0byBjbGFtcCB0byBtYXgtaGVpZ2h0IGFuZCBwb3NpdGlvbiBh
cHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA4OTI5YzQwZjcxYTZk
NDViOTI3NTE4NTUxMmMxODZjZmMyNTBiYmEuLjMwMzVhNzliOTBhYzc5YzM3ZWJmYWZjYTAyNjA5
OGE0NGFlYTg1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMTEtMjkgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW0Nocm9taXVtXSBQbHVtYiBEUEkgaW5mbyBpbnRvIFBsYXRmb3JtU2NyZWVuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNjcmVl
bkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5mbyk6
CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6CisgICAg
ICAgICogc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKToKKwogMjAxMS0xMS0yOSAgUGF2ZWwg
RmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
c3BsaXQgUHJlZmVyZW5jZXMgaW50byBQcmVmZXJlbmNlcyBhbmQgQ2FwYWJpbGl0aWVzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwCmluZGV4IGJkZGMwMzBmOWVmZWJiZmZmMzA0YmQ0ODEyMDc1Yzg4MWFm
ODE4NGYuLmNhYjZlOWMzOGY0OTE2MWZmMDhmOGUwMDA4YWM0OTQzZmQ5OTgzMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NjcmVlbi5jcHAKQEAgLTUzLDYgKzUzLDIwIEBAIHZvaWQgU2NyZWVuOjpkaXNjb25uZWN0
RnJhbWUoKQogICAgIG1fZnJhbWUgPSAwOwogfQogCit1bnNpZ25lZCBTY3JlZW46Omhvcml6b250
YWxEcGkoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9udGFsRHBpKG1fZnJh
bWUtPnZpZXcoKSkpOworfQorCit1bnNpZ25lZCBTY3JlZW46OnZlcnRpY2FsRHBpKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGljYWxEcGkobV9mcmFtZS0+dmlldygpKSk7Cit9
CisKIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JlZW4uaAppbmRleCA1NzE2ZDQ2MWQxMTJiZThkM2FhMGM3YjdmZmYyMGIzODUy
MWQxNDA1Li5jMDQzZGI2MTA5MGZlMGEzM2U3MDkwMjNhYzQ3MjhlNTNhZGZlZWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2NyZWVuLmgKQEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsK
IAorICAgICAgICB1bnNpZ25lZCBob3Jpem9udGFsRHBpKCkgY29uc3Q7CisgICAgICAgIHVuc2ln
bmVkIHZlcnRpY2FsRHBpKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0
OwogICAgICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBjb2xv
ckRlcHRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaApp
bmRleCA1YmI0ZDJlOTI5NmQzYzU5NTVjOTZjNzBmMjkxNmFkMmQwMWZiODM1Li4yYmEzZjk2MWQz
ZDIyYTk1YmNlMTM5NTEwYTQ2ZWNmZmI3ZWRmMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU2NyZWVuLmgKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFzcyBXaWRnZXQ7CiAKKyAgICBpbnQgc2NyZWVu
SG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0
Kik7CiAgICAgaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOwogICAgIGludCBzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudChXaWRnZXQqKTsKICAgICBib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
U2NyZWVuQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxh
dGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKaW5kZXggNTQzNjVlMjhlZTkwOTJlZGM2MDZhNTU5NWY0
OTAwOWNkZTE5YWE3ZC4uOTE4Y2JhY2Y3YmIyMDQ5M2Y5NTk5ZDQ1NjkzM2QyYjNlYzJhNTc2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3Jl
ZW5DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxh
dGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKQEAgLTM2LDYgKzM2LDE2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7Cisg
ICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERwaSh3aWRnZXQpOwor
fQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJu
IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxEcGkod2lkZ2V0KTsKK30KKwogaW50IHNj
cmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIHJldHVybiBQbGF0Zm9ybVN1cHBvcnQ6
OnNjcmVlbkRlcHRoKHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1
MWUzMDc0NGExYTAzODcuLjQwYzExZjAwMWE2N2UzYTk0ODA4ZTQzYjQwYjJhZmUwNGU2MzViM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3Vw
cG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3Vw
cG9ydC5oCkBAIC0yMzksNiArMjM5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNhbmRi
b3hFbmFibGVkKCk7CiAKICAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBpbnQgc2NyZWVu
SG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBzdGF0aWMgaW50IHNjcmVlblZlcnRpY2FsRHBp
KFdpZGdldCopOwogICAgIHN0YXRpYyBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0Kik7CiAgICAgc3Rh
dGljIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKTsKICAgICBzdGF0aWMgYm9v
bCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAppbmRleCAxMzc0OTQ1ZmI4MWRmMDM1NDll
YmUzYmQwYWI1MDQ3NTFlODkxODc1Li43ZDQ4YWM5ZGQ5OTk4MTQ3NjhhOTA5ZjQxZTAxN2QyOWEz
ZjI4MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1T
Y3JlZW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNj
cmVlbkVmbC5jcHAKQEAgLTQyLDYgKzQyLDE4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShX
aWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogaW50IHNjcmVlbkRlcHRoKFdpZGdldCog
d2lkZ2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtU2NyZWVuR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNj
cmVlbkd0ay5jcHAKaW5kZXggNGUwYjI1ZWJkNjdlNjY0NjEyNDQ1MWE0NjI5OTM2Y2U4ODE2OWRj
ZS4uMzlkN2MzODZkM2I4N2M0MWEyOGNmYWY0ODlkN2Q0Zjc1N2JhYWZhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSG9zdFdp
bmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmll
dy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogCkBAIC02Nyw2ICs2OCwxOCBAQCBzdGF0aWMgR2Rr
VmlzdWFsKiBnZXRWaXN1YWwoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGNvbnRhaW5lciA/
IGdka193aW5kb3dfZ2V0X3Zpc3VhbChndGtfd2lkZ2V0X2dldF93aW5kb3coY29udGFpbmVyKSkg
OiAwOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGlj
YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIEdka1Zp
c3VhbCogdmlzdWFsID0gZ2V0VmlzdWFsKHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXggOTE2ZmM5ZjlmNWY1MjQzYTQ1
MDkzMTNhYTVlZGJhZmQxOTE0NWM0Ni4uYWZhYWJmNmNkNDA1NTI5MjA4NDBkMTJhODlkOWZkMDgx
MmFkNDcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
U2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNj
cmVlbk1hYy5tbQpAQCAtMzAsOSArMzAsMjIgQEAKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0
ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVk
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQg
c2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKIHsKICAgICByZXR1cm4g
TlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0aF0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5R
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApp
bmRleCA5MjU1ZTc5ZmYwZTlmYjQyMDM1YmIyMWY4NzRhMzExMTc0ZDE2MjliLi5iMmJkY2FlZWY1
Y2E5YzNjODEzZGVhY2NlYmJkNGFmODFhNjhlMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRv
dy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAj
aW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CkBAIC00
Miw2ICs0MywxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2ludCBzY3JlZW5Ib3Jpem9u
dGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHNjcmVl
bk51bWJlcihXaWRnZXQqIHcpCiB7CiAgICAgaWYgKCF3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKaW5kZXggMjFmYTEwZDU0OWVjOTAy
ZTkwMDYyMzUxNWU5Mzg5MGRhNDFhOWEzZC4uYTIwMTEwMDFhOWJlNjJhMDdhMmEzNjlmODI5NzRi
NTIwYWYzMGJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRm
b3JtU2NyZWVuV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZv
cm1TY3JlZW5XaW4uY3BwCkBAIC0yNywxMSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCi0jaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgot
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIK
KyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d2luZG93cy5oPgogCkBAIC02NSw2ICs2NiwxOCBAQCBz
dGF0aWMgREVWTU9ERSBkZXZpY2VJbmZvRm9yV2lkZ2V0KFdpZGdldCogd2lkZ2V0KQogICAgIHJl
dHVybiBkZXZpY2VJbmZvOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdp
ZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQg
c2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQog
ewogICAgIERFVk1PREUgZGV2aWNlSW5mbyA9IGRldmljZUluZm9Gb3JXaWRnZXQod2lkZ2V0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8u
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAppbmRleCBj
YTY4ZjU0MGNkNzdhMWFjODU2YWQ3NjFjMjVkMTI5NWJlYTEzMWM5Li5jMGU2YjBmNjMxNWU2YmIz
Mzk2NGJmNjE1ODhmNGU4MjE0ZTEyYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2NyZWVuSW5mby5oCkBAIC0zNiw2ICszNiwxMiBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsKKyAgICAvLyBUaGUgaG9yaXpvbnRhbCBzY3Jl
ZW4gZHBpLgorICAgIGludCBob3Jpem9udGFsRHBpOworCisgICAgLy8gVGhlIHZlcnRpY2FsIHNj
cmVlbiBkcGkuCisgICAgaW50IHZlcnRpY2FsRHBpOworCiAgICAgLy8gVGhlIHNjcmVlbiBkZXB0
aCBpbiBiaXRzIHBlciBwaXhlbAogICAgIGludCBkZXB0aDsKIApAQCAtNjcsNyArNzMsOSBAQCBz
dHJ1Y3QgV2ViU2NyZWVuSW5mbyB7CiAgICAgZG91YmxlIHJlZnJlc2hSYXRlOwogCiAgICAgV2Vi
U2NyZWVuSW5mbygpCi0gICAgICAgIDogZGVwdGgoMCkKKyAgICAgICAgOiBob3Jpem9udGFsRHBp
KDApCisgICAgICAgICwgdmVydGljYWxEcGkoMCkKKyAgICAgICAgLCBkZXB0aCgwKQogICAgICAg
ICAsIGRlcHRoUGVyQ29tcG9uZW50KDApCiAgICAgICAgICwgaXNNb25vY2hyb21lKGZhbHNlKQog
ICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXggNzhhOTRjNzI2ZDUyYWZjNjJiZTg3YmI4ZDhm
ZGFjZDA1NjVkMTZiYS4uM2FmM2I3YTg1N2U0MjZkMmUxOWJkMTI1MjcxY2U5ZDVkODc0MTA3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCkBA
IC0xMDQ2LDYgKzEwNDYsMjIgQEAgaW50IFBsYXRmb3JtU3VwcG9ydDo6aGlnaFVzYWdlRGVsdGFN
QigpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4od2ViS2l0UGxhdGZvcm1TdXBwb3J0KCkt
PmhpZ2hVc2FnZURlbHRhTUIoKSk7CiB9CiAKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhv
cml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGll
bnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuaG9yaXpvbnRhbERw
aTsKK30KKworaW50IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVu
dCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkudmVydGljYWxEcGk7Cit9CisKIGludCBQbGF0Zm9ybVN1
cHBvcnQ6OnNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIFdlYldpZGdldENsaWVu
dCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBhOGZjMWE2ZmRmNGQ5NjVmNDVmMjdmOTM2
OWNiYzQxYmIxNTcxZDQ2Li5iYzI5ZDdhMWE5MDE1ZDk5ZDA0ZGE5OTc2ODY0NTdlNWZmZTYwOGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMDQ2
LDYgKzEwNDYsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3
U2l6ZSkKICAgICBtX3NpemUgPSBuZXdTaXplOwogCiAgICAgaWYgKG1haW5GcmFtZUltcGwoKS0+
ZnJhbWVWaWV3KCkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJXZWJWaWV3SW1wbDo6cmVz
aXplIGhvcml6b250YWwgRFBJICVkXG4iLCBzY3JlZW5Ib3Jpem9udGFsRHBpKG1haW5GcmFtZUlt
cGwoKS0+ZnJhbWVWaWV3KCkpKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJXZWJWaWV3SW1w
bDo6cmVzaXplIHZlcnRpY2FsIERQSSAlZFxuIiwgc2NyZWVuVmVydGljYWxEcGkobWFpbkZyYW1l
SW1wbCgpLT5mcmFtZVZpZXcoKSkpOwogICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpLT5yZXNpemUobV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KTsKICAgICAgICAgbWFpbkZy
YW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZFJlc2l6ZUV2ZW50KCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVl
bkluZm9GYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVl
bkluZm9GYWN0b3J5Lm1tCmluZGV4IDI4MDVmN2E5ZDA2YWQ2MGU3MGUzNDJkZDFjNjU2OWRjNTUy
MmQ1ZTUuLjY4ZjgxNzAxZjA0N2I5ZmRhNjNiN2FkYjM5MWUxMTI2YjVlM2ZhMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3Rv
cnkubW0KQEAgLTc2LDYgKzc2LDE1IEBAIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rv
cnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQogICAgIE5TU3RyaW5nICpjb2xvclNwYWNlID0g
TlNDb2xvclNwYWNlRnJvbURlcHRoKFtbTlNTY3JlZW4gZGVlcGVzdFNjcmVlbl0gZGVwdGhdKTsK
IAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
TWFjIHNlZW1zIHRvIGFsd2F5cyByZXBvcnQgNzJkcGkuIE5lZWQgdG8gZmluZCBhIHdheSB0bwor
ICAgIC8vIHJlcG9ydCB0aGUgdHJ1ZSBzY3JlZW4gZHBpLgorICAgIE5TV2luZG93KiB3aW5kb3cg
PSBbdmlldyB3aW5kb3ddOworICAgIE5TRGljdGlvbmFyeSogZGV2aWNlRGVzY3JpcHRpb24gPSBb
d2luZG93IGRldmljZURlc2NyaXB0aW9uXTsKKyAgICBOU1NpemUgZGV2aWNlRHBpID0gW1tkZXZp
Y2VEZXNjcmlwdGlvbiB2YWx1ZUZvcktleTpOU0RldmljZVJlc29sdXRpb25dIHNpemVWYWx1ZV07
CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRHBpID0gKGludClkZXZpY2VEcGkud2lkdGg7CisgICAg
cmVzdWx0cy52ZXJ0aWNhbERwaSA9IChpbnQpZGV2aWNlRHBpLmhlaWdodDsKKwogICAgIHJlc3Vs
dHMuZGVwdGggPQogICAgICAgICBOU0JpdHNQZXJQaXhlbEZyb21EZXB0aChbW05TU2NyZWVuIGRl
ZXBlc3RTY3JlZW5dIGRlcHRoXSk7CiAgICAgcmVzdWx0cy5kZXB0aFBlckNvbXBvbmVudCA9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0Zh
Y3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDExL1dlYlNjcmVlbkluZm9G
YWN0b3J5LmNwcAppbmRleCA3ZTFmOTZlY2UwYTgwNzQ5NmMwMjI0M2YwYWJjMGIzOTZmYjg0Nzhk
Li5iYWU1ZDRlZDc0ZTBmY2VjYWY0NWFlNzQ5MDk2OGNlYThjNTRmNDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAKICNpbmNs
dWRlIDxYMTEvWGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCkBAIC00Myw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gZnVuY3Rpb24sIGJ1
dCBpdCBhcHBlYXJzIHRvIHJldHVybiBzdGFsZSBkYXRhIGFmdGVyIHRoZSBzY3JlZW4gaXMgcmVz
aXplZC4KIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oRGlz
cGxheSogZGlzcGxheSwgaW50IHNjcmVlbk51bWJlcikKIHsKKyAgICBjb25zdCBmbG9hdCBJbmNo
ZXNQZXJNaWxsaW1ldGVyID0gMjUuNDsKICAgICAvLyBYRGlzcGxheVdpZHRoKCkgYW5kIFhEaXNw
bGF5SGVpZ2h0KCkgcmV0dXJuIGNhY2hlZCB2YWx1ZXMuIFRvIGVuc3VyZSB0aGF0CiAgICAgLy8g
d2UgcmV0dXJuIHRoZSBjb3JyZWN0IGRpbWVuc2lvbnMgYWZ0ZXIgdGhlIHNjcmVlbiBpcyByZXNp
emVkLCBxdWVyeSB0aGUKICAgICAvLyByb290IHdpbmRvdydzIGdlb21ldHJ5IGVhY2ggdGltZS4K
QEAgLTU0LDYgKzU2LDE0IEBAIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNj
cmVlbkluZm8oRGlzcGxheSogZGlzcGxheSwgaW50IHNjcmVlbk51bWJlCiAgICAgICAgIGRpc3Bs
YXksIHJvb3QsICZyb290UmV0LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCwgJmJvcmRlciwgJmRl
cHRoKTsKIAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsKKyAgICBpbnQgZGlzcGxheVdpZHRo
ID0gRGlzcGxheVdpZHRoKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgaW50IGRpc3BsYXlX
aWR0aEluTWlsbGltZXRlcnMgPSBEaXNwbGF5V2lkdGhNTShkaXNwbGF5LCBzY3JlZW5OdW1iZXIp
OworICAgIHJlc3VsdHMuaG9yaXpvbnRhbERwaSA9IHN0YXRpY19jYXN0PGludD4oSW5jaGVzUGVy
TWlsbGltZXRlciAqIGRpc3BsYXlXaWR0aCAvIGRpc3BsYXlXaWR0aEluTWlsbGltZXRlcnMpOwor
CisgICAgaW50IGRpc3BsYXlIZWlnaHQgPSBEaXNwbGF5SGVpZ2h0KGRpc3BsYXksIHNjcmVlbk51
bWJlcik7CisgICAgaW50IGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJzID0gRGlzcGxheUhlaWdo
dE1NKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgcmVzdWx0cy52ZXJ0aWNhbERwaSA9IHN0
YXRpY19jYXN0PGludD4oSW5jaGVzUGVyTWlsbGltZXRlciAqIGRpc3BsYXlIZWlnaHQgLyBkaXNw
bGF5SGVpZ2h0SW5NaWxsaW1ldGVycyk7CisKICAgICAvLyBGSVhNRTogTm90IGFsbCBzY3JlZW5z
IHVzZSA4YnBwLgogICAgIHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPSA4OwogICAgIHJlc3Vs
dHMuZGVwdGggPSBkZXB0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118106</attachid>
            <date>2011-12-06 13:53:13 -0800</date>
            <delta_ts>2011-12-06 13:56:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111206165311.patch</filename>
            <type>text/plain</type>
            <size>16849</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQwYjk0YjA5N2Q5ODJl
NDI0ZjU1NWRjYzU4Y2M1NzA3MzQzMzdjYS4uMzBiOGIxN2M5NTg1NzY2MDBiM2Y4MzRlMTEzNjhi
NGJkNzg4ZDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDExLTEyLTA2ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGRwaSBpbmZvcm1hdGlvbiBhY2Nlc3NpYmxlIGZy
b20gV2ViS2l0IHRocm91Z2gKKyAgICAgICAgUGxhdGZvcm1TY3JlZW4uIFRoaXMgaXMgdXNlZnVs
IHdoZW4gbWFraW5nIHNjYWxpbmcgCisgICAgICAgIGNvbXB1dGF0aW9ucyBvbiB2YXJpb3VzIGRl
dmljZXMgKGUuZy4gVmlld3BvcnQgbWV0YSB0YWcpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBEUEkgcGx1bWJpbmcgb24gQ2hyb21pdW0gV2luL01hYy9MaW51eAorICAgICAgICBwbGF0Zm9y
bXMuCisKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW46Omhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERw
aSk6CisgICAgICAgICogcGFnZS9TY3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVNjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1BsYXRmb3Jt
U2NyZWVuRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jp
em9udGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2Fs
RHBpKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2Ny
ZWVuVmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKwogMjAxMS0xMS0yOCAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUZXh0
UHJvbXB0IHNob3VsZCBzaG93IHN1Z2dlc3QgYWJvdmUgb3IgdW5kZXIgc28gdGhhdCBpdCBoYXMg
bWF4aW1hbCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA4OTI5YzQwZjcx
YTZkNDViOTI3NTE4NTUxMmMxODZjZmMyNTBiYmEuLjJlNWFiMjZiOGE4OTc2NTM4YjdhMmM5M2U2
NzY3ODZiMTA4NDU0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTEtMTItMDYgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBQbHVtYiBEUEkgaW5mbyBpbnRvIFBsYXRmb3JtU2NyZWVuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTWFrZSBk
cGkgaW5mb3JtYXRpb24gYWNjZXNzaWJsZSBmcm9tIFdlYktpdCB0aHJvdWdoCisgICAgICAgIFBs
YXRmb3JtU2NyZWVuLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIG1ha2luZyBzY2FsaW5nIAorICAgICAg
ICBjb21wdXRhdGlvbnMgb24gdmFyaW91cyBkZXZpY2VzIChlLmcuIFZpZXdwb3J0IG1ldGEgdGFn
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgRFBJIHBsdW1iaW5nIG9uIENocm9taXVtIFdp
bi9NYWMvTGludXgKKyAgICAgICAgcGxhdGZvcm1zLgorCisgICAgICAgICogcHVibGljL1dlYlNj
cmVlbkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5m
byk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6Cisg
ICAgICAgICogc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorICAgICAgICAqIHNyYy93aW4v
V2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZv
RmFjdG9yeTo6c2NyZWVuSW5mbyk6CisgICAgICAgICogc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5J
bmZvKToKKwogMjAxMS0xMS0yOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgUHJlZmVyZW5jZXMgaW50byBQcmVmZXJl
bmNlcyBhbmQgQ2FwYWJpbGl0aWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGJkZGMwMzBm
OWVmZWJiZmZmMzA0YmQ0ODEyMDc1Yzg4MWFmODE4NGYuLmNhYjZlOWMzOGY0OTE2MWZmMDhmOGUw
MDA4YWM0OTQzZmQ5OTgzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTUzLDYgKzUzLDIw
IEBAIHZvaWQgU2NyZWVuOjpkaXNjb25uZWN0RnJhbWUoKQogICAgIG1fZnJhbWUgPSAwOwogfQog
Cit1bnNpZ25lZCBTY3JlZW46Omhvcml6b250YWxEcGkoKSBjb25zdAoreworICAgIGlmICghbV9m
cmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzY3JlZW5Ib3Jpem9udGFsRHBpKG1fZnJhbWUtPnZpZXcoKSkpOworfQorCit1bnNpZ25lZCBT
Y3JlZW46OnZlcnRpY2FsRHBpKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGlj
YWxEcGkobV9mcmFtZS0+dmlldygpKSk7Cit9CisKIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkg
Y29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaAppbmRleCA1NzE2ZDQ2
MWQxMTJiZThkM2FhMGM3YjdmZmYyMGIzODUyMWQxNDA1Li5jMDQzZGI2MTA5MGZlMGEzM2U3MDkw
MjNhYzQ3MjhlNTNhZGZlZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVl
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKQEAgLTQ0LDYgKzQ0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICAg
ICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKIAorICAgICAgICB1bnNpZ25lZCBob3Jpem9udGFs
RHBpKCkgY29uc3Q7CisgICAgICAgIHVuc2lnbmVkIHZlcnRpY2FsRHBpKCkgY29uc3Q7CiAgICAg
ICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCB3aWR0aCgpIGNv
bnN0OwogICAgICAgICB1bnNpZ25lZCBjb2xvckRlcHRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAppbmRleCA1YmI0ZDJlOTI5NmQzYzU5NTVjOTZjNzBm
MjkxNmFkMmQwMWZiODM1Li4yYmEzZjk2MWQzZDIyYTk1YmNlMTM5NTEwYTQ2ZWNmZmI3ZWRmMjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTQ3LDYgKzQ3
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFz
cyBXaWRnZXQ7CiAKKyAgICBpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBp
bnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0Kik7CiAgICAgaW50IHNjcmVlbkRlcHRoKFdpZGdl
dCopOwogICAgIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKTsKICAgICBib29s
IHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKaW5kZXgg
NTQzNjVlMjhlZTkwOTJlZGM2MDZhNTU5NWY0OTAwOWNkZTE5YWE3ZC4uOTE4Y2JhY2Y3YmIyMDQ5
M2Y5NTk5ZDQ1NjkzM2QyYjNlYzJhNTc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKQEAgLTM2
LDYgKzM2LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250
YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2Ny
ZWVuSG9yaXpvbnRhbERwaSh3aWRnZXQpOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGlj
YWxEcGkod2lkZ2V0KTsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewog
ICAgIHJldHVybiBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkRlcHRoKHdpZGdldCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCmluZGV4
IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLjQwYzExZjAwMWE2N2Uz
YTk0ODA4ZTQzYjQwYjJhZmUwNGU2MzViM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0yMzksNiArMjM5LDggQEAgcHVi
bGljOgogICAgIHN0YXRpYyBib29sIHNhbmRib3hFbmFibGVkKCk7CiAKICAgICAvLyBTY3JlZW4g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgIHN0YXRpYyBpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBz
dGF0aWMgaW50IHNjcmVlblZlcnRpY2FsRHBpKFdpZGdldCopOwogICAgIHN0YXRpYyBpbnQgc2Ny
ZWVuRGVwdGgoV2lkZ2V0Kik7CiAgICAgc3RhdGljIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVu
dChXaWRnZXQqKTsKICAgICBzdGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5F
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNw
cAppbmRleCAxMzc0OTQ1ZmI4MWRmMDM1NDllYmUzYmQwYWI1MDQ3NTFlODkxODc1Li43ZDQ4YWM5
ZGQ5OTk4MTQ3NjhhOTA5ZjQxZTAxN2QyOWEzZjI4MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKQEAgLTQyLDYgKzQyLDE4IEBA
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cisg
CitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
IAogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKaW5kZXggNGUwYjI1ZWJkNjdl
NjY0NjEyNDQ1MWE0NjI5OTM2Y2U4ODE2OWRjZS4uMzlkN2MzODZkM2I4N2M0MWEyOGNmYWY0ODlk
N2Q0Zjc1N2JhYWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJHdGtWZXJz
aW9uaW5nLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogCkBA
IC02Nyw2ICs2OCwxOCBAQCBzdGF0aWMgR2RrVmlzdWFsKiBnZXRWaXN1YWwoV2lkZ2V0KiB3aWRn
ZXQpCiAgICAgcmV0dXJuIGNvbnRhaW5lciA/IGdka193aW5kb3dfZ2V0X3Zpc3VhbChndGtfd2lk
Z2V0X2dldF93aW5kb3coY29udGFpbmVyKSkgOiAwOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRh
bERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdp
ZGdldCogd2lkZ2V0KQogewogICAgIEdka1Zpc3VhbCogdmlzdWFsID0gZ2V0VmlzdWFsKHdpZGdl
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMu
bW0KaW5kZXggOTE2ZmM5ZjlmNWY1MjQzYTQ1MDkzMTNhYTVlZGJhZmQxOTE0NWM0Ni4uYWZhYWJm
NmNkNDA1NTI5MjA4NDBkMTJhODlkOWZkMDgxMmFkNDcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMzAsOSArMzAsMjIgQEAK
ICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIlBhZ2Uu
aCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
aW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KikKIHsKICAgICByZXR1cm4gTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1Nj
cmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0aF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAppbmRleCA5MjU1ZTc5ZmYwZTlmYjQyMDM1YmIyMWY4
NzRhMzExMTc0ZDE2MjliLi5iMmJkY2FlZWY1Y2E5YzNjODEzZGVhY2NlYmJkNGFmODFhNjhlMjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNp
bmNsdWRlIDxRQXBwbGljYXRpb24+CkBAIC00Miw2ICs0MywxOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNh
bERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCiBzdGF0aWMgaW50IHNjcmVlbk51bWJlcihXaWRnZXQqIHcpCiB7CiAgICAgaWYg
KCF3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2Ny
ZWVuV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldp
bi5jcHAKaW5kZXggMjFmYTEwZDU0OWVjOTAyZTkwMDYyMzUxNWU5Mzg5MGRhNDFhOWEzZC4uYTIw
MTEwMDFhOWJlNjJhMDdhMmEzNjlmODI5NzRiNTIwYWYzMGJkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwCkBAIC0yNywxMSArMjcs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgog
Ci0jaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgorI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d2luZG93
cy5oPgogCkBAIC02NSw2ICs2NiwxOCBAQCBzdGF0aWMgREVWTU9ERSBkZXZpY2VJbmZvRm9yV2lk
Z2V0KFdpZGdldCogd2lkZ2V0KQogICAgIHJldHVybiBkZXZpY2VJbmZvOwogfQogCitpbnQgc2Ny
ZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRn
ZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNj
cmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIERFVk1PREUgZGV2aWNlSW5mbyA9IGRl
dmljZUluZm9Gb3JXaWRnZXQod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNjcmVlbkluZm8uaAppbmRleCBjYTY4ZjU0MGNkNzdhMWFjODU2YWQ3NjFjMjVkMTI5
NWJlYTEzMWM5Li5jMGU2YjBmNjMxNWU2YmIzMzk2NGJmNjE1ODhmNGU4MjE0ZTEyYjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCkBAIC0zNiw2
ICszNiwxMiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsK
KyAgICAvLyBUaGUgaG9yaXpvbnRhbCBzY3JlZW4gZHBpLgorICAgIGludCBob3Jpem9udGFsRHBp
OworCisgICAgLy8gVGhlIHZlcnRpY2FsIHNjcmVlbiBkcGkuCisgICAgaW50IHZlcnRpY2FsRHBp
OworCiAgICAgLy8gVGhlIHNjcmVlbiBkZXB0aCBpbiBiaXRzIHBlciBwaXhlbAogICAgIGludCBk
ZXB0aDsKIApAQCAtNjcsNyArNzMsOSBAQCBzdHJ1Y3QgV2ViU2NyZWVuSW5mbyB7CiAgICAgZG91
YmxlIHJlZnJlc2hSYXRlOwogCiAgICAgV2ViU2NyZWVuSW5mbygpCi0gICAgICAgIDogZGVwdGgo
MCkKKyAgICAgICAgOiBob3Jpem9udGFsRHBpKDApCisgICAgICAgICwgdmVydGljYWxEcGkoMCkK
KyAgICAgICAgLCBkZXB0aCgwKQogICAgICAgICAsIGRlcHRoUGVyQ29tcG9uZW50KDApCiAgICAg
ICAgICwgaXNNb25vY2hyb21lKGZhbHNlKQogICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXgg
NzhhOTRjNzI2ZDUyYWZjNjJiZTg3YmI4ZDhmZGFjZDA1NjVkMTZiYS4uM2FmM2I3YTg1N2U0MjZk
MmUxOWJkMTI1MjcxY2U5ZDVkODc0MTA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCkBAIC0xMDQ2LDYgKzEwNDYsMjIgQEAgaW50IFBsYXRm
b3JtU3VwcG9ydDo6aGlnaFVzYWdlRGVsdGFNQigpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4od2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmhpZ2hVc2FnZURlbHRhTUIoKSk7CiB9CiAKK2lu
dCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7
CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQp
OworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50
LT5zY3JlZW5JbmZvKCkuaG9yaXpvbnRhbERwaTsKK30KKworaW50IFBsYXRmb3JtU3VwcG9ydDo6
c2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50
KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkudmVydGlj
YWxEcGk7Cit9CisKIGludCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkRlcHRoKFdpZGdldCogd2lk
Z2V0KQogewogICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQo
d2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRl
eCBhOGZjMWE2ZmRmNGQ5NjVmNDVmMjdmOTM2OWNiYzQxYmIxNTcxZDQ2Li5iYzI5ZDdhMWE5MDE1
ZDk5ZDA0ZGE5OTc2ODY0NTdlNWZmZTYwOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMDQ2LDYgKzEwNDYsOCBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBtX3NpemUgPSBuZXdTaXplOwog
CiAgICAgaWYgKG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpIHsKKyAgICAgICAgZnByaW50
ZihzdGRlcnIsICJXZWJWaWV3SW1wbDo6cmVzaXplIGhvcml6b250YWwgRFBJICVkXG4iLCBzY3Jl
ZW5Ib3Jpem9udGFsRHBpKG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpKTsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJXZWJWaWV3SW1wbDo6cmVzaXplIHZlcnRpY2FsIERQSSAlZFxuIiwg
c2NyZWVuVmVydGljYWxEcGkobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkpOwogICAgICAg
ICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5yZXNpemUobV9zaXplLndpZHRoLCBtX3Np
emUuaGVpZ2h0KTsKICAgICAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRs
ZXIoKS0+c2VuZFJlc2l6ZUV2ZW50KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tCmluZGV4IDI4MDVmN2E5
ZDA2YWQ2MGU3MGUzNDJkZDFjNjU2OWRjNTUyMmQ1ZTUuLjY4ZjgxNzAxZjA0N2I5ZmRhNjNiN2Fk
YjM5MWUxMTI2YjVlM2ZhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KQEAgLTc2LDYgKzc2LDE1IEBAIFdlYlNj
cmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3KQog
ICAgIE5TU3RyaW5nICpjb2xvclNwYWNlID0gTlNDb2xvclNwYWNlRnJvbURlcHRoKFtbTlNTY3Jl
ZW4gZGVlcGVzdFNjcmVlbl0gZGVwdGhdKTsKIAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsK
KworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgTWFjIHNlZW1zIHRvIGFsd2F5cyByZXBvcnQgNzJk
cGkuIE5lZWQgdG8gZmluZCBhIHdheSB0bworICAgIC8vIHJlcG9ydCB0aGUgdHJ1ZSBzY3JlZW4g
ZHBpLgorICAgIE5TV2luZG93KiB3aW5kb3cgPSBbdmlldyB3aW5kb3ddOworICAgIE5TRGljdGlv
bmFyeSogZGV2aWNlRGVzY3JpcHRpb24gPSBbd2luZG93IGRldmljZURlc2NyaXB0aW9uXTsKKyAg
ICBOU1NpemUgZGV2aWNlRHBpID0gW1tkZXZpY2VEZXNjcmlwdGlvbiB2YWx1ZUZvcktleTpOU0Rl
dmljZVJlc29sdXRpb25dIHNpemVWYWx1ZV07CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRHBpID0g
KGludClkZXZpY2VEcGkud2lkdGg7CisgICAgcmVzdWx0cy52ZXJ0aWNhbERwaSA9IChpbnQpZGV2
aWNlRHBpLmhlaWdodDsKKwogICAgIHJlc3VsdHMuZGVwdGggPQogICAgICAgICBOU0JpdHNQZXJQ
aXhlbEZyb21EZXB0aChbW05TU2NyZWVuIGRlZXBlc3RTY3JlZW5dIGRlcHRoXSk7CiAgICAgcmVz
dWx0cy5kZXB0aFBlckNvbXBvbmVudCA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy93aW4vV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvd2luL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcAppbmRleCA4NDE2YWNjNDJiZTJl
ZmQwZGZhYjRhZjhkYzFlMzg0NmQxYWQxN2YyLi40OTQ4YjliNzBhMjY1MzE3MDJiYTNkMzllM2Y3
YTdhNjc0Y2NlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy93aW4v
V2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKQEAgLTYwLDcgKzYwLDExIEBAIFdlYlNjcmVl
bkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oSFdORCB3aW5kb3cpCiAgICAg
ZGV2TW9kZS5kbURyaXZlckV4dHJhID0gMDsKICAgICBFbnVtRGlzcGxheVNldHRpbmdzKG1vbml0
b3JJbmZvLnN6RGV2aWNlLCBFTlVNX0NVUlJFTlRfU0VUVElOR1MsICZkZXZNb2RlKTsKIAorICAg
IEhEQyBoZGMgPSBHZXREQygwKTsKKwogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0czsKKyAgICBy
ZXN1bHRzLmhvcml6b250YWxEcGkgPSBHZXREZXZpY2VDYXBzKGhkYywgTE9HUElYRUxTWCk7Cisg
ICAgcmVzdWx0cy52ZXJ0aWNhbERwaSA9IEdldERldmljZUNhcHMoaGRjLCBMT0dQSVhFTFNZKTsK
ICAgICByZXN1bHRzLmRlcHRoID0gZGV2TW9kZS5kbUJpdHNQZXJQZWw7CiAgICAgcmVzdWx0cy5k
ZXB0aFBlckNvbXBvbmVudCA9IGRldk1vZGUuZG1CaXRzUGVyUGVsIC8gMzsgIC8vIEFzc3VtZXMg
UkdCCiAgICAgcmVzdWx0cy5pc01vbm9jaHJvbWUgPSBkZXZNb2RlLmRtQ29sb3IgPT0gRE1DT0xP
Ul9NT05PQ0hST01FOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDEx
L1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gx
MS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKaW5kZXggN2UxZjk2ZWNlMGE4MDc0OTZjMDIyNDNm
MGFiYzBiMzk2ZmI4NDc4ZC4uYmFlNWQ0ZWQ3NGUwZmNlY2FmNDVhZTc0OTA5NjhjZWE4YzU0ZjQz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDExL1dlYlNjcmVlbklu
Zm9GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2Ny
ZWVuSW5mb0ZhY3RvcnkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViU2NyZWVu
SW5mby5oIgogCiAjaW5jbHVkZSA8WDExL1hsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDMsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IC8vIGZ1bmN0aW9uLCBidXQgaXQgYXBwZWFycyB0byByZXR1cm4gc3RhbGUgZGF0YSBhZnRlciB0
aGUgc2NyZWVuIGlzIHJlc2l6ZWQuCiBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9GYWN0b3J5
OjpzY3JlZW5JbmZvKERpc3BsYXkqIGRpc3BsYXksIGludCBzY3JlZW5OdW1iZXIpCiB7CisgICAg
Y29uc3QgZmxvYXQgSW5jaGVzUGVyTWlsbGltZXRlciA9IDI1LjQ7CiAgICAgLy8gWERpc3BsYXlX
aWR0aCgpIGFuZCBYRGlzcGxheUhlaWdodCgpIHJldHVybiBjYWNoZWQgdmFsdWVzLiBUbyBlbnN1
cmUgdGhhdAogICAgIC8vIHdlIHJldHVybiB0aGUgY29ycmVjdCBkaW1lbnNpb25zIGFmdGVyIHRo
ZSBzY3JlZW4gaXMgcmVzaXplZCwgcXVlcnkgdGhlCiAgICAgLy8gcm9vdCB3aW5kb3cncyBnZW9t
ZXRyeSBlYWNoIHRpbWUuCkBAIC01NCw2ICs1NiwxNCBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVl
bkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKERpc3BsYXkqIGRpc3BsYXksIGludCBzY3JlZW5OdW1i
ZQogICAgICAgICBkaXNwbGF5LCByb290LCAmcm9vdFJldCwgJngsICZ5LCAmd2lkdGgsICZoZWln
aHQsICZib3JkZXIsICZkZXB0aCk7CiAKICAgICBXZWJTY3JlZW5JbmZvIHJlc3VsdHM7CisgICAg
aW50IGRpc3BsYXlXaWR0aCA9IERpc3BsYXlXaWR0aChkaXNwbGF5LCBzY3JlZW5OdW1iZXIpOwor
ICAgIGludCBkaXNwbGF5V2lkdGhJbk1pbGxpbWV0ZXJzID0gRGlzcGxheVdpZHRoTU0oZGlzcGxh
eSwgc2NyZWVuTnVtYmVyKTsKKyAgICByZXN1bHRzLmhvcml6b250YWxEcGkgPSBzdGF0aWNfY2Fz
dDxpbnQ+KEluY2hlc1Blck1pbGxpbWV0ZXIgKiBkaXNwbGF5V2lkdGggLyBkaXNwbGF5V2lkdGhJ
bk1pbGxpbWV0ZXJzKTsKKworICAgIGludCBkaXNwbGF5SGVpZ2h0ID0gRGlzcGxheUhlaWdodChk
aXNwbGF5LCBzY3JlZW5OdW1iZXIpOworICAgIGludCBkaXNwbGF5SGVpZ2h0SW5NaWxsaW1ldGVy
cyA9IERpc3BsYXlIZWlnaHRNTShkaXNwbGF5LCBzY3JlZW5OdW1iZXIpOworICAgIHJlc3VsdHMu
dmVydGljYWxEcGkgPSBzdGF0aWNfY2FzdDxpbnQ+KEluY2hlc1Blck1pbGxpbWV0ZXIgKiBkaXNw
bGF5SGVpZ2h0IC8gZGlzcGxheUhlaWdodEluTWlsbGltZXRlcnMpOworCiAgICAgLy8gRklYTUU6
IE5vdCBhbGwgc2NyZWVucyB1c2UgOGJwcC4KICAgICByZXN1bHRzLmRlcHRoUGVyQ29tcG9uZW50
ID0gODsKICAgICByZXN1bHRzLmRlcHRoID0gZGVwdGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118107</attachid>
            <date>2011-12-06 13:56:50 -0800</date>
            <delta_ts>2011-12-06 17:09:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111206165649.patch</filename>
            <type>text/plain</type>
            <size>15956</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQwYjk0YjA5N2Q5ODJl
NDI0ZjU1NWRjYzU4Y2M1NzA3MzQzMzdjYS4uMzBiOGIxN2M5NTg1NzY2MDBiM2Y4MzRlMTEzNjhi
NGJkNzg4ZDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDExLTEyLTA2ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGRwaSBpbmZvcm1hdGlvbiBhY2Nlc3NpYmxlIGZy
b20gV2ViS2l0IHRocm91Z2gKKyAgICAgICAgUGxhdGZvcm1TY3JlZW4uIFRoaXMgaXMgdXNlZnVs
IHdoZW4gbWFraW5nIHNjYWxpbmcgCisgICAgICAgIGNvbXB1dGF0aW9ucyBvbiB2YXJpb3VzIGRl
dmljZXMgKGUuZy4gVmlld3BvcnQgbWV0YSB0YWcpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBEUEkgcGx1bWJpbmcgb24gQ2hyb21pdW0gV2luL01hYy9MaW51eAorICAgICAgICBwbGF0Zm9y
bXMuCisKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW46Omhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERw
aSk6CisgICAgICAgICogcGFnZS9TY3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVNjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERwaSk6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1BsYXRmb3Jt
U2NyZWVuRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jp
em9udGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2Fs
RHBpKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29yZTo6c2Ny
ZWVuVmVydGljYWxEcGkpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRHBpKToKKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRHBpKToKKwogMjAxMS0xMS0yOCAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUZXh0
UHJvbXB0IHNob3VsZCBzaG93IHN1Z2dlc3QgYWJvdmUgb3IgdW5kZXIgc28gdGhhdCBpdCBoYXMg
bWF4aW1hbCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA4OTI5YzQwZjcx
YTZkNDViOTI3NTE4NTUxMmMxODZjZmMyNTBiYmEuLmJkYWE0ZTU0MjFhM2UzYmZkMWJlOGMzZjU5
NGU4ZDExN2Y4YWY2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTEtMTItMDYgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBQbHVtYiBEUEkgaW5mbyBpbnRvIFBsYXRmb3JtU2NyZWVuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTWFrZSBk
cGkgaW5mb3JtYXRpb24gYWNjZXNzaWJsZSBmcm9tIFdlYktpdCB0aHJvdWdoCisgICAgICAgIFBs
YXRmb3JtU2NyZWVuLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIG1ha2luZyBzY2FsaW5nIAorICAgICAg
ICBjb21wdXRhdGlvbnMgb24gdmFyaW91cyBkZXZpY2VzIChlLmcuIFZpZXdwb3J0IG1ldGEgdGFn
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgRFBJIHBsdW1iaW5nIG9uIENocm9taXVtIFdp
bi9NYWMvTGludXgKKyAgICAgICAgcGxhdGZvcm1zLgorCisgICAgICAgICogcHVibGljL1dlYlNj
cmVlbkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5m
byk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEcGkpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERwaSk6CisgICAgICAgICogc3JjL21h
Yy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5m
b0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorICAgICAgICAqIHNyYy93aW4vV2ViU2NyZWVuSW5mb0Zh
Y3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVu
SW5mbyk6CisgICAgICAgICogc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKToKKwogMjAxMS0x
MS0yOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3Rvcjogc3BsaXQgUHJlZmVyZW5jZXMgaW50byBQcmVmZXJlbmNlcyBhbmQgQ2FwYWJp
bGl0aWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGJkZGMwMzBmOWVmZWJiZmZmMzA0YmQ0
ODEyMDc1Yzg4MWFmODE4NGYuLmNhYjZlOWMzOGY0OTE2MWZmMDhmOGUwMDA4YWM0OTQzZmQ5OTgz
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTUzLDYgKzUzLDIwIEBAIHZvaWQgU2NyZWVu
OjpkaXNjb25uZWN0RnJhbWUoKQogICAgIG1fZnJhbWUgPSAwOwogfQogCit1bnNpZ25lZCBTY3Jl
ZW46Omhvcml6b250YWxEcGkoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9u
dGFsRHBpKG1fZnJhbWUtPnZpZXcoKSkpOworfQorCit1bnNpZ25lZCBTY3JlZW46OnZlcnRpY2Fs
RHBpKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGljYWxEcGkobV9mcmFtZS0+
dmlldygpKSk7Cit9CisKIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaAppbmRleCA1NzE2ZDQ2MWQxMTJiZThkM2FhMGM3
YjdmZmYyMGIzODUyMWQxNDA1Li5jMDQzZGI2MTA5MGZlMGEzM2U3MDkwMjNhYzQ3MjhlNTNhZGZl
ZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKQEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICAgICAgdm9pZCBkaXNjb25u
ZWN0RnJhbWUoKTsKIAorICAgICAgICB1bnNpZ25lZCBob3Jpem9udGFsRHBpKCkgY29uc3Q7Cisg
ICAgICAgIHVuc2lnbmVkIHZlcnRpY2FsRHBpKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGhl
aWdodCgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OwogICAgICAgICB1
bnNpZ25lZCBjb2xvckRlcHRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TY3JlZW4uaAppbmRleCA1YmI0ZDJlOTI5NmQzYzU5NTVjOTZjNzBmMjkxNmFkMmQwMWZiODM1
Li4yYmEzZjk2MWQzZDIyYTk1YmNlMTM5NTEwYTQ2ZWNmZmI3ZWRmMjFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFzcyBXaWRnZXQ7CiAKKyAg
ICBpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBpbnQgc2NyZWVuVmVydGlj
YWxEcGkoV2lkZ2V0Kik7CiAgICAgaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOwogICAgIGludCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKTsKICAgICBib29sIHNjcmVlbklzTW9ub2No
cm9tZShXaWRnZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKaW5kZXggNTQzNjVlMjhlZTkwOTJl
ZGM2MDZhNTU5NWY0OTAwOWNkZTE5YWE3ZC4uOTE4Y2JhY2Y3YmIyMDQ5M2Y5NTk5ZDQ1NjkzM2Qy
YjNlYzJhNTc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKQEAgLTM2LDYgKzM2LDE2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERw
aSh3aWRnZXQpOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7
CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxEcGkod2lkZ2V0KTsK
K30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIHJldHVybiBQbGF0
Zm9ybVN1cHBvcnQ6OnNjcmVlbkRlcHRoKHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDQwNzQ4MDQ5MjRjOTEz
MGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLjQwYzExZjAwMWE2N2UzYTk0ODA4ZTQzYjQwYjJh
ZmUwNGU2MzViM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0yMzksNiArMjM5LDggQEAgcHVibGljOgogICAgIHN0YXRp
YyBib29sIHNhbmRib3hFbmFibGVkKCk7CiAKICAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRp
YyBpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqKTsKKyAgICBzdGF0aWMgaW50IHNjcmVl
blZlcnRpY2FsRHBpKFdpZGdldCopOwogICAgIHN0YXRpYyBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0
Kik7CiAgICAgc3RhdGljIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKTsKICAg
ICBzdGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAppbmRleCAxMzc0OTQ1
ZmI4MWRmMDM1NDllYmUzYmQwYWI1MDQ3NTFlODkxODc1Li43ZDQ4YWM5ZGQ5OTk4MTQ3NjhhOTA5
ZjQxZTAxN2QyOWEzZjI4MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKQEAgLTQyLDYgKzQyLDE4IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgCitpbnQgc2NyZWVuSG9y
aXpvbnRhbERwaShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogaW50IHNjcmVlbkRl
cHRoKFdpZGdldCogd2lkZ2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKaW5kZXggNGUwYjI1ZWJkNjdlNjY0NjEyNDQ1MWE0NjI5
OTM2Y2U4ODE2OWRjZS4uMzlkN2MzODZkM2I4N2M0MWEyOGNmYWY0ODlkN2Q0Zjc1N2JhYWZhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5j
bHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogCkBAIC02Nyw2ICs2OCwxOCBA
QCBzdGF0aWMgR2RrVmlzdWFsKiBnZXRWaXN1YWwoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJu
IGNvbnRhaW5lciA/IGdka193aW5kb3dfZ2V0X3Zpc3VhbChndGtfd2lkZ2V0X2dldF93aW5kb3co
Y29udGFpbmVyKSkgOiAwOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERwaShXaWRnZXQqIHdp
ZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQg
c2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQog
ewogICAgIEdka1Zpc3VhbCogdmlzdWFsID0gZ2V0VmlzdWFsKHdpZGdldCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXggOTE2ZmM5
ZjlmNWY1MjQzYTQ1MDkzMTNhYTVlZGJhZmQxOTE0NWM0Ni4uYWZhYWJmNmNkNDA1NTI5MjA4NDBk
MTJhODlkOWZkMDgxMmFkNDcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMzAsOSArMzAsMjIgQEAKICNpbXBvcnQgIkZyYW1l
LmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIk5v
dEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6
b250YWxEcGkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKIHsK
ICAgICByZXR1cm4gTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2Ny
ZWVuXSBkZXB0aF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxh
dGZvcm1TY3JlZW5RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNj
cmVlblF0LmNwcAppbmRleCA5MjU1ZTc5ZmYwZTlmYjQyMDM1YmIyMWY4NzRhMzExMTc0ZDE2Mjli
Li5iMmJkY2FlZWY1Y2E5YzNjODEzZGVhY2NlYmJkNGFmODFhNjhlMjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtMzUsNiArMzUs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlIDxRQXBwbGlj
YXRpb24+CkBAIC00Miw2ICs0MywxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2ludCBz
Y3JlZW5Ib3Jpem9udGFsRHBpKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERwaShXaWRnZXQqIHdp
ZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBzdGF0
aWMgaW50IHNjcmVlbk51bWJlcihXaWRnZXQqIHcpCiB7CiAgICAgaWYgKCF3KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKaW5kZXggMjFm
YTEwZDU0OWVjOTAyZTkwMDYyMzUxNWU5Mzg5MGRhNDFhOWEzZC4uYTIwMTEwMDFhOWJlNjJhMDdh
MmEzNjlmODI5NzRiNTIwYWYzMGJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwCkBAIC0yNywxMSArMjcsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCi0jaW5jbHVkZSAiSG9z
dFdpbmRvdy5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhv
c3RXaW5kb3cuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d2luZG93cy5oPgogCkBAIC02NSw2
ICs2NiwxOCBAQCBzdGF0aWMgREVWTU9ERSBkZXZpY2VJbmZvRm9yV2lkZ2V0KFdpZGdldCogd2lk
Z2V0KQogICAgIHJldHVybiBkZXZpY2VJbmZvOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERw
aShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitpbnQgc2NyZWVuVmVydGljYWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdl
dCogd2lkZ2V0KQogewogICAgIERFVk1PREUgZGV2aWNlSW5mbyA9IGRldmljZUluZm9Gb3JXaWRn
ZXQod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNjcmVlbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbklu
Zm8uaAppbmRleCBjYTY4ZjU0MGNkNzdhMWFjODU2YWQ3NjFjMjVkMTI5NWJlYTEzMWM5Li5jMGU2
YjBmNjMxNWU2YmIzMzk2NGJmNjE1ODhmNGU4MjE0ZTEyYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCkBAIC0zNiw2ICszNiwxMiBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsKKyAgICAvLyBUaGUgaG9y
aXpvbnRhbCBzY3JlZW4gZHBpLgorICAgIGludCBob3Jpem9udGFsRHBpOworCisgICAgLy8gVGhl
IHZlcnRpY2FsIHNjcmVlbiBkcGkuCisgICAgaW50IHZlcnRpY2FsRHBpOworCiAgICAgLy8gVGhl
IHNjcmVlbiBkZXB0aCBpbiBiaXRzIHBlciBwaXhlbAogICAgIGludCBkZXB0aDsKIApAQCAtNjcs
NyArNzMsOSBAQCBzdHJ1Y3QgV2ViU2NyZWVuSW5mbyB7CiAgICAgZG91YmxlIHJlZnJlc2hSYXRl
OwogCiAgICAgV2ViU2NyZWVuSW5mbygpCi0gICAgICAgIDogZGVwdGgoMCkKKyAgICAgICAgOiBo
b3Jpem9udGFsRHBpKDApCisgICAgICAgICwgdmVydGljYWxEcGkoMCkKKyAgICAgICAgLCBkZXB0
aCgwKQogICAgICAgICAsIGRlcHRoUGVyQ29tcG9uZW50KDApCiAgICAgICAgICwgaXNNb25vY2hy
b21lKGZhbHNlKQogICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXggNzhhOTRjNzI2ZDUyYWZj
NjJiZTg3YmI4ZDhmZGFjZDA1NjVkMTZiYS4uM2FmM2I3YTg1N2U0MjZkMmUxOWJkMTI1MjcxY2U5
ZDVkODc0MTA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZv
cm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1
cHBvcnQuY3BwCkBAIC0xMDQ2LDYgKzEwNDYsMjIgQEAgaW50IFBsYXRmb3JtU3VwcG9ydDo6aGln
aFVzYWdlRGVsdGFNQigpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4od2ViS2l0UGxhdGZv
cm1TdXBwb3J0KCktPmhpZ2hVc2FnZURlbHRhTUIoKSk7CiB9CiAKK2ludCBQbGF0Zm9ybVN1cHBv
cnQ6OnNjcmVlbkhvcml6b250YWxEcGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0
Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xp
ZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCku
aG9yaXpvbnRhbERwaTsKK30KKworaW50IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxE
cGkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dl
YldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkudmVydGljYWxEcGk7Cit9CisKIGlu
dCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIFdl
YldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9y
eS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9y
eS5tbQppbmRleCAyODA1ZjdhOWQwNmFkNjBlNzBlMzQyZGQxYzY1NjlkYzU1MjJkNWU1Li42OGY4
MTcwMWYwNDdiOWZkYTYzYjdhZGIzOTFlMTEyNmI1ZTNmYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tCkBAIC03
Niw2ICs3NiwxNSBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5J
bmZvKE5TVmlldyogdmlldykKICAgICBOU1N0cmluZyAqY29sb3JTcGFjZSA9IE5TQ29sb3JTcGFj
ZUZyb21EZXB0aChbW05TU2NyZWVuIGRlZXBlc3RTY3JlZW5dIGRlcHRoXSk7CiAKICAgICBXZWJT
Y3JlZW5JbmZvIHJlc3VsdHM7CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IE1hYyBzZWVtcyB0
byBhbHdheXMgcmVwb3J0IDcyZHBpLiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8KKyAgICAvLyByZXBv
cnQgdGhlIHRydWUgc2NyZWVuIGRwaS4KKyAgICBOU1dpbmRvdyogd2luZG93ID0gW3ZpZXcgd2lu
ZG93XTsKKyAgICBOU0RpY3Rpb25hcnkqIGRldmljZURlc2NyaXB0aW9uID0gW3dpbmRvdyBkZXZp
Y2VEZXNjcmlwdGlvbl07CisgICAgTlNTaXplIGRldmljZURwaSA9IFtbZGV2aWNlRGVzY3JpcHRp
b24gdmFsdWVGb3JLZXk6TlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVdOworICAgIHJlc3Vs
dHMuaG9yaXpvbnRhbERwaSA9IChpbnQpZGV2aWNlRHBpLndpZHRoOworICAgIHJlc3VsdHMudmVy
dGljYWxEcGkgPSAoaW50KWRldmljZURwaS5oZWlnaHQ7CisKICAgICByZXN1bHRzLmRlcHRoID0K
ICAgICAgICAgTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVu
XSBkZXB0aF0pOwogICAgIHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAK
aW5kZXggODQxNmFjYzQyYmUyZWZkMGRmYWI0YWY4ZGMxZTM4NDZkMWFkMTdmMi4uNDk0OGI5Yjcw
YTI2NTMxNzAyYmEzZDM5ZTNmN2E3YTY3NGNjZTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvd2luL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCkBAIC02MCw3
ICs2MCwxMSBAQCBXZWJTY3JlZW5JbmZvIFdlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZv
KEhXTkQgd2luZG93KQogICAgIGRldk1vZGUuZG1Ecml2ZXJFeHRyYSA9IDA7CiAgICAgRW51bURp
c3BsYXlTZXR0aW5ncyhtb25pdG9ySW5mby5zekRldmljZSwgRU5VTV9DVVJSRU5UX1NFVFRJTkdT
LCAmZGV2TW9kZSk7CiAKKyAgICBIREMgaGRjID0gR2V0REMoMCk7CisKICAgICBXZWJTY3JlZW5J
bmZvIHJlc3VsdHM7CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRHBpID0gR2V0RGV2aWNlQ2Fwcyho
ZGMsIExPR1BJWEVMU1gpOworICAgIHJlc3VsdHMudmVydGljYWxEcGkgPSBHZXREZXZpY2VDYXBz
KGhkYywgTE9HUElYRUxTWSk7CiAgICAgcmVzdWx0cy5kZXB0aCA9IGRldk1vZGUuZG1CaXRzUGVy
UGVsOwogICAgIHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPSBkZXZNb2RlLmRtQml0c1BlclBl
bCAvIDM7ICAvLyBBc3N1bWVzIFJHQgogICAgIHJlc3VsdHMuaXNNb25vY2hyb21lID0gZGV2TW9k
ZS5kbUNvbG9yID09IERNQ09MT1JfTU9OT0NIUk9NRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCmluZGV4IDdlMWY5
NmVjZTBhODA3NDk2YzAyMjQzZjBhYmMwYjM5NmZiODQ3OGQuLmJhZTVkNGVkNzRlMGZjZWNhZjQ1
YWU3NDkwOTY4Y2VhOGM1NGY0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIldlYlNjcmVlbkluZm8uaCIKIAogI2luY2x1ZGUgPFgxMS9YbGliLmg+CisjaW5j
bHVkZSA8c3RkaW8uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQzLDYgKzQ0LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAvLyBmdW5jdGlvbiwgYnV0IGl0IGFwcGVhcnMgdG8gcmV0dXJu
IHN0YWxlIGRhdGEgYWZ0ZXIgdGhlIHNjcmVlbiBpcyByZXNpemVkLgogV2ViU2NyZWVuSW5mbyBX
ZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhEaXNwbGF5KiBkaXNwbGF5LCBpbnQgc2Ny
ZWVuTnVtYmVyKQogeworICAgIGNvbnN0IGZsb2F0IEluY2hlc1Blck1pbGxpbWV0ZXIgPSAyNS40
OwogICAgIC8vIFhEaXNwbGF5V2lkdGgoKSBhbmQgWERpc3BsYXlIZWlnaHQoKSByZXR1cm4gY2Fj
aGVkIHZhbHVlcy4gVG8gZW5zdXJlIHRoYXQKICAgICAvLyB3ZSByZXR1cm4gdGhlIGNvcnJlY3Qg
ZGltZW5zaW9ucyBhZnRlciB0aGUgc2NyZWVuIGlzIHJlc2l6ZWQsIHF1ZXJ5IHRoZQogICAgIC8v
IHJvb3Qgd2luZG93J3MgZ2VvbWV0cnkgZWFjaCB0aW1lLgpAQCAtNTQsNiArNTYsMTQgQEAgV2Vi
U2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyhEaXNwbGF5KiBkaXNw
bGF5LCBpbnQgc2NyZWVuTnVtYmUKICAgICAgICAgZGlzcGxheSwgcm9vdCwgJnJvb3RSZXQsICZ4
LCAmeSwgJndpZHRoLCAmaGVpZ2h0LCAmYm9yZGVyLCAmZGVwdGgpOwogCiAgICAgV2ViU2NyZWVu
SW5mbyByZXN1bHRzOworICAgIGludCBkaXNwbGF5V2lkdGggPSBEaXNwbGF5V2lkdGgoZGlzcGxh
eSwgc2NyZWVuTnVtYmVyKTsKKyAgICBpbnQgZGlzcGxheVdpZHRoSW5NaWxsaW1ldGVycyA9IERp
c3BsYXlXaWR0aE1NKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgcmVzdWx0cy5ob3Jpem9u
dGFsRHBpID0gc3RhdGljX2Nhc3Q8aW50PihJbmNoZXNQZXJNaWxsaW1ldGVyICogZGlzcGxheVdp
ZHRoIC8gZGlzcGxheVdpZHRoSW5NaWxsaW1ldGVycyk7CisKKyAgICBpbnQgZGlzcGxheUhlaWdo
dCA9IERpc3BsYXlIZWlnaHQoZGlzcGxheSwgc2NyZWVuTnVtYmVyKTsKKyAgICBpbnQgZGlzcGxh
eUhlaWdodEluTWlsbGltZXRlcnMgPSBEaXNwbGF5SGVpZ2h0TU0oZGlzcGxheSwgc2NyZWVuTnVt
YmVyKTsKKyAgICByZXN1bHRzLnZlcnRpY2FsRHBpID0gc3RhdGljX2Nhc3Q8aW50PihJbmNoZXNQ
ZXJNaWxsaW1ldGVyICogZGlzcGxheUhlaWdodCAvIGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJz
KTsKKwogICAgIC8vIEZJWE1FOiBOb3QgYWxsIHNjcmVlbnMgdXNlIDhicHAuCiAgICAgcmVzdWx0
cy5kZXB0aFBlckNvbXBvbmVudCA9IDg7CiAgICAgcmVzdWx0cy5kZXB0aCA9IGRlcHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118148</attachid>
            <date>2011-12-06 17:07:47 -0800</date>
            <delta_ts>2011-12-07 11:30:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70556-20111206200745.patch</filename>
            <type>text/plain</type>
            <size>15932</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM1NTNiY2IwZGZiNDgy
MDE5NDU3YjczNGNmNDFhNGZmMTMxMGQyNS4uMDJlMjFjZmZkMmQ5MTRhYjJmYTk2Mjc5NGYzMTU0
YTRlNjVlZTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDExLTEyLTA2ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIERQSSBpbmZvcm1hdGlvbiBhY2Nlc3NpYmxlIGZy
b20gV2ViS2l0IHRocm91Z2gKKyAgICAgICAgUGxhdGZvcm1TY3JlZW4uIFRoaXMgaXMgdXNlZnVs
IHdoZW4gbWFraW5nIHNjYWxpbmcgCisgICAgICAgIGNvbXB1dGF0aW9ucyBvbiB2YXJpb3VzIGRl
dmljZXMgKGUuZy4gVmlld3BvcnQgbWV0YSB0YWcpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBEUEkgcGx1bWJpbmcgb24gQ2hyb21pdW0gV2luL01hYy9MaW51eAorICAgICAgICBwbGF0Zm9y
bXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwYWdlL1Nj
cmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46Omhvcml6b250YWxEUEkpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERQSSk6CisgICAgICAgICogcGFnZS9TY3Jl
ZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2NyZWVuSG9yaXpvbnRhbERQSSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0
aWNhbERQSSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVu
VmVydGljYWxEUEkpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmVlblZlcnRpY2FsRFBJKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRFBJKToK
KyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRFBJKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6
b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEUEkpOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5Ib3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2Fs
RFBJKToKKwogMjAxMS0xMi0wNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW50cm9kdWNlIGEgbWVtb3J5IGFnZW50IHN0dWIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUxMzljYjJhZjVkYzdiZWNjNzdjYTBiYmQz
OWY0MmVmYzExNWY3NTcuLmRkMTUyOTgxMTNlNTU3MjgxNjM2ZmMzNjhiZDMyNTFhYzVlMjZhOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTItMDYg
IEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBQbHVtYiBEUEkgaW5mbyBpbnRvIFBsYXRmb3JtU2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTWFrZSBEUEkgaW5mb3JtYXRpb24g
YWNjZXNzaWJsZSBmcm9tIFdlYktpdCB0aHJvdWdoCisgICAgICAgIFBsYXRmb3JtU2NyZWVuLiBU
aGlzIGlzIHVzZWZ1bCB3aGVuIG1ha2luZyBzY2FsaW5nIAorICAgICAgICBjb21wdXRhdGlvbnMg
b24gdmFyaW91cyBkZXZpY2VzIChlLmcuIFZpZXdwb3J0IG1ldGEgdGFnKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgRFBJIHBsdW1iaW5nIG9uIENocm9taXVtIFdpbi9NYWMvTGludXgKKyAg
ICAgICAgcGxhdGZvcm1zLgorCisgICAgICAgICogcHVibGljL1dlYlNjcmVlbkluZm8uaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5mbyk6CisgICAgICAgICog
c3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBv
cnQ6OnNjcmVlbkhvcml6b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBw
b3J0OjpzY3JlZW5WZXJ0aWNhbERQSSk6CisgICAgICAgICogc3JjL21hYy9XZWJTY3JlZW5JbmZv
RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVl
bkluZm8pOgorICAgICAgICAqIHNyYy93aW4vV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2NyZWVuSW5mbyk6CisgICAgICAg
ICogc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKToKKwogMjAxMS0xMi0wNiAgRGF2aWQgUmV2
ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVt
ZW50IHRpbGUtc2l6ZWQgcGFpbnRpbmcgdXNpbmcgU2tQaWN0dXJlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4u
Y3BwCmluZGV4IGJkZGMwMzBmOWVmZWJiZmZmMzA0YmQ0ODEyMDc1Yzg4MWFmODE4NGYuLmRmODhm
YTRlOWI4NjU2MDhhYjNiMDc0MGQ3YWY0YTA2ZjUyZWU3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5j
cHAKQEAgLTUzLDYgKzUzLDIwIEBAIHZvaWQgU2NyZWVuOjpkaXNjb25uZWN0RnJhbWUoKQogICAg
IG1fZnJhbWUgPSAwOwogfQogCit1bnNpZ25lZCBTY3JlZW46Omhvcml6b250YWxEUEkoKSBjb25z
dAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9udGFsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OworfQorCit1bnNpZ25lZCBTY3JlZW46OnZlcnRpY2FsRFBJKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oc2NyZWVuVmVydGljYWxEUEkobV9mcmFtZS0+dmlldygpKSk7Cit9CisKIHVuc2lnbmVk
IFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jl
ZW4uaAppbmRleCA1NzE2ZDQ2MWQxMTJiZThkM2FhMGM3YjdmZmYyMGIzODUyMWQxNDA1Li5kMDg0
ZGI3ODgzMTgxNmRiZjRhNmFiMTgzMjg0OWI0NjFmNzA3YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgK
QEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBGcmFtZSogZnJh
bWUoKSBjb25zdDsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKIAorICAgICAgICB1
bnNpZ25lZCBob3Jpem9udGFsRFBJKCkgY29uc3Q7CisgICAgICAgIHVuc2lnbmVkIHZlcnRpY2Fs
RFBJKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OwogICAgICAgICB1
bnNpZ25lZCB3aWR0aCgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBjb2xvckRlcHRoKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAppbmRleCA1YmI0ZDJl
OTI5NmQzYzU5NTVjOTZjNzBmMjkxNmFkMmQwMWZiODM1Li5hOWFjYjVkZDBiNTJmZmM3OTZjNDU4
MGE4OTY2MTg3NzQ4ODQxZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmgKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZs
b2F0UmVjdDsKICAgICBjbGFzcyBXaWRnZXQ7CiAKKyAgICBpbnQgc2NyZWVuSG9yaXpvbnRhbERQ
SShXaWRnZXQqKTsKKyAgICBpbnQgc2NyZWVuVmVydGljYWxEUEkoV2lkZ2V0Kik7CiAgICAgaW50
IHNjcmVlbkRlcHRoKFdpZGdldCopOwogICAgIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChX
aWRnZXQqKTsKICAgICBib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5D
aHJvbWl1bS5jcHAKaW5kZXggNTQzNjVlMjhlZTkwOTJlZGM2MDZhNTU5NWY0OTAwOWNkZTE5YWE3
ZC4uNDRkZjMyMTNmMTNiNTQ1ZGYzODMzNGRlYzYxOTI5NjdkNjEyZjI5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5D
aHJvbWl1bS5jcHAKQEAgLTM2LDYgKzM2LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
aW50IHNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIFBs
YXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERQSSh3aWRnZXQpOworfQorCitpbnQgc2Ny
ZWVuVmVydGljYWxEUEkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtU3Vw
cG9ydDo6c2NyZWVuVmVydGljYWxEUEkod2lkZ2V0KTsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdp
ZGdldCogd2lkZ2V0KQogewogICAgIHJldHVybiBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkRlcHRo
KHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
bGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRm
b3JtU3VwcG9ydC5oCmluZGV4IGM5M2MyYWZiMjcwZjZiMGM4ODg1ODMxYzIwMmQxZjNmMzk3Y2Q5
NjUuLmM4ZGVkNmUyNmJhNzg0YzZlMTYzNzQxZDY2MjhlODU5MzljMzZhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0y
NDAsNiArMjQwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNhbmRib3hFbmFibGVkKCk7
CiAKICAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBpbnQgc2NyZWVuSG9yaXpvbnRhbERQ
SShXaWRnZXQqKTsKKyAgICBzdGF0aWMgaW50IHNjcmVlblZlcnRpY2FsRFBJKFdpZGdldCopOwog
ICAgIHN0YXRpYyBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0Kik7CiAgICAgc3RhdGljIGludCBzY3Jl
ZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKTsKICAgICBzdGF0aWMgYm9vbCBzY3JlZW5Jc01v
bm9jaHJvbWUoV2lkZ2V0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bs
YXRmb3JtU2NyZWVuRWZsLmNwcAppbmRleCAxMzc0OTQ1ZmI4MWRmMDM1NDllYmUzYmQwYWI1MDQ3
NTFlODkxODc1Li5mYWM5NTk3MjM0YWYwOWJkODZmZTJjYjBkOTIwOWNhZGQxZmI0MjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAK
QEAgLTQyLDYgKzQyLDE4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CisgCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdl
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2Ny
ZWVuVmVydGljYWxEUEkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KIAogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAK
aW5kZXggNGUwYjI1ZWJkNjdlNjY0NjEyNDQ1MWE0NjI5OTM2Y2U4ODE2OWRjZS4uNjdkNzdkZTIx
MzZiNTU5NWEwNmVkODc4MTc1Y2ZkZWE3ZGJiYTE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAK
ICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1
ZGUgIldpZGdldC5oIgogCkBAIC02Nyw2ICs2OCwxOCBAQCBzdGF0aWMgR2RrVmlzdWFsKiBnZXRW
aXN1YWwoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGNvbnRhaW5lciA/IGdka193aW5kb3df
Z2V0X3Zpc3VhbChndGtfd2lkZ2V0X2dldF93aW5kb3coY29udGFpbmVyKSkgOiAwOwogfQogCitp
bnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGljYWxEUEkoV2lkZ2V0
KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwog
aW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIEdka1Zpc3VhbCogdmlzdWFs
ID0gZ2V0VmlzdWFsKHdpZGdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXggOTE2ZmM5ZjlmNWY1MjQzYTQ1MDkzMTNhYTVlZGJh
ZmQxOTE0NWM0Ni4uOTA2NTg1NGM2MjIwNzNlNDMwYjYxYTNiYmJlNGNlNjNiNDZlOWQyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpA
QCAtMzAsOSArMzAsMjIgQEAKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcu
aCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGlj
YWxEUEkoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKIHsKICAgICByZXR1cm4gTlNCaXRzUGVyUGl4
ZWxGcm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0aF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAppbmRleCA5MjU1ZTc5
ZmYwZTlmYjQyMDM1YmIyMWY4NzRhMzExMTc0ZDE2MjliLi43YTI2N2ZjNmM4M2UwYWIzMjEyOGNj
YTM0YjUyZDRhNTZjMTZkNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QbGF0Zm9ybVNjcmVlblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
bGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUVdl
YlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CkBAIC00Miw2ICs0MywxOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdl
dCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHNjcmVlbk51bWJlcihXaWRn
ZXQqIHcpCiB7CiAgICAgaWYgKCF3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKaW5kZXggMjFmYTEwZDU0OWVjOTAyZTkwMDYyMzUxNWU5
Mzg5MGRhNDFhOWEzZC4uY2FhZGRlOTQzNjk3YmMwMjA0ZDE3MjdlZTkyMDExNmZlOGIxMGVjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4u
Y3BwCkBAIC0yNywxMSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVNjcmVlbi5oIgogCi0jaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSA8d2luZG93cy5oPgogCkBAIC02NSw2ICs2NiwxOCBAQCBzdGF0aWMgREVWTU9E
RSBkZXZpY2VJbmZvRm9yV2lkZ2V0KFdpZGdldCogd2lkZ2V0KQogICAgIHJldHVybiBkZXZpY2VJ
bmZvOwogfQogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgc2NyZWVuVmVydGlj
YWxEUEkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKwogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIERFVk1P
REUgZGV2aWNlSW5mbyA9IGRldmljZUluZm9Gb3JXaWRnZXQod2lkZ2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAppbmRleCBjYTY4ZjU0MGNkNzdh
MWFjODU2YWQ3NjFjMjVkMTI5NWJlYTEzMWM5Li5hYzkyZTE2NjcwNGZhZjRkYzVkMGYwYTU3YzY1
ZTE1MTg2MGQ1Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTY3JlZW5JbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2Ny
ZWVuSW5mby5oCkBAIC0zNiw2ICszNiwxMiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVj
dCBXZWJTY3JlZW5JbmZvIHsKKyAgICAvLyBUaGUgaG9yaXpvbnRhbCBzY3JlZW4gZHBpLgorICAg
IGludCBob3Jpem9udGFsRFBJOworCisgICAgLy8gVGhlIHZlcnRpY2FsIHNjcmVlbiBkcGkuCisg
ICAgaW50IHZlcnRpY2FsRFBJOworCiAgICAgLy8gVGhlIHNjcmVlbiBkZXB0aCBpbiBiaXRzIHBl
ciBwaXhlbAogICAgIGludCBkZXB0aDsKIApAQCAtNjcsNyArNzMsOSBAQCBzdHJ1Y3QgV2ViU2Ny
ZWVuSW5mbyB7CiAgICAgZG91YmxlIHJlZnJlc2hSYXRlOwogCiAgICAgV2ViU2NyZWVuSW5mbygp
Ci0gICAgICAgIDogZGVwdGgoMCkKKyAgICAgICAgOiBob3Jpem9udGFsRFBJKDApCisgICAgICAg
ICwgdmVydGljYWxEUEkoMCkKKyAgICAgICAgLCBkZXB0aCgwKQogICAgICAgICAsIGRlcHRoUGVy
Q29tcG9uZW50KDApCiAgICAgICAgICwgaXNNb25vY2hyb21lKGZhbHNlKQogICAgICAgICAsIHJl
ZnJlc2hSYXRlKDApIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGxhdGZvcm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3Jt
U3VwcG9ydC5jcHAKaW5kZXggNmViODhmY2Y0ZDQyNjY1MjgzZmY2MTJlZTZjZTQ1MzMxZDYwMDU3
MC4uMDg0NDU1NDM5ZDc2NDFjOGFiMmQwNDYxZDBlMGI5ZTc4Mjc4Yjk5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCkBAIC0xMDUyLDYgKzEw
NTIsMjIgQEAgaW50IFBsYXRmb3JtU3VwcG9ydDo6aGlnaFVzYWdlRGVsdGFNQigpCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4od2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmhpZ2hVc2FnZURl
bHRhTUIoKSk7CiB9CiAKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEUEko
V2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldp
ZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuaG9yaXpvbnRhbERQSTsKK30KKworaW50
IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuVmVydGljYWxEUEkoV2lkZ2V0KiB3aWRnZXQpCit7Cisg
ICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOwor
ICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5z
Y3JlZW5JbmZvKCkudmVydGljYWxEUEk7Cit9CisKIGludCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVl
bkRlcHRoKFdpZGdldCogd2lkZ2V0KQogewogICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0g
dG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbQppbmRleCAyODA1ZjdhOWQwNmFk
NjBlNzBlMzQyZGQxYzY1NjlkYzU1MjJkNWU1Li43NTc4NzFhODNkNzhmOTM4M2VjY2EyNTc1ZjU1
YTJiYTNjNDA0NWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMv
V2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
bWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tCkBAIC03Niw2ICs3NiwxNSBAQCBXZWJTY3JlZW5J
bmZvIFdlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKE5TVmlldyogdmlldykKICAgICBO
U1N0cmluZyAqY29sb3JTcGFjZSA9IE5TQ29sb3JTcGFjZUZyb21EZXB0aChbW05TU2NyZWVuIGRl
ZXBlc3RTY3JlZW5dIGRlcHRoXSk7CiAKICAgICBXZWJTY3JlZW5JbmZvIHJlc3VsdHM7CisKKyAg
ICAvLyBGSVhNRTogQ3VycmVudGx5IE1hYyBzZWVtcyB0byBhbHdheXMgcmVwb3J0IDcyZHBpLiBO
ZWVkIHRvIGZpbmQgYSB3YXkgdG8KKyAgICAvLyByZXBvcnQgdGhlIHRydWUgc2NyZWVuIGRwaS4K
KyAgICBOU1dpbmRvdyogd2luZG93ID0gW3ZpZXcgd2luZG93XTsKKyAgICBOU0RpY3Rpb25hcnkq
IGRldmljZURlc2NyaXB0aW9uID0gW3dpbmRvdyBkZXZpY2VEZXNjcmlwdGlvbl07CisgICAgTlNT
aXplIGRldmljZURQSSA9IFtbZGV2aWNlRGVzY3JpcHRpb24gdmFsdWVGb3JLZXk6TlNEZXZpY2VS
ZXNvbHV0aW9uXSBzaXplVmFsdWVdOworICAgIHJlc3VsdHMuaG9yaXpvbnRhbERQSSA9IChpbnQp
ZGV2aWNlRFBJLndpZHRoOworICAgIHJlc3VsdHMudmVydGljYWxEUEkgPSAoaW50KWRldmljZURQ
SS5oZWlnaHQ7CisKICAgICByZXN1bHRzLmRlcHRoID0KICAgICAgICAgTlNCaXRzUGVyUGl4ZWxG
cm9tRGVwdGgoW1tOU1NjcmVlbiBkZWVwZXN0U2NyZWVuXSBkZXB0aF0pOwogICAgIHJlc3VsdHMu
ZGVwdGhQZXJDb21wb25lbnQgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvd2luL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKaW5kZXggODQxNmFjYzQyYmUyZWZkMGRm
YWI0YWY4ZGMxZTM4NDZkMWFkMTdmMi4uOTI2M2RlYWM3ZWRlNDg4YWVlZjRiMGYzZDg5YTk3YTkz
MmM0OGFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYlNj
cmVlbkluZm9GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy93aW4v
V2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCkBAIC02MCw3ICs2MCwxMSBAQCBXZWJTY3JlZW5JbmZv
IFdlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5JbmZvKEhXTkQgd2luZG93KQogICAgIGRldk1v
ZGUuZG1Ecml2ZXJFeHRyYSA9IDA7CiAgICAgRW51bURpc3BsYXlTZXR0aW5ncyhtb25pdG9ySW5m
by5zekRldmljZSwgRU5VTV9DVVJSRU5UX1NFVFRJTkdTLCAmZGV2TW9kZSk7CiAKKyAgICBIREMg
aGRjID0gR2V0REMoMCk7CisKICAgICBXZWJTY3JlZW5JbmZvIHJlc3VsdHM7CisgICAgcmVzdWx0
cy5ob3Jpem9udGFsRFBJID0gR2V0RGV2aWNlQ2FwcyhoZGMsIExPR1BJWEVMU1gpOworICAgIHJl
c3VsdHMudmVydGljYWxEUEkgPSBHZXREZXZpY2VDYXBzKGhkYywgTE9HUElYRUxTWSk7CiAgICAg
cmVzdWx0cy5kZXB0aCA9IGRldk1vZGUuZG1CaXRzUGVyUGVsOwogICAgIHJlc3VsdHMuZGVwdGhQ
ZXJDb21wb25lbnQgPSBkZXZNb2RlLmRtQml0c1BlclBlbCAvIDM7ICAvLyBBc3N1bWVzIFJHQgog
ICAgIHJlc3VsdHMuaXNNb25vY2hyb21lID0gZGV2TW9kZS5kbUNvbG9yID09IERNQ09MT1JfTU9O
T0NIUk9NRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9XZWJT
Y3JlZW5JbmZvRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2Vi
U2NyZWVuSW5mb0ZhY3RvcnkuY3BwCmluZGV4IDdlMWY5NmVjZTBhODA3NDk2YzAyMjQzZjBhYmMw
YjM5NmZiODQ3OGQuLmI2YWZhNDU4YjRjNmUwZTljNzI5NjhiMTRhNjliNjg1YThjYjY1YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFj
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDExL1dlYlNjcmVlbklu
Zm9GYWN0b3J5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlNjcmVlbkluZm8u
aCIKIAogI2luY2x1ZGUgPFgxMS9YbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTQzLDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBm
dW5jdGlvbiwgYnV0IGl0IGFwcGVhcnMgdG8gcmV0dXJuIHN0YWxlIGRhdGEgYWZ0ZXIgdGhlIHNj
cmVlbiBpcyByZXNpemVkLgogV2ViU2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6c2Ny
ZWVuSW5mbyhEaXNwbGF5KiBkaXNwbGF5LCBpbnQgc2NyZWVuTnVtYmVyKQogeworICAgIGNvbnN0
IGZsb2F0IGluY2hlc1Blck1pbGxpbWV0ZXIgPSAyNS40OwogICAgIC8vIFhEaXNwbGF5V2lkdGgo
KSBhbmQgWERpc3BsYXlIZWlnaHQoKSByZXR1cm4gY2FjaGVkIHZhbHVlcy4gVG8gZW5zdXJlIHRo
YXQKICAgICAvLyB3ZSByZXR1cm4gdGhlIGNvcnJlY3QgZGltZW5zaW9ucyBhZnRlciB0aGUgc2Ny
ZWVuIGlzIHJlc2l6ZWQsIHF1ZXJ5IHRoZQogICAgIC8vIHJvb3Qgd2luZG93J3MgZ2VvbWV0cnkg
ZWFjaCB0aW1lLgpAQCAtNTQsNiArNTYsMTQgQEAgV2ViU2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZv
RmFjdG9yeTo6c2NyZWVuSW5mbyhEaXNwbGF5KiBkaXNwbGF5LCBpbnQgc2NyZWVuTnVtYmUKICAg
ICAgICAgZGlzcGxheSwgcm9vdCwgJnJvb3RSZXQsICZ4LCAmeSwgJndpZHRoLCAmaGVpZ2h0LCAm
Ym9yZGVyLCAmZGVwdGgpOwogCiAgICAgV2ViU2NyZWVuSW5mbyByZXN1bHRzOworICAgIGludCBk
aXNwbGF5V2lkdGggPSBEaXNwbGF5V2lkdGgoZGlzcGxheSwgc2NyZWVuTnVtYmVyKTsKKyAgICBp
bnQgZGlzcGxheVdpZHRoSW5NaWxsaW1ldGVycyA9IERpc3BsYXlXaWR0aE1NKGRpc3BsYXksIHNj
cmVlbk51bWJlcik7CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRFBJID0gc3RhdGljX2Nhc3Q8aW50
PihpbmNoZXNQZXJNaWxsaW1ldGVyICogZGlzcGxheVdpZHRoIC8gZGlzcGxheVdpZHRoSW5NaWxs
aW1ldGVycyk7CisKKyAgICBpbnQgZGlzcGxheUhlaWdodCA9IERpc3BsYXlIZWlnaHQoZGlzcGxh
eSwgc2NyZWVuTnVtYmVyKTsKKyAgICBpbnQgZGlzcGxheUhlaWdodEluTWlsbGltZXRlcnMgPSBE
aXNwbGF5SGVpZ2h0TU0oZGlzcGxheSwgc2NyZWVuTnVtYmVyKTsKKyAgICByZXN1bHRzLnZlcnRp
Y2FsRFBJID0gc3RhdGljX2Nhc3Q8aW50PihpbmNoZXNQZXJNaWxsaW1ldGVyICogZGlzcGxheUhl
aWdodCAvIGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJzKTsKKwogICAgIC8vIEZJWE1FOiBOb3Qg
YWxsIHNjcmVlbnMgdXNlIDhicHAuCiAgICAgcmVzdWx0cy5kZXB0aFBlckNvbXBvbmVudCA9IDg7
CiAgICAgcmVzdWx0cy5kZXB0aCA9IGRlcHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118240</attachid>
            <date>2011-12-07 11:29:06 -0800</date>
            <delta_ts>2012-10-22 09:32:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70556-20111207142904.patch</filename>
            <type>text/plain</type>
            <size>15966</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5ODc0YWEwZjk3MDJm
NTczYzNmZmIyMTcxYjM2MzVhNzFiNzgwMy4uZDBmOGJhMTcwNGFiODE4YzNhZTZlZjU3ZThkNDI2
N2RmZmZkOWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDExLTEyLTA3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUGx1
bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCisKKyAgICAgICAgTWFrZSBEUEkgaW5mb3JtYXRpb24gYWNjZXNzaWJsZSBmcm9t
IFdlYktpdCB0aHJvdWdoCisgICAgICAgIFBsYXRmb3JtU2NyZWVuLiBUaGlzIGlzIHVzZWZ1bCB3
aGVuIG1ha2luZyBzY2FsaW5nIAorICAgICAgICBjb21wdXRhdGlvbnMgb24gdmFyaW91cyBkZXZp
Y2VzIChlLmcuIFZpZXdwb3J0IG1ldGEgdGFnKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMg
RFBJIHBsdW1iaW5nIG9uIENocm9taXVtIFdpbi9NYWMvTGludXgKKyAgICAgICAgcGxhdGZvcm1z
LgorCisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
Ojpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6dmVydGljYWxEUEkp
OgorICAgICAgICAqIHBhZ2UvU2NyZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhvcml6b250YWxEUEkpOgorICAgICAg
ICAoV2ViQ29yZTo6c2NyZWVuVmVydGljYWxEUEkpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVNj
cmVlbkVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRFBJKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNjcmVlblZlcnRpY2FsRFBJKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpv
bnRhbERQSSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERQSSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
c2NyZWVuSG9yaXpvbnRhbERQSSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERQ
SSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzY3JlZW5Ib3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
blZlcnRpY2FsRFBJKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSG9yaXpvbnRhbERQSSk6CisgICAgICAgIChX
ZWJDb3JlOjpzY3JlZW5WZXJ0aWNhbERQSSk6CisKIDIwMTEtMTItMDcgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA1NDIwOTU+IEZv
Y3VzIHJpbmdzIGFyZSBub3QgZHJhd24gYXJvdW5kIHB1c2ggYnV0dG9ucywgcmFkaW8gYnV0dG9u
cyBhbmQgY2hlY2tib3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxMjRkYjAxYmRh
ZGE1MTViODRjYjYxYTlhYmU2YzIzZmUyZjkxNmRmLi5lODg0NmI0NWMzOWVlNTYyNGMwYmQ1Y2Ey
NmMyNTU0NmE5N2FmMjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDExLTEyLTA3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtDaHJvbWl1bV0gUGx1bWIgRFBJIGluZm8gaW50byBQbGF0Zm9ybVNjcmVlbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisgICAgICAgIAorICAgICAgICBNYWtlIERQ
SSBpbmZvcm1hdGlvbiBhY2Nlc3NpYmxlIGZyb20gV2ViS2l0IHRocm91Z2gKKyAgICAgICAgUGxh
dGZvcm1TY3JlZW4uIFRoaXMgaXMgdXNlZnVsIHdoZW4gbWFraW5nIHNjYWxpbmcgCisgICAgICAg
IGNvbXB1dGF0aW9ucyBvbiB2YXJpb3VzIGRldmljZXMgKGUuZy4gVmlld3BvcnQgbWV0YSB0YWcp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBEUEkgcGx1bWJpbmcgb24gQ2hyb21pdW0gV2lu
L01hYy9MaW51eAorICAgICAgICBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2Ny
ZWVuSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvOjpXZWJTY3JlZW5JbmZv
KToKKyAgICAgICAgKiBzcmMvUGxhdGZvcm1TdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpvbnRhbERQSSk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblZlcnRpY2FsRFBJKToKKyAgICAgICAgKiBzcmMvbWFj
L1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZv
RmFjdG9yeTo6c2NyZWVuSW5mbyk6CisgICAgICAgICogc3JjL3dpbi9XZWJTY3JlZW5JbmZvRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm9GYWN0b3J5OjpzY3JlZW5J
bmZvKToKKyAgICAgICAgKiBzcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8pOgorCiAyMDExLTEy
LTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCB0
eXBvIGluIFdlYktpdC5neXAgaW50cm9kdWNlZCBpbiBwcmV2aW91cyBjaGFuZ2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NjcmVlbi5jcHAKaW5kZXggYmRkYzAzMGY5ZWZlYmJmZmYzMDRiZDQ4MTIwNzVjODgxYWY4MTg0
Zi4uZGY4OGZhNGU5Yjg2NTYwOGFiM2IwNzQwZDdhZjRhMDZmNTJlZTc1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2NyZWVuLmNwcApAQCAtNTMsNiArNTMsMjAgQEAgdm9pZCBTY3JlZW46OmRpc2Nvbm5lY3RGcmFt
ZSgpCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKK3Vuc2lnbmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQ
SSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+
dmlldygpKSk7Cit9CisKK3Vuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxEUEkoKSBjb25zdAorewor
ICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihzY3JlZW5WZXJ0aWNhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKK30KKwog
dW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NjcmVlbi5oCmluZGV4IDU3MTZkNDYxZDExMmJlOGQzYWEwYzdiN2ZmZjIwYjM4NTIxZDE0
MDUuLmQwODRkYjc4ODMxODE2ZGJmNGE2YWIxODMyODQ5YjQ2MWY3MDdiNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JlZW4uaApAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZy
YW1lKiBmcmFtZSgpIGNvbnN0OwogICAgICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCisg
ICAgICAgIHVuc2lnbmVkIGhvcml6b250YWxEUEkoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQg
dmVydGljYWxEUEkoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CiAg
ICAgICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGNvbG9yRGVw
dGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCmluZGV4
IDViYjRkMmU5Mjk2ZDNjNTk1NWM5NmM3MGYyOTE2YWQyZDAxZmI4MzUuLmE5YWNiNWRkMGI1MmZm
Yzc5NmM0NTgwYTg5NjYxODc3NDg4NDFmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TY3JlZW4uaApAQCAtNDcsNiArNDcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIFdpZGdldDsKIAorICAgIGludCBzY3JlZW5Ib3Jp
em9udGFsRFBJKFdpZGdldCopOworICAgIGludCBzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqKTsK
ICAgICBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0Kik7CiAgICAgaW50IHNjcmVlbkRlcHRoUGVyQ29t
cG9uZW50KFdpZGdldCopOwogICAgIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3Jl
ZW5DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVNjcmVlbkNocm9taXVtLmNwcAppbmRleCA1NDM2NWUyOGVlOTA5MmVkYzYwNmE1NTk1ZjQ5MDA5
Y2RlMTlhYTdkLi40NGRmMzIxM2YxM2I1NDVkZjM4MzM0ZGVjNjE5Mjk2N2Q2MTJmMjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVNjcmVlbkNocm9taXVtLmNwcApAQCAtMzYsNiArMzYsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBy
ZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5Ib3Jpem9udGFsRFBJKHdpZGdldCk7Cit9CisK
K2ludCBzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICByZXR1cm4gUGxh
dGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERQSSh3aWRnZXQpOworfQorCiBpbnQgc2NyZWVu
RGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2Ny
ZWVuRGVwdGgod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggYzkzYzJhZmIyNzBmNmIwYzg4ODU4MzFjMjAyZDFm
M2YzOTdjZDk2NS4uYzhkZWQ2ZTI2YmE3ODRjNmUxNjM3NDFkNjYyOGU4NTkzOWMzNmE2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0
LmgKQEAgLTI0MCw2ICsyNDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2FuZGJveEVu
YWJsZWQoKTsKIAogICAgIC8vIFNjcmVlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3RhdGljIGludCBzY3JlZW5Ib3Jp
em9udGFsRFBJKFdpZGdldCopOworICAgIHN0YXRpYyBpbnQgc2NyZWVuVmVydGljYWxEUEkoV2lk
Z2V0Kik7CiAgICAgc3RhdGljIGludCBzY3JlZW5EZXB0aChXaWRnZXQqKTsKICAgICBzdGF0aWMg
aW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopOwogICAgIHN0YXRpYyBib29sIHNj
cmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCmluZGV4IDEzNzQ5NDVmYjgxZGYwMzU0OWViZTNi
ZDBhYjUwNDc1MWU4OTE4NzUuLmZhYzk1OTcyMzRhZjA5YmQ4NmZlMmNiMGQ5MjA5Y2FkZDFmYjQy
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVl
bkVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVu
RWZsLmNwcApAQCAtNDIsNiArNDIsMTggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdl
dCogd2lkZ2V0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQogCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRn
ZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1T
Y3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVu
R3RrLmNwcAppbmRleCA0ZTBiMjVlYmQ2N2U2NjQ2MTI0NDUxYTQ2Mjk5MzZjZTg4MTY5ZGNlLi42
N2Q3N2RlMjEzNmI1NTk1YTA2ZWQ4NzgxNzVjZmRlYTdkYmJhMTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKIAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJIb3N0V2luZG93
LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKQEAgLTY3LDYgKzY4LDE4IEBAIHN0YXRpYyBHZGtWaXN1
YWwqIGdldFZpc3VhbChXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gY29udGFpbmVyID8gZ2Rr
X3dpbmRvd19nZXRfdmlzdWFsKGd0a193aWRnZXRfZ2V0X3dpbmRvdyhjb250YWluZXIpKSA6IDA7
CiB9CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3JlZW5WZXJ0aWNhbERQ
SShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgR2RrVmlzdWFs
KiB2aXN1YWwgPSBnZXRWaXN1YWwod2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQppbmRleCA5MTZmYzlmOWY1ZjUyNDNhNDUwOTMx
M2FhNWVkYmFmZDE5MTQ1YzQ2Li45MDY1ODU0YzYyMjA3M2U0MzBiNjFhM2JiYmU0Y2U2M2I0NmU5
ZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tCkBAIC0zMCw5ICszMCwyMiBAQAogI2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIkZy
YW1lVmlldy5oIgogI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitpbnQgc2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3Jl
ZW5WZXJ0aWNhbERQSShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKIGludCBzY3JlZW5EZXB0aChXaWRnZXQqKQogewogICAgIHJldHVybiBOU0Jp
dHNQZXJQaXhlbEZyb21EZXB0aChbW05TU2NyZWVuIGRlZXBlc3RTY3JlZW5dIGRlcHRoXSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCmluZGV4
IDkyNTVlNzlmZjBlOWZiNDIwMzViYjIxZjg3NGEzMTExNzRkMTYyOWIuLjdhMjY3ZmM2YzgzZTBh
YjMyMTI4Y2NhMzRiNTJkNGE1NmMxNmQ2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIb3N0V2luZG93Lmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNs
dWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KQEAgLTQyLDYg
KzQzLDE4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW50IHNjcmVlbkhvcml6b250YWxE
UEkoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworaW50IHNjcmVlblZlcnRpY2FsRFBJKFdpZGdldCogd2lkZ2V0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgc2NyZWVuTnVt
YmVyKFdpZGdldCogdykKIHsKICAgICBpZiAoIXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcAppbmRleCAyMWZhMTBkNTQ5ZWM5MDJlOTAw
NjIzNTE1ZTkzODkwZGE0MWE5YTNkLi5jYWFkZGU5NDM2OTdiYzAyMDRkMTcyN2VlOTIwMTE2ZmU4
YjEwZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1T
Y3JlZW5XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNj
cmVlbldpbi5jcHAKQEAgLTI3LDExICsyNywxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAKLSNpbmNsdWRlICJIb3N0V2luZG93LmgiCi0jaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAKQEAgLTY1LDYgKzY2LDE4IEBAIHN0YXRp
YyBERVZNT0RFIGRldmljZUluZm9Gb3JXaWRnZXQoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJu
IGRldmljZUluZm87CiB9CiAKK2ludCBzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdldCogd2lkZ2V0
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBzY3Jl
ZW5WZXJ0aWNhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAg
ICAgREVWTU9ERSBkZXZpY2VJbmZvID0gZGV2aWNlSW5mb0ZvcldpZGdldCh3aWRnZXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCmluZGV4IGNhNjhm
NTQwY2Q3N2ExYWM4NTZhZDc2MWMyNWQxMjk1YmVhMTMxYzkuLmFjOTJlMTY2NzA0ZmFmNGRjNWQw
ZjBhNTdjNjVlMTUxODYwZDU3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNjcmVlbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTY3JlZW5JbmZvLmgKQEAgLTM2LDYgKzM2LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogc3RydWN0IFdlYlNjcmVlbkluZm8geworICAgIC8vIFRoZSBob3Jpem9udGFsIHNjcmVlbiBk
cGkuCisgICAgaW50IGhvcml6b250YWxEUEk7CisKKyAgICAvLyBUaGUgdmVydGljYWwgc2NyZWVu
IGRwaS4KKyAgICBpbnQgdmVydGljYWxEUEk7CisKICAgICAvLyBUaGUgc2NyZWVuIGRlcHRoIGlu
IGJpdHMgcGVyIHBpeGVsCiAgICAgaW50IGRlcHRoOwogCkBAIC02Nyw3ICs3Myw5IEBAIHN0cnVj
dCBXZWJTY3JlZW5JbmZvIHsKICAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiAKICAgICBXZWJTY3Jl
ZW5JbmZvKCkKLSAgICAgICAgOiBkZXB0aCgwKQorICAgICAgICA6IGhvcml6b250YWxEUEkoMCkK
KyAgICAgICAgLCB2ZXJ0aWNhbERQSSgwKQorICAgICAgICAsIGRlcHRoKDApCiAgICAgICAgICwg
ZGVwdGhQZXJDb21wb25lbnQoMCkKICAgICAgICAgLCBpc01vbm9jaHJvbWUoZmFsc2UpCiAgICAg
ICAgICwgcmVmcmVzaFJhdGUoMCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGxhdGZvcm1TdXBwb3J0LmNwcAppbmRleCA2ZWI4OGZjZjRkNDI2NjUyODNmZjYxMmVlNmNlNDUz
MzFkNjAwNTcwLi4wODQ0NTU0MzlkNzY0MWM4YWIyZDA0NjFkMGUwYjllNzgyNzhiOTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKQEAgLTEw
NTIsNiArMTA1MiwyMiBAQCBpbnQgUGxhdGZvcm1TdXBwb3J0OjpoaWdoVXNhZ2VEZWx0YU1CKCkK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+aGln
aFVzYWdlRGVsdGFNQigpKTsKIH0KIAoraW50IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuSG9yaXpv
bnRhbERQSShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9
IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJl
dHVybiAwOworICAgIHJldHVybiBjbGllbnQtPnNjcmVlbkluZm8oKS5ob3Jpem9udGFsRFBJOwor
fQorCitpbnQgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5WZXJ0aWNhbERQSShXaWRnZXQqIHdpZGdl
dCkKK3sKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdp
ZGdldCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBj
bGllbnQtPnNjcmVlbkluZm8oKS52ZXJ0aWNhbERQSTsKK30KKwogaW50IFBsYXRmb3JtU3VwcG9y
dDo6c2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBj
bGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tCmluZGV4IDI4MDVm
N2E5ZDA2YWQ2MGU3MGUzNDJkZDFjNjU2OWRjNTUyMmQ1ZTUuLmI5ZmRjMTQxY2I3YmQ4Y2MxZGIz
OGM2NTE2NDBiZmFkOWVjZTcyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0KQEAgLTc2LDYgKzc2LDE1IEBAIFdl
YlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oTlNWaWV3KiB2aWV3
KQogICAgIE5TU3RyaW5nICpjb2xvclNwYWNlID0gTlNDb2xvclNwYWNlRnJvbURlcHRoKFtbTlNT
Y3JlZW4gZGVlcGVzdFNjcmVlbl0gZGVwdGhdKTsKIAogICAgIFdlYlNjcmVlbkluZm8gcmVzdWx0
czsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgTWFjIHNlZW1zIHRvIGFsd2F5cyByZXBvcnQg
NzJkcGkuIE5lZWQgdG8gZmluZCBhIHdheSB0bworICAgIC8vIHJlcG9ydCB0aGUgdHJ1ZSBzY3Jl
ZW4gZHBpLgorICAgIE5TV2luZG93KiB3aW5kb3cgPSBbdmlldyB3aW5kb3ddOworICAgIE5TRGlj
dGlvbmFyeSogZGV2aWNlRGVzY3JpcHRpb24gPSBbd2luZG93IGRldmljZURlc2NyaXB0aW9uXTsK
KyAgICBOU1NpemUgZGV2aWNlRFBJID0gW1tkZXZpY2VEZXNjcmlwdGlvbiB2YWx1ZUZvcktleTpO
U0RldmljZVJlc29sdXRpb25dIHNpemVWYWx1ZV07CisgICAgcmVzdWx0cy5ob3Jpem9udGFsRFBJ
ID0gc3RhdGljX2Nhc3Q8aW50PihkZXZpY2VEUEkud2lkdGgpOworICAgIHJlc3VsdHMudmVydGlj
YWxEUEkgPSBzdGF0aWNfY2FzdDxpbnQ+KGRldmljZURQSS5oZWlnaHQpOworCiAgICAgcmVzdWx0
cy5kZXB0aCA9CiAgICAgICAgIE5TQml0c1BlclBpeGVsRnJvbURlcHRoKFtbTlNTY3JlZW4gZGVl
cGVzdFNjcmVlbl0gZGVwdGhdKTsKICAgICByZXN1bHRzLmRlcHRoUGVyQ29tcG9uZW50ID0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJTY3JlZW5JbmZvRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViU2NyZWVuSW5mb0Zh
Y3RvcnkuY3BwCmluZGV4IDg0MTZhY2M0MmJlMmVmZDBkZmFiNGFmOGRjMWUzODQ2ZDFhZDE3ZjIu
LjkyNjNkZWFjN2VkZTQ4OGFlZWY0YjBmM2Q4OWE5N2E5MzJjNDhhZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNw
cApAQCAtNjAsNyArNjAsMTEgQEAgV2ViU2NyZWVuSW5mbyBXZWJTY3JlZW5JbmZvRmFjdG9yeTo6
c2NyZWVuSW5mbyhIV05EIHdpbmRvdykKICAgICBkZXZNb2RlLmRtRHJpdmVyRXh0cmEgPSAwOwog
ICAgIEVudW1EaXNwbGF5U2V0dGluZ3MobW9uaXRvckluZm8uc3pEZXZpY2UsIEVOVU1fQ1VSUkVO
VF9TRVRUSU5HUywgJmRldk1vZGUpOwogCisgICAgSERDIGhkYyA9IEdldERDKDApOworCiAgICAg
V2ViU2NyZWVuSW5mbyByZXN1bHRzOworICAgIHJlc3VsdHMuaG9yaXpvbnRhbERQSSA9IEdldERl
dmljZUNhcHMoaGRjLCBMT0dQSVhFTFNYKTsKKyAgICByZXN1bHRzLnZlcnRpY2FsRFBJID0gR2V0
RGV2aWNlQ2FwcyhoZGMsIExPR1BJWEVMU1kpOwogICAgIHJlc3VsdHMuZGVwdGggPSBkZXZNb2Rl
LmRtQml0c1BlclBlbDsKICAgICByZXN1bHRzLmRlcHRoUGVyQ29tcG9uZW50ID0gZGV2TW9kZS5k
bUJpdHNQZXJQZWwgLyAzOyAgLy8gQXNzdW1lcyBSR0IKICAgICByZXN1bHRzLmlzTW9ub2Nocm9t
ZSA9IGRldk1vZGUuZG1Db2xvciA9PSBETUNPTE9SX01PTk9DSFJPTUU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcApp
bmRleCA3ZTFmOTZlY2UwYTgwNzQ5NmMwMjI0M2YwYWJjMGIzOTZmYjg0NzhkLi5iNmFmYTQ1OGI0
YzZlMGU5YzcyOTY4YjE0YTY5YjY4NWE4Y2I2NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAKICNpbmNsdWRlIDxYMTEvWGxp
Yi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw2
ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gZnVuY3Rpb24sIGJ1dCBpdCBhcHBlYXJz
IHRvIHJldHVybiBzdGFsZSBkYXRhIGFmdGVyIHRoZSBzY3JlZW4gaXMgcmVzaXplZC4KIFdlYlNj
cmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oRGlzcGxheSogZGlzcGxh
eSwgaW50IHNjcmVlbk51bWJlcikKIHsKKyAgICBjb25zdCBmbG9hdCBpbmNoZXNQZXJNaWxsaW1l
dGVyID0gMjUuNDsKICAgICAvLyBYRGlzcGxheVdpZHRoKCkgYW5kIFhEaXNwbGF5SGVpZ2h0KCkg
cmV0dXJuIGNhY2hlZCB2YWx1ZXMuIFRvIGVuc3VyZSB0aGF0CiAgICAgLy8gd2UgcmV0dXJuIHRo
ZSBjb3JyZWN0IGRpbWVuc2lvbnMgYWZ0ZXIgdGhlIHNjcmVlbiBpcyByZXNpemVkLCBxdWVyeSB0
aGUKICAgICAvLyByb290IHdpbmRvdydzIGdlb21ldHJ5IGVhY2ggdGltZS4KQEAgLTU0LDYgKzU2
LDE0IEBAIFdlYlNjcmVlbkluZm8gV2ViU2NyZWVuSW5mb0ZhY3Rvcnk6OnNjcmVlbkluZm8oRGlz
cGxheSogZGlzcGxheSwgaW50IHNjcmVlbk51bWJlCiAgICAgICAgIGRpc3BsYXksIHJvb3QsICZy
b290UmV0LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCwgJmJvcmRlciwgJmRlcHRoKTsKIAogICAg
IFdlYlNjcmVlbkluZm8gcmVzdWx0czsKKyAgICBpbnQgZGlzcGxheVdpZHRoID0gRGlzcGxheVdp
ZHRoKGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAgaW50IGRpc3BsYXlXaWR0aEluTWlsbGlt
ZXRlcnMgPSBEaXNwbGF5V2lkdGhNTShkaXNwbGF5LCBzY3JlZW5OdW1iZXIpOworICAgIHJlc3Vs
dHMuaG9yaXpvbnRhbERQSSA9IHN0YXRpY19jYXN0PGludD4oaW5jaGVzUGVyTWlsbGltZXRlciAq
IGRpc3BsYXlXaWR0aCAvIGRpc3BsYXlXaWR0aEluTWlsbGltZXRlcnMpOworCisgICAgaW50IGRp
c3BsYXlIZWlnaHQgPSBEaXNwbGF5SGVpZ2h0KGRpc3BsYXksIHNjcmVlbk51bWJlcik7CisgICAg
aW50IGRpc3BsYXlIZWlnaHRJbk1pbGxpbWV0ZXJzID0gRGlzcGxheUhlaWdodE1NKGRpc3BsYXks
IHNjcmVlbk51bWJlcik7CisgICAgcmVzdWx0cy52ZXJ0aWNhbERQSSA9IHN0YXRpY19jYXN0PGlu
dD4oaW5jaGVzUGVyTWlsbGltZXRlciAqIGRpc3BsYXlIZWlnaHQgLyBkaXNwbGF5SGVpZ2h0SW5N
aWxsaW1ldGVycyk7CisKICAgICAvLyBGSVhNRTogTm90IGFsbCBzY3JlZW5zIHVzZSA4YnBwLgog
ICAgIHJlc3VsdHMuZGVwdGhQZXJDb21wb25lbnQgPSA4OwogICAgIHJlc3VsdHMuZGVwdGggPSBk
ZXB0aDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>