<?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>46550</bug_id>
          
          <creation_ts>2010-09-24 21:25:32 -0700</creation_ts>
          <short_desc>[chromium] Changes to consolidate plugin zoom</short_desc>
          <delta_ts>2010-10-14 17:12:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284937</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-24 21:25:32 -0700</bug_when>
    <thetext>[chromium] Changes to consolidate plugin zoom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284938</commentid>
    <comment_count>1</comment_count>
      <attachid>68807</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-24 21:27:49 -0700</bug_when>
    <thetext>Created attachment 68807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284939</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-24 21:34:15 -0700</bug_when>
    <thetext>Attachment 68807 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebViewImpl.cpp:1570:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebKit/chromium/src/WebViewImpl.cpp:1571:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/chromium/src/WebViewImpl.cpp:1574:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/chromium/src/WebViewImpl.cpp:1575:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284940</commentid>
    <comment_count>3</comment_count>
      <attachid>68808</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-24 21:38:34 -0700</bug_when>
    <thetext>Created attachment 68808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285741</commentid>
    <comment_count>4</comment_count>
      <attachid>68957</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-27 14:18:18 -0700</bug_when>
    <thetext>Created attachment 68957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285884</commentid>
    <comment_count>5</comment_count>
      <attachid>68957</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-09-27 16:45:30 -0700</bug_when>
    <thetext>Comment on attachment 68957
Patch

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

Due to WebKit/chromium/public/* changes, the needs Darin&apos;s review but I noticed something when I glanced at it.

&gt; WebKit/chromium/src/WebViewImpl.cpp:1532
&gt; +    if (zoomLevel &lt; m_minimumZoomLevel) {

fyi, no {} for single line statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285946</commentid>
    <comment_count>6</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-27 17:30:40 -0700</bug_when>
    <thetext>thanks, fixing now.  btw the lint checker didn&apos;t catch this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285947</commentid>
    <comment_count>7</comment_count>
      <attachid>68998</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-27 17:31:06 -0700</bug_when>
    <thetext>Created attachment 68998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286534</commentid>
    <comment_count>8</comment_count>
      <attachid>68998</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-28 14:30:27 -0700</bug_when>
    <thetext>Comment on attachment 68998
Patch

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

&gt; WebKit/chromium/public/WebView.h:60
&gt; +    static const double textSizeMultiplierRatio;

these will break the multi-dll build.  you need to use WEBKIT_API to export these.

&gt; WebKit/chromium/public/WebView.h:195
&gt; +    virtual void fullFramePluginZoomLevelChanged(double zoomLevel) = 0;

this function seems pretty awkward and specialized to live on WebView.

&gt; WebKit/chromium/public/WebView.h:197
&gt; +    // Helper functions to conver between zoom level and zoom factor.  zoom

conver -&gt; convert

&gt; WebKit/chromium/public/WebView.h:199
&gt; +    static double zoomLevelToZoomFactor(double zoomLevel);

these break the multi-dll build.  requires WEBKIT_API tags

&gt; WebKit/chromium/public/WebViewClient.h:352
&gt; +    // Zoom ----------------------------------------------------------------

add new line below here

&gt; WebKit/chromium/public/WebViewClient.h:355
&gt; +    virtual void zoomLimitsChanged(double minimumLevel, double maximumLevel) { }

add new line below here

&gt; WebKit/chromium/src/WebViewImpl.cpp:1566
&gt;      m_zoomLevel = zoomLevel;

this doesn&apos;t respect the min/max zoom levels</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286563</commentid>
    <comment_count>9</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-28 15:05:28 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 68998 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68998&amp;action=review
&gt; 
&gt; &gt; WebKit/chromium/public/WebView.h:60
&gt; &gt; +    static const double textSizeMultiplierRatio;
&gt; 
&gt; these will break the multi-dll build.  you need to use WEBKIT_API to export these.
&gt; 
&gt; &gt; WebKit/chromium/public/WebView.h:195
&gt; &gt; +    virtual void fullFramePluginZoomLevelChanged(double zoomLevel) = 0;
&gt; 
&gt; this function seems pretty awkward and specialized to live on WebView.

Any suggestion where to put it?  The plugin needs to inform the WebView that the zoom level that it thinks is in use has changed.

&gt; 
&gt; &gt; WebKit/chromium/public/WebView.h:197
&gt; &gt; +    // Helper functions to conver between zoom level and zoom factor.  zoom
&gt; 
&gt; conver -&gt; convert
&gt; 
&gt; &gt; WebKit/chromium/public/WebView.h:199
&gt; &gt; +    static double zoomLevelToZoomFactor(double zoomLevel);
&gt; 
&gt; these break the multi-dll build.  requires WEBKIT_API tags
&gt; 
&gt; &gt; WebKit/chromium/public/WebViewClient.h:352
&gt; &gt; +    // Zoom ----------------------------------------------------------------
&gt; 
&gt; add new line below here
&gt; 
&gt; &gt; WebKit/chromium/public/WebViewClient.h:355
&gt; &gt; +    virtual void zoomLimitsChanged(double minimumLevel, double maximumLevel) { }
&gt; 
&gt; add new line below here
&gt; 
&gt; &gt; WebKit/chromium/src/WebViewImpl.cpp:1566
&gt; &gt;      m_zoomLevel = zoomLevel;
&gt; 
&gt; this doesn&apos;t respect the min/max zoom levels</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286597</commentid>
    <comment_count>10</comment_count>
      <attachid>69122</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-28 15:56:13 -0700</bug_when>
    <thetext>Created attachment 69122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287169</commentid>
    <comment_count>11</comment_count>
      <attachid>69261</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-29 15:36:30 -0700</bug_when>
    <thetext>Created attachment 69261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287172</commentid>
    <comment_count>12</comment_count>
      <attachid>69263</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-29 15:41:44 -0700</bug_when>
    <thetext>Created attachment 69263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287176</commentid>
    <comment_count>13</comment_count>
      <attachid>69265</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-29 15:51:36 -0700</bug_when>
    <thetext>Created attachment 69265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287178</commentid>
    <comment_count>14</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-29 15:52:15 -0700</bug_when>
    <thetext>Darin: the patch has been updated per your suggestion, moving fullFramePluginZoomLevelChanged to WebViewImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287761</commentid>
    <comment_count>15</comment_count>
      <attachid>69265</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-30 13:04:46 -0700</bug_when>
    <thetext>Comment on attachment 69265
Patch

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

&gt; WebKit/chromium/public/WebPluginContainer.h:82
&gt; +    virtual void zoomChanged(double factor) = 0;

can this also pass zoom level?  maybe name zoomLevelChanged

&gt; WebKit/chromium/src/WebPluginContainerImpl.cpp:354
&gt; +

nit: extra new line

R=me with those changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287770</commentid>
    <comment_count>16</comment_count>
      <attachid>69372</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-09-30 13:30:56 -0700</bug_when>
    <thetext>Created attachment 69372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288092</commentid>
    <comment_count>17</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-10-01 00:32:40 -0700</bug_when>
    <thetext>Committed r68869: &lt;http://trac.webkit.org/changeset/68869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294478</commentid>
    <comment_count>18</comment_count>
      <attachid>69372</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-14 17:12:18 -0700</bug_when>
    <thetext>Comment on attachment 69372
Patch

Based on a comment in the bug, this was committed so I&apos;m clearing the r?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68807</attachid>
            <date>2010-09-24 21:27:49 -0700</date>
            <delta_ts>2010-09-24 21:38:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100924212726.patch</filename>
            <type>text/plain</type>
            <size>11312</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luOjptaW5pbXVtWm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjptYXhp
bXVtWm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpv
b21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6em9vbUxl
dmVsQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBU
b255IENoYW5nLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShyZXZpc2lvbiA2
ODMyNikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk5LDcgKzk5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxl
Y3Rpb25Bc01hcmt1cCgpIGNvbnN0IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKICAgICAvLyBV
c2VkIGZvciB6b29taW5nIG9mIGZ1bGwgcGFnZSBwbHVnaW5zLgotICAgIHZpcnR1YWwgdm9pZCBz
ZXRab29tRmFjdG9yKGZsb2F0IHNjYWxlLCBib29sIHRleHRPbmx5KSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Wm9vbUxldmVsKGRvdWJsZSBsZXZlbCwgYm9vbCB0ZXh0T25seSkgeyB9CisgICAg
Ly8gR2V0IHRoZSBtaW5pbXVtL21heGltdW0gem9vbSBsZXZlbC4gIElmIG5vbmUgZXhpc3QsIHJl
dHVybiAwLgorICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1ab29tTGV2ZWwoKSB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBkb3VibGUgbWF4aW11bVpvb21MZXZlbCgpIHsgcmV0dXJuIDA7IH0K
IAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4gIFRo
ZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0aGF0
IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNjgzMjYpCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiAr
MzYsOSBAQAogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgog
CisvLyBGSVhNRShqYW0pOiB0YWtlIHRoaXMgb3V0IGFmdGVyIENocm9tZSBpcyB1cGRhdGVkCisj
ZGVmaW5lIFpPT01fTEVWRUxfSVNfRE9VQkxFCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwpAQCAtNTQsNiArNTcsMTAgQEAgc3RydWN0IFdlYlBv
aW50OwogCiBjbGFzcyBXZWJWaWV3IDogcHVibGljIFdlYldpZGdldCB7CiBwdWJsaWM6CisgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbzsKKyAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllcjsKKyAgICBzdGF0aWMgY29uc3QgZG91
YmxlIG1heFRleHRTaXplTXVsdGlwbGllcjsKKwogICAgIC8vIENvbnRyb2xzIHRoZSB0aW1lIHRo
YXQgdXNlciBzY3JpcHRzIGluamVjdGVkIGludG8gdGhlIGRvY3VtZW50IHJ1bi4KICAgICBlbnVt
IFVzZXJTY3JpcHRJbmplY3RBdCB7CiAgICAgICAgIFVzZXJTY3JpcHRJbmplY3RBdERvY3VtZW50
U3RhcnQsCkBAIC0xNjIsOCArMTY5LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdGhl
IGN1cnJlbnQgem9vbSBsZXZlbC4gIDAgaXMgIm9yaWdpbmFsIHNpemUiLCBhbmQgZWFjaCBpbmNy
ZW1lbnQKICAgICAvLyBhYm92ZSBvciBiZWxvdyByZXByZXNlbnRzIHpvb21pbmcgMjAlIGxhcmdl
ciBvciBzbWFsbGVyIHRvIGxpbWl0cyBvZiAzMDAlCi0gICAgLy8gYW5kIDUwJSBvZiBvcmlnaW5h
bCBzaXplLCByZXNwZWN0aXZlbHkuCi0gICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCkgPSAwOwor
ICAgIC8vIGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5LiAgT25seSBwbHVn
aW5zIHVzZSBub24td2hvbGUKKyAgICAvLyBudW1iZXJzLCBzaW5jZSB0aGV5IG1pZ2h0IGNob29z
ZSB0byBoYXZlIHNwZWNpZmljIHpvb20gbGV2ZWwgc28gdGhhdAorICAgIC8vIGZpeGVkLXdpZHRo
IGNvbnRlbnQgaXMgZml0LXRvLXBhZ2Utd2lkdGgsIGZvciBleGFtcGxlLgorICAgIHZpcnR1YWwg
ZG91YmxlIHpvb21MZXZlbCgpID0gMDsKIAogICAgIC8vIENoYW5nZXMgdGhlIHpvb20gbGV2ZWwg
dG8gdGhlIHNwZWNpZmllZCBsZXZlbCwgY2xhbXBpbmcgYXQgdGhlIGxpbWl0cwogICAgIC8vIG5v
dGVkIGFib3ZlLCBhbmQgcmV0dXJucyB0aGUgY3VycmVudCB6b29tIGxldmVsIGFmdGVyIGFwcGx5
aW5nIHRoZQpAQCAtMTczLDcgKzE4MiwxMyBAQCBwdWJsaWM6CiAgICAgLy8gcGFnZSB3aWxsIGJl
IHpvb21lZC4gWW91IGNhbiBvbmx5IGhhdmUgZWl0aGVyIHRleHQgem9vbSBvciBmdWxsIHBhZ2Ug
em9vbQogICAgIC8vIGF0IG9uZSB0aW1lLiAgQ2hhbmdpbmcgdGhlIG1vZGUgd2hpbGUgdGhlIHBh
Z2UgaXMgem9vbWVkIHdpbGwgaGF2ZSBvZGQKICAgICAvLyBlZmZlY3RzLgotICAgIHZpcnR1YWwg
aW50IHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKSA9IDA7CisgICAg
dmlydHVhbCBkb3VibGUgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGRvdWJsZSB6b29tTGV2
ZWwpID0gMDsKKworICAgIC8vIENhbGxlZCBieSBhIGZ1bGwgZnJhbWUgcGx1Z2luIGluc2lkZSB0
aGlzIHZpZXcgdG8gaW5mb3JtIGl0IHRoYXQgaXRzCisgICAgLy8gem9vbSBmYWN0b3IgaGFzIGJl
ZW4gdXBkYXRlZC4gIFRoZSBwbHVnaW4gc2hvdWxkIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uCisg
ICAgLy8gaWYgdGhlIHpvb20gY2hhbmdlIHdhcyB0cmlnZ2VyZWQgYnkgdGhlIGJyb3dzZXIsIGl0
J3Mgb25seSBuZWVkZWQgaW4gY2FzZQorICAgIC8vIGEgcGx1Z2luIGNhbiB1cGRhdGUgaXRzIG93
biB6b29tLCBzYXkgYmVjYXVzZSBvZiBpdHMgb3duIFVJLgorICAgIHZpcnR1YWwgdm9pZCBmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSBmYWN0b3IpID0gMDsKIAogCiAgICAg
Ly8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDYgKzM0OCwxNSBAQCBwdWJsaWM6CiAgICAgLy8g
QWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGRldmljZSBvcmllbnRhdGlvbiBzZXJ2aWNlcy4K
ICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlv
bkNsaWVudCgpIHsgcmV0dXJuIDA7IH0KIAorCisgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8g
SW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB6b29tIGxldmVscyBmb3IgdGhpcyBmcmFtZSBo
YXZlIGNoYW5nZWQgZnJvbQorICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAgICB2aXJ0dWFs
IHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1pbmltdW1MZXZlbCwgZG91YmxlIG1heGlt
dW1MZXZlbCkgeyB9CisgICAgLy8gSW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB6b29tIGxl
dmVsIGhhcyBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIGFuCisgICAgLy8gYWN0aW9uIHRoYXQgd2Fz
bid0IGluaXRpYXRlZCBieSB0aGUgY2xpZW50LgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGV2ZWxD
aGFuZ2VkKCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlld0NsaWVudCgpIHsgfQogfTsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJ
KHJldmlzaW9uIDY4MzI2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDExLDEyICsxNDExLDEzIEBAIFBhc3NSZWZQ
dHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAgICBpZiAoIXdlYlBsdWdpbi0+aW5p
dGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGJvb2wg
em9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKS0+em9vbVRleHRPbmx5KCk7Ci0g
ICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/IG1fd2ViRnJhbWUtPmZyYW1lKCkt
PnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlWm9vbUZhY3Rvcigp
OwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAgICAgLy8gVGhlcmUncyBhIHNhdmVk
IHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91dCBpdCBzaW5jZQotICAgICAgICAv
LyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxsZWQgYmVmb3JlIHRoZSBwbHVnaW4g
d2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9y
LCB6b29tVGV4dE9ubHkpOworCisgICAgaWYgKG1fd2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50
KCktPmlzUGx1Z2luRG9jdW1lbnQoKSkgeworICAgICAgLy8gUmVzZXQgdGhlIHpvb20gbGV2ZWws
IHNpbmNlIHdlIGRvbid0IHdhbnQgdGhlIGZ1bGwtcGFnZSBwbHVnaW4gdG8gdXNlCisgICAgICAv
LyBzYXZlZCB6b29tIHNldHRpbmdzLgorICAgICAgbV93ZWJGcmFtZS0+dmlld0ltcGwoKS0+ZnVs
bEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZCgwKTsKKyAgICAgICAgbV93ZWJGcmFtZS0+dmll
d0ltcGwoKS0+Y2xpZW50KCktPnpvb21MaW1pdHNDaGFuZ2VkKAorICAgICAgICAgICAgd2ViUGx1
Z2luLT5taW5pbXVtWm9vbUxldmVsKCksIHdlYlBsdWdpbi0+bWF4aW11bVpvb21MZXZlbCgpKTsK
ICAgICB9CiAKICAgICAvLyBUaGUgZWxlbWVudCBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCBkdXJp
bmcgcGx1Z2luIGluaXRpYWxpemF0aW9uIQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAJKHJldmlzaW9uIDY4MzI2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw5ICsxNDMsMTAgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAvLyB6b29tcyB0ZXh0IGluIG9yIG91dCAoaWUuLCBjaGFuZ2UgYnkgMjAlKS4gIFRoZSBt
aW4gYW5kIG1heCB2YWx1ZXMgbGltaXQKIC8vIHRleHQgem9vbSB0byBoYWxmIGFuZCAzeCB0aGUg
b3JpZ2luYWwgdGV4dCBzaXplLiAgVGhlc2UgdGhyZWUgdmFsdWVzIG1hdGNoCiAvLyB0aG9zZSBp
biBBcHBsZSdzIHBvcnQgaW4gV2ViS2l0L1dlYktpdC9XZWJWaWV3L1dlYlZpZXcubW0KLXN0YXRp
YyBjb25zdCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW8gPSAxLjI7Ci1zdGF0aWMgY29u
c3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllciA9IDAuNTsKLXN0YXRpYyBjb25zdCBkb3Vi
bGUgbWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworY29uc3QgZG91YmxlIFdlYlZpZXc6OnRl
eHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4yOworY29uc3QgZG91YmxlIFdlYlZpZXc6Om1pblRl
eHRTaXplTXVsdGlwbGllciA9IDAuNTsKK2NvbnN0IGRvdWJsZSBXZWJWaWV3OjptYXhUZXh0U2l6
ZU11bHRpcGxpZXIgPSAzLjA7CisKIAogLy8gVGhlIGdyb3VwIG5hbWUgaWRlbnRpZmllcyBhIG5h
bWVzcGFjZSBvZiBwYWdlcy4gIFBhZ2UgZ3JvdXAgaXMgdXNlZCBvbiBPU1gKIC8vIGZvciBzb21l
IHByb2dyYW1zIHRoYXQgdXNlIEhUTUwgdmlld3MgdG8gZGlzcGxheSB0aGluZ3MgdGhhdCBkb24n
dCBzZWVtIGxpa2UKQEAgLTE1MjAsMzYgKzE1MjEsNTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y2xl
YXJGb2N1c2VkTm9kZSgpCiAgICAgfQogfQogCi1pbnQgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgp
Citkb3VibGUgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgpCiB7CiAgICAgcmV0dXJuIG1fem9vbUxl
dmVsOwogfQogCi1pbnQgV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBp
bnQgem9vbUxldmVsKQorZG91YmxlIFdlYlZpZXdJbXBsOjpzZXRab29tTGV2ZWwoYm9vbCB0ZXh0
T25seSwgZG91YmxlIHpvb21MZXZlbCkKIHsKLSAgICBmbG9hdCB6b29tRmFjdG9yID0gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KAotICAgICAgICBzdGQ6Om1heChzdGQ6Om1pbihzdGQ6OnBvdyh0ZXh0U2l6
ZU11bHRpcGxpZXJSYXRpbywgem9vbUxldmVsKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
bWF4VGV4dFNpemVNdWx0aXBsaWVyKSwKLSAgICAgICAgICAgICAgICAgbWluVGV4dFNpemVNdWx0
aXBsaWVyKSk7CiAgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpOwor
ICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IFdlYkZyYW1lSW1w
bDo6cGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKGZyYW1lKTsKIAotICAgIGZsb2F0IG9sZFpvb21G
YWN0b3IgPSBtX3pvb21UZXh0T25seSA/IGZyYW1lLT50ZXh0Wm9vbUZhY3RvcigpIDogZnJhbWUt
PnBhZ2Vab29tRmFjdG9yKCk7CisgICAgbV96b29tVGV4dE9ubHkgPSB0ZXh0T25seTsKIAotICAg
IGlmICh0ZXh0T25seSkKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMo
MSwgem9vbUZhY3Rvcik7Ci0gICAgZWxzZQotICAgICAgICBmcmFtZS0+c2V0UGFnZUFuZFRleHRa
b29tRmFjdG9ycyh6b29tRmFjdG9yLCAxKTsKKyAgICBpZiAocGx1Z2luQ29udGFpbmVyKSB7Cisg
ICAgICAgIGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsID0gcGx1Z2luQ29udGFpbmVyLT5wbHVnaW4o
KS0+bWluaW11bVpvb21MZXZlbCgpOworICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCA9
IHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPm1heGltdW1ab29tTGV2ZWwoKTsKKyAgICAgICAg
aWYgKG1pbmltdW1ab29tTGV2ZWwgJiYgem9vbUxldmVsIDwgbWluaW11bVpvb21MZXZlbCkgewor
ICAgICAgICAgICAgbV96b29tTGV2ZWwgPSBtaW5pbXVtWm9vbUxldmVsOworICAgICAgICB9IGVs
c2UgaWYgKG1heGltdW1ab29tTGV2ZWwgJiYgem9vbUxldmVsID4gbWF4aW11bVpvb21MZXZlbCkg
eworICAgICAgICAgICAgbV96b29tTGV2ZWwgPSBtYXhpbXVtWm9vbUxldmVsOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbV96b29tTGV2ZWwgPSB6b29tTGV2ZWw7CisgICAgICAgIH0K
IAotICAgIGlmIChvbGRab29tRmFjdG9yICE9IHpvb21GYWN0b3IgfHwgdGV4dE9ubHkgIT0gbV96
b29tVGV4dE9ubHkpIHsKLSAgICAgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29u
dGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUpOwot
ICAgICAgICBpZiAocGx1Z2luQ29udGFpbmVyKQotICAgICAgICAgICAgcGx1Z2luQ29udGFpbmVy
LT5wbHVnaW4oKS0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9yLCB0ZXh0T25seSk7CisgICAgICAg
IHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbChtX3pvb21MZXZlbCwgdGV4
dE9ubHkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSB6b29tRmFjdG9yID0KKyAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpwb3codGV4dFNpemVNdWx0aXBsaWVyUmF0
aW8sIHpvb21MZXZlbCkpOworICAgICAgICBpZiAoem9vbUZhY3RvciA8IG1pblRleHRTaXplTXVs
dGlwbGllcikgeworICAgICAgICAgICAgem9vbUZhY3RvciA9IG1pblRleHRTaXplTXVsdGlwbGll
cjsKKyAgICAgICAgICAgIC8vIFNpbmNlIGZhY3RvciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2co
ZmFjdG9yKSAvIGxvZygxLjIpCisgICAgICAgICAgICBtX3pvb21MZXZlbCA9IGxvZyh6b29tRmFj
dG9yKSAvIGxvZyh0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyk7CisgICAgICAgIH0gZWxzZSBpZiAo
em9vbUZhY3RvciA+IG1heFRleHRTaXplTXVsdGlwbGllcikgeworICAgICAgICAgICAgem9vbUZh
Y3RvciA9IG1heFRleHRTaXplTXVsdGlwbGllcjsKKyAgICAgICAgICAgIG1fem9vbUxldmVsID0g
bG9nKHpvb21GYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIG1fem9vbUxldmVsID0gem9vbUxldmVsOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHRleHRPbmx5KQorICAgICAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRU
ZXh0Wm9vbUZhY3RvcnMoMSwgem9vbUZhY3Rvcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKHpvb21GYWN0b3IsIDEpOwogICAgIH0K
KyAgICByZXR1cm4gbV96b29tTGV2ZWw7Cit9CiAKLSAgICBtX3pvb21MZXZlbCA9IHpvb21MZXZl
bDsKLSAgICBtX3pvb21UZXh0T25seSA9IHRleHRPbmx5Owordm9pZCBXZWJWaWV3SW1wbDo6ZnVs
bEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZChkb3VibGUgem9vbUxldmVsKSB7CisgIGlmICh6
b29tTGV2ZWwgPT0gbV96b29tTGV2ZWwpCisgICAgcmV0dXJuOwogCi0gICAgcmV0dXJuIG1fem9v
bUxldmVsOworICBtX3pvb21MZXZlbCA9IHpvb21MZXZlbDsKKyAgbV9jbGllbnQtPnpvb21MZXZl
bENoYW5nZWQoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVyQWN0
aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA2ODMyNikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDggKzEzMiw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKFdlYkZyYW1lKiBmcmFtZSk7CiAgICAg
dmlydHVhbCB2b2lkIHNldEluaXRpYWxGb2N1cyhib29sIHJldmVyc2UpOwogICAgIHZpcnR1YWwg
dm9pZCBjbGVhckZvY3VzZWROb2RlKCk7Ci0gICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCk7Ci0g
ICAgdmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwp
OworICAgIHZpcnR1YWwgZG91YmxlIHpvb21MZXZlbCgpOworICAgIHZpcnR1YWwgZG91YmxlIHNl
dFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZChkb3VibGUgem9vbUxldmVsKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKAogICAgICAgICBjb25z
dCBXZWJNZWRpYVBsYXllckFjdGlvbiYgYWN0aW9uLAogICAgICAgICBjb25zdCBXZWJQb2ludCYg
bG9jYXRpb24pOwpAQCAtNDQwLDcgKzQ0MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBLZWVwcyB0
cmFjayBvZiB0aGUgY3VycmVudCB6b29tIGxldmVsLiAwIG1lYW5zIG5vIHpvb20sIHBvc2l0aXZl
IG51bWJlcnMKICAgICAvLyBtZWFuIHpvb20gaW4sIG5lZ2F0aXZlIG51bWJlcnMgbWVhbiB6b29t
IG91dC4KLSAgICBpbnQgbV96b29tTGV2ZWw7CisgICAgZG91YmxlIG1fem9vbUxldmVsOwogCiAg
ICAgYm9vbCBtX3pvb21UZXh0T25seTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68808</attachid>
            <date>2010-09-24 21:38:34 -0700</date>
            <delta_ts>2010-09-27 14:18:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100924213811.patch</filename>
            <type>text/plain</type>
            <size>11325</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luOjptaW5pbXVtWm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjptYXhp
bXVtWm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpv
b21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6em9vbUxl
dmVsQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBU
b255IENoYW5nLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShyZXZpc2lvbiA2
ODMyNikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk5LDcgKzk5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxl
Y3Rpb25Bc01hcmt1cCgpIGNvbnN0IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKICAgICAvLyBV
c2VkIGZvciB6b29taW5nIG9mIGZ1bGwgcGFnZSBwbHVnaW5zLgotICAgIHZpcnR1YWwgdm9pZCBz
ZXRab29tRmFjdG9yKGZsb2F0IHNjYWxlLCBib29sIHRleHRPbmx5KSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Wm9vbUxldmVsKGRvdWJsZSBsZXZlbCwgYm9vbCB0ZXh0T25seSkgeyB9CisgICAg
Ly8gR2V0IHRoZSBtaW5pbXVtL21heGltdW0gem9vbSBsZXZlbC4gIElmIG5vbmUgZXhpc3QsIHJl
dHVybiAwLgorICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1ab29tTGV2ZWwoKSB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBkb3VibGUgbWF4aW11bVpvb21MZXZlbCgpIHsgcmV0dXJuIDA7IH0K
IAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4gIFRo
ZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0aGF0
IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNjgzMjYpCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiAr
MzYsOSBAQAogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgog
CisvLyBGSVhNRShqYW0pOiB0YWtlIHRoaXMgb3V0IGFmdGVyIENocm9tZSBpcyB1cGRhdGVkCisj
ZGVmaW5lIFpPT01fTEVWRUxfSVNfRE9VQkxFCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwpAQCAtNTQsNiArNTcsMTAgQEAgc3RydWN0IFdlYlBv
aW50OwogCiBjbGFzcyBXZWJWaWV3IDogcHVibGljIFdlYldpZGdldCB7CiBwdWJsaWM6CisgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbzsKKyAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllcjsKKyAgICBzdGF0aWMgY29uc3QgZG91
YmxlIG1heFRleHRTaXplTXVsdGlwbGllcjsKKwogICAgIC8vIENvbnRyb2xzIHRoZSB0aW1lIHRo
YXQgdXNlciBzY3JpcHRzIGluamVjdGVkIGludG8gdGhlIGRvY3VtZW50IHJ1bi4KICAgICBlbnVt
IFVzZXJTY3JpcHRJbmplY3RBdCB7CiAgICAgICAgIFVzZXJTY3JpcHRJbmplY3RBdERvY3VtZW50
U3RhcnQsCkBAIC0xNjIsOCArMTY5LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdGhl
IGN1cnJlbnQgem9vbSBsZXZlbC4gIDAgaXMgIm9yaWdpbmFsIHNpemUiLCBhbmQgZWFjaCBpbmNy
ZW1lbnQKICAgICAvLyBhYm92ZSBvciBiZWxvdyByZXByZXNlbnRzIHpvb21pbmcgMjAlIGxhcmdl
ciBvciBzbWFsbGVyIHRvIGxpbWl0cyBvZiAzMDAlCi0gICAgLy8gYW5kIDUwJSBvZiBvcmlnaW5h
bCBzaXplLCByZXNwZWN0aXZlbHkuCi0gICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCkgPSAwOwor
ICAgIC8vIGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5LiAgT25seSBwbHVn
aW5zIHVzZSBub24td2hvbGUKKyAgICAvLyBudW1iZXJzLCBzaW5jZSB0aGV5IG1pZ2h0IGNob29z
ZSB0byBoYXZlIHNwZWNpZmljIHpvb20gbGV2ZWwgc28gdGhhdAorICAgIC8vIGZpeGVkLXdpZHRo
IGNvbnRlbnQgaXMgZml0LXRvLXBhZ2Utd2lkdGgsIGZvciBleGFtcGxlLgorICAgIHZpcnR1YWwg
ZG91YmxlIHpvb21MZXZlbCgpID0gMDsKIAogICAgIC8vIENoYW5nZXMgdGhlIHpvb20gbGV2ZWwg
dG8gdGhlIHNwZWNpZmllZCBsZXZlbCwgY2xhbXBpbmcgYXQgdGhlIGxpbWl0cwogICAgIC8vIG5v
dGVkIGFib3ZlLCBhbmQgcmV0dXJucyB0aGUgY3VycmVudCB6b29tIGxldmVsIGFmdGVyIGFwcGx5
aW5nIHRoZQpAQCAtMTczLDcgKzE4MiwxMyBAQCBwdWJsaWM6CiAgICAgLy8gcGFnZSB3aWxsIGJl
IHpvb21lZC4gWW91IGNhbiBvbmx5IGhhdmUgZWl0aGVyIHRleHQgem9vbSBvciBmdWxsIHBhZ2Ug
em9vbQogICAgIC8vIGF0IG9uZSB0aW1lLiAgQ2hhbmdpbmcgdGhlIG1vZGUgd2hpbGUgdGhlIHBh
Z2UgaXMgem9vbWVkIHdpbGwgaGF2ZSBvZGQKICAgICAvLyBlZmZlY3RzLgotICAgIHZpcnR1YWwg
aW50IHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKSA9IDA7CisgICAg
dmlydHVhbCBkb3VibGUgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGRvdWJsZSB6b29tTGV2
ZWwpID0gMDsKKworICAgIC8vIENhbGxlZCBieSBhIGZ1bGwgZnJhbWUgcGx1Z2luIGluc2lkZSB0
aGlzIHZpZXcgdG8gaW5mb3JtIGl0IHRoYXQgaXRzCisgICAgLy8gem9vbSBsZXZlbCBoYXMgYmVl
biB1cGRhdGVkLiAgVGhlIHBsdWdpbiBzaG91bGQgb25seSBjYWxsIHRoaXMgZnVuY3Rpb24KKyAg
ICAvLyBpZiB0aGUgem9vbSBjaGFuZ2Ugd2FzIHRyaWdnZXJlZCBieSB0aGUgYnJvd3NlciwgaXQn
cyBvbmx5IG5lZWRlZCBpbiBjYXNlCisgICAgLy8gYSBwbHVnaW4gY2FuIHVwZGF0ZSBpdHMgb3du
IHpvb20sIHNheSBiZWNhdXNlIG9mIGl0cyBvd24gVUkuCisgICAgdmlydHVhbCB2b2lkIGZ1bGxG
cmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCkgPSAwOwogCiAKICAg
ICAvLyBNZWRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCShyZXZpc2lvbiA2ODMyNikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDgsNiArMzQ4LDE1IEBAIHB1YmxpYzoKICAgICAv
LyBBY2Nlc3MgdGhlIGVtYmVkZGVyIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0aW9uIHNlcnZpY2Vz
LgogICAgIHZpcnR1YWwgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0
aW9uQ2xpZW50KCkgeyByZXR1cm4gMDsgfQogCisKKyAgICAvLyBab29tIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAv
LyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHpvb20gbGV2ZWxzIGZvciB0aGlzIGZyYW1l
IGhhdmUgY2hhbmdlZCBmcm9tCisgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgIHZpcnR1
YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bUxldmVsLCBkb3VibGUgbWF4
aW11bUxldmVsKSB7IH0KKyAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHpvb20g
bGV2ZWwgaGFzIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgYW4KKyAgICAvLyBhY3Rpb24gdGhhdCB3
YXNuJ3QgaW5pdGlhdGVkIGJ5IHRoZSBjbGllbnQuCisgICAgdmlydHVhbCB2b2lkIHpvb21MZXZl
bENoYW5nZWQoKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3Q2xpZW50KCkgeyB9CiB9
OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNw
cAkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTEsMTIgKzE0MTEsMTMgQEAgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbAogICAgIGlmICghd2ViUGx1Z2luLT5p
bml0aWFsaXplKGNvbnRhaW5lci5nZXQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgYm9v
bCB6b29tVGV4dE9ubHkgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpLT56b29tVGV4dE9ubHkoKTsK
LSAgICBmbG9hdCB6b29tRmFjdG9yID0gem9vbVRleHRPbmx5ID8gbV93ZWJGcmFtZS0+ZnJhbWUo
KS0+dGV4dFpvb21GYWN0b3IoKSA6IG1fd2ViRnJhbWUtPmZyYW1lKCktPnBhZ2Vab29tRmFjdG9y
KCk7Ci0gICAgaWYgKHpvb21GYWN0b3IgIT0gMSkgewotICAgICAgICAvLyBUaGVyZSdzIGEgc2F2
ZWQgem9vbSBsZXZlbCwgc28gdGVsbCB0aGUgcGx1Z2luIGFib3V0IGl0IHNpbmNlCi0gICAgICAg
IC8vIFdlYlZpZXdJbXBsOjpzZXRab29tTGV2ZWwgd2FzIGNhbGxlZCBiZWZvcmUgdGhlIHBsdWdp
biB3YXMgY3JlYXRlZC4KLSAgICAgICAgd2ViUGx1Z2luLT5zZXRab29tRmFjdG9yKHpvb21GYWN0
b3IsIHpvb21UZXh0T25seSk7CisKKyAgICBpZiAobV93ZWJGcmFtZS0+ZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+aXNQbHVnaW5Eb2N1bWVudCgpKSB7CisgICAgICAvLyBSZXNldCB0aGUgem9vbSBsZXZl
bCwgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbC1wYWdlIHBsdWdpbiB0byB1c2UKKyAgICAg
IC8vIHNhdmVkIHpvb20gc2V0dGluZ3MuCisgICAgICBtX3dlYkZyYW1lLT52aWV3SW1wbCgpLT5m
dWxsRnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKDApOworICAgICAgICBtX3dlYkZyYW1lLT52
aWV3SW1wbCgpLT5jbGllbnQoKS0+em9vbUxpbWl0c0NoYW5nZWQoCisgICAgICAgICAgICB3ZWJQ
bHVnaW4tPm1pbmltdW1ab29tTGV2ZWwoKSwgd2ViUGx1Z2luLT5tYXhpbXVtWm9vbUxldmVsKCkp
OwogICAgIH0KIAogICAgIC8vIFRoZSBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkIGR1
cmluZyBwbHVnaW4gaW5pdGlhbGl6YXRpb24hCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDkgKzE0MywxMCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIC8vIHpvb21zIHRleHQgaW4gb3Igb3V0IChpZS4sIGNoYW5nZSBieSAyMCUpLiAgVGhl
IG1pbiBhbmQgbWF4IHZhbHVlcyBsaW1pdAogLy8gdGV4dCB6b29tIHRvIGhhbGYgYW5kIDN4IHRo
ZSBvcmlnaW5hbCB0ZXh0IHNpemUuICBUaGVzZSB0aHJlZSB2YWx1ZXMgbWF0Y2gKIC8vIHRob3Nl
IGluIEFwcGxlJ3MgcG9ydCBpbiBXZWJLaXQvV2ViS2l0L1dlYlZpZXcvV2ViVmlldy5tbQotc3Rh
dGljIGNvbnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKLXN0YXRpYyBj
b25zdCBkb3VibGUgbWluVGV4dFNpemVNdWx0aXBsaWVyID0gMC41Owotc3RhdGljIGNvbnN0IGRv
dWJsZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXIgPSAzLjA7Citjb25zdCBkb3VibGUgV2ViVmlldzo6
dGV4dFNpemVNdWx0aXBsaWVyUmF0aW8gPSAxLjI7Citjb25zdCBkb3VibGUgV2ViVmlldzo6bWlu
VGV4dFNpemVNdWx0aXBsaWVyID0gMC41OworY29uc3QgZG91YmxlIFdlYlZpZXc6Om1heFRleHRT
aXplTXVsdGlwbGllciA9IDMuMDsKKwogCiAvLyBUaGUgZ3JvdXAgbmFtZSBpZGVudGlmaWVzIGEg
bmFtZXNwYWNlIG9mIHBhZ2VzLiAgUGFnZSBncm91cCBpcyB1c2VkIG9uIE9TWAogLy8gZm9yIHNv
bWUgcHJvZ3JhbXMgdGhhdCB1c2UgSFRNTCB2aWV3cyB0byBkaXNwbGF5IHRoaW5ncyB0aGF0IGRv
bid0IHNlZW0gbGlrZQpAQCAtMTUyMCwzNiArMTUyMSw1OSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpj
bGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6em9vbUxldmVs
KCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1cm4gbV96b29t
TGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHks
IGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbChib29sIHRl
eHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0b3IgPSBzdGF0
aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6cG93KHRleHRT
aXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5UZXh0U2l6ZU11
bHRpcGxpZXIpKTsKICAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7
CisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJ
bXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUpOwogCi0gICAgZmxvYXQgb2xkWm9v
bUZhY3RvciA9IG1fem9vbVRleHRPbmx5ID8gZnJhbWUtPnRleHRab29tRmFjdG9yKCkgOiBmcmFt
ZS0+cGFnZVpvb21GYWN0b3IoKTsKKyAgICBtX3pvb21UZXh0T25seSA9IHRleHRPbmx5OwogCi0g
ICAgaWYgKHRleHRPbmx5KQotICAgICAgICBmcmFtZS0+c2V0UGFnZUFuZFRleHRab29tRmFjdG9y
cygxLCB6b29tRmFjdG9yKTsKLSAgICBlbHNlCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4
dFpvb21GYWN0b3JzKHpvb21GYWN0b3IsIDEpOworICAgIGlmIChwbHVnaW5Db250YWluZXIpIHsK
KyAgICAgICAgZG91YmxlIG1pbmltdW1ab29tTGV2ZWwgPSBwbHVnaW5Db250YWluZXItPnBsdWdp
bigpLT5taW5pbXVtWm9vbUxldmVsKCk7CisgICAgICAgIGRvdWJsZSBtYXhpbXVtWm9vbUxldmVs
ID0gcGx1Z2luQ29udGFpbmVyLT5wbHVnaW4oKS0+bWF4aW11bVpvb21MZXZlbCgpOworICAgICAg
ICBpZiAobWluaW11bVpvb21MZXZlbCAmJiB6b29tTGV2ZWwgPCBtaW5pbXVtWm9vbUxldmVsKSB7
CisgICAgICAgICAgICBtX3pvb21MZXZlbCA9IG1pbmltdW1ab29tTGV2ZWw7CisgICAgICAgIH0g
ZWxzZSBpZiAobWF4aW11bVpvb21MZXZlbCAmJiB6b29tTGV2ZWwgPiBtYXhpbXVtWm9vbUxldmVs
KSB7CisgICAgICAgICAgICBtX3pvb21MZXZlbCA9IG1heGltdW1ab29tTGV2ZWw7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBtX3pvb21MZXZlbCA9IHpvb21MZXZlbDsKKyAgICAgICAg
fQogCi0gICAgaWYgKG9sZFpvb21GYWN0b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBt
X3pvb21UZXh0T25seSkgewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5D
b250YWluZXIgPSBXZWJGcmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7
Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWlu
ZXItPnBsdWdpbigpLT5zZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKKyAgICAg
ICAgcGx1Z2luQ29udGFpbmVyLT5wbHVnaW4oKS0+c2V0Wm9vbUxldmVsKG1fem9vbUxldmVsLCB0
ZXh0T25seSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIHpvb21GYWN0b3IgPQorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGQ6OnBvdyh0ZXh0U2l6ZU11bHRpcGxpZXJS
YXRpbywgem9vbUxldmVsKSk7CisgICAgICAgIGlmICh6b29tRmFjdG9yIDwgbWluVGV4dFNpemVN
dWx0aXBsaWVyKSB7CisgICAgICAgICAgICB6b29tRmFjdG9yID0gbWluVGV4dFNpemVNdWx0aXBs
aWVyOworICAgICAgICAgICAgLy8gU2luY2UgZmFjdG9yID0gMS4yXmxldmVsLCBsZXZlbCA9IGxv
ZyhmYWN0b3IpIC8gbG9nKDEuMikKKyAgICAgICAgICAgIG1fem9vbUxldmVsID0gbG9nKHpvb21G
YWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKKyAgICAgICAgfSBlbHNlIGlm
ICh6b29tRmFjdG9yID4gbWF4VGV4dFNpemVNdWx0aXBsaWVyKSB7CisgICAgICAgICAgICB6b29t
RmFjdG9yID0gbWF4VGV4dFNpemVNdWx0aXBsaWVyOworICAgICAgICAgICAgbV96b29tTGV2ZWwg
PSBsb2coem9vbUZhY3RvcikgLyBsb2codGV4dFNpemVNdWx0aXBsaWVyUmF0aW8pOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbV96b29tTGV2ZWwgPSB6b29tTGV2ZWw7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGV4dE9ubHkpCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycygxLCB6b29tRmFjdG9yKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoem9vbUZhY3RvciwgMSk7CiAgICAg
fQorICAgIHJldHVybiBtX3pvb21MZXZlbDsKK30KIAotICAgIG1fem9vbUxldmVsID0gem9vbUxl
dmVsOwotICAgIG1fem9vbVRleHRPbmx5ID0gdGV4dE9ubHk7Cit2b2lkIFdlYlZpZXdJbXBsOjpm
dWxsRnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAg
aWYgKHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgcmV0
dXJuIG1fem9vbUxldmVsOworICAgIG1fem9vbUxldmVsID0gem9vbUxldmVsOworICAgIG1fY2xp
ZW50LT56b29tTGV2ZWxDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1N
ZWRpYVBsYXllckFjdGlvbihjb25zdCBXZWJNZWRpYVBsYXllckFjdGlvbiYgYWN0aW9uLApJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNjgzMjYpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw4ICsxMzIs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFtZSog
ZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpOwotICAgIHZpcnR1YWwgaW50IHpv
b21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBp
bnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB6b29tTGV2ZWwoKTsKKyAgICB2aXJ0
dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgZG91YmxlIHpvb21MZXZlbCk7
CisgICAgdmlydHVhbCB2b2lkIGZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91Ymxl
IHpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlvbigK
ICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb24mIGFjdGlvbiwKICAgICAgICAgY29u
c3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAgLTQ0MCw3ICs0NDEsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgem9vbSBsZXZlbC4gMCBtZWFucyBubyB6
b29tLCBwb3NpdGl2ZSBudW1iZXJzCiAgICAgLy8gbWVhbiB6b29tIGluLCBuZWdhdGl2ZSBudW1i
ZXJzIG1lYW4gem9vbSBvdXQuCi0gICAgaW50IG1fem9vbUxldmVsOworICAgIGRvdWJsZSBtX3pv
b21MZXZlbDsKIAogICAgIGJvb2wgbV96b29tVGV4dE9ubHk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68957</attachid>
            <date>2010-09-27 14:18:18 -0700</date>
            <delta_ts>2010-09-27 17:31:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100927141756.patch</filename>
            <type>text/plain</type>
            <size>12242</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luOjptaW5pbXVtWm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjptYXhp
bXVtWm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpv
b21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6em9vbUxl
dmVsQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yNyAg
S2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAkocmV2aXNp
b24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBz
ZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKICAgICAv
LyBVc2VkIGZvciB6b29taW5nIG9mIGZ1bGwgcGFnZSBwbHVnaW5zLgotICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tRmFjdG9yKGZsb2F0IHNjYWxlLCBib29sIHRleHRPbmx5KSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Wm9vbUxldmVsKGRvdWJsZSBsZXZlbCwgYm9vbCB0ZXh0T25seSkgeyB9CiAK
ICAgICAvLyBGaW5kIGludGVyZmFjZS4KICAgICAvLyBTdGFydCBhIG5ldyBzZWFyY2guICBUaGUg
cGx1Z2luIHNob3VsZCBzZWFyY2ggZm9yIGEgbGl0dGxlIGJpdCBhdCBhIHRpbWUgc28gdGhhdCBp
dApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDY4NDIyKQorKysgV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDkgQEAKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIKIAor
Ly8gRklYTUUoamFtKTogdGFrZSB0aGlzIG91dCBhZnRlciBDaHJvbWUgaXMgdXBkYXRlZAorI2Rl
ZmluZSBaT09NX0xFVkVMX0lTX0RPVUJMRQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKQEAgLTU0LDYgKzU3LDEwIEBAIHN0cnVjdCBXZWJQb2lu
dDsKIAogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgorICAgIHN0
YXRpYyBjb25zdCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW87CisgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXI7CisgICAgc3RhdGljIGNvbnN0IGRvdWJs
ZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXI7CisKICAgICAvLyBDb250cm9scyB0aGUgdGltZSB0aGF0
IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBydW4uCiAgICAgZW51bSBV
c2VyU2NyaXB0SW5qZWN0QXQgewogICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudFN0
YXJ0LApAQCAtMTYxLDkgKzE2OCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gWm9vbSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
ICAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuICAwIGlzICJvcmlnaW5hbCBz
aXplIiwgYW5kIGVhY2ggaW5jcmVtZW50Ci0gICAgLy8gYWJvdmUgb3IgYmVsb3cgcmVwcmVzZW50
cyB6b29taW5nIDIwJSBsYXJnZXIgb3Igc21hbGxlciB0byBsaW1pdHMgb2YgMzAwJQotICAgIC8v
IGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5LgotICAgIHZpcnR1YWwgaW50
IHpvb21MZXZlbCgpID0gMDsKKyAgICAvLyBhYm92ZSBvciBiZWxvdyByZXByZXNlbnRzIHpvb21p
bmcgMjAlIGxhcmdlciBvciBzbWFsbGVyIHRvIGRlZmF1bHQgbGltaXRzCisgICAgLy8gb2YgMzAw
JSBhbmQgNTAlIG9mIG9yaWdpbmFsIHNpemUsIHJlc3BlY3RpdmVseS4gIE9ubHkgcGx1Z2lucyB1
c2UKKyAgICAvLyBub24gd2hvbGUtbnVtYmVycywgc2luY2UgdGhleSBtaWdodCBjaG9vc2UgdG8g
aGF2ZSBzcGVjaWZpYyB6b29tIGxldmVsIHNvCisgICAgLy8gdGhhdCBmaXhlZC13aWR0aCBjb250
ZW50IGlzIGZpdC10by1wYWdlLXdpZHRoLCBmb3IgZXhhbXBsZS4KKyAgICB2aXJ0dWFsIGRvdWJs
ZSB6b29tTGV2ZWwoKSA9IDA7CiAKICAgICAvLyBDaGFuZ2VzIHRoZSB6b29tIGxldmVsIHRvIHRo
ZSBzcGVjaWZpZWQgbGV2ZWwsIGNsYW1waW5nIGF0IHRoZSBsaW1pdHMKICAgICAvLyBub3RlZCBh
Ym92ZSwgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbCBhZnRlciBhcHBseWluZyB0
aGUKQEAgLTE3Myw3ICsxODIsMjIgQEAgcHVibGljOgogICAgIC8vIHBhZ2Ugd2lsbCBiZSB6b29t
ZWQuIFlvdSBjYW4gb25seSBoYXZlIGVpdGhlciB0ZXh0IHpvb20gb3IgZnVsbCBwYWdlIHpvb20K
ICAgICAvLyBhdCBvbmUgdGltZS4gIENoYW5naW5nIHRoZSBtb2RlIHdoaWxlIHRoZSBwYWdlIGlz
IHpvb21lZCB3aWxsIGhhdmUgb2RkCiAgICAgLy8gZWZmZWN0cy4KLSAgICB2aXJ0dWFsIGludCBz
ZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgaW50IHpvb21MZXZlbCkgPSAwOworICAgIHZpcnR1
YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKSA9
IDA7CisKKyAgICAvLyBDYWxsZWQgYnkgYSBmdWxsIGZyYW1lIHBsdWdpbiBpbnNpZGUgdGhpcyB2
aWV3IHRvIHVwZGF0ZSB0aGUgem9vbSBsaW1pdHMuCisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1p
dHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCkgPSAwOworCisgICAgLy8gQ2Fs
bGVkIGJ5IGEgZnVsbCBmcmFtZSBwbHVnaW4gaW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQg
dGhhdCBpdHMKKyAgICAvLyB6b29tIGxldmVsIGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2lu
IHNob3VsZCBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5n
ZSB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBicm93c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UK
KyAgICAvLyBhIHBsdWdpbiBjYW4gdXBkYXRlIGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2Yg
aXRzIG93biBVSS4KKyAgICB2aXJ0dWFsIHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hh
bmdlZChkb3VibGUgem9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRv
IGNvbnZlciBiZXR3ZWVuIHpvb20gbGV2ZWwgYW5kIHpvb20gZmFjdG9yLiAgem9vbQorICAgIC8v
IGZhY3RvciBpcyB6b29tIHBlcmNlbnQgLyAxMDAsIHNvIDMwMCUgPSAzLjAuCisgICAgc3RhdGlj
IGRvdWJsZSB6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7CisgICAgc3Rh
dGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CiAKIAogICAg
IC8vIE1lZGlhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHJldmlzaW9uIDY4NDIyKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw2ICszNDgsMTUgQEAgcHVibGljOgogICAgIC8v
IEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRpb24gc2VydmljZXMu
CiAgICAgdmlydHVhbCBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRp
b25DbGllbnQoKSB7IHJldHVybiAwOyB9CiAKKworICAgIC8vIFpvb20gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8v
IEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9vbSBsZXZlbHMgZm9yIHRoaXMgZnJhbWUg
aGF2ZSBjaGFuZ2VkIGZyb20KKyAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgICAgdmlydHVh
bCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtTGV2ZWwsIGRvdWJsZSBtYXhp
bXVtTGV2ZWwpIHsgfQorICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9vbSBs
ZXZlbCBoYXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhbgorICAgIC8vIGFjdGlvbiB0aGF0IHdh
c24ndCBpbml0aWF0ZWQgYnkgdGhlIGNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxldmVs
Q2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXdDbGllbnQoKSB7IH0KIH07
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
CShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMSwxNCArMTQxMSw2IEBAIFBhc3NSZWZQ
dHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAgICBpZiAoIXdlYlBsdWdpbi0+aW5p
dGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGJvb2wg
em9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKS0+em9vbVRleHRPbmx5KCk7Ci0g
ICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/IG1fd2ViRnJhbWUtPmZyYW1lKCkt
PnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlWm9vbUZhY3Rvcigp
OwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAgICAgLy8gVGhlcmUncyBhIHNhdmVk
IHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91dCBpdCBzaW5jZQotICAgICAgICAv
LyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxsZWQgYmVmb3JlIHRoZSBwbHVnaW4g
d2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9y
LCB6b29tVGV4dE9ubHkpOwotICAgIH0KLQogICAgIC8vIFRoZSBlbGVtZW50IG1pZ2h0IGhhdmUg
YmVlbiByZW1vdmVkIGR1cmluZyBwbHVnaW4gaW5pdGlhbGl6YXRpb24hCiAgICAgaWYgKCFlbGVt
ZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5IDIw
JSkuICBUaGUgbWluIGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFsZiBh
bmQgM3ggdGhlIG9yaWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRjaAog
Ly8gdGhvc2UgaW4gQXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJWaWV3
Lm1tCi1zdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4yOwot
c3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0aWMg
Y29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJsZSBX
ZWJWaWV3Ojp0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBXZWJW
aWV3OjptaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmlldzo6
bWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlkZW50
aWZpZXMgYSBuYW1lc3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NYCiAv
LyBmb3Igc29tZSBwcm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhpbmdz
IHRoYXQgZG9uJ3Qgc2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIoMCkK
ICNlbmRpZgogICAgICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZhbHNl
KQorICAgICwgbV9taW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5UZXh0
U2l6ZU11bHRpcGxpZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pv
b21MZXZlbChtYXhUZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFsbG93
ZWQoZmFsc2UpCiAgICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2lnbm9y
ZUlucHV0RXZlbnRzKGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MSBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpjbGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6em9v
bUxldmVsKCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1cm4g
bV96b29tTGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wgdGV4
dE9ubHksIGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbChi
b29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0b3Ig
PSBzdGF0aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6cG93
KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5UZXh0
U2l6ZU11bHRpcGxpZXIpKTsKLSAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCk7CisgICAgaWYgKHpvb21MZXZlbCA8IG1fbWluaW11bVpvb21MZXZlbCkgeworICAgICAg
ICBtX3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICB9IGVsc2UgaWYgKHpvb21M
ZXZlbCA+IG1fbWF4aW11bVpvb21MZXZlbCkgeworICAgICAgICBtX3pvb21MZXZlbCA9IG1fbWF4
aW11bVpvb21MZXZlbDsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3pvb21MZXZlbCA9IHpvb21M
ZXZlbDsKKyAgICB9CiAKLSAgICBmbG9hdCBvbGRab29tRmFjdG9yID0gbV96b29tVGV4dE9ubHkg
PyBmcmFtZS0+dGV4dFpvb21GYWN0b3IoKSA6IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpOworICAg
IEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKTsKKyAgICBXZWJQbHVnaW5D
b250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFtZUltcGw6OnBsdWdpbkNvbnRh
aW5lckZyb21GcmFtZShmcmFtZSk7CisgICAgaWYgKHBsdWdpbkNvbnRhaW5lcikKKyAgICAgICAg
cGx1Z2luQ29udGFpbmVyLT5wbHVnaW4oKS0+c2V0Wm9vbUxldmVsKG1fem9vbUxldmVsLCB0ZXh0
T25seSk7CisgICAgZWxzZSB7CisgICAgICAgIGRvdWJsZSB6b29tRmFjdG9yID0gem9vbUxldmVs
VG9ab29tRmFjdG9yKG1fem9vbUxldmVsKTsKKyAgICAgICAgaWYgKHRleHRPbmx5KQorICAgICAg
ICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoMSwgem9vbUZhY3Rvcik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3Jz
KHpvb21GYWN0b3IsIDEpOworICAgIH0KKyAgICByZXR1cm4gbV96b29tTGV2ZWw7Cit9CiAKLSAg
ICBpZiAodGV4dE9ubHkpCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3Jz
KDEsIHpvb21GYWN0b3IpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0
Wm9vbUZhY3RvcnMoem9vbUZhY3RvciwgMSk7Cit2b2lkIFdlYlZpZXdJbXBsOjp6b29tTGltaXRz
Q2hhbmdlZChkb3VibGUgbWluaW11bVpvb21MZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvdWJsZSBtYXhpbXVtWm9vbUxldmVsKQoreworICAgIG1fbWluaW11bVpv
b21MZXZlbCA9IG1pbmltdW1ab29tTGV2ZWw7CisgICAgbV9tYXhpbXVtWm9vbUxldmVsID0gbWF4
aW11bVpvb21MZXZlbDsKKyAgICBtX2NsaWVudC0+em9vbUxpbWl0c0NoYW5nZWQobV9taW5pbXVt
Wm9vbUxldmVsLCBtX21heGltdW1ab29tTGV2ZWwpOworfQogCi0gICAgaWYgKG9sZFpvb21GYWN0
b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBtX3pvb21UZXh0T25seSkgewotICAgICAg
ICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFtZUltcGw6
OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7Ci0gICAgICAgIGlmIChwbHVnaW5Db250
YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnBsdWdpbigpLT5zZXRab29tRmFj
dG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKLSAgICB9Cit2b2lkIFdlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYg
KHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgbV96b29t
TGV2ZWwgPSB6b29tTGV2ZWw7Ci0gICAgbV96b29tVGV4dE9ubHkgPSB0ZXh0T25seTsKKyAgICBt
X2NsaWVudC0+em9vbUxldmVsQ2hhbmdlZCgpOworfQogCi0gICAgcmV0dXJuIG1fem9vbUxldmVs
OworZG91YmxlIFdlYlZpZXc6Onpvb21MZXZlbFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVs
KQoreworICAgIHJldHVybiBzdGQ6OnBvdyh0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbywgem9vbUxl
dmVsKTsKK30KKworZG91YmxlIFdlYlZpZXc6Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUg
ZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZhY3RvciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2co
ZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0dXJuIGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXpl
TXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxh
eWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDggKzEzMiwxMSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpOwotICAgIHZpcnR1YWwgaW50IHpvb21MZXZl
bCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9v
bUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB6b29tTGV2ZWwoKTsKKyAgICB2aXJ0dWFsIGRv
dWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgZG91YmxlIHpvb21MZXZlbCk7CisgICAg
dmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZl
bCk7CisgICAgdmlydHVhbCB2b2lkIGZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91
YmxlIHpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlv
bigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb24mIGFjdGlvbiwKICAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAgLTM0Miw4ICszNDUsNiBAQCBwdWJsaWM6CiAK
ICAgICBXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogc2VsZWN0UG9wdXAoKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdFBvcHVwLmdldCgpOyB9CiAKLSAgICBib29sIHpvb21UZXh0T25seSgpIGNvbnN0
IHsgcmV0dXJuIG1fem9vbVRleHRPbmx5OyB9Ci0KICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IGV2ZW50IGxlYWRzIHRvIHNjcm9sbGluZy4KICAgICBzdGF0aWMgYm9vbCBtYXBLZXlDb2RlRm9y
U2Nyb2xsKGludCBrZXlDb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24qIHNjcm9sbERpcmVjdGlvbiwKQEAgLTQ0MCw5ICs0NDEs
MTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IHpvb20g
bGV2ZWwuIDAgbWVhbnMgbm8gem9vbSwgcG9zaXRpdmUgbnVtYmVycwogICAgIC8vIG1lYW4gem9v
bSBpbiwgbmVnYXRpdmUgbnVtYmVycyBtZWFuIHpvb20gb3V0LgotICAgIGludCBtX3pvb21MZXZl
bDsKKyAgICBkb3VibGUgbV96b29tTGV2ZWw7CisKKyAgICBkb3VibGUgbV9taW5pbXVtWm9vbUxl
dmVsOwogCi0gICAgYm9vbCBtX3pvb21UZXh0T25seTsKKyAgICBkb3VibGUgbV9tYXhpbXVtWm9v
bUxldmVsOwogCiAgICAgYm9vbCBtX2NvbnRleHRNZW51QWxsb3dlZDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68998</attachid>
            <date>2010-09-27 17:31:06 -0700</date>
            <delta_ts>2010-09-28 15:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100927173045.patch</filename>
            <type>text/plain</type>
            <size>12212</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luOjptaW5pbXVtWm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjptYXhp
bXVtWm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpv
b21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6em9vbUxl
dmVsQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yNyAg
S2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAkocmV2aXNp
b24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBz
ZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKICAgICAv
LyBVc2VkIGZvciB6b29taW5nIG9mIGZ1bGwgcGFnZSBwbHVnaW5zLgotICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tRmFjdG9yKGZsb2F0IHNjYWxlLCBib29sIHRleHRPbmx5KSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Wm9vbUxldmVsKGRvdWJsZSBsZXZlbCwgYm9vbCB0ZXh0T25seSkgeyB9CiAK
ICAgICAvLyBGaW5kIGludGVyZmFjZS4KICAgICAvLyBTdGFydCBhIG5ldyBzZWFyY2guICBUaGUg
cGx1Z2luIHNob3VsZCBzZWFyY2ggZm9yIGEgbGl0dGxlIGJpdCBhdCBhIHRpbWUgc28gdGhhdCBp
dApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDY4NDIyKQorKysgV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDkgQEAKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIKIAor
Ly8gRklYTUUoamFtKTogdGFrZSB0aGlzIG91dCBhZnRlciBDaHJvbWUgaXMgdXBkYXRlZAorI2Rl
ZmluZSBaT09NX0xFVkVMX0lTX0RPVUJMRQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKQEAgLTU0LDYgKzU3LDEwIEBAIHN0cnVjdCBXZWJQb2lu
dDsKIAogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgorICAgIHN0
YXRpYyBjb25zdCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW87CisgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXI7CisgICAgc3RhdGljIGNvbnN0IGRvdWJs
ZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXI7CisKICAgICAvLyBDb250cm9scyB0aGUgdGltZSB0aGF0
IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBydW4uCiAgICAgZW51bSBV
c2VyU2NyaXB0SW5qZWN0QXQgewogICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudFN0
YXJ0LApAQCAtMTYxLDkgKzE2OCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gWm9vbSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
ICAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuICAwIGlzICJvcmlnaW5hbCBz
aXplIiwgYW5kIGVhY2ggaW5jcmVtZW50Ci0gICAgLy8gYWJvdmUgb3IgYmVsb3cgcmVwcmVzZW50
cyB6b29taW5nIDIwJSBsYXJnZXIgb3Igc21hbGxlciB0byBsaW1pdHMgb2YgMzAwJQotICAgIC8v
IGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5LgotICAgIHZpcnR1YWwgaW50
IHpvb21MZXZlbCgpID0gMDsKKyAgICAvLyBhYm92ZSBvciBiZWxvdyByZXByZXNlbnRzIHpvb21p
bmcgMjAlIGxhcmdlciBvciBzbWFsbGVyIHRvIGRlZmF1bHQgbGltaXRzCisgICAgLy8gb2YgMzAw
JSBhbmQgNTAlIG9mIG9yaWdpbmFsIHNpemUsIHJlc3BlY3RpdmVseS4gIE9ubHkgcGx1Z2lucyB1
c2UKKyAgICAvLyBub24gd2hvbGUtbnVtYmVycywgc2luY2UgdGhleSBtaWdodCBjaG9vc2UgdG8g
aGF2ZSBzcGVjaWZpYyB6b29tIGxldmVsIHNvCisgICAgLy8gdGhhdCBmaXhlZC13aWR0aCBjb250
ZW50IGlzIGZpdC10by1wYWdlLXdpZHRoLCBmb3IgZXhhbXBsZS4KKyAgICB2aXJ0dWFsIGRvdWJs
ZSB6b29tTGV2ZWwoKSA9IDA7CiAKICAgICAvLyBDaGFuZ2VzIHRoZSB6b29tIGxldmVsIHRvIHRo
ZSBzcGVjaWZpZWQgbGV2ZWwsIGNsYW1waW5nIGF0IHRoZSBsaW1pdHMKICAgICAvLyBub3RlZCBh
Ym92ZSwgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbCBhZnRlciBhcHBseWluZyB0
aGUKQEAgLTE3Myw3ICsxODIsMjIgQEAgcHVibGljOgogICAgIC8vIHBhZ2Ugd2lsbCBiZSB6b29t
ZWQuIFlvdSBjYW4gb25seSBoYXZlIGVpdGhlciB0ZXh0IHpvb20gb3IgZnVsbCBwYWdlIHpvb20K
ICAgICAvLyBhdCBvbmUgdGltZS4gIENoYW5naW5nIHRoZSBtb2RlIHdoaWxlIHRoZSBwYWdlIGlz
IHpvb21lZCB3aWxsIGhhdmUgb2RkCiAgICAgLy8gZWZmZWN0cy4KLSAgICB2aXJ0dWFsIGludCBz
ZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgaW50IHpvb21MZXZlbCkgPSAwOworICAgIHZpcnR1
YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKSA9
IDA7CisKKyAgICAvLyBDYWxsZWQgYnkgYSBmdWxsIGZyYW1lIHBsdWdpbiBpbnNpZGUgdGhpcyB2
aWV3IHRvIHVwZGF0ZSB0aGUgem9vbSBsaW1pdHMuCisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1p
dHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCkgPSAwOworCisgICAgLy8gQ2Fs
bGVkIGJ5IGEgZnVsbCBmcmFtZSBwbHVnaW4gaW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQg
dGhhdCBpdHMKKyAgICAvLyB6b29tIGxldmVsIGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2lu
IHNob3VsZCBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5n
ZSB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBicm93c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UK
KyAgICAvLyBhIHBsdWdpbiBjYW4gdXBkYXRlIGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2Yg
aXRzIG93biBVSS4KKyAgICB2aXJ0dWFsIHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hh
bmdlZChkb3VibGUgem9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRv
IGNvbnZlciBiZXR3ZWVuIHpvb20gbGV2ZWwgYW5kIHpvb20gZmFjdG9yLiAgem9vbQorICAgIC8v
IGZhY3RvciBpcyB6b29tIHBlcmNlbnQgLyAxMDAsIHNvIDMwMCUgPSAzLjAuCisgICAgc3RhdGlj
IGRvdWJsZSB6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7CisgICAgc3Rh
dGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CiAKIAogICAg
IC8vIE1lZGlhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHJldmlzaW9uIDY4NDIyKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw2ICszNDgsMTUgQEAgcHVibGljOgogICAgIC8v
IEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRpb24gc2VydmljZXMu
CiAgICAgdmlydHVhbCBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRp
b25DbGllbnQoKSB7IHJldHVybiAwOyB9CiAKKworICAgIC8vIFpvb20gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8v
IEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9vbSBsZXZlbHMgZm9yIHRoaXMgZnJhbWUg
aGF2ZSBjaGFuZ2VkIGZyb20KKyAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgICAgdmlydHVh
bCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtTGV2ZWwsIGRvdWJsZSBtYXhp
bXVtTGV2ZWwpIHsgfQorICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9vbSBs
ZXZlbCBoYXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhbgorICAgIC8vIGFjdGlvbiB0aGF0IHdh
c24ndCBpbml0aWF0ZWQgYnkgdGhlIGNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxldmVs
Q2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXdDbGllbnQoKSB7IH0KIH07
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
CShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMSwxNCArMTQxMSw2IEBAIFBhc3NSZWZQ
dHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAgICBpZiAoIXdlYlBsdWdpbi0+aW5p
dGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGJvb2wg
em9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKS0+em9vbVRleHRPbmx5KCk7Ci0g
ICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/IG1fd2ViRnJhbWUtPmZyYW1lKCkt
PnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlWm9vbUZhY3Rvcigp
OwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAgICAgLy8gVGhlcmUncyBhIHNhdmVk
IHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91dCBpdCBzaW5jZQotICAgICAgICAv
LyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxsZWQgYmVmb3JlIHRoZSBwbHVnaW4g
d2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9y
LCB6b29tVGV4dE9ubHkpOwotICAgIH0KLQogICAgIC8vIFRoZSBlbGVtZW50IG1pZ2h0IGhhdmUg
YmVlbiByZW1vdmVkIGR1cmluZyBwbHVnaW4gaW5pdGlhbGl6YXRpb24hCiAgICAgaWYgKCFlbGVt
ZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5IDIw
JSkuICBUaGUgbWluIGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFsZiBh
bmQgM3ggdGhlIG9yaWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRjaAog
Ly8gdGhvc2UgaW4gQXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJWaWV3
Lm1tCi1zdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4yOwot
c3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0aWMg
Y29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJsZSBX
ZWJWaWV3Ojp0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBXZWJW
aWV3OjptaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmlldzo6
bWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlkZW50
aWZpZXMgYSBuYW1lc3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NYCiAv
LyBmb3Igc29tZSBwcm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhpbmdz
IHRoYXQgZG9uJ3Qgc2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIoMCkK
ICNlbmRpZgogICAgICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZhbHNl
KQorICAgICwgbV9taW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5UZXh0
U2l6ZU11bHRpcGxpZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pv
b21MZXZlbChtYXhUZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFsbG93
ZWQoZmFsc2UpCiAgICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2lnbm9y
ZUlucHV0RXZlbnRzKGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpjbGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6em9v
bUxldmVsKCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1cm4g
bV96b29tTGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wgdGV4
dE9ubHksIGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbChi
b29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0b3Ig
PSBzdGF0aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6cG93
KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5UZXh0
U2l6ZU11bHRpcGxpZXIpKTsKLSAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCk7Ci0KLSAgICBmbG9hdCBvbGRab29tRmFjdG9yID0gbV96b29tVGV4dE9ubHkgPyBmcmFt
ZS0+dGV4dFpvb21GYWN0b3IoKSA6IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpOwotCi0gICAgaWYg
KHRleHRPbmx5KQotICAgICAgICBmcmFtZS0+c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycygxLCB6
b29tRmFjdG9yKTsKKyAgICBpZiAoem9vbUxldmVsIDwgbV9taW5pbXVtWm9vbUxldmVsKQorICAg
ICAgICBtX3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICBlbHNlIGlmICh6b29t
TGV2ZWwgPiBtX21heGltdW1ab29tTGV2ZWwpCisgICAgICAgIG1fem9vbUxldmVsID0gbV9tYXhp
bXVtWm9vbUxldmVsOwogICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9v
bUZhY3RvcnMoem9vbUZhY3RvciwgMSk7CisgICAgICAgIG1fem9vbUxldmVsID0gem9vbUxldmVs
OwogCi0gICAgaWYgKG9sZFpvb21GYWN0b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBt
X3pvb21UZXh0T25seSkgewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5D
b250YWluZXIgPSBXZWJGcmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7
Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWlu
ZXItPnBsdWdpbigpLT5zZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKKyAgICBG
cmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7CisgICAgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250YWlu
ZXJGcm9tRnJhbWUoZnJhbWUpOworICAgIGlmIChwbHVnaW5Db250YWluZXIpCisgICAgICAgIHBs
dWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbChtX3pvb21MZXZlbCwgdGV4dE9u
bHkpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgem9vbUZhY3RvciA9IHpvb21MZXZlbFRv
Wm9vbUZhY3RvcihtX3pvb21MZXZlbCk7CisgICAgICAgIGlmICh0ZXh0T25seSkKKyAgICAgICAg
ICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEsIHpvb21GYWN0b3IpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyh6
b29tRmFjdG9yLCAxKTsKICAgICB9CisgICAgcmV0dXJuIG1fem9vbUxldmVsOworfQorCit2b2lk
IFdlYlZpZXdJbXBsOjp6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bVpvb21MZXZlbCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBtYXhpbXVtWm9vbUxl
dmVsKQoreworICAgIG1fbWluaW11bVpvb21MZXZlbCA9IG1pbmltdW1ab29tTGV2ZWw7CisgICAg
bV9tYXhpbXVtWm9vbUxldmVsID0gbWF4aW11bVpvb21MZXZlbDsKKyAgICBtX2NsaWVudC0+em9v
bUxpbWl0c0NoYW5nZWQobV9taW5pbXVtWm9vbUxldmVsLCBtX21heGltdW1ab29tTGV2ZWwpOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRv
dWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYgKHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV96b29tTGV2ZWwgPSB6b29tTGV2ZWw7Ci0gICAgbV96b29t
VGV4dE9ubHkgPSB0ZXh0T25seTsKKyAgICBtX2NsaWVudC0+em9vbUxldmVsQ2hhbmdlZCgpOwor
fQogCi0gICAgcmV0dXJuIG1fem9vbUxldmVsOworZG91YmxlIFdlYlZpZXc6Onpvb21MZXZlbFRv
Wm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKQoreworICAgIHJldHVybiBzdGQ6OnBvdyh0ZXh0
U2l6ZU11bHRpcGxpZXJSYXRpbywgem9vbUxldmVsKTsKK30KKworZG91YmxlIFdlYlZpZXc6Onpv
b21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZhY3Rv
ciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2coZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0dXJu
IGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVy
QWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lv
biA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMTMyLDggKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZv
Y3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFs
Rm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgp
OwotICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpvb21M
ZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB6
b29tTGV2ZWwoKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25s
eSwgZG91YmxlIHpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2Vk
KGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIGZ1bGxGcmFt
ZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlvbigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5
ZXJBY3Rpb24mIGFjdGlvbiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAg
LTM0Miw4ICszNDUsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpQb3B1cENvbnRhaW5lciog
c2VsZWN0UG9wdXAoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdFBvcHVwLmdldCgpOyB9CiAKLSAg
ICBib29sIHpvb21UZXh0T25seSgpIGNvbnN0IHsgcmV0dXJuIG1fem9vbVRleHRPbmx5OyB9Ci0K
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGxlYWRzIHRvIHNjcm9sbGluZy4KICAg
ICBzdGF0aWMgYm9vbCBtYXBLZXlDb2RlRm9yU2Nyb2xsKGludCBrZXlDb2RlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24qIHNjcm9s
bERpcmVjdGlvbiwKQEAgLTQ0MCw5ICs0NDEsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIEtlZXBz
IHRyYWNrIG9mIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuIDAgbWVhbnMgbm8gem9vbSwgcG9zaXRp
dmUgbnVtYmVycwogICAgIC8vIG1lYW4gem9vbSBpbiwgbmVnYXRpdmUgbnVtYmVycyBtZWFuIHpv
b20gb3V0LgotICAgIGludCBtX3pvb21MZXZlbDsKKyAgICBkb3VibGUgbV96b29tTGV2ZWw7CisK
KyAgICBkb3VibGUgbV9taW5pbXVtWm9vbUxldmVsOwogCi0gICAgYm9vbCBtX3pvb21UZXh0T25s
eTsKKyAgICBkb3VibGUgbV9tYXhpbXVtWm9vbUxldmVsOwogCiAgICAgYm9vbCBtX2NvbnRleHRN
ZW51QWxsb3dlZDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69122</attachid>
            <date>2010-09-28 15:56:13 -0700</date>
            <delta_ts>2010-09-29 15:36:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100928155552.patch</filename>
            <type>text/plain</type>
            <size>12329</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luOjptaW5pbXVtWm9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjptYXhp
bXVtWm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpv
b21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6em9vbUxl
dmVsQ2hhbmdlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yNyAg
S2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAkocmV2aXNp
b24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBz
ZWxlY3Rpb25Bc01hcmt1cCgpIGNvbnN0IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKICAgICAv
LyBVc2VkIGZvciB6b29taW5nIG9mIGZ1bGwgcGFnZSBwbHVnaW5zLgotICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tRmFjdG9yKGZsb2F0IHNjYWxlLCBib29sIHRleHRPbmx5KSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Wm9vbUxldmVsKGRvdWJsZSBsZXZlbCwgYm9vbCB0ZXh0T25seSkgeyB9CiAK
ICAgICAvLyBGaW5kIGludGVyZmFjZS4KICAgICAvLyBTdGFydCBhIG5ldyBzZWFyY2guICBUaGUg
cGx1Z2luIHNob3VsZCBzZWFyY2ggZm9yIGEgbGl0dGxlIGJpdCBhdCBhIHRpbWUgc28gdGhhdCBp
dApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDY4NDIyKQorKysgV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDkgQEAKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIKIAor
Ly8gRklYTUUoamFtKTogdGFrZSB0aGlzIG91dCBhZnRlciBDaHJvbWUgaXMgdXBkYXRlZAorI2Rl
ZmluZSBaT09NX0xFVkVMX0lTX0RPVUJMRQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKQEAgLTU0LDYgKzU3LDEwIEBAIHN0cnVjdCBXZWJQb2lu
dDsKIAogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgorICAgIFdF
QktJVF9BUEkgc3RhdGljIGNvbnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbzsKKyAg
ICBXRUJLSVRfQVBJIHN0YXRpYyBjb25zdCBkb3VibGUgbWluVGV4dFNpemVNdWx0aXBsaWVyOwor
ICAgIFdFQktJVF9BUEkgc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXI7
CisKICAgICAvLyBDb250cm9scyB0aGUgdGltZSB0aGF0IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBp
bnRvIHRoZSBkb2N1bWVudCBydW4uCiAgICAgZW51bSBVc2VyU2NyaXB0SW5qZWN0QXQgewogICAg
ICAgICBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudFN0YXJ0LApAQCAtMTYxLDkgKzE2OCwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZXR1cm5zIHRoZSBjdXJy
ZW50IHpvb20gbGV2ZWwuICAwIGlzICJvcmlnaW5hbCBzaXplIiwgYW5kIGVhY2ggaW5jcmVtZW50
Ci0gICAgLy8gYWJvdmUgb3IgYmVsb3cgcmVwcmVzZW50cyB6b29taW5nIDIwJSBsYXJnZXIgb3Ig
c21hbGxlciB0byBsaW1pdHMgb2YgMzAwJQotICAgIC8vIGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6
ZSwgcmVzcGVjdGl2ZWx5LgotICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpID0gMDsKKyAgICAv
LyBhYm92ZSBvciBiZWxvdyByZXByZXNlbnRzIHpvb21pbmcgMjAlIGxhcmdlciBvciBzbWFsbGVy
IHRvIGRlZmF1bHQgbGltaXRzCisgICAgLy8gb2YgMzAwJSBhbmQgNTAlIG9mIG9yaWdpbmFsIHNp
emUsIHJlc3BlY3RpdmVseS4gIE9ubHkgcGx1Z2lucyB1c2UKKyAgICAvLyBub24gd2hvbGUtbnVt
YmVycywgc2luY2UgdGhleSBtaWdodCBjaG9vc2UgdG8gaGF2ZSBzcGVjaWZpYyB6b29tIGxldmVs
IHNvCisgICAgLy8gdGhhdCBmaXhlZC13aWR0aCBjb250ZW50IGlzIGZpdC10by1wYWdlLXdpZHRo
LCBmb3IgZXhhbXBsZS4KKyAgICB2aXJ0dWFsIGRvdWJsZSB6b29tTGV2ZWwoKSA9IDA7CiAKICAg
ICAvLyBDaGFuZ2VzIHRoZSB6b29tIGxldmVsIHRvIHRoZSBzcGVjaWZpZWQgbGV2ZWwsIGNsYW1w
aW5nIGF0IHRoZSBsaW1pdHMKICAgICAvLyBub3RlZCBhYm92ZSwgYW5kIHJldHVybnMgdGhlIGN1
cnJlbnQgem9vbSBsZXZlbCBhZnRlciBhcHBseWluZyB0aGUKQEAgLTE3Myw3ICsxODIsMjIgQEAg
cHVibGljOgogICAgIC8vIHBhZ2Ugd2lsbCBiZSB6b29tZWQuIFlvdSBjYW4gb25seSBoYXZlIGVp
dGhlciB0ZXh0IHpvb20gb3IgZnVsbCBwYWdlIHpvb20KICAgICAvLyBhdCBvbmUgdGltZS4gIENo
YW5naW5nIHRoZSBtb2RlIHdoaWxlIHRoZSBwYWdlIGlzIHpvb21lZCB3aWxsIGhhdmUgb2RkCiAg
ICAgLy8gZWZmZWN0cy4KLSAgICB2aXJ0dWFsIGludCBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25s
eSwgaW50IHpvb21MZXZlbCkgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIHNldFpvb21MZXZlbChi
b29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBDYWxsZWQgYnkg
YSBmdWxsIGZyYW1lIHBsdWdpbiBpbnNpZGUgdGhpcyB2aWV3IHRvIHVwZGF0ZSB0aGUgem9vbSBs
aW1pdHMuCisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVt
Wm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4
aW11bVpvb21MZXZlbCkgPSAwOworCisgICAgLy8gQ2FsbGVkIGJ5IGEgZnVsbCBmcmFtZSBwbHVn
aW4gaW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQgdGhhdCBpdHMKKyAgICAvLyB6b29tIGxl
dmVsIGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2luIHNob3VsZCBvbmx5IGNhbGwgdGhpcyBm
dW5jdGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5nZSB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBi
cm93c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UKKyAgICAvLyBhIHBsdWdpbiBjYW4gdXBk
YXRlIGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2YgaXRzIG93biBVSS4KKyAgICB2aXJ0dWFs
IHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZChkb3VibGUgem9vbUxldmVsKSA9
IDA7CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnZlcnQgYmV0d2VlbiB6b29tIGxl
dmVsIGFuZCB6b29tIGZhY3Rvci4gIHpvb20KKyAgICAvLyBmYWN0b3IgaXMgem9vbSBwZXJjZW50
IC8gMTAwLCBzbyAzMDAlID0gMy4wLgorICAgIFdFQktJVF9BUEkgc3RhdGljIGRvdWJsZSB6b29t
TGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7CisgICAgV0VCS0lUX0FQSSBzdGF0
aWMgZG91YmxlIHpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKTsKIAogCiAgICAg
Ly8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAkocmV2aXNpb24gNjg0MjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDYgKzM0OCwxNyBAQCBwdWJsaWM6CiAgICAgLy8g
QWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGRldmljZSBvcmllbnRhdGlvbiBzZXJ2aWNlcy4K
ICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlv
bkNsaWVudCgpIHsgcmV0dXJuIDA7IH0KIAorCisgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAv
LyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHpvb20gbGV2ZWxzIGZvciB0aGlzIGZyYW1l
IGhhdmUgY2hhbmdlZCBmcm9tCisgICAgLy8gdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgIHZpcnR1
YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bUxldmVsLCBkb3VibGUgbWF4
aW11bUxldmVsKSB7IH0KKworICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9v
bSBsZXZlbCBoYXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhbgorICAgIC8vIGFjdGlvbiB0aGF0
IHdhc24ndCBpbml0aWF0ZWQgYnkgdGhlIGNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxl
dmVsQ2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXdDbGllbnQoKSB7IH0K
IH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwCShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMSwxNCArMTQxMSw2IEBAIFBhc3NS
ZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAgICBpZiAoIXdlYlBsdWdpbi0+
aW5pdGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGJv
b2wgem9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKS0+em9vbVRleHRPbmx5KCk7
Ci0gICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/IG1fd2ViRnJhbWUtPmZyYW1l
KCktPnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlWm9vbUZhY3Rv
cigpOwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAgICAgLy8gVGhlcmUncyBhIHNh
dmVkIHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91dCBpdCBzaW5jZQotICAgICAg
ICAvLyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxsZWQgYmVmb3JlIHRoZSBwbHVn
aW4gd2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0Wm9vbUZhY3Rvcih6b29tRmFj
dG9yLCB6b29tVGV4dE9ubHkpOwotICAgIH0KLQogICAgIC8vIFRoZSBlbGVtZW50IG1pZ2h0IGhh
dmUgYmVlbiByZW1vdmVkIGR1cmluZyBwbHVnaW4gaW5pdGlhbGl6YXRpb24hCiAgICAgaWYgKCFl
bGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5
IDIwJSkuICBUaGUgbWluIGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFs
ZiBhbmQgM3ggdGhlIG9yaWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRj
aAogLy8gdGhvc2UgaW4gQXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJW
aWV3Lm1tCi1zdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4y
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJs
ZSBXZWJWaWV3Ojp0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBX
ZWJWaWV3OjptaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmll
dzo6bWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlk
ZW50aWZpZXMgYSBuYW1lc3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NY
CiAvLyBmb3Igc29tZSBwcm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhp
bmdzIHRoYXQgZG9uJ3Qgc2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIo
MCkKICNlbmRpZgogICAgICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZh
bHNlKQorICAgICwgbV9taW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JU
b1pvb21MZXZlbChtYXhUZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2ln
bm9yZUlucHV0RXZlbnRzKGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpjbGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6
em9vbUxldmVsKCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1
cm4gbV96b29tTGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wg
dGV4dE9ubHksIGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0
b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6
cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKTsKKyAgICBpZiAoem9vbUxldmVsIDwgbV9taW5pbXVtWm9vbUxl
dmVsKQorICAgICAgICBtX3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICBlbHNl
IGlmICh6b29tTGV2ZWwgPiBtX21heGltdW1ab29tTGV2ZWwpCisgICAgICAgIG1fem9vbUxldmVs
ID0gbV9tYXhpbXVtWm9vbUxldmVsOworICAgIGVsc2UKKyAgICAgICAgbV96b29tTGV2ZWwgPSB6
b29tTGV2ZWw7CisKICAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7
CisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJ
bXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUpOworICAgIGlmIChwbHVnaW5Db250
YWluZXIpCisgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbCht
X3pvb21MZXZlbCwgdGV4dE9ubHkpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgem9vbUZh
Y3RvciA9IHpvb21MZXZlbFRvWm9vbUZhY3RvcihtX3pvb21MZXZlbCk7CisgICAgICAgIGlmICh0
ZXh0T25seSkKKyAgICAgICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEs
IHpvb21GYWN0b3IpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyh6b29tRmFjdG9yLCAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1fem9v
bUxldmVsOworfQogCi0gICAgZmxvYXQgb2xkWm9vbUZhY3RvciA9IG1fem9vbVRleHRPbmx5ID8g
ZnJhbWUtPnRleHRab29tRmFjdG9yKCkgOiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsKK3ZvaWQg
V2ViVmlld0ltcGw6Onpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2
ZWwpCit7CisgICAgbV9taW5pbXVtWm9vbUxldmVsID0gbWluaW11bVpvb21MZXZlbDsKKyAgICBt
X21heGltdW1ab29tTGV2ZWwgPSBtYXhpbXVtWm9vbUxldmVsOworICAgIG1fY2xpZW50LT56b29t
TGltaXRzQ2hhbmdlZChtX21pbmltdW1ab29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCk7Cit9
CiAKLSAgICBpZiAodGV4dE9ubHkpCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21G
YWN0b3JzKDEsIHpvb21GYWN0b3IpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VB
bmRUZXh0Wm9vbUZhY3RvcnMoem9vbUZhY3RvciwgMSk7Cit2b2lkIFdlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYg
KHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG9s
ZFpvb21GYWN0b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBtX3pvb21UZXh0T25seSkg
ewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJG
cmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7Ci0gICAgICAgIGlmIChw
bHVnaW5Db250YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnBsdWdpbigpLT5z
ZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKLSAgICB9CisgICAgbV96b29tTGV2
ZWwgPSBzdGQ6Om1heChzdGQ6Om1pbih6b29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCksIG1f
bWluaW11bVpvb21MZXZlbCk7CisgICAgbV9jbGllbnQtPnpvb21MZXZlbENoYW5nZWQoKTsKK30K
IAotICAgIG1fem9vbUxldmVsID0gem9vbUxldmVsOwotICAgIG1fem9vbVRleHRPbmx5ID0gdGV4
dE9ubHk7Citkb3VibGUgV2ViVmlldzo6em9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29t
TGV2ZWwpCit7CisgICAgcmV0dXJuIHN0ZDo6cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6
b29tTGV2ZWwpOworfQogCi0gICAgcmV0dXJuIG1fem9vbUxldmVsOworZG91YmxlIFdlYlZpZXc6
Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZh
Y3RvciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2coZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0
dXJuIGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxh
eWVyQWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZp
c2lvbiA2ODQyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMyLDggKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0
aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9k
ZSgpOwotICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpv
b21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSB6b29tTGV2ZWwoKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0
T25seSwgZG91YmxlIHpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFu
Z2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIGZ1bGxG
cmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCk7CiAgICAgdmlydHVh
bCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlvbigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQ
bGF5ZXJBY3Rpb24mIGFjdGlvbiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsK
QEAgLTM0Miw4ICszNDUsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpQb3B1cENvbnRhaW5l
ciogc2VsZWN0UG9wdXAoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdFBvcHVwLmdldCgpOyB9CiAK
LSAgICBib29sIHpvb21UZXh0T25seSgpIGNvbnN0IHsgcmV0dXJuIG1fem9vbVRleHRPbmx5OyB9
Ci0KICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGxlYWRzIHRvIHNjcm9sbGluZy4K
ICAgICBzdGF0aWMgYm9vbCBtYXBLZXlDb2RlRm9yU2Nyb2xsKGludCBrZXlDb2RlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24qIHNj
cm9sbERpcmVjdGlvbiwKQEAgLTQ0MCw5ICs0NDEsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIEtl
ZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuIDAgbWVhbnMgbm8gem9vbSwgcG9z
aXRpdmUgbnVtYmVycwogICAgIC8vIG1lYW4gem9vbSBpbiwgbmVnYXRpdmUgbnVtYmVycyBtZWFu
IHpvb20gb3V0LgotICAgIGludCBtX3pvb21MZXZlbDsKKyAgICBkb3VibGUgbV96b29tTGV2ZWw7
CisKKyAgICBkb3VibGUgbV9taW5pbXVtWm9vbUxldmVsOwogCi0gICAgYm9vbCBtX3pvb21UZXh0
T25seTsKKyAgICBkb3VibGUgbV9tYXhpbXVtWm9vbUxldmVsOwogCiAgICAgYm9vbCBtX2NvbnRl
eHRNZW51QWxsb3dlZDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69261</attachid>
            <date>2010-09-29 15:36:30 -0700</date>
            <delta_ts>2010-09-29 15:41:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100929153610.patch</filename>
            <type>text/plain</type>
            <size>15759</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDktMjkgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1
Z2luQ29udGFpbmVyLmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp6
b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpvb21M
ZXZlbENoYW5nZWQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdpbik6Cisg
ICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpsb2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAg
ICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
em9vbUxldmVsVG9ab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6em9vbUZh
Y3RvclRvWm9vbUxldmVsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0w
OS0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShy
ZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIHNlbGVjdGlvbkFzTWFya3VwKCkgY29uc3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAog
ICAgIC8vIFVzZWQgZm9yIHpvb21pbmcgb2YgZnVsbCBwYWdlIHBsdWdpbnMuCi0gICAgdmlydHVh
bCB2b2lkIHNldFpvb21GYWN0b3IoZmxvYXQgc2NhbGUsIGJvb2wgdGV4dE9ubHkpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRab29tTGV2ZWwoZG91YmxlIGxldmVsLCBib29sIHRleHRPbmx5KSB7
IH0KIAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4g
IFRoZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0
aGF0IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVy
LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5D
b250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMTMgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KAogICAgICAgICBjb25zdCBXZWJVUkxSZXF1
ZXN0JiwgY29uc3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBu
b3RpZnlEYXRhKSA9IDA7CiAKKyAgICAvLyBOb3RpZmllcyB0aGF0IHRoZSB6b29tIGZhY3RvciBo
YXMgY2hhbmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUNoYW5nZWQoZG91YmxlIGZhY3Rvcikg
PSAwOworCisgICAgLy8gU2V0cyB0aGUgbWluaW51bSBhbmQgbWF4aW1pdW0gem9vbSBmYWN0b3Jz
LgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bUZhY3Rv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1GYWN0
b3IpID0gMDsKKwogICAgIHZpcnR1YWwgV2ViUGx1Z2luKiBwbHVnaW4oKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldFBsdWdpbihXZWJQbHVnaW4qKSA9IDA7CiAKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiV2Vi
VmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCiAKKy8vIEZJWE1FKGphbSk6IHRha2Ug
dGhpcyBvdXQgYWZ0ZXIgQ2hyb21lIGlzIHVwZGF0ZWQKKyNkZWZpbmUgWk9PTV9MRVZFTF9JU19E
T1VCTEUKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q7CkBAIC01NCw2ICs1NywxMCBAQCBzdHJ1Y3QgV2ViUG9pbnQ7CiAKIGNsYXNzIFdlYlZpZXcg
OiBwdWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBjb25z
dCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW87CisgICAgV0VCS0lUX0FQSSBzdGF0aWMg
Y29uc3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllcjsKKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyBjb25zdCBkb3VibGUgbWF4VGV4dFNpemVNdWx0aXBsaWVyOworCiAgICAgLy8gQ29udHJvbHMg
dGhlIHRpbWUgdGhhdCB1c2VyIHNjcmlwdHMgaW5qZWN0ZWQgaW50byB0aGUgZG9jdW1lbnQgcnVu
LgogICAgIGVudW0gVXNlclNjcmlwdEluamVjdEF0IHsKICAgICAgICAgVXNlclNjcmlwdEluamVj
dEF0RG9jdW1lbnRTdGFydCwKQEAgLTE2MSw5ICsxNjgsMTEgQEAgcHVibGljOgogICAgIC8vIFpv
b20gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJucyB0aGUgY3VycmVudCB6b29tIGxldmVsLiAgMCBp
cyAib3JpZ2luYWwgc2l6ZSIsIGFuZCBlYWNoIGluY3JlbWVudAotICAgIC8vIGFib3ZlIG9yIGJl
bG93IHJlcHJlc2VudHMgem9vbWluZyAyMCUgbGFyZ2VyIG9yIHNtYWxsZXIgdG8gbGltaXRzIG9m
IDMwMCUKLSAgICAvLyBhbmQgNTAlIG9mIG9yaWdpbmFsIHNpemUsIHJlc3BlY3RpdmVseS4KLSAg
ICB2aXJ0dWFsIGludCB6b29tTGV2ZWwoKSA9IDA7CisgICAgLy8gYWJvdmUgb3IgYmVsb3cgcmVw
cmVzZW50cyB6b29taW5nIDIwJSBsYXJnZXIgb3Igc21hbGxlciB0byBkZWZhdWx0IGxpbWl0cwor
ICAgIC8vIG9mIDMwMCUgYW5kIDUwJSBvZiBvcmlnaW5hbCBzaXplLCByZXNwZWN0aXZlbHkuICBP
bmx5IHBsdWdpbnMgdXNlCisgICAgLy8gbm9uIHdob2xlLW51bWJlcnMsIHNpbmNlIHRoZXkgbWln
aHQgY2hvb3NlIHRvIGhhdmUgc3BlY2lmaWMgem9vbSBsZXZlbCBzbworICAgIC8vIHRoYXQgZml4
ZWQtd2lkdGggY29udGVudCBpcyBmaXQtdG8tcGFnZS13aWR0aCwgZm9yIGV4YW1wbGUuCisgICAg
dmlydHVhbCBkb3VibGUgem9vbUxldmVsKCkgPSAwOwogCiAgICAgLy8gQ2hhbmdlcyB0aGUgem9v
bSBsZXZlbCB0byB0aGUgc3BlY2lmaWVkIGxldmVsLCBjbGFtcGluZyBhdCB0aGUgbGltaXRzCiAg
ICAgLy8gbm90ZWQgYWJvdmUsIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwgYWZ0
ZXIgYXBwbHlpbmcgdGhlCkBAIC0xNzMsNyArMTgyLDE2IEBAIHB1YmxpYzoKICAgICAvLyBwYWdl
IHdpbGwgYmUgem9vbWVkLiBZb3UgY2FuIG9ubHkgaGF2ZSBlaXRoZXIgdGV4dCB6b29tIG9yIGZ1
bGwgcGFnZSB6b29tCiAgICAgLy8gYXQgb25lIHRpbWUuICBDaGFuZ2luZyB0aGUgbW9kZSB3aGls
ZSB0aGUgcGFnZSBpcyB6b29tZWQgd2lsbCBoYXZlIG9kZAogICAgIC8vIGVmZmVjdHMuCi0gICAg
dmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwpID0g
MDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgZG91Ymxl
IHpvb21MZXZlbCkgPSAwOworCisgICAgLy8gVXBkYXRlcyB0aGUgem9vbSBsaW1pdHMgZm9yIHRo
aXMgdmlldy4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1pbmlt
dW1ab29tTGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBt
YXhpbXVtWm9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnZl
cnQgYmV0d2VlbiB6b29tIGxldmVsIGFuZCB6b29tIGZhY3Rvci4gIHpvb20KKyAgICAvLyBmYWN0
b3IgaXMgem9vbSBwZXJjZW50IC8gMTAwLCBzbyAzMDAlID0gMy4wLgorICAgIFdFQktJVF9BUEkg
c3RhdGljIGRvdWJsZSB6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7Cisg
ICAgV0VCS0lUX0FQSSBzdGF0aWMgZG91YmxlIHpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUg
ZmFjdG9yKTsKIAogCiAgICAgLy8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDYgKzM0OCwxNyBA
QCBwdWJsaWM6CiAgICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGRldmljZSBvcmll
bnRhdGlvbiBzZXJ2aWNlcy4KICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50
KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsgcmV0dXJuIDA7IH0KIAorCisgICAgLy8gWm9v
bSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHpvb20gbGV2
ZWxzIGZvciB0aGlzIGZyYW1lIGhhdmUgY2hhbmdlZCBmcm9tCisgICAgLy8gdGhlIGRlZmF1bHQg
dmFsdWVzLgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11
bUxldmVsLCBkb3VibGUgbWF4aW11bUxldmVsKSB7IH0KKworICAgIC8vIEluZm9ybXMgdGhlIGJy
b3dzZXIgdGhhdCB0aGUgem9vbSBsZXZlbCBoYXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhbgor
ICAgIC8vIGFjdGlvbiB0aGF0IHdhc24ndCBpbml0aWF0ZWQgYnkgdGhlIGNsaWVudC4KKyAgICB2
aXJ0dWFsIHZvaWQgem9vbUxldmVsQ2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldl
YlZpZXdDbGllbnQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMSwx
NCArMTQxMSw2IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAg
ICBpZiAoIXdlYlBsdWdpbi0+aW5pdGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGJvb2wgem9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwo
KS0+em9vbVRleHRPbmx5KCk7Ci0gICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/
IG1fd2ViRnJhbWUtPmZyYW1lKCktPnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFt
ZSgpLT5wYWdlWm9vbUZhY3RvcigpOwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAg
ICAgLy8gVGhlcmUncyBhIHNhdmVkIHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91
dCBpdCBzaW5jZQotICAgICAgICAvLyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxs
ZWQgYmVmb3JlIHRoZSBwbHVnaW4gd2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0
Wm9vbUZhY3Rvcih6b29tRmFjdG9yLCB6b29tVGV4dE9ubHkpOwotICAgIH0KLQogICAgIC8vIFRo
ZSBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkIGR1cmluZyBwbHVnaW4gaW5pdGlhbGl6
YXRpb24hCiAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAi
V2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2Vi
VmVjdG9yLmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVz
b3VyY2VSZXNwb25zZS5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzQ4LDYgKzM0
OSwyMyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmxvYWRGcmFtZVJlCiAgICAgICAg
IFNlbmRSZWZlcnJlcik7CiB9CiAKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNo
YW5nZWQoZG91YmxlIGZhY3RvcikKK3sKKworICAgIGRvdWJsZSB6b29tTGV2ZWwgPSBXZWJWaWV3
Ojp6b29tRmFjdG9yVG9ab29tTGV2ZWwoZmFjdG9yKTsKKyAgICBXZWJWaWV3SW1wbCogdmlldyA9
IFdlYlZpZXdJbXBsOjpmcm9tUGFnZShtX2VsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPnBh
Z2UoKSk7CisgICAgdmlldy0+ZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZCh6b29tTGV2
ZWwpOworfQorCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6Onpvb21MaW1pdHNDaGFuZ2Vk
KGRvdWJsZSBtaW5pbXVtRmFjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bUZhY3RvcikKK3sKKyAgICBkb3VibGUgbWluaW11
bUxldmVsID0gV2ViVmlldzo6em9vbUZhY3RvclRvWm9vbUxldmVsKG1pbmltdW1GYWN0b3IpOwor
ICAgIGRvdWJsZSBtYXhpbXVtTGV2ZWwgPSBXZWJWaWV3Ojp6b29tRmFjdG9yVG9ab29tTGV2ZWwo
bWF4aW11bUZhY3Rvcik7CisgICAgV2ViVmlld0ltcGwqIHZpZXcgPSBXZWJWaWV3SW1wbDo6ZnJv
bVBhZ2UobV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCkpOworICAgIHZpZXct
Pnpvb21MaW1pdHNDaGFuZ2VkKG1pbmltdW1MZXZlbCwgbWF4aW11bUxldmVsKTsKK30KKwogdm9p
ZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHBsdWdp
biByZWNlaXZlcyB3aW5kb3cgZ2VvbWV0cnkgYmVmb3JlIGRhdGEsIG9yIGVsc2UKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShyZXZpc2lvbiA2
ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE5QT2Jq
ZWN0KiBzY3JpcHRhYmxlT2JqZWN0Rm9yRWxlbWVudCgpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGV4ZWN1dGVTY3JpcHRVUkwoY29uc3QgV2ViVVJMJiwgYm9vbCBwb3B1cHNBbGxvd2VkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBXZWJVUkxSZXF1ZXN0JiwgY29u
c3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBub3RpZnlEYXRh
KTsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbUNoYW5nZWQoZG91YmxlIGZhY3Rvcik7CisgICAgdmly
dHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtRmFjdG9yLCBkb3VibGUg
bWF4aW11bUZhY3Rvcik7CiAKICAgICAvLyBUaGlzIGNhbm5vdCBiZSBudWxsLgogICAgIFdlYlBs
dWdpbiogcGx1Z2luKCkgeyByZXR1cm4gbV93ZWJQbHVnaW47IH0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5
IDIwJSkuICBUaGUgbWluIGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFs
ZiBhbmQgM3ggdGhlIG9yaWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRj
aAogLy8gdGhvc2UgaW4gQXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJW
aWV3Lm1tCi1zdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4y
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJs
ZSBXZWJWaWV3Ojp0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBX
ZWJWaWV3OjptaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmll
dzo6bWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlk
ZW50aWZpZXMgYSBuYW1lc3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NY
CiAvLyBmb3Igc29tZSBwcm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhp
bmdzIHRoYXQgZG9uJ3Qgc2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIo
MCkKICNlbmRpZgogICAgICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZh
bHNlKQorICAgICwgbV9taW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JU
b1pvb21MZXZlbChtYXhUZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2ln
bm9yZUlucHV0RXZlbnRzKGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpjbGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6
em9vbUxldmVsKCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1
cm4gbV96b29tTGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wg
dGV4dE9ubHksIGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0
b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6
cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKTsKKyAgICBpZiAoem9vbUxldmVsIDwgbV9taW5pbXVtWm9vbUxl
dmVsKQorICAgICAgICBtX3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICBlbHNl
IGlmICh6b29tTGV2ZWwgPiBtX21heGltdW1ab29tTGV2ZWwpCisgICAgICAgIG1fem9vbUxldmVs
ID0gbV9tYXhpbXVtWm9vbUxldmVsOworICAgIGVsc2UKKyAgICAgICAgbV96b29tTGV2ZWwgPSB6
b29tTGV2ZWw7CisKICAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7
CisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJ
bXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUpOworICAgIGlmIChwbHVnaW5Db250
YWluZXIpCisgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbCht
X3pvb21MZXZlbCwgdGV4dE9ubHkpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgem9vbUZh
Y3RvciA9IHpvb21MZXZlbFRvWm9vbUZhY3RvcihtX3pvb21MZXZlbCk7CisgICAgICAgIGlmICh0
ZXh0T25seSkKKyAgICAgICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEs
IHpvb21GYWN0b3IpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyh6b29tRmFjdG9yLCAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1fem9v
bUxldmVsOworfQogCi0gICAgZmxvYXQgb2xkWm9vbUZhY3RvciA9IG1fem9vbVRleHRPbmx5ID8g
ZnJhbWUtPnRleHRab29tRmFjdG9yKCkgOiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsKK3ZvaWQg
V2ViVmlld0ltcGw6Onpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2
ZWwpCit7CisgICAgbV9taW5pbXVtWm9vbUxldmVsID0gbWluaW11bVpvb21MZXZlbDsKKyAgICBt
X21heGltdW1ab29tTGV2ZWwgPSBtYXhpbXVtWm9vbUxldmVsOworICAgIG1fY2xpZW50LT56b29t
TGltaXRzQ2hhbmdlZChtX21pbmltdW1ab29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCk7Cit9
CiAKLSAgICBpZiAodGV4dE9ubHkpCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21G
YWN0b3JzKDEsIHpvb21GYWN0b3IpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VB
bmRUZXh0Wm9vbUZhY3RvcnMoem9vbUZhY3RvciwgMSk7Cit2b2lkIFdlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYg
KHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG9s
ZFpvb21GYWN0b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBtX3pvb21UZXh0T25seSkg
ewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJG
cmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7Ci0gICAgICAgIGlmIChw
bHVnaW5Db250YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnBsdWdpbigpLT5z
ZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKLSAgICB9CisgICAgbV96b29tTGV2
ZWwgPSBzdGQ6Om1heChzdGQ6Om1pbih6b29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCksIG1f
bWluaW11bVpvb21MZXZlbCk7CisgICAgbV9jbGllbnQtPnpvb21MZXZlbENoYW5nZWQoKTsKK30K
IAotICAgIG1fem9vbUxldmVsID0gem9vbUxldmVsOwotICAgIG1fem9vbVRleHRPbmx5ID0gdGV4
dE9ubHk7Citkb3VibGUgV2ViVmlldzo6em9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29t
TGV2ZWwpCit7CisgICAgcmV0dXJuIHN0ZDo6cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6
b29tTGV2ZWwpOworfQogCi0gICAgcmV0dXJuIG1fem9vbUxldmVsOworZG91YmxlIFdlYlZpZXc6
Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZh
Y3RvciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2coZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0
dXJuIGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxh
eWVyQWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZp
c2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMyLDggKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0
aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9k
ZSgpOwotICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpv
b21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSB6b29tTGV2ZWwoKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0
T25seSwgZG91YmxlIHpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFu
Z2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1NZWRpYVBsYXllckFjdGlvbigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb24m
IGFjdGlvbiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAgLTM0MiwxMyAr
MzQ0LDE3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQ
b3B1cCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0UG9wdXAuZ2V0KCk7IH0KIAotICAgIGJvb2wg
em9vbVRleHRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV96b29tVGV4dE9ubHk7IH0KLQogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgbGVhZHMgdG8gc2Nyb2xsaW5nLgogICAgIHN0YXRp
YyBib29sIG1hcEtleUNvZGVGb3JTY3JvbGwoaW50IGtleUNvZGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiogc2Nyb2xsRGlyZWN0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpTY3JvbGxH
cmFudWxhcml0eSogc2Nyb2xsR3JhbnVsYXJpdHkpOwogCisgICAgLy8gQ2FsbGVkIGJ5IGEgZnVs
bCBmcmFtZSBwbHVnaW4gaW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQgdGhhdCBpdHMKKyAg
ICAvLyB6b29tIGxldmVsIGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2luIHNob3VsZCBvbmx5
IGNhbGwgdGhpcyBmdW5jdGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5nZSB3YXMgdHJpZ2dl
cmVkIGJ5IHRoZSBicm93c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UKKyAgICAvLyBhIHBs
dWdpbiBjYW4gdXBkYXRlIGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2YgaXRzIG93biBVSS4K
KyAgICB2b2lkIGZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZl
bCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYlZpZXc7ICAvLyBTbyBXZWJWaWV3
OjpDcmVhdGUgY2FuIGNhbGwgb3VyIGNvbnN0cnVjdG9yCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6
UmVmQ291bnRlZDxXZWJWaWV3SW1wbD47CkBAIC00NDAsOSArNDQ2LDExIEBAIHByaXZhdGU6CiAK
ICAgICAvLyBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCB6b29tIGxldmVsLiAwIG1lYW5zIG5v
IHpvb20sIHBvc2l0aXZlIG51bWJlcnMKICAgICAvLyBtZWFuIHpvb20gaW4sIG5lZ2F0aXZlIG51
bWJlcnMgbWVhbiB6b29tIG91dC4KLSAgICBpbnQgbV96b29tTGV2ZWw7CisgICAgZG91YmxlIG1f
em9vbUxldmVsOworCisgICAgZG91YmxlIG1fbWluaW11bVpvb21MZXZlbDsKIAotICAgIGJvb2wg
bV96b29tVGV4dE9ubHk7CisgICAgZG91YmxlIG1fbWF4aW11bVpvb21MZXZlbDsKIAogICAgIGJv
b2wgbV9jb250ZXh0TWVudUFsbG93ZWQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69263</attachid>
            <date>2010-09-29 15:41:44 -0700</date>
            <delta_ts>2010-09-29 15:51:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100929154124.patch</filename>
            <type>text/plain</type>
            <size>15759</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDktMjkgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1
Z2luQ29udGFpbmVyLmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp6
b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpvb21M
ZXZlbENoYW5nZWQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdpbik6Cisg
ICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpsb2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAg
ICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
em9vbUxldmVsVG9ab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6em9vbUZh
Y3RvclRvWm9vbUxldmVsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0w
OS0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShy
ZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIHNlbGVjdGlvbkFzTWFya3VwKCkgY29uc3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAog
ICAgIC8vIFVzZWQgZm9yIHpvb21pbmcgb2YgZnVsbCBwYWdlIHBsdWdpbnMuCi0gICAgdmlydHVh
bCB2b2lkIHNldFpvb21GYWN0b3IoZmxvYXQgc2NhbGUsIGJvb2wgdGV4dE9ubHkpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRab29tTGV2ZWwoZG91YmxlIGxldmVsLCBib29sIHRleHRPbmx5KSB7
IH0KIAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4g
IFRoZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0
aGF0IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVy
LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5D
b250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMTMgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KAogICAgICAgICBjb25zdCBXZWJVUkxSZXF1
ZXN0JiwgY29uc3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBu
b3RpZnlEYXRhKSA9IDA7CiAKKyAgICAvLyBOb3RpZmllcyB0aGF0IHRoZSB6b29tIGZhY3RvciBo
YXMgY2hhbmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUNoYW5nZWQoZG91YmxlIGZhY3Rvcikg
PSAwOworCisgICAgLy8gU2V0cyB0aGUgbWluaW51bSBhbmQgbWF4aW1pdW0gem9vbSBmYWN0b3Jz
LgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bUZhY3Rv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1GYWN0
b3IpID0gMDsKKwogICAgIHZpcnR1YWwgV2ViUGx1Z2luKiBwbHVnaW4oKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldFBsdWdpbihXZWJQbHVnaW4qKSA9IDA7CiAKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiV2Vi
VmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCiAKKy8vIEZJWE1FKGphbSk6IHRha2Ug
dGhpcyBvdXQgYWZ0ZXIgQ2hyb21lIGlzIHVwZGF0ZWQKKyNkZWZpbmUgWk9PTV9MRVZFTF9JU19E
T1VCTEUKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q7CkBAIC01NCw2ICs1NywxMCBAQCBzdHJ1Y3QgV2ViUG9pbnQ7CiAKIGNsYXNzIFdlYlZpZXcg
OiBwdWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBjb25z
dCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW87CisgICAgV0VCS0lUX0FQSSBzdGF0aWMg
Y29uc3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllcjsKKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyBjb25zdCBkb3VibGUgbWF4VGV4dFNpemVNdWx0aXBsaWVyOworCiAgICAgLy8gQ29udHJvbHMg
dGhlIHRpbWUgdGhhdCB1c2VyIHNjcmlwdHMgaW5qZWN0ZWQgaW50byB0aGUgZG9jdW1lbnQgcnVu
LgogICAgIGVudW0gVXNlclNjcmlwdEluamVjdEF0IHsKICAgICAgICAgVXNlclNjcmlwdEluamVj
dEF0RG9jdW1lbnRTdGFydCwKQEAgLTE2MSw5ICsxNjgsMTEgQEAgcHVibGljOgogICAgIC8vIFpv
b20gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJucyB0aGUgY3VycmVudCB6b29tIGxldmVsLiAgMCBp
cyAib3JpZ2luYWwgc2l6ZSIsIGFuZCBlYWNoIGluY3JlbWVudAotICAgIC8vIGFib3ZlIG9yIGJl
bG93IHJlcHJlc2VudHMgem9vbWluZyAyMCUgbGFyZ2VyIG9yIHNtYWxsZXIgdG8gbGltaXRzIG9m
IDMwMCUKLSAgICAvLyBhbmQgNTAlIG9mIG9yaWdpbmFsIHNpemUsIHJlc3BlY3RpdmVseS4KLSAg
ICB2aXJ0dWFsIGludCB6b29tTGV2ZWwoKSA9IDA7CisgICAgLy8gYWJvdmUgb3IgYmVsb3cgcmVw
cmVzZW50cyB6b29taW5nIDIwJSBsYXJnZXIgb3Igc21hbGxlciB0byBkZWZhdWx0IGxpbWl0cwor
ICAgIC8vIG9mIDMwMCUgYW5kIDUwJSBvZiBvcmlnaW5hbCBzaXplLCByZXNwZWN0aXZlbHkuICBP
bmx5IHBsdWdpbnMgdXNlCisgICAgLy8gbm9uIHdob2xlLW51bWJlcnMsIHNpbmNlIHRoZXkgbWln
aHQgY2hvb3NlIHRvIGhhdmUgc3BlY2lmaWMgem9vbSBsZXZlbCBzbworICAgIC8vIHRoYXQgZml4
ZWQtd2lkdGggY29udGVudCBpcyBmaXQtdG8tcGFnZS13aWR0aCwgZm9yIGV4YW1wbGUuCisgICAg
dmlydHVhbCBkb3VibGUgem9vbUxldmVsKCkgPSAwOwogCiAgICAgLy8gQ2hhbmdlcyB0aGUgem9v
bSBsZXZlbCB0byB0aGUgc3BlY2lmaWVkIGxldmVsLCBjbGFtcGluZyBhdCB0aGUgbGltaXRzCiAg
ICAgLy8gbm90ZWQgYWJvdmUsIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwgYWZ0
ZXIgYXBwbHlpbmcgdGhlCkBAIC0xNzMsNyArMTgyLDE2IEBAIHB1YmxpYzoKICAgICAvLyBwYWdl
IHdpbGwgYmUgem9vbWVkLiBZb3UgY2FuIG9ubHkgaGF2ZSBlaXRoZXIgdGV4dCB6b29tIG9yIGZ1
bGwgcGFnZSB6b29tCiAgICAgLy8gYXQgb25lIHRpbWUuICBDaGFuZ2luZyB0aGUgbW9kZSB3aGls
ZSB0aGUgcGFnZSBpcyB6b29tZWQgd2lsbCBoYXZlIG9kZAogICAgIC8vIGVmZmVjdHMuCi0gICAg
dmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwpID0g
MDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgZG91Ymxl
IHpvb21MZXZlbCkgPSAwOworCisgICAgLy8gVXBkYXRlcyB0aGUgem9vbSBsaW1pdHMgZm9yIHRo
aXMgdmlldy4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1pbmlt
dW1ab29tTGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBt
YXhpbXVtWm9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnZl
cnQgYmV0d2VlbiB6b29tIGxldmVsIGFuZCB6b29tIGZhY3Rvci4gIHpvb20KKyAgICAvLyBmYWN0
b3IgaXMgem9vbSBwZXJjZW50IC8gMTAwLCBzbyAzMDAlID0gMy4wLgorICAgIFdFQktJVF9BUEkg
c3RhdGljIGRvdWJsZSB6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7Cisg
ICAgV0VCS0lUX0FQSSBzdGF0aWMgZG91YmxlIHpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUg
ZmFjdG9yKTsKIAogCiAgICAgLy8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDYgKzM0OCwxNyBA
QCBwdWJsaWM6CiAgICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGRldmljZSBvcmll
bnRhdGlvbiBzZXJ2aWNlcy4KICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50
KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsgcmV0dXJuIDA7IH0KIAorCisgICAgLy8gWm9v
bSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHpvb20gbGV2
ZWxzIGZvciB0aGlzIGZyYW1lIGhhdmUgY2hhbmdlZCBmcm9tCisgICAgLy8gdGhlIGRlZmF1bHQg
dmFsdWVzLgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11
bUxldmVsLCBkb3VibGUgbWF4aW11bUxldmVsKSB7IH0KKworICAgIC8vIEluZm9ybXMgdGhlIGJy
b3dzZXIgdGhhdCB0aGUgem9vbSBsZXZlbCBoYXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBhbgor
ICAgIC8vIGFjdGlvbiB0aGF0IHdhc24ndCBpbml0aWF0ZWQgYnkgdGhlIGNsaWVudC4KKyAgICB2
aXJ0dWFsIHZvaWQgem9vbUxldmVsQ2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldl
YlZpZXdDbGllbnQoKSB7IH0KIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxMSwx
NCArMTQxMSw2IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGwKICAg
ICBpZiAoIXdlYlBsdWdpbi0+aW5pdGlhbGl6ZShjb250YWluZXIuZ2V0KCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGJvb2wgem9vbVRleHRPbmx5ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwo
KS0+em9vbVRleHRPbmx5KCk7Ci0gICAgZmxvYXQgem9vbUZhY3RvciA9IHpvb21UZXh0T25seSA/
IG1fd2ViRnJhbWUtPmZyYW1lKCktPnRleHRab29tRmFjdG9yKCkgOiBtX3dlYkZyYW1lLT5mcmFt
ZSgpLT5wYWdlWm9vbUZhY3RvcigpOwotICAgIGlmICh6b29tRmFjdG9yICE9IDEpIHsKLSAgICAg
ICAgLy8gVGhlcmUncyBhIHNhdmVkIHpvb20gbGV2ZWwsIHNvIHRlbGwgdGhlIHBsdWdpbiBhYm91
dCBpdCBzaW5jZQotICAgICAgICAvLyBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsIHdhcyBjYWxs
ZWQgYmVmb3JlIHRoZSBwbHVnaW4gd2FzIGNyZWF0ZWQuCi0gICAgICAgIHdlYlBsdWdpbi0+c2V0
Wm9vbUZhY3Rvcih6b29tRmFjdG9yLCB6b29tVGV4dE9ubHkpOwotICAgIH0KLQogICAgIC8vIFRo
ZSBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkIGR1cmluZyBwbHVnaW4gaW5pdGlhbGl6
YXRpb24hCiAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAi
V2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2Vi
VmVjdG9yLmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVz
b3VyY2VSZXNwb25zZS5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzQ4LDYgKzM0
OSwyMyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmxvYWRGcmFtZVJlCiAgICAgICAg
IFNlbmRSZWZlcnJlcik7CiB9CiAKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNo
YW5nZWQoZG91YmxlIGZhY3RvcikKK3sKKworICAgIGRvdWJsZSB6b29tTGV2ZWwgPSBXZWJWaWV3
Ojp6b29tRmFjdG9yVG9ab29tTGV2ZWwoZmFjdG9yKTsKKyAgICBXZWJWaWV3SW1wbCogdmlldyA9
IFdlYlZpZXdJbXBsOjpmcm9tUGFnZShtX2VsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPnBh
Z2UoKSk7CisgICAgdmlldy0+ZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZCh6b29tTGV2
ZWwpOworfQorCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6Onpvb21MaW1pdHNDaGFuZ2Vk
KGRvdWJsZSBtaW5pbXVtRmFjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bUZhY3RvcikKK3sKKyAgICBkb3VibGUgbWluaW11
bUxldmVsID0gV2ViVmlldzo6em9vbUZhY3RvclRvWm9vbUxldmVsKG1pbmltdW1GYWN0b3IpOwor
ICAgIGRvdWJsZSBtYXhpbXVtTGV2ZWwgPSBXZWJWaWV3Ojp6b29tRmFjdG9yVG9ab29tTGV2ZWwo
bWF4aW11bUZhY3Rvcik7CisgICAgV2ViVmlld0ltcGwqIHZpZXcgPSBXZWJWaWV3SW1wbDo6ZnJv
bVBhZ2UobV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCkpOworICAgIHZpZXct
Pnpvb21MaW1pdHNDaGFuZ2VkKG1pbmltdW1MZXZlbCwgbWF4aW11bUxldmVsKTsKK30KKwogdm9p
ZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHBsdWdp
biByZWNlaXZlcyB3aW5kb3cgZ2VvbWV0cnkgYmVmb3JlIGRhdGEsIG9yIGVsc2UKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShyZXZpc2lvbiA2
ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE5QT2Jq
ZWN0KiBzY3JpcHRhYmxlT2JqZWN0Rm9yRWxlbWVudCgpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGV4ZWN1dGVTY3JpcHRVUkwoY29uc3QgV2ViVVJMJiwgYm9vbCBwb3B1cHNBbGxvd2VkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBXZWJVUkxSZXF1ZXN0JiwgY29u
c3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBub3RpZnlEYXRh
KTsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbUNoYW5nZWQoZG91YmxlIGZhY3Rvcik7CisgICAgdmly
dHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtRmFjdG9yLCBkb3VibGUg
bWF4aW11bUZhY3Rvcik7CiAKICAgICAvLyBUaGlzIGNhbm5vdCBiZSBudWxsLgogICAgIFdlYlBs
dWdpbiogcGx1Z2luKCkgeyByZXR1cm4gbV93ZWJQbHVnaW47IH0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5
IDIwJSkuICBUaGUgbWluIGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFs
ZiBhbmQgM3ggdGhlIG9yaWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRj
aAogLy8gdGhvc2UgaW4gQXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJW
aWV3Lm1tCi1zdGF0aWMgY29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4y
Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJs
ZSBXZWJWaWV3Ojp0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBX
ZWJWaWV3OjptaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmll
dzo6bWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlk
ZW50aWZpZXMgYSBuYW1lc3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NY
CiAvLyBmb3Igc29tZSBwcm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhp
bmdzIHRoYXQgZG9uJ3Qgc2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIo
MCkKICNlbmRpZgogICAgICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZh
bHNlKQorICAgICwgbV9taW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JU
b1pvb21MZXZlbChtYXhUZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2ln
bm9yZUlucHV0RXZlbnRzKGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpjbGVhckZvY3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6
em9vbUxldmVsKCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1
cm4gbV96b29tTGV2ZWw7CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wg
dGV4dE9ubHksIGludCB6b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZl
bChib29sIHRleHRPbmx5LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0
b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6
cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXhUZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5U
ZXh0U2l6ZU11bHRpcGxpZXIpKTsKKyAgICBpZiAoem9vbUxldmVsIDwgbV9taW5pbXVtWm9vbUxl
dmVsKQorICAgICAgICBtX3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICBlbHNl
IGlmICh6b29tTGV2ZWwgPiBtX21heGltdW1ab29tTGV2ZWwpCisgICAgICAgIG1fem9vbUxldmVs
ID0gbV9tYXhpbXVtWm9vbUxldmVsOworICAgIGVsc2UKKyAgICAgICAgbV96b29tTGV2ZWwgPSB6
b29tTGV2ZWw7CisKICAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7
CisgICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJ
bXBsOjpwbHVnaW5Db250YWluZXJGcm9tRnJhbWUoZnJhbWUpOworICAgIGlmIChwbHVnaW5Db250
YWluZXIpCisgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbCht
X3pvb21MZXZlbCwgdGV4dE9ubHkpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgem9vbUZh
Y3RvciA9IHpvb21MZXZlbFRvWm9vbUZhY3RvcihtX3pvb21MZXZlbCk7CisgICAgICAgIGlmICh0
ZXh0T25seSkKKyAgICAgICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEs
IHpvb21GYWN0b3IpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyh6b29tRmFjdG9yLCAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1fem9v
bUxldmVsOworfQogCi0gICAgZmxvYXQgb2xkWm9vbUZhY3RvciA9IG1fem9vbVRleHRPbmx5ID8g
ZnJhbWUtPnRleHRab29tRmFjdG9yKCkgOiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsKK3ZvaWQg
V2ViVmlld0ltcGw6Onpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2
ZWwpCit7CisgICAgbV9taW5pbXVtWm9vbUxldmVsID0gbWluaW11bVpvb21MZXZlbDsKKyAgICBt
X21heGltdW1ab29tTGV2ZWwgPSBtYXhpbXVtWm9vbUxldmVsOworICAgIG1fY2xpZW50LT56b29t
TGltaXRzQ2hhbmdlZChtX21pbmltdW1ab29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCk7Cit9
CiAKLSAgICBpZiAodGV4dE9ubHkpCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21G
YWN0b3JzKDEsIHpvb21GYWN0b3IpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VB
bmRUZXh0Wm9vbUZhY3RvcnMoem9vbUZhY3RvciwgMSk7Cit2b2lkIFdlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYg
KHpvb21MZXZlbCA9PSBtX3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG9s
ZFpvb21GYWN0b3IgIT0gem9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBtX3pvb21UZXh0T25seSkg
ewotICAgICAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJG
cmFtZUltcGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7Ci0gICAgICAgIGlmIChw
bHVnaW5Db250YWluZXIpCi0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnBsdWdpbigpLT5z
ZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHRleHRPbmx5KTsKLSAgICB9CisgICAgbV96b29tTGV2
ZWwgPSBzdGQ6Om1heChzdGQ6Om1pbih6b29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCksIG1f
bWluaW11bVpvb21MZXZlbCk7CisgICAgbV9jbGllbnQtPnpvb21MZXZlbENoYW5nZWQoKTsKK30K
IAotICAgIG1fem9vbUxldmVsID0gem9vbUxldmVsOwotICAgIG1fem9vbVRleHRPbmx5ID0gdGV4
dE9ubHk7Citkb3VibGUgV2ViVmlldzo6em9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29t
TGV2ZWwpCit7CisgICAgcmV0dXJuIHN0ZDo6cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6
b29tTGV2ZWwpOworfQogCi0gICAgcmV0dXJuIG1fem9vbUxldmVsOworZG91YmxlIFdlYlZpZXc6
Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZh
Y3RvciA9IDEuMl5sZXZlbCwgbGV2ZWwgPSBsb2coZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0
dXJuIGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxh
eWVyQWN0aW9uJiBhY3Rpb24sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZp
c2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMyLDggKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0
aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9k
ZSgpOwotICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpv
b21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSB6b29tTGV2ZWwoKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0
T25seSwgZG91YmxlIHpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFu
Z2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1NZWRpYVBsYXllckFjdGlvbigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb24m
IGFjdGlvbiwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAgLTM0MiwxMyAr
MzQ0LDE3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQ
b3B1cCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0UG9wdXAuZ2V0KCk7IH0KIAotICAgIGJvb2wg
em9vbVRleHRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV96b29tVGV4dE9ubHk7IH0KLQogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgbGVhZHMgdG8gc2Nyb2xsaW5nLgogICAgIHN0YXRp
YyBib29sIG1hcEtleUNvZGVGb3JTY3JvbGwoaW50IGtleUNvZGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiogc2Nyb2xsRGlyZWN0
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpTY3JvbGxH
cmFudWxhcml0eSogc2Nyb2xsR3JhbnVsYXJpdHkpOwogCisgICAgLy8gQ2FsbGVkIGJ5IGEgZnVs
bCBmcmFtZSBwbHVnaW4gaW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQgdGhhdCBpdHMKKyAg
ICAvLyB6b29tIGxldmVsIGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2luIHNob3VsZCBvbmx5
IGNhbGwgdGhpcyBmdW5jdGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5nZSB3YXMgdHJpZ2dl
cmVkIGJ5IHRoZSBicm93c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UKKyAgICAvLyBhIHBs
dWdpbiBjYW4gdXBkYXRlIGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2YgaXRzIG93biBVSS4K
KyAgICB2b2lkIGZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZl
bCk7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYlZpZXc7ICAvLyBTbyBXZWJWaWV3
OjpDcmVhdGUgY2FuIGNhbGwgb3VyIGNvbnN0cnVjdG9yCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6
UmVmQ291bnRlZDxXZWJWaWV3SW1wbD47CkBAIC00NDAsOSArNDQ2LDExIEBAIHByaXZhdGU6CiAK
ICAgICAvLyBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCB6b29tIGxldmVsLiAwIG1lYW5zIG5v
IHpvb20sIHBvc2l0aXZlIG51bWJlcnMKICAgICAvLyBtZWFuIHpvb20gaW4sIG5lZ2F0aXZlIG51
bWJlcnMgbWVhbiB6b29tIG91dC4KLSAgICBpbnQgbV96b29tTGV2ZWw7CisgICAgZG91YmxlIG1f
em9vbUxldmVsOworCisgICAgZG91YmxlIG1fbWluaW11bVpvb21MZXZlbDsKIAotICAgIGJvb2wg
bV96b29tVGV4dE9ubHk7CisgICAgZG91YmxlIG1fbWF4aW11bVpvb21MZXZlbDsKIAogICAgIGJv
b2wgbV9jb250ZXh0TWVudUFsbG93ZWQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69265</attachid>
            <date>2010-09-29 15:51:36 -0700</date>
            <delta_ts>2010-09-30 13:30:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100929155116.patch</filename>
            <type>text/plain</type>
            <size>15060</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDktMjkgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1
Z2luQ29udGFpbmVyLmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp6
b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpvb21M
ZXZlbENoYW5nZWQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdpbik6Cisg
ICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpsb2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAg
ICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
em9vbUxldmVsVG9ab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6em9vbUZh
Y3RvclRvWm9vbUxldmVsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0w
OS0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShy
ZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIHNlbGVjdGlvbkFzTWFya3VwKCkgY29uc3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAog
ICAgIC8vIFVzZWQgZm9yIHpvb21pbmcgb2YgZnVsbCBwYWdlIHBsdWdpbnMuCi0gICAgdmlydHVh
bCB2b2lkIHNldFpvb21GYWN0b3IoZmxvYXQgc2NhbGUsIGJvb2wgdGV4dE9ubHkpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRab29tTGV2ZWwoZG91YmxlIGxldmVsLCBib29sIHRleHRPbmx5KSB7
IH0KIAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4g
IFRoZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0
aGF0IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVy
LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5D
b250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGxvYWRGcmFtZVJlcXVlc3QoCiAgICAgICAgIGNvbnN0IFdlYlVSTFJlcXVl
c3QmLCBjb25zdCBXZWJTdHJpbmcmIHRhcmdldCwgYm9vbCBub3RpZnlOZWVkZWQsIHZvaWQqIG5v
dGlmeURhdGEpID0gMDsKIAorICAgIC8vIE5vdGlmaWVzIHRoYXQgdGhlIHpvb20gZmFjdG9yIGhh
cyBjaGFuZ2VkLgorICAgIHZpcnR1YWwgdm9pZCB6b29tQ2hhbmdlZChkb3VibGUgZmFjdG9yKSA9
IDA7CisKICAgICB2aXJ0dWFsIFdlYlBsdWdpbiogcGx1Z2luKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRQbHVnaW4oV2ViUGx1Z2luKikgPSAwOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXcuaAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOSBAQAogI2luY2x1ZGUgIldlYlZlY3Rv
ci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgogCisvLyBGSVhNRShqYW0pOiB0YWtlIHRoaXMg
b3V0IGFmdGVyIENocm9tZSBpcyB1cGRhdGVkCisjZGVmaW5lIFpPT01fTEVWRUxfSVNfRE9VQkxF
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwpA
QCAtNTQsNiArNTcsMTAgQEAgc3RydWN0IFdlYlBvaW50OwogCiBjbGFzcyBXZWJWaWV3IDogcHVi
bGljIFdlYldpZGdldCB7CiBwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgY29uc3QgZG91
YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvOworICAgIFdFQktJVF9BUEkgc3RhdGljIGNvbnN0
IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXI7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgY29u
c3QgZG91YmxlIG1heFRleHRTaXplTXVsdGlwbGllcjsKKwogICAgIC8vIENvbnRyb2xzIHRoZSB0
aW1lIHRoYXQgdXNlciBzY3JpcHRzIGluamVjdGVkIGludG8gdGhlIGRvY3VtZW50IHJ1bi4KICAg
ICBlbnVtIFVzZXJTY3JpcHRJbmplY3RBdCB7CiAgICAgICAgIFVzZXJTY3JpcHRJbmplY3RBdERv
Y3VtZW50U3RhcnQsCkBAIC0xNjEsOSArMTY4LDExIEBAIHB1YmxpYzoKICAgICAvLyBab29tIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAogICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbC4gIDAgaXMgIm9y
aWdpbmFsIHNpemUiLCBhbmQgZWFjaCBpbmNyZW1lbnQKLSAgICAvLyBhYm92ZSBvciBiZWxvdyBy
ZXByZXNlbnRzIHpvb21pbmcgMjAlIGxhcmdlciBvciBzbWFsbGVyIHRvIGxpbWl0cyBvZiAzMDAl
Ci0gICAgLy8gYW5kIDUwJSBvZiBvcmlnaW5hbCBzaXplLCByZXNwZWN0aXZlbHkuCi0gICAgdmly
dHVhbCBpbnQgem9vbUxldmVsKCkgPSAwOworICAgIC8vIGFib3ZlIG9yIGJlbG93IHJlcHJlc2Vu
dHMgem9vbWluZyAyMCUgbGFyZ2VyIG9yIHNtYWxsZXIgdG8gZGVmYXVsdCBsaW1pdHMKKyAgICAv
LyBvZiAzMDAlIGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5LiAgT25seSBw
bHVnaW5zIHVzZQorICAgIC8vIG5vbiB3aG9sZS1udW1iZXJzLCBzaW5jZSB0aGV5IG1pZ2h0IGNo
b29zZSB0byBoYXZlIHNwZWNpZmljIHpvb20gbGV2ZWwgc28KKyAgICAvLyB0aGF0IGZpeGVkLXdp
ZHRoIGNvbnRlbnQgaXMgZml0LXRvLXBhZ2Utd2lkdGgsIGZvciBleGFtcGxlLgorICAgIHZpcnR1
YWwgZG91YmxlIHpvb21MZXZlbCgpID0gMDsKIAogICAgIC8vIENoYW5nZXMgdGhlIHpvb20gbGV2
ZWwgdG8gdGhlIHNwZWNpZmllZCBsZXZlbCwgY2xhbXBpbmcgYXQgdGhlIGxpbWl0cwogICAgIC8v
IG5vdGVkIGFib3ZlLCBhbmQgcmV0dXJucyB0aGUgY3VycmVudCB6b29tIGxldmVsIGFmdGVyIGFw
cGx5aW5nIHRoZQpAQCAtMTczLDcgKzE4MiwxNiBAQCBwdWJsaWM6CiAgICAgLy8gcGFnZSB3aWxs
IGJlIHpvb21lZC4gWW91IGNhbiBvbmx5IGhhdmUgZWl0aGVyIHRleHQgem9vbSBvciBmdWxsIHBh
Z2Ugem9vbQogICAgIC8vIGF0IG9uZSB0aW1lLiAgQ2hhbmdpbmcgdGhlIG1vZGUgd2hpbGUgdGhl
IHBhZ2UgaXMgem9vbWVkIHdpbGwgaGF2ZSBvZGQKICAgICAvLyBlZmZlY3RzLgotICAgIHZpcnR1
YWwgaW50IHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBpbnQgem9vbUxldmVsKSA9IDA7Cisg
ICAgdmlydHVhbCBkb3VibGUgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGRvdWJsZSB6b29t
TGV2ZWwpID0gMDsKKworICAgIC8vIFVwZGF0ZXMgdGhlIHpvb20gbGltaXRzIGZvciB0aGlzIHZp
ZXcuCisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9v
bUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4aW11
bVpvb21MZXZlbCkgPSAwOworCisgICAgLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IGJl
dHdlZW4gem9vbSBsZXZlbCBhbmQgem9vbSBmYWN0b3IuICB6b29tCisgICAgLy8gZmFjdG9yIGlz
IHpvb20gcGVyY2VudCAvIDEwMCwgc28gMzAwJSA9IDMuMC4KKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyBkb3VibGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpOworICAgIFdF
QktJVF9BUEkgc3RhdGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rv
cik7CiAKIAogICAgIC8vIE1lZGlhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3Q2xpZW50LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw2ICszNDgsMTcgQEAgcHVi
bGljOgogICAgIC8vIEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRp
b24gc2VydmljZXMuCiAgICAgdmlydHVhbCBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2
aWNlT3JpZW50YXRpb25DbGllbnQoKSB7IHJldHVybiAwOyB9CiAKKworICAgIC8vIFpvb20gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgICAgLy8gSW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB6b29tIGxldmVscyBm
b3IgdGhpcyBmcmFtZSBoYXZlIGNoYW5nZWQgZnJvbQorICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVl
cy4KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1pbmltdW1MZXZl
bCwgZG91YmxlIG1heGltdW1MZXZlbCkgeyB9CisKKyAgICAvLyBJbmZvcm1zIHRoZSBicm93c2Vy
IHRoYXQgdGhlIHpvb20gbGV2ZWwgaGFzIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgYW4KKyAgICAv
LyBhY3Rpb24gdGhhdCB3YXNuJ3QgaW5pdGlhdGVkIGJ5IHRoZSBjbGllbnQuCisgICAgdmlydHVh
bCB2b2lkIHpvb21MZXZlbENoYW5nZWQoKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3
Q2xpZW50KCkgeyB9CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTEsMTQgKzE0
MTEsNiBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsCiAgICAgaWYg
KCF3ZWJQbHVnaW4tPmluaXRpYWxpemUoY29udGFpbmVyLmdldCgpKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBib29sIHpvb21UZXh0T25seSA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCktPnpv
b21UZXh0T25seSgpOwotICAgIGZsb2F0IHpvb21GYWN0b3IgPSB6b29tVGV4dE9ubHkgPyBtX3dl
YkZyYW1lLT5mcmFtZSgpLT50ZXh0Wm9vbUZhY3RvcigpIDogbV93ZWJGcmFtZS0+ZnJhbWUoKS0+
cGFnZVpvb21GYWN0b3IoKTsKLSAgICBpZiAoem9vbUZhY3RvciAhPSAxKSB7Ci0gICAgICAgIC8v
IFRoZXJlJ3MgYSBzYXZlZCB6b29tIGxldmVsLCBzbyB0ZWxsIHRoZSBwbHVnaW4gYWJvdXQgaXQg
c2luY2UKLSAgICAgICAgLy8gV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCB3YXMgY2FsbGVkIGJl
Zm9yZSB0aGUgcGx1Z2luIHdhcyBjcmVhdGVkLgotICAgICAgICB3ZWJQbHVnaW4tPnNldFpvb21G
YWN0b3Ioem9vbUZhY3Rvciwgem9vbVRleHRPbmx5KTsKLSAgICB9Ci0KICAgICAvLyBUaGUgZWxl
bWVudCBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCBkdXJpbmcgcGx1Z2luIGluaXRpYWxpemF0aW9u
IQogICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIDA7CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHJl
dmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIldlYlVS
TEVycm9yLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYlZlY3Rv
ci5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSAiV3JhcHBlZFJlc291cmNl
UmVzcG9uc2UuaCIKIAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTM0OCw2ICszNDksMTQg
QEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpsb2FkRnJhbWVSZQogICAgICAgICBTZW5k
UmVmZXJyZXIpOwogfQogCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6Onpvb21DaGFuZ2Vk
KGRvdWJsZSBmYWN0b3IpCit7CisKKyAgICBkb3VibGUgem9vbUxldmVsID0gV2ViVmlldzo6em9v
bUZhY3RvclRvWm9vbUxldmVsKGZhY3Rvcik7CisgICAgV2ViVmlld0ltcGwqIHZpZXcgPSBXZWJW
aWV3SW1wbDo6ZnJvbVBhZ2UobV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCkp
OworICAgIHZpZXctPmZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoem9vbUxldmVsKTsK
K30KKwogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQg
dGhlIHBsdWdpbiByZWNlaXZlcyB3aW5kb3cgZ2VvbWV0cnkgYmVmb3JlIGRhdGEsIG9yIGVsc2UK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShy
ZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIE5QT2JqZWN0KiBzY3JpcHRhYmxlT2JqZWN0Rm9yRWxlbWVudCgpOwogICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGV4ZWN1dGVTY3JpcHRVUkwoY29uc3QgV2ViVVJMJiwgYm9vbCBwb3B1cHNBbGxv
d2VkKTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBXZWJVUkxSZXF1
ZXN0JiwgY29uc3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBu
b3RpZnlEYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbUNoYW5nZWQoZG91YmxlIGZhY3Rvcik7
CiAKICAgICAvLyBUaGlzIGNhbm5vdCBiZSBudWxsLgogICAgIFdlYlBsdWdpbiogcGx1Z2luKCkg
eyByZXR1cm4gbV93ZWJQbHVnaW47IH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsOSArMTQzLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogLy8gem9vbXMgdGV4dCBpbiBvciBvdXQgKGllLiwgY2hhbmdlIGJ5IDIwJSkuICBUaGUgbWlu
IGFuZCBtYXggdmFsdWVzIGxpbWl0CiAvLyB0ZXh0IHpvb20gdG8gaGFsZiBhbmQgM3ggdGhlIG9y
aWdpbmFsIHRleHQgc2l6ZS4gIFRoZXNlIHRocmVlIHZhbHVlcyBtYXRjaAogLy8gdGhvc2UgaW4g
QXBwbGUncyBwb3J0IGluIFdlYktpdC9XZWJLaXQvV2ViVmlldy9XZWJWaWV3Lm1tCi1zdGF0aWMg
Y29uc3QgZG91YmxlIHRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4yOwotc3RhdGljIGNvbnN0
IGRvdWJsZSBtaW5UZXh0U2l6ZU11bHRpcGxpZXIgPSAwLjU7Ci1zdGF0aWMgY29uc3QgZG91Ymxl
IG1heFRleHRTaXplTXVsdGlwbGllciA9IDMuMDsKK2NvbnN0IGRvdWJsZSBXZWJWaWV3Ojp0ZXh0
U2l6ZU11bHRpcGxpZXJSYXRpbyA9IDEuMjsKK2NvbnN0IGRvdWJsZSBXZWJWaWV3OjptaW5UZXh0
U2l6ZU11bHRpcGxpZXIgPSAwLjU7Citjb25zdCBkb3VibGUgV2ViVmlldzo6bWF4VGV4dFNpemVN
dWx0aXBsaWVyID0gMy4wOworCiAKIC8vIFRoZSBncm91cCBuYW1lIGlkZW50aWZpZXMgYSBuYW1l
c3BhY2Ugb2YgcGFnZXMuICBQYWdlIGdyb3VwIGlzIHVzZWQgb24gT1NYCiAvLyBmb3Igc29tZSBw
cm9ncmFtcyB0aGF0IHVzZSBIVE1MIHZpZXdzIHRvIGRpc3BsYXkgdGhpbmdzIHRoYXQgZG9uJ3Qg
c2VlbSBsaWtlCkBAIC0yNTAsNyArMjUxLDggQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdl
YlZpZXdDbGllbnQqCiAgICAgLCBtX25ld05hdmlnYXRpb25Mb2FkZXIoMCkKICNlbmRpZgogICAg
ICwgbV96b29tTGV2ZWwoMCkKLSAgICAsIG1fem9vbVRleHRPbmx5KGZhbHNlKQorICAgICwgbV9t
aW5pbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtaW5UZXh0U2l6ZU11bHRpcGxp
ZXIpKQorICAgICwgbV9tYXhpbXVtWm9vbUxldmVsKHpvb21GYWN0b3JUb1pvb21MZXZlbChtYXhU
ZXh0U2l6ZU11bHRpcGxpZXIpKQogICAgICwgbV9jb250ZXh0TWVudUFsbG93ZWQoZmFsc2UpCiAg
ICAgLCBtX2RvaW5nRHJhZ0FuZERyb3AoZmFsc2UpCiAgICAgLCBtX2lnbm9yZUlucHV0RXZlbnRz
KGZhbHNlKQpAQCAtMTUyMCwzNiArMTUyMiw2MCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjbGVhckZv
Y3VzZWROb2RlKCkKICAgICB9CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKK2Rv
dWJsZSBXZWJWaWV3SW1wbDo6em9vbUxldmVsKCkKIHsKICAgICByZXR1cm4gbV96b29tTGV2ZWw7
CiB9CiAKLWludCBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6
b29tTGV2ZWwpCitkb3VibGUgV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbChib29sIHRleHRPbmx5
LCBkb3VibGUgem9vbUxldmVsKQogewotICAgIGZsb2F0IHpvb21GYWN0b3IgPSBzdGF0aWNfY2Fz
dDxmbG9hdD4oCi0gICAgICAgIHN0ZDo6bWF4KHN0ZDo6bWluKHN0ZDo6cG93KHRleHRTaXplTXVs
dGlwbGllclJhdGlvLCB6b29tTGV2ZWwpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhU
ZXh0U2l6ZU11bHRpcGxpZXIpLAotICAgICAgICAgICAgICAgICBtaW5UZXh0U2l6ZU11bHRpcGxp
ZXIpKTsKKyAgICBpZiAoem9vbUxldmVsIDwgbV9taW5pbXVtWm9vbUxldmVsKQorICAgICAgICBt
X3pvb21MZXZlbCA9IG1fbWluaW11bVpvb21MZXZlbDsKKyAgICBlbHNlIGlmICh6b29tTGV2ZWwg
PiBtX21heGltdW1ab29tTGV2ZWwpCisgICAgICAgIG1fem9vbUxldmVsID0gbV9tYXhpbXVtWm9v
bUxldmVsOworICAgIGVsc2UKKyAgICAgICAgbV96b29tTGV2ZWwgPSB6b29tTGV2ZWw7CisKICAg
ICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7CisgICAgV2ViUGx1Z2lu
Q29udGFpbmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gV2ViRnJhbWVJbXBsOjpwbHVnaW5Db250
YWluZXJGcm9tRnJhbWUoZnJhbWUpOworICAgIGlmIChwbHVnaW5Db250YWluZXIpCisgICAgICAg
IHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNldFpvb21MZXZlbChtX3pvb21MZXZlbCwgdGV4
dE9ubHkpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgem9vbUZhY3RvciA9IHpvb21MZXZl
bFRvWm9vbUZhY3RvcihtX3pvb21MZXZlbCk7CisgICAgICAgIGlmICh0ZXh0T25seSkKKyAgICAg
ICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEsIHpvb21GYWN0b3IpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZS0+c2V0UGFnZUFuZFRleHRab29tRmFjdG9y
cyh6b29tRmFjdG9yLCAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1fem9vbUxldmVsOworfQogCi0g
ICAgZmxvYXQgb2xkWm9vbUZhY3RvciA9IG1fem9vbVRleHRPbmx5ID8gZnJhbWUtPnRleHRab29t
RmFjdG9yKCkgOiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsKK3ZvaWQgV2ViVmlld0ltcGw6Onpv
b21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpCit7CisgICAgbV9t
aW5pbXVtWm9vbUxldmVsID0gbWluaW11bVpvb21MZXZlbDsKKyAgICBtX21heGltdW1ab29tTGV2
ZWwgPSBtYXhpbXVtWm9vbUxldmVsOworICAgIG1fY2xpZW50LT56b29tTGltaXRzQ2hhbmdlZCht
X21pbmltdW1ab29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCk7Cit9CiAKLSAgICBpZiAodGV4
dE9ubHkpCi0gICAgICAgIGZyYW1lLT5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEsIHpvb21G
YWN0b3IpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3Rv
cnMoem9vbUZhY3RvciwgMSk7Cit2b2lkIFdlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29t
TGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgaWYgKHpvb21MZXZlbCA9PSBt
X3pvb21MZXZlbCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG9sZFpvb21GYWN0b3IgIT0g
em9vbUZhY3RvciB8fCB0ZXh0T25seSAhPSBtX3pvb21UZXh0T25seSkgewotICAgICAgICBXZWJQ
bHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFtZUltcGw6OnBsdWdp
bkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7Ci0gICAgICAgIGlmIChwbHVnaW5Db250YWluZXIp
Ci0gICAgICAgICAgICBwbHVnaW5Db250YWluZXItPnBsdWdpbigpLT5zZXRab29tRmFjdG9yKHpv
b21GYWN0b3IsIHRleHRPbmx5KTsKLSAgICB9CisgICAgbV96b29tTGV2ZWwgPSBzdGQ6Om1heChz
dGQ6Om1pbih6b29tTGV2ZWwsIG1fbWF4aW11bVpvb21MZXZlbCksIG1fbWluaW11bVpvb21MZXZl
bCk7CisgICAgbV9jbGllbnQtPnpvb21MZXZlbENoYW5nZWQoKTsKK30KIAotICAgIG1fem9vbUxl
dmVsID0gem9vbUxldmVsOwotICAgIG1fem9vbVRleHRPbmx5ID0gdGV4dE9ubHk7Citkb3VibGUg
V2ViVmlldzo6em9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAg
cmV0dXJuIHN0ZDo6cG93KHRleHRTaXplTXVsdGlwbGllclJhdGlvLCB6b29tTGV2ZWwpOworfQog
Ci0gICAgcmV0dXJuIG1fem9vbUxldmVsOworZG91YmxlIFdlYlZpZXc6Onpvb21GYWN0b3JUb1pv
b21MZXZlbChkb3VibGUgZmFjdG9yKQoreworICAgIC8vIFNpbmNlIGZhY3RvciA9IDEuMl5sZXZl
bCwgbGV2ZWwgPSBsb2coZmFjdG9yKSAvIGxvZygxLjIpCisgICAgcmV0dXJuIGxvZyhmYWN0b3Ip
IC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6
cGVyZm9ybU1lZGlhUGxheWVyQWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rp
b24sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA2ODY5NikKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTMy
LDggKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWRGcmFtZShX
ZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCBy
ZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpOwotICAgIHZpcnR1
YWwgaW50IHpvb21MZXZlbCgpOwotICAgIHZpcnR1YWwgaW50IHNldFpvb21MZXZlbChib29sIHRl
eHRPbmx5LCBpbnQgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB6b29tTGV2ZWwoKTsK
KyAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgZG91YmxlIHpv
b21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5p
bXVtWm9vbUxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUg
bWF4aW11bVpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFj
dGlvbigKICAgICAgICAgY29uc3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb24mIGFjdGlvbiwKICAgICAg
ICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKTsKQEAgLTM0MiwxMyArMzQ0LDE3IEBAIHB1Ymxp
YzoKIAogICAgIFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQb3B1cCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZWN0UG9wdXAuZ2V0KCk7IH0KIAotICAgIGJvb2wgem9vbVRleHRPbmx5KCkg
Y29uc3QgeyByZXR1cm4gbV96b29tVGV4dE9ubHk7IH0KLQogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgZXZlbnQgbGVhZHMgdG8gc2Nyb2xsaW5nLgogICAgIHN0YXRpYyBib29sIG1hcEtleUNv
ZGVGb3JTY3JvbGwoaW50IGtleUNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiogc2Nyb2xsRGlyZWN0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSogc2Ny
b2xsR3JhbnVsYXJpdHkpOwogCisgICAgLy8gQ2FsbGVkIGJ5IGEgZnVsbCBmcmFtZSBwbHVnaW4g
aW5zaWRlIHRoaXMgdmlldyB0byBpbmZvcm0gaXQgdGhhdCBpdHMKKyAgICAvLyB6b29tIGxldmVs
IGhhcyBiZWVuIHVwZGF0ZWQuICBUaGUgcGx1Z2luIHNob3VsZCBvbmx5IGNhbGwgdGhpcyBmdW5j
dGlvbgorICAgIC8vIGlmIHRoZSB6b29tIGNoYW5nZSB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBicm93
c2VyLCBpdCdzIG9ubHkgbmVlZGVkIGluIGNhc2UKKyAgICAvLyBhIHBsdWdpbiBjYW4gdXBkYXRl
IGl0cyBvd24gem9vbSwgc2F5IGJlY2F1c2Ugb2YgaXRzIG93biBVSS4KKyAgICB2b2lkIGZ1bGxG
cmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCk7CisKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIFdlYlZpZXc7ICAvLyBTbyBXZWJWaWV3OjpDcmVhdGUgY2FuIGNh
bGwgb3VyIGNvbnN0cnVjdG9yCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6UmVmQ291bnRlZDxXZWJW
aWV3SW1wbD47CkBAIC00NDAsOSArNDQ2LDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBLZWVwcyB0
cmFjayBvZiB0aGUgY3VycmVudCB6b29tIGxldmVsLiAwIG1lYW5zIG5vIHpvb20sIHBvc2l0aXZl
IG51bWJlcnMKICAgICAvLyBtZWFuIHpvb20gaW4sIG5lZ2F0aXZlIG51bWJlcnMgbWVhbiB6b29t
IG91dC4KLSAgICBpbnQgbV96b29tTGV2ZWw7CisgICAgZG91YmxlIG1fem9vbUxldmVsOworCisg
ICAgZG91YmxlIG1fbWluaW11bVpvb21MZXZlbDsKIAotICAgIGJvb2wgbV96b29tVGV4dE9ubHk7
CisgICAgZG91YmxlIG1fbWF4aW11bVpvb21MZXZlbDsKIAogICAgIGJvb2wgbV9jb250ZXh0TWVu
dUFsbG93ZWQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69372</attachid>
            <date>2010-09-30 13:30:56 -0700</date>
            <delta_ts>2010-10-14 17:12:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46550-20100930133036.patch</filename>
            <type>text/plain</type>
            <size>15017</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg2OTYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDktMjkgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENoYW5nZXMgdG8gY29uc29saWRh
dGUgcGx1Z2luIHpvb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NTUwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsdWdpbjo6c2V0Wm9vbUxldmVsKToKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1
Z2luQ29udGFpbmVyLmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp6
b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Onpvb21M
ZXZlbENoYW5nZWQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdpbik6Cisg
ICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpsb2FkRnJhbWVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAg
ICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6em9vbUxldmVsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp6b29tTGltaXRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxs
RnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
em9vbUxldmVsVG9ab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6em9vbUZh
Y3RvclRvWm9vbUxldmVsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0w
OS0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCShy
ZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIHNlbGVjdGlvbkFzTWFya3VwKCkgY29uc3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAog
ICAgIC8vIFVzZWQgZm9yIHpvb21pbmcgb2YgZnVsbCBwYWdlIHBsdWdpbnMuCi0gICAgdmlydHVh
bCB2b2lkIHNldFpvb21GYWN0b3IoZmxvYXQgc2NhbGUsIGJvb2wgdGV4dE9ubHkpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRab29tTGV2ZWwoZG91YmxlIGxldmVsLCBib29sIHRleHRPbmx5KSB7
IH0KIAogICAgIC8vIEZpbmQgaW50ZXJmYWNlLgogICAgIC8vIFN0YXJ0IGEgbmV3IHNlYXJjaC4g
IFRoZSBwbHVnaW4gc2hvdWxkIHNlYXJjaCBmb3IgYSBsaXR0bGUgYml0IGF0IGEgdGltZSBzbyB0
aGF0IGl0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVy
LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5D
b250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGxvYWRGcmFtZVJlcXVlc3QoCiAgICAgICAgIGNvbnN0IFdlYlVSTFJlcXVl
c3QmLCBjb25zdCBXZWJTdHJpbmcmIHRhcmdldCwgYm9vbCBub3RpZnlOZWVkZWQsIHZvaWQqIG5v
dGlmeURhdGEpID0gMDsKIAorICAgIC8vIE5vdGlmaWVzIHRoYXQgdGhlIHpvb20gbGV2ZWwgaGFz
IGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lkIHpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21M
ZXZlbCkgPSAwOworCiAgICAgdmlydHVhbCBXZWJQbHVnaW4qIHBsdWdpbigpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGx1Z2luKFdlYlBsdWdpbiopID0gMDsKIApJbmRleDogV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDkgQEAKICNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIKIAorLy8gRklYTUUoamFtKTogdGFr
ZSB0aGlzIG91dCBhZnRlciBDaHJvbWUgaXMgdXBkYXRlZAorI2RlZmluZSBaT09NX0xFVkVMX0lT
X0RPVUJMRQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdDsKQEAgLTU0LDYgKzU3LDEwIEBAIHN0cnVjdCBXZWJQb2ludDsKIAogY2xhc3MgV2ViVmll
dyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgorICAgIFdFQktJVF9BUEkgc3RhdGljIGNv
bnN0IGRvdWJsZSB0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbzsKKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyBjb25zdCBkb3VibGUgbWluVGV4dFNpemVNdWx0aXBsaWVyOworICAgIFdFQktJVF9BUEkgc3Rh
dGljIGNvbnN0IGRvdWJsZSBtYXhUZXh0U2l6ZU11bHRpcGxpZXI7CisKICAgICAvLyBDb250cm9s
cyB0aGUgdGltZSB0aGF0IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBy
dW4uCiAgICAgZW51bSBVc2VyU2NyaXB0SW5qZWN0QXQgewogICAgICAgICBVc2VyU2NyaXB0SW5q
ZWN0QXREb2N1bWVudFN0YXJ0LApAQCAtMTYxLDkgKzE2OCwxMSBAQCBwdWJsaWM6CiAgICAgLy8g
Wm9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuICAw
IGlzICJvcmlnaW5hbCBzaXplIiwgYW5kIGVhY2ggaW5jcmVtZW50Ci0gICAgLy8gYWJvdmUgb3Ig
YmVsb3cgcmVwcmVzZW50cyB6b29taW5nIDIwJSBsYXJnZXIgb3Igc21hbGxlciB0byBsaW1pdHMg
b2YgMzAwJQotICAgIC8vIGFuZCA1MCUgb2Ygb3JpZ2luYWwgc2l6ZSwgcmVzcGVjdGl2ZWx5Lgot
ICAgIHZpcnR1YWwgaW50IHpvb21MZXZlbCgpID0gMDsKKyAgICAvLyBhYm92ZSBvciBiZWxvdyBy
ZXByZXNlbnRzIHpvb21pbmcgMjAlIGxhcmdlciBvciBzbWFsbGVyIHRvIGRlZmF1bHQgbGltaXRz
CisgICAgLy8gb2YgMzAwJSBhbmQgNTAlIG9mIG9yaWdpbmFsIHNpemUsIHJlc3BlY3RpdmVseS4g
IE9ubHkgcGx1Z2lucyB1c2UKKyAgICAvLyBub24gd2hvbGUtbnVtYmVycywgc2luY2UgdGhleSBt
aWdodCBjaG9vc2UgdG8gaGF2ZSBzcGVjaWZpYyB6b29tIGxldmVsIHNvCisgICAgLy8gdGhhdCBm
aXhlZC13aWR0aCBjb250ZW50IGlzIGZpdC10by1wYWdlLXdpZHRoLCBmb3IgZXhhbXBsZS4KKyAg
ICB2aXJ0dWFsIGRvdWJsZSB6b29tTGV2ZWwoKSA9IDA7CiAKICAgICAvLyBDaGFuZ2VzIHRoZSB6
b29tIGxldmVsIHRvIHRoZSBzcGVjaWZpZWQgbGV2ZWwsIGNsYW1waW5nIGF0IHRoZSBsaW1pdHMK
ICAgICAvLyBub3RlZCBhYm92ZSwgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbCBh
ZnRlciBhcHBseWluZyB0aGUKQEAgLTE3Myw3ICsxODIsMTYgQEAgcHVibGljOgogICAgIC8vIHBh
Z2Ugd2lsbCBiZSB6b29tZWQuIFlvdSBjYW4gb25seSBoYXZlIGVpdGhlciB0ZXh0IHpvb20gb3Ig
ZnVsbCBwYWdlIHpvb20KICAgICAvLyBhdCBvbmUgdGltZS4gIENoYW5naW5nIHRoZSBtb2RlIHdo
aWxlIHRoZSBwYWdlIGlzIHpvb21lZCB3aWxsIGhhdmUgb2RkCiAgICAgLy8gZWZmZWN0cy4KLSAg
ICB2aXJ0dWFsIGludCBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgaW50IHpvb21MZXZlbCkg
PSAwOworICAgIHZpcnR1YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3Vi
bGUgem9vbUxldmVsKSA9IDA7CisKKyAgICAvLyBVcGRhdGVzIHRoZSB6b29tIGxpbWl0cyBmb3Ig
dGhpcyB2aWV3LgorICAgIHZpcnR1YWwgdm9pZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWlu
aW11bVpvb21MZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91Ymxl
IG1heGltdW1ab29tTGV2ZWwpID0gMDsKKworICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgdG8gY29u
dmVydCBiZXR3ZWVuIHpvb20gbGV2ZWwgYW5kIHpvb20gZmFjdG9yLiAgem9vbQorICAgIC8vIGZh
Y3RvciBpcyB6b29tIHBlcmNlbnQgLyAxMDAsIHNvIDMwMCUgPSAzLjAuCisgICAgV0VCS0lUX0FQ
SSBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsK
KyAgICBXRUJLSVRfQVBJIHN0YXRpYyBkb3VibGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJs
ZSBmYWN0b3IpOwogCiAKICAgICAvLyBNZWRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDgsNiArMzQ4LDE3
IEBAIHB1YmxpYzoKICAgICAvLyBBY2Nlc3MgdGhlIGVtYmVkZGVyIEFQSSBmb3IgZGV2aWNlIG9y
aWVudGF0aW9uIHNlcnZpY2VzLgogICAgIHZpcnR1YWwgV2ViRGV2aWNlT3JpZW50YXRpb25DbGll
bnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyByZXR1cm4gMDsgfQogCisKKyAgICAvLyBa
b29tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgem9vbSBs
ZXZlbHMgZm9yIHRoaXMgZnJhbWUgaGF2ZSBjaGFuZ2VkIGZyb20KKyAgICAvLyB0aGUgZGVmYXVs
dCB2YWx1ZXMuCisgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5p
bXVtTGV2ZWwsIGRvdWJsZSBtYXhpbXVtTGV2ZWwpIHsgfQorCisgICAgLy8gSW5mb3JtcyB0aGUg
YnJvd3NlciB0aGF0IHRoZSB6b29tIGxldmVsIGhhcyBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIGFu
CisgICAgLy8gYWN0aW9uIHRoYXQgd2Fzbid0IGluaXRpYXRlZCBieSB0aGUgY2xpZW50LgorICAg
IHZpcnR1YWwgdm9pZCB6b29tTGV2ZWxDaGFuZ2VkKCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+
V2ViVmlld0NsaWVudCgpIHsgfQogfTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEx
LDE0ICsxNDExLDYgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbAog
ICAgIGlmICghd2ViUGx1Z2luLT5pbml0aWFsaXplKGNvbnRhaW5lci5nZXQoKSkpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgYm9vbCB6b29tVGV4dE9ubHkgPSBtX3dlYkZyYW1lLT52aWV3SW1w
bCgpLT56b29tVGV4dE9ubHkoKTsKLSAgICBmbG9hdCB6b29tRmFjdG9yID0gem9vbVRleHRPbmx5
ID8gbV93ZWJGcmFtZS0+ZnJhbWUoKS0+dGV4dFpvb21GYWN0b3IoKSA6IG1fd2ViRnJhbWUtPmZy
YW1lKCktPnBhZ2Vab29tRmFjdG9yKCk7Ci0gICAgaWYgKHpvb21GYWN0b3IgIT0gMSkgewotICAg
ICAgICAvLyBUaGVyZSdzIGEgc2F2ZWQgem9vbSBsZXZlbCwgc28gdGVsbCB0aGUgcGx1Z2luIGFi
b3V0IGl0IHNpbmNlCi0gICAgICAgIC8vIFdlYlZpZXdJbXBsOjpzZXRab29tTGV2ZWwgd2FzIGNh
bGxlZCBiZWZvcmUgdGhlIHBsdWdpbiB3YXMgY3JlYXRlZC4KLSAgICAgICAgd2ViUGx1Z2luLT5z
ZXRab29tRmFjdG9yKHpvb21GYWN0b3IsIHpvb21UZXh0T25seSk7Ci0gICAgfQotCiAgICAgLy8g
VGhlIGVsZW1lbnQgbWlnaHQgaGF2ZSBiZWVuIHJlbW92ZWQgZHVyaW5nIHBsdWdpbiBpbml0aWFs
aXphdGlvbiEKICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiAw
OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl
ICJXZWJVUkxFcnJvci5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKKyNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgIldyYXBwZWRS
ZXNvdXJjZVJlc3BvbnNlLmgiCiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zNDgsNiAr
MzQ5LDEyIEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6bG9hZEZyYW1lUmUKICAgICAg
ICAgU2VuZFJlZmVycmVyKTsKIH0KIAordm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp6b29t
TGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCit7CisgICAgV2ViVmlld0ltcGwqIHZpZXcg
PSBXZWJWaWV3SW1wbDo6ZnJvbVBhZ2UobV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5w
YWdlKCkpOworICAgIHZpZXctPmZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoem9vbUxl
dmVsKTsKK30KKwogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gTWFrZSBzdXJl
IHRoYXQgdGhlIHBsdWdpbiByZWNlaXZlcyB3aW5kb3cgZ2VvbWV0cnkgYmVmb3JlIGRhdGEsIG9y
IGVsc2UKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oCShyZXZpc2lvbiA2ODY5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIE5QT2JqZWN0KiBzY3JpcHRhYmxlT2JqZWN0Rm9yRWxlbWVudCgpOwogICAgIHZp
cnR1YWwgV2ViU3RyaW5nIGV4ZWN1dGVTY3JpcHRVUkwoY29uc3QgV2ViVVJMJiwgYm9vbCBwb3B1
cHNBbGxvd2VkKTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBXZWJV
UkxSZXF1ZXN0JiwgY29uc3QgV2ViU3RyaW5nJiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2
b2lkKiBub3RpZnlEYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxldmVsQ2hhbmdlZChkb3Vi
bGUgem9vbUxldmVsKTsKIAogICAgIC8vIFRoaXMgY2Fubm90IGJlIG51bGwuCiAgICAgV2ViUGx1
Z2luKiBwbHVnaW4oKSB7IHJldHVybiBtX3dlYlBsdWdpbjsgfQpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw5ICsxNDMsMTAgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAvLyB6b29tcyB0ZXh0IGluIG9yIG91dCAoaWUuLCBjaGFuZ2UgYnkg
MjAlKS4gIFRoZSBtaW4gYW5kIG1heCB2YWx1ZXMgbGltaXQKIC8vIHRleHQgem9vbSB0byBoYWxm
IGFuZCAzeCB0aGUgb3JpZ2luYWwgdGV4dCBzaXplLiAgVGhlc2UgdGhyZWUgdmFsdWVzIG1hdGNo
CiAvLyB0aG9zZSBpbiBBcHBsZSdzIHBvcnQgaW4gV2ViS2l0L1dlYktpdC9XZWJWaWV3L1dlYlZp
ZXcubW0KLXN0YXRpYyBjb25zdCBkb3VibGUgdGV4dFNpemVNdWx0aXBsaWVyUmF0aW8gPSAxLjI7
Ci1zdGF0aWMgY29uc3QgZG91YmxlIG1pblRleHRTaXplTXVsdGlwbGllciA9IDAuNTsKLXN0YXRp
YyBjb25zdCBkb3VibGUgbWF4VGV4dFNpemVNdWx0aXBsaWVyID0gMy4wOworY29uc3QgZG91Ymxl
IFdlYlZpZXc6OnRleHRTaXplTXVsdGlwbGllclJhdGlvID0gMS4yOworY29uc3QgZG91YmxlIFdl
YlZpZXc6Om1pblRleHRTaXplTXVsdGlwbGllciA9IDAuNTsKK2NvbnN0IGRvdWJsZSBXZWJWaWV3
OjptYXhUZXh0U2l6ZU11bHRpcGxpZXIgPSAzLjA7CisKIAogLy8gVGhlIGdyb3VwIG5hbWUgaWRl
bnRpZmllcyBhIG5hbWVzcGFjZSBvZiBwYWdlcy4gIFBhZ2UgZ3JvdXAgaXMgdXNlZCBvbiBPU1gK
IC8vIGZvciBzb21lIHByb2dyYW1zIHRoYXQgdXNlIEhUTUwgdmlld3MgdG8gZGlzcGxheSB0aGlu
Z3MgdGhhdCBkb24ndCBzZWVtIGxpa2UKQEAgLTI1MCw3ICsyNTEsOCBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCoKICAgICAsIG1fbmV3TmF2aWdhdGlvbkxvYWRlcigw
KQogI2VuZGlmCiAgICAgLCBtX3pvb21MZXZlbCgwKQotICAgICwgbV96b29tVGV4dE9ubHkoZmFs
c2UpCisgICAgLCBtX21pbmltdW1ab29tTGV2ZWwoem9vbUZhY3RvclRvWm9vbUxldmVsKG1pblRl
eHRTaXplTXVsdGlwbGllcikpCisgICAgLCBtX21heGltdW1ab29tTGV2ZWwoem9vbUZhY3RvclRv
Wm9vbUxldmVsKG1heFRleHRTaXplTXVsdGlwbGllcikpCiAgICAgLCBtX2NvbnRleHRNZW51QWxs
b3dlZChmYWxzZSkKICAgICAsIG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKICAgICAsIG1faWdu
b3JlSW5wdXRFdmVudHMoZmFsc2UpCkBAIC0xNTIwLDM2ICsxNTIyLDYwIEBAIHZvaWQgV2ViVmll
d0ltcGw6OmNsZWFyRm9jdXNlZE5vZGUoKQogICAgIH0KIH0KIAotaW50IFdlYlZpZXdJbXBsOjp6
b29tTGV2ZWwoKQorZG91YmxlIFdlYlZpZXdJbXBsOjp6b29tTGV2ZWwoKQogewogICAgIHJldHVy
biBtX3pvb21MZXZlbDsKIH0KIAotaW50IFdlYlZpZXdJbXBsOjpzZXRab29tTGV2ZWwoYm9vbCB0
ZXh0T25seSwgaW50IHpvb21MZXZlbCkKK2RvdWJsZSBXZWJWaWV3SW1wbDo6c2V0Wm9vbUxldmVs
KGJvb2wgdGV4dE9ubHksIGRvdWJsZSB6b29tTGV2ZWwpCiB7Ci0gICAgZmxvYXQgem9vbUZhY3Rv
ciA9IHN0YXRpY19jYXN0PGZsb2F0PigKLSAgICAgICAgc3RkOjptYXgoc3RkOjptaW4oc3RkOjpw
b3codGV4dFNpemVNdWx0aXBsaWVyUmF0aW8sIHpvb21MZXZlbCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIG1heFRleHRTaXplTXVsdGlwbGllciksCi0gICAgICAgICAgICAgICAgIG1pblRl
eHRTaXplTXVsdGlwbGllcikpOworICAgIGlmICh6b29tTGV2ZWwgPCBtX21pbmltdW1ab29tTGV2
ZWwpCisgICAgICAgIG1fem9vbUxldmVsID0gbV9taW5pbXVtWm9vbUxldmVsOworICAgIGVsc2Ug
aWYgKHpvb21MZXZlbCA+IG1fbWF4aW11bVpvb21MZXZlbCkKKyAgICAgICAgbV96b29tTGV2ZWwg
PSBtX21heGltdW1ab29tTGV2ZWw7CisgICAgZWxzZQorICAgICAgICBtX3pvb21MZXZlbCA9IHpv
b21MZXZlbDsKKwogICAgIEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKTsK
KyAgICBXZWJQbHVnaW5Db250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBXZWJGcmFtZUlt
cGw6OnBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFtZSk7CisgICAgaWYgKHBsdWdpbkNvbnRh
aW5lcikKKyAgICAgICAgcGx1Z2luQ29udGFpbmVyLT5wbHVnaW4oKS0+c2V0Wm9vbUxldmVsKG1f
em9vbUxldmVsLCB0ZXh0T25seSk7CisgICAgZWxzZSB7CisgICAgICAgIGRvdWJsZSB6b29tRmFj
dG9yID0gem9vbUxldmVsVG9ab29tRmFjdG9yKG1fem9vbUxldmVsKTsKKyAgICAgICAgaWYgKHRl
eHRPbmx5KQorICAgICAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoMSwg
em9vbUZhY3Rvcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZyYW1lLT5zZXRQYWdlQW5k
VGV4dFpvb21GYWN0b3JzKHpvb21GYWN0b3IsIDEpOworICAgIH0KKyAgICByZXR1cm4gbV96b29t
TGV2ZWw7Cit9CiAKLSAgICBmbG9hdCBvbGRab29tRmFjdG9yID0gbV96b29tVGV4dE9ubHkgPyBm
cmFtZS0+dGV4dFpvb21GYWN0b3IoKSA6IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpOwordm9pZCBX
ZWJWaWV3SW1wbDo6em9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1pbmltdW1ab29tTGV2ZWwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZl
bCkKK3sKKyAgICBtX21pbmltdW1ab29tTGV2ZWwgPSBtaW5pbXVtWm9vbUxldmVsOworICAgIG1f
bWF4aW11bVpvb21MZXZlbCA9IG1heGltdW1ab29tTGV2ZWw7CisgICAgbV9jbGllbnQtPnpvb21M
aW1pdHNDaGFuZ2VkKG1fbWluaW11bVpvb21MZXZlbCwgbV9tYXhpbXVtWm9vbUxldmVsKTsKK30K
IAotICAgIGlmICh0ZXh0T25seSkKLSAgICAgICAgZnJhbWUtPnNldFBhZ2VBbmRUZXh0Wm9vbUZh
Y3RvcnMoMSwgem9vbUZhY3Rvcik7Ci0gICAgZWxzZQotICAgICAgICBmcmFtZS0+c2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyh6b29tRmFjdG9yLCAxKTsKK3ZvaWQgV2ViVmlld0ltcGw6OmZ1bGxG
cmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCkKK3sKKyAgICBpZiAo
em9vbUxldmVsID09IG1fem9vbUxldmVsKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAob2xk
Wm9vbUZhY3RvciAhPSB6b29tRmFjdG9yIHx8IHRleHRPbmx5ICE9IG1fem9vbVRleHRPbmx5KSB7
Ci0gICAgICAgIFdlYlBsdWdpbkNvbnRhaW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IFdlYkZy
YW1lSW1wbDo6cGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKGZyYW1lKTsKLSAgICAgICAgaWYgKHBs
dWdpbkNvbnRhaW5lcikKLSAgICAgICAgICAgIHBsdWdpbkNvbnRhaW5lci0+cGx1Z2luKCktPnNl
dFpvb21GYWN0b3Ioem9vbUZhY3RvciwgdGV4dE9ubHkpOwotICAgIH0KKyAgICBtX3pvb21MZXZl
bCA9IHN0ZDo6bWF4KHN0ZDo6bWluKHpvb21MZXZlbCwgbV9tYXhpbXVtWm9vbUxldmVsKSwgbV9t
aW5pbXVtWm9vbUxldmVsKTsKKyAgICBtX2NsaWVudC0+em9vbUxldmVsQ2hhbmdlZCgpOworfQog
Ci0gICAgbV96b29tTGV2ZWwgPSB6b29tTGV2ZWw7Ci0gICAgbV96b29tVGV4dE9ubHkgPSB0ZXh0
T25seTsKK2RvdWJsZSBXZWJWaWV3Ojp6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21M
ZXZlbCkKK3sKKyAgICByZXR1cm4gc3RkOjpwb3codGV4dFNpemVNdWx0aXBsaWVyUmF0aW8sIHpv
b21MZXZlbCk7Cit9CiAKLSAgICByZXR1cm4gbV96b29tTGV2ZWw7Citkb3VibGUgV2ViVmlldzo6
em9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpCit7CisgICAgLy8gU2luY2UgZmFj
dG9yID0gMS4yXmxldmVsLCBsZXZlbCA9IGxvZyhmYWN0b3IpIC8gbG9nKDEuMikKKyAgICByZXR1
cm4gbG9nKGZhY3RvcikgLyBsb2codGV4dFNpemVNdWx0aXBsaWVyUmF0aW8pOwogfQogCiB2b2lk
IFdlYlZpZXdJbXBsOjpwZXJmb3JtTWVkaWFQbGF5ZXJBY3Rpb24oY29uc3QgV2ViTWVkaWFQbGF5
ZXJBY3Rpb24mIGFjdGlvbiwKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlz
aW9uIDY4Njk2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzIsOCArMTMyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9jdXNlZEZyYW1lKFdlYkZyYW1lKiBmcmFtZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldEluaXRp
YWxGb2N1cyhib29sIHJldmVyc2UpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZvY3VzZWROb2Rl
KCk7Ci0gICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCk7Ci0gICAgdmlydHVhbCBpbnQgc2V0Wm9v
bUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwpOworICAgIHZpcnR1YWwgZG91Ymxl
IHpvb21MZXZlbCgpOworICAgIHZpcnR1YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRP
bmx5LCBkb3VibGUgem9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5n
ZWQoZG91YmxlIG1pbmltdW1ab29tTGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRvdWJsZSBtYXhpbXVtWm9vbUxldmVsKTsKICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9y
bU1lZGlhUGxheWVyQWN0aW9uKAogICAgICAgICBjb25zdCBXZWJNZWRpYVBsYXllckFjdGlvbiYg
YWN0aW9uLAogICAgICAgICBjb25zdCBXZWJQb2ludCYgbG9jYXRpb24pOwpAQCAtMzQyLDEzICsz
NDQsMTcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UG9wdXBDb250YWluZXIqIHNlbGVjdFBv
cHVwKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RQb3B1cC5nZXQoKTsgfQogCi0gICAgYm9vbCB6
b29tVGV4dE9ubHkoKSBjb25zdCB7IHJldHVybiBtX3pvb21UZXh0T25seTsgfQotCiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBsZWFkcyB0byBzY3JvbGxpbmcuCiAgICAgc3RhdGlj
IGJvb2wgbWFwS2V5Q29kZUZvclNjcm9sbChpbnQga2V5Q29kZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKiBzY3JvbGxEaXJlY3Rp
b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlNjcm9sbEdy
YW51bGFyaXR5KiBzY3JvbGxHcmFudWxhcml0eSk7CiAKKyAgICAvLyBDYWxsZWQgYnkgYSBmdWxs
IGZyYW1lIHBsdWdpbiBpbnNpZGUgdGhpcyB2aWV3IHRvIGluZm9ybSBpdCB0aGF0IGl0cworICAg
IC8vIHpvb20gbGV2ZWwgaGFzIGJlZW4gdXBkYXRlZC4gIFRoZSBwbHVnaW4gc2hvdWxkIG9ubHkg
Y2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgLy8gaWYgdGhlIHpvb20gY2hhbmdlIHdhcyB0cmlnZ2Vy
ZWQgYnkgdGhlIGJyb3dzZXIsIGl0J3Mgb25seSBuZWVkZWQgaW4gY2FzZQorICAgIC8vIGEgcGx1
Z2luIGNhbiB1cGRhdGUgaXRzIG93biB6b29tLCBzYXkgYmVjYXVzZSBvZiBpdHMgb3duIFVJLgor
ICAgIHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZChkb3VibGUgem9vbUxldmVs
KTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViVmlldzsgIC8vIFNvIFdlYlZpZXc6
OkNyZWF0ZSBjYW4gY2FsbCBvdXIgY29uc3RydWN0b3IKICAgICBmcmllbmQgY2xhc3MgV1RGOjpS
ZWZDb3VudGVkPFdlYlZpZXdJbXBsPjsKQEAgLTQ0MCw5ICs0NDYsMTEgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IHpvb20gbGV2ZWwuIDAgbWVhbnMgbm8g
em9vbSwgcG9zaXRpdmUgbnVtYmVycwogICAgIC8vIG1lYW4gem9vbSBpbiwgbmVnYXRpdmUgbnVt
YmVycyBtZWFuIHpvb20gb3V0LgotICAgIGludCBtX3pvb21MZXZlbDsKKyAgICBkb3VibGUgbV96
b29tTGV2ZWw7CisKKyAgICBkb3VibGUgbV9taW5pbXVtWm9vbUxldmVsOwogCi0gICAgYm9vbCBt
X3pvb21UZXh0T25seTsKKyAgICBkb3VibGUgbV9tYXhpbXVtWm9vbUxldmVsOwogCiAgICAgYm9v
bCBtX2NvbnRleHRNZW51QWxsb3dlZDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>