<?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>76459</bug_id>
          
          <creation_ts>2012-01-17 08:25:43 -0800</creation_ts>
          <short_desc>Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting</short_desc>
          <delta_ts>2012-01-27 13:52:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>fishd</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>mitz</cc>
    
    <cc>rjkroege</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537118</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-17 08:25:43 -0800</bug_when>
    <thetext>Make shouldLayoutFixedElementsRelativeToFrame a setting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537120</commentid>
    <comment_count>1</comment_count>
      <attachid>122773</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-17 08:27:14 -0800</bug_when>
    <thetext>Created attachment 122773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537122</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 08:29:28 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537141</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-17 09:09:41 -0800</bug_when>
    <thetext>Will this setting ever be changed at runtime?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537166</commentid>
    <comment_count>4</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-17 09:53:30 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Will this setting ever be changed at runtime?

For layout tests, certainly. However, we probably want this behavior always turned on for the chromium WebKit port.  I&apos;m not sure what the best way is to specify that on the WebKit side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537238</commentid>
    <comment_count>5</comment_count>
      <attachid>122773</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-17 11:41:09 -0800</bug_when>
    <thetext>Comment on attachment 122773
Patch

Attachment 122773 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11219013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538122</commentid>
    <comment_count>6</comment_count>
      <attachid>122773</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-18 13:52:05 -0800</bug_when>
    <thetext>Comment on attachment 122773
Patch

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

&gt; Source/WebKit/chromium/public/WebSettings.h:88
&gt; +    virtual void setShouldLayoutFixedElementsRelativeToFrame(bool) = 0;

nit: while you are making these changes, is it really necessary to have the word &quot;should&quot; in here?  it seems to read well without &quot;should&quot; too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539596</commentid>
    <comment_count>7</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-20 10:13:54 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 122773 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122773&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebSettings.h:88
&gt; &gt; +    virtual void setShouldLayoutFixedElementsRelativeToFrame(bool) = 0;
&gt; 
&gt; nit: while you are making these changes, is it really necessary to have the word &quot;should&quot; in here?  it seems to read well without &quot;should&quot; too.

The naming was at the request of Simon Fraser in WebCore. I left it the same in WebSettings for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539741</commentid>
    <comment_count>8</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-20 13:12:22 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 122773 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122773&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebSettings.h:88
&gt; &gt; &gt; +    virtual void setShouldLayoutFixedElementsRelativeToFrame(bool) = 0;
&gt; &gt; 
&gt; &gt; nit: while you are making these changes, is it really necessary to have the word &quot;should&quot; in here?  it seems to read well without &quot;should&quot; too.
&gt; 
&gt; The naming was at the request of Simon Fraser in WebCore. I left it the same in WebSettings for consistency.

The naming was suggested by smfr in WebCore. I kept it in WebSettings for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539757</commentid>
    <comment_count>9</comment_count>
      <attachid>123369</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-20 13:39:49 -0800</bug_when>
    <thetext>Created attachment 123369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539784</commentid>
    <comment_count>10</comment_count>
      <attachid>123369</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-01-20 14:14:10 -0800</bug_when>
    <thetext>Comment on attachment 123369
Patch

Attachment 123369 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11246203</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540795</commentid>
    <comment_count>11</comment_count>
      <attachid>123369</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-23 13:40:04 -0800</bug_when>
    <thetext>Comment on attachment 123369
Patch

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

Please fix the build breakage on gtk and win. It looks a real failure.

&gt; Source/WebCore/page/Settings.h:631
&gt; +        bool m_shouldLayoutFixedElementsRelativeToFrame : 1;

Please add an initializer for this value in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541082</commentid>
    <comment_count>12</comment_count>
      <attachid>123690</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-23 19:52:37 -0800</bug_when>
    <thetext>Created attachment 123690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541743</commentid>
    <comment_count>13</comment_count>
      <attachid>123820</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-24 15:05:44 -0800</bug_when>
    <thetext>Created attachment 123820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541886</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-24 17:26:19 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; &gt; Source/WebKit/chromium/public/WebSettings.h:88
&gt; &gt; &gt; +    virtual void setShouldLayoutFixedElementsRelativeToFrame(bool) = 0;
&gt; &gt; 
&gt; &gt; nit: while you are making these changes, is it really necessary to have the word &quot;should&quot; in here?  it seems to read well without &quot;should&quot; too.
&gt; 
&gt; The naming was at the request of Simon Fraser in WebCore. I left it the same in WebSettings for consistency.

OK, but what is the point of including the &quot;should&quot; word?  Is this an optional request?  Can WebKit ignore this setting?  The word &quot;should&quot; suggests some variability.

Not to be overly pedantic, but for reference, see how RFCs define it:

  SHOULD   This word, or the adjective &quot;RECOMMENDED&quot;, mean that there
           may exist valid reasons in particular circumstances to ignore a
           particular item, but the full implications must be understood and
           carefully weighed before choosing a different course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541896</commentid>
    <comment_count>15</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-24 17:34:30 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; Source/WebKit/chromium/public/WebSettings.h:88
&gt; &gt; &gt; &gt; +    virtual void setShouldLayoutFixedElementsRelativeToFrame(bool) = 0;
&gt; &gt; &gt; 
&gt; &gt; &gt; nit: while you are making these changes, is it really necessary to have the word &quot;should&quot; in here?  it seems to read well without &quot;should&quot; too.
&gt; &gt; 
&gt; &gt; The naming was at the request of Simon Fraser in WebCore. I left it the same in WebSettings for consistency.
&gt; 
&gt; OK, but what is the point of including the &quot;should&quot; word?  Is this an optional request?  Can WebKit ignore this setting?  The word &quot;should&quot; suggests some variability.
&gt; 
&gt; Not to be overly pedantic, but for reference, see how RFCs define it:
&gt; 
&gt;   SHOULD   This word, or the adjective &quot;RECOMMENDED&quot;, mean that there
&gt;            may exist valid reasons in particular circumstances to ignore a
&gt;            particular item, but the full implications must be understood and
&gt;            carefully weighed before choosing a different course.

I&apos;ll get rid of all instances of the word &quot;should&quot; in the the method name, and member variables. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541974</commentid>
    <comment_count>16</comment_count>
      <attachid>123876</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-24 19:46:18 -0800</bug_when>
    <thetext>Created attachment 123876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541976</commentid>
    <comment_count>17</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-24 19:48:55 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=123876) [details]
&gt; Patch

This might fail some EWS bots due to missing symbols, I&apos;m waiting for the bots to report what symbols are missing and I will place them in the appropriate files. Please review independent of this. I will ensure bots are green before I land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542206</commentid>
    <comment_count>18</comment_count>
      <attachid>123876</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-25 05:22:57 -0800</bug_when>
    <thetext>Comment on attachment 123876
Patch

Attachment 123876 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11242770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542358</commentid>
    <comment_count>19</comment_count>
      <attachid>123876</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-25 09:30:31 -0800</bug_when>
    <thetext>Comment on attachment 123876
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1419
&gt; +    float dragFactor = layoutFixedElementsRelativeToFrame() ? 1 : (contentsWidth() - visibleContentWidth * frameScaleFactor) / maxX;

Oh, seeing the getter without the &quot;should&quot; prefix, now raises another issue.  layoutFixedElementsRelativeToFrame() sounds like it is going to layout the fixed elements now.  That&apos;s not what you mean at all!

Taking that into account, a re-wording like laysOutFixedElementsRelativeToFrame / setLaysOutFixedElementsRelativeToFrame would work, but looking around WebKit more, I see that the &quot;should&quot; prefix is actually quite common, and if a getter is prefixed with should, then the setter should be named correspondingly as setShould.  I&apos;m torn between saying use laysOut versus stick with should because it is commonly used.

Sorry for not considering the getter naming when I argued against &quot;should&quot;!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542367</commentid>
    <comment_count>20</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-25 09:41:53 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 123876 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123876&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1419
&gt; &gt; +    float dragFactor = layoutFixedElementsRelativeToFrame() ? 1 : (contentsWidth() - visibleContentWidth * frameScaleFactor) / maxX;
&gt; 
&gt; Oh, seeing the getter without the &quot;should&quot; prefix, now raises another issue.  layoutFixedElementsRelativeToFrame() sounds like it is going to layout the fixed elements now.  That&apos;s not what you mean at all!
&gt; 
&gt; Taking that into account, a re-wording like laysOutFixedElementsRelativeToFrame / setLaysOutFixedElementsRelativeToFrame would work, but looking around WebKit more, I see that the &quot;should&quot; prefix is actually quite common, and if a getter is prefixed with should, then the setter should be named correspondingly as setShould.  I&apos;m torn between saying use laysOut versus stick with should because it is commonly used.
&gt; 
&gt; Sorry for not considering the getter naming when I argued against &quot;should&quot;!

Not a problem.

Are you strongly for &quot;setLaysOutFixedElementsRelativeToFrame&quot; or should I go back to the previously submitted patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542369</commentid>
    <comment_count>21</comment_count>
      <attachid>123876</attachid>
    <who name="">mitz</who>
    <bug_when>2012-01-25 09:42:48 -0800</bug_when>
    <thetext>Comment on attachment 123876
Patch

Shouldn&apos;t the setter function invalidate something (style, layout, or at least pixels)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542375</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-25 09:47:58 -0800</bug_when>
    <thetext>fixedElementsLayoutRelativeToFrame()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542525</commentid>
    <comment_count>23</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-25 12:19:54 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; fixedElementsLayoutRelativeToFrame()?

That sounds good to me:

fixedElementsLayoutRelativeToFrame()

and 

setFixedElementsLayoutRelativeToFrame(...)

Thanks, Simon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542529</commentid>
    <comment_count>24</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-25 12:23:05 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 123876 [details])
&gt; Shouldn&apos;t the setter function invalidate something (style, layout, or at least pixels)?

We don&apos;t need to for the current tests/use cases but I suppose for generality, we can do that and allow other embedders to switch between the two modes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542848</commentid>
    <comment_count>25</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-25 19:21:31 -0800</bug_when>
    <thetext>*** Bug 73753 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543145</commentid>
    <comment_count>26</comment_count>
      <attachid>124117</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-26 07:27:52 -0800</bug_when>
    <thetext>Created attachment 124117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543661</commentid>
    <comment_count>27</comment_count>
      <attachid>124217</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-26 16:55:13 -0800</bug_when>
    <thetext>Created attachment 124217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543804</commentid>
    <comment_count>28</comment_count>
      <attachid>124217</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-26 21:07:22 -0800</bug_when>
    <thetext>Comment on attachment 124217
Patch

Attachment 124217 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11297911</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543820</commentid>
    <comment_count>29</comment_count>
      <attachid>124254</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-26 21:42:31 -0800</bug_when>
    <thetext>Created attachment 124254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543862</commentid>
    <comment_count>30</comment_count>
      <attachid>124254</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-26 23:54:04 -0800</bug_when>
    <thetext>Comment on attachment 124254
Patch

Attachment 124254 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11163659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544095</commentid>
    <comment_count>31</comment_count>
      <attachid>124323</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-27 08:21:55 -0800</bug_when>
    <thetext>Created attachment 124323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544131</commentid>
    <comment_count>32</comment_count>
      <attachid>124323</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-01-27 09:49:49 -0800</bug_when>
    <thetext>Comment on attachment 124323
Patch

This change looks nice to me. And also seems highly desirable per off-line discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544332</commentid>
    <comment_count>33</comment_count>
      <attachid>124323</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 13:52:17 -0800</bug_when>
    <thetext>Comment on attachment 124323
Patch

Clearing flags on attachment: 124323

Committed r106146: &lt;http://trac.webkit.org/changeset/106146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544333</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 13:52:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122773</attachid>
            <date>2012-01-17 08:27:14 -0800</date>
            <delta_ts>2012-01-20 13:39:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120117112713.patch</filename>
            <type>text/plain</type>
            <size>12172</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc4OTc1ZmYyMDU2ZmM4
ZjBhMjY2ODRlMjg4ZjhmY2M1MzdkMjU5YS4uYTVjN2ZiYjY3ODc4YWVhYzAwN2Q0NTFiMzFhNmZi
ZTRjZTg0Mzc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTE3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYmUgYSBzZXR0aW5n
IGJlY2F1c2UgaXQgaXMgaW5kZXBlbmRlbnQgb2YgYW55IHBhcnRpY3VsYXIgZnJhbWUgYW5kCisg
ICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZyYW1lIGNoYW5nZXMu
CisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
aDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKToKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTaG91bGRMYXlv
dXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKToKKwogMjAxMi0wMS0xNiAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBMYXJnZSBTVkcgdGV4
dCBsYXlvdXQgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBpbiByODExNjgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMzZjZjRmZGQ4MDE5ZGI2ZTE2YTQwM2MzZDY3YjM0Mzc5MGUwNjhiMi4u
NGEzODQ3YzdlZmI4MjQxZGU4OTRlYTRiZDE5YzZjN2JjZmYzZWExMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMS0xNyAgRmFkeSBTYW11ZWwgIDxm
c2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUgYSBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICog
cHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDoKKwogMjAxMi0wMS0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNTA0MC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCAxN2M5ZGVjZjBiOWRiYmUzNWZkNDJkZWIwNjM4NjMyNTQ0
OWMzODhlLi45NGQ5NmZkNjRkNDhlNTNhMGIwYzk3ZTUyYmEyNmY5MGI0YWY4ZTI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjEsNyArMjIxLDYgQEAgdm9pZCBGcmFtZVZpZXc6
OnJlc2V0KCkKICAgICBtX2Nhbm5vdEJsaXRUb1dpbmRvdyA9IGZhbHNlOwogICAgIG1faXNPdmVy
bGFwcGVkID0gZmFsc2U7CiAgICAgbV9jb250ZW50SXNPcGFxdWUgPSBmYWxzZTsKLSAgICBtX3No
b3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgPSBmYWxzZTsKICAgICBtX2Jv
cmRlclggPSAzMDsKICAgICBtX2JvcmRlclkgPSAzMDsKICAgICBtX2xheW91dFRpbWVyLnN0b3Ao
KTsKQEAgLTE0NTYsMTggKzE0NTUsMTUgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNl
dEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBJbnRTaXplKHNjcm9sbFhGb3JG
aXhlZFBvc2l0aW9uKCksIHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkpOwogfQogCi12b2lkIEZy
YW1lVmlldzo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29s
IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpCitib29sIEZyYW1lVmll
dzo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0CiB7Ci0g
ICAgaWYgKHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgPT0gbV9zaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgPSBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOwotCi0gICAgaWYgKCFoYXNGaXhlZE9i
amVjdHMoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBpZiAo
IW1fZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNldE5l
ZWRzTGF5b3V0KCk7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRpbmdzKCktPnNob3VsZExheW91
dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKTsKIH0KKwogSW50UG9pbnQgRnJhbWVWaWV3
OjpjdXJyZW50TW91c2VQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZnJhbWUgPyBt
X2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVudE1vdXNlUG9zaXRpb24oKSA6IEludFBvaW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAxMmFhMDdhMTM2NGY0NDc0YjQ0NGEwZmE0
MDAwMzk2MDQ4OWQyZmQ0Li4wZjRjNWMwY2E4ZDY1ZWZkNTcyOTA0NDIwOTI2ZTU4YjJiNTAxZWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE5Niw4ICsxOTYsNyBAQCBwdWJsaWM6CiAg
ICAgaW50IHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgSW50U2l6ZSBzY3Jv
bGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICBib29sIHNob3VsZExheW91
dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7IH0KLSAgICB2b2lkIHNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7CisgICAgYm9vbCBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Q7CiAKICAgICB2b2lkIGJl
Z2luRGVmZXJyZWRSZXBhaW50cygpOwogICAgIHZvaWQgZW5kRGVmZXJyZWRSZXBhaW50cygpOwpA
QCAtNDEwLDcgKzQwOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Nhbm5vdEJsaXRUb1dpbmRv
dzsKICAgICBib29sIG1faXNPdmVybGFwcGVkOwogICAgIGJvb2wgbV9jb250ZW50SXNPcGFxdWU7
Ci0gICAgYm9vbCBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7CiAg
ICAgdW5zaWduZWQgbV9zbG93UmVwYWludE9iamVjdENvdW50OwogICAgIHVuc2lnbmVkIG1fZml4
ZWRPYmplY3RDb3VudDsKICAgICBpbnQgbV9ib3JkZXJYOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCA0MDNiNDA4N2YxZmM4MDA4YTYzYThmMjg2OWE0YmRjNzI3NWU2OGIyLi5lMGM0NTBm
YTMxYjMxYTJhOTViYTlkOWZlOTc4NWNlYTFmMTlhYWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNDg0LDYgKzQ4NCwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pCiAgICAgbV9wYWdl
LT51c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdlZCgpOwogfQogCit2b2lkIFNldHRpbmdzOjpz
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wgc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSkKK3sKKyAgICBtX3Nob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgPSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRTaG91bGRQcmludEJhY2tncm91
bmRzKGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcykKIHsKICAgICBtX3Nob3VsZFByaW50QmFj
a2dyb3VuZHMgPSBzaG91bGRQcmludEJhY2tncm91bmRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmlu
ZGV4IGVkZWNlMmYxZmJhODZmNTMwNjJlNjIyMTQzYjMwYmVkNzlhOThkYmMuLjE4NTE5YTY4YjQ2
ZDIyZWZlZmMxODk2ZDkzZDk5MGUzNGEyMGY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAg
LTE4OSw2ICsxODksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJik7CiAgICAgICAgIGNvbnN0IEtVUkwmIHVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3VzZXJTdHlsZVNoZWV0TG9j
YXRpb247IH0KIAorICAgICAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWUoYm9vbCk7CisgICAgICAgIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50
c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZTsgfQorCiAgICAgICAgIHZvaWQgc2V0U2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcyhib29sKTsKICAgICAgICAgYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRQcmludEJhY2tncm91bmRzOyB9CiAKQEAgLTYyNSw2ICs2Mjgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNr
SW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9mb3JjZUNv
bXBvc2l0aW5nTW9kZSA6IDE7CiAgICAgICAgIGJvb2wgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0
c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQgOiAxOworICAgICAgICBib29sIG1fc2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA6IDE7CiAgICAgICAgIGJvb2wgbV9hbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCA6IDE7CiAgICAgICAgIGJvb2wgbV9hbGxvd1J1bm5pbmdP
Zkluc2VjdXJlQ29udGVudCA6IDE7CiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNzgzYzM4MDU2OTNhZWM2M2Q0ZDk4NWJk
NzhjMzg0ZmQ0NDg0YzRlYy4uMzVlODU1ZDZlNDk5MzM1MzU1OWNlMmQ2YzgxNGZhZDQxOWE3ZDhl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTg4LDEzICs1ODgsMTIg
QEAgdW5zaWduZWQgSW50ZXJuYWxzOjpsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNv
bnN0IFJhbmdlKiByYW5nZSwgRXhjZXB0aW8KIAogdm9pZCBJbnRlcm5hbHM6OnNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRv
Y3VtZW50LT52aWV3KCkpIHsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGlu
Z3MoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsK
LSAgICBmcmFtZVZpZXctPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoZW5hYmxlZCk7CisgICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxz
OjpzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAppbmRleCBjY2U0N2UyZTI3YTY3YTI2NmQ2ODJkN2Y1YWFlOWM1MDM1
NjMyMDBjLi4yOTdjN2Q4Nzg0NjZhODdkOTRkYjdhOWM1MDk5MzE3YjA5OWUxZWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTg1LDYgKzg1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9v
bCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRhYmxlTGlua0JlaGF2aW9y
TmV2ZXJMaXZlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRl
eCBjNzJiNjEzM2NmMTg5ODAwNGZkYzRjZjEyNzdhNjZjZGI3YzcyOGEzLi5lZDg1M2UyM2E3NzVk
ZjQ5YjQxMzcwZGM5YmJjNzBiNjAwYjVlMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCkBAIC0yNDIsMTMgKzI0Miw2IEBAIHB1YmxpYzoKICAgICAvLyBTZXRzIHRo
ZSByYXRpbyBhcyBjb21wdXRlZCBieSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzLgogICAgIHZp
cnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgPSAwOwogCi0gICAgLy8gSW5k
aWNhdGVzIHdoZXRoZXIgcG9zaXRpb246Zml4ZWQgZWxlbWVudHMgc2hvdWxkIGJlIGxhaWQgb3V0
IHJlbGF0aXZlCi0gICAgLy8gdG8gdGhlIGZyYW1lIG9yIHJlbGF0aXZlIHRvIHRoZSBwYWdlLgot
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
KCkgY29uc3QgPSAwOwotCi0gICAgLy8gU2V0cyB0aGUgcmVsYXRpdmUgbGF5b3V0IG9mIHBvc2l0
aW9uOmZpeGVkIGVsZW1lbnRzLgotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpID0gMDsKLQogCiAgICAgLy8gRml4ZWQgTGF5
b3V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CmluZGV4IDc3MzNlMjY5OTA4NmRiYjNiNTU1NjMwZjRlZTdhZGNhZjM1MmUyOWIuLjg3ODk1MzA5
ZDg0YTUzYmFmOTU4YTQ5MjhmMmQwMWJkMDEyMjAxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMjI0LDYgKzIyNCwxMSBAQCB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ICAgICBtX3NldHRpbmdzLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAK
K3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSkK
K3sKKyAgICBtX3NldHRpbmdzLT5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOworfQorCiB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGVkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggY2M3MGQx
MzE2YzY0YzE2NTllMGUyMjI5NTZjNjgxNjQwMTU1YjNiMi4uOGIzNTI3ZWQxNmRlMWFjNDE0ZjNk
MWEyYTczYTAwNmZkM2FjZTk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRM
b2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUxp
bmtCZWhhdmlvck5ldmVyTGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IGExNDc0ODM1MzE5N2I3Mjc5Mzk3MjA0ZmE0ODBkYmEzMzQwNTk3ZDcuLmQzNDA1
YjNjYWQ2MzhmNTYyNTVhMTIwMTNjNTRmOGIwODdjMjllNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIwMzcsMzAgKzIwMzcsNiBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKICAgICBw
YWdlKCktPnNldERldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0KIAotYm9vbCBXZWJW
aWV3SW1wbDo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0
Ci17Ci0gICAgaWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEZyYW1l
KiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUt
PnZpZXcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGZyYW1lLT52aWV3
KCktPnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKTsKLX0KLQotdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShib29sIGVuYWJsZSkKLXsKLSAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8
ICFmcmFtZS0+dmlldygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmFtZS0+dmlldygpLT5z
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZSk7Ci19Ci0K
IGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFwYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCA2ZWExOTZhNzViYmMzOTlhNDI3MzUzMzFkMWQwZWU5ZWVhMTNiOTE2Li42Y2U2NzIwODZh
Njg5ZjJlMmViYzJlMjAyM2JmM2Y5NGVlMzg3MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE3Myw4ICsxNzMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpOwogICAgIHZp
cnR1YWwgYm9vbCBpc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIFdl
YlNpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123369</attachid>
            <date>2012-01-20 13:39:49 -0800</date>
            <delta_ts>2012-01-23 19:52:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120120163947.patch</filename>
            <type>text/plain</type>
            <size>12969</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc4OTc1ZmYyMDU2ZmM4
ZjBhMjY2ODRlMjg4ZjhmY2M1MzdkMjU5YS4uMjZmN2YyYThkNTU3ZWI2MWY2OTFlMWFmYjI1Yjhi
NzYwMDU1NjEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTIwICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYmUgYSBzZXR0aW5n
IGJlY2F1c2UgaXQgaXMgaW5kZXBlbmRlbnQgb2YgYSBwYXJ0aWN1bGFyIGZyYW1lIGFuZAorICAg
ICAgICBzaG91bGQgYmUgcHJlc2VydmVkIGV2ZW4gaWYgdGhlIG1haW5mcmFtZSBjaGFuZ2VzLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50
c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6
CisKIDIwMTItMDEtMTYgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+
CiAKICAgICAgICAgTGFyZ2UgU1ZHIHRleHQgbGF5b3V0IHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24g
aW4gcjgxMTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM2Y2Y0ZmRkODAxOWRiNmUx
NmE0MDNjM2Q2N2IzNDM3OTBlMDY4YjIuLmE4ZGMyNTQ4MWUwOTA1NTNmODNjN2ZlMzVkMDViMGRl
Y2Y0MzVkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTItMDEtMjAgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
TWFrZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGEgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6
c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEtMTYgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDUwNDAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNhNWIyOWJhZDFmNGVmZWEz
YmRiOWE0MzE5NjRkODIzMTY4MTllMWUuLjE3ODMwOGNlNTQ5YmE4MTcyNDFjZTQ4ZTJjZmFmYWZh
OGMzODhjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDQ1LDYgKzEwNDUsNyBAQCBfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3MjFmbHVzaERlZmVycmVkUmVwYWludHNFdgogX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzIyc2V0QmFzZUJhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2Vi
Q29yZTlGcmFtZVZpZXcyM3VwZGF0ZUNhbkhhdmVTY3JvbGxiYXJzRXYKIF9fWk43V2ViQ29yZTlG
cmFtZVZpZXcyNGZvcmNlTGF5b3V0Rm9yUGFnaW5hdGlvbkVSS05TXzlGbG9hdFNpemVFUzNfZk5T
XzE5QWRqdXN0Vmlld1NpemVPck5vdEUKK19fWk43V2ViQ29yZTlGcmFtZVZpZXc0M3NldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVFYgogX19aTjdXZWJDb3JlOUZyYW1l
VmlldzI2YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0ZWRFUGZmZmYKIF9fWk43V2ViQ29yZTlGcmFt
ZVZpZXcyOXNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuRWIKIF9fWk43V2ViQ29yZTlGcmFt
ZVZpZXczN3VwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmVFdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCmluZGV4IDE3YzlkZWNmMGI5ZGJiZTM1ZmQ0MmRlYjA2Mzg2MzI1NDQ5
YzM4OGUuLjk0ZDk2ZmQ2NGQ0OGU1M2EwYjBjOTdlNTJiYTI2ZjkwYjRhZjhlMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIyMSw3ICsyMjEsNiBAQCB2b2lkIEZyYW1lVmlldzo6
cmVzZXQoKQogICAgIG1fY2Fubm90QmxpdFRvV2luZG93ID0gZmFsc2U7CiAgICAgbV9pc092ZXJs
YXBwZWQgPSBmYWxzZTsKICAgICBtX2NvbnRlbnRJc09wYXF1ZSA9IGZhbHNlOwotICAgIG1fc2hv
dWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IGZhbHNlOwogICAgIG1fYm9y
ZGVyWCA9IDMwOwogICAgIG1fYm9yZGVyWSA9IDMwOwogICAgIG1fbGF5b3V0VGltZXIuc3RvcCgp
OwpAQCAtMTQ1NiwxOCArMTQ1NSwxNSBAQCBJbnRTaXplIEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0
Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIEludFNpemUoc2Nyb2xsWEZvckZp
eGVkUG9zaXRpb24oKSwgc2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSk7CiB9CiAKLXZvaWQgRnJh
bWVWaWV3OjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wg
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSkKK2Jvb2wgRnJhbWVWaWV3
OjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QKIHsKLSAg
ICBpZiAoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9PSBtX3Nob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IHNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7Ci0KLSAgICBpZiAoIWhhc0ZpeGVkT2Jq
ZWN0cygpKQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJhbWUpOworICAgIGlmICgh
bV9mcmFtZS0+c2V0dGluZ3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2V0TmVl
ZHNMYXlvdXQoKTsKKyAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKS0+c2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpOwogfQorCiBJbnRQb2ludCBGcmFtZVZpZXc6
OmN1cnJlbnRNb3VzZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZSA/IG1f
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5jdXJyZW50TW91c2VQb3NpdGlvbigpIDogSW50UG9pbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDEyYWEwN2ExMzY0ZjQ0NzRiNDQ0YTBmYTQw
MDAzOTYwNDg5ZDJmZDQuLjBmNGM1YzBjYThkNjVlZmQ1NzI5MDQ0MjA5MjZlNThiMmI1MDFlY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTk2LDggKzE5Niw3IEBAIHB1YmxpYzoKICAg
ICBpbnQgc2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKICAgICBJbnRTaXplIHNjcm9s
bE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKIAotICAgIGJvb2wgc2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsgfQotICAgIHZvaWQgc2V0U2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKKyAgICBib29sIHNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdDsKIAogICAgIHZvaWQgYmVn
aW5EZWZlcnJlZFJlcGFpbnRzKCk7CiAgICAgdm9pZCBlbmREZWZlcnJlZFJlcGFpbnRzKCk7CkBA
IC00MTAsNyArNDA5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2Fubm90QmxpdFRvV2luZG93
OwogICAgIGJvb2wgbV9pc092ZXJsYXBwZWQ7CiAgICAgYm9vbCBtX2NvbnRlbnRJc09wYXF1ZTsK
LSAgICBib29sIG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsKICAg
ICB1bnNpZ25lZCBtX3Nsb3dSZXBhaW50T2JqZWN0Q291bnQ7CiAgICAgdW5zaWduZWQgbV9maXhl
ZE9iamVjdENvdW50OwogICAgIGludCBtX2JvcmRlclg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CmluZGV4IDQwM2I0MDg3ZjFmYzgwMDhhNjNhOGYyODY5YTRiZGM3Mjc1ZTY4YjIuLmUwYzQ1MGZh
MzFiMzFhMmE5NWJhOWQ5ZmU5Nzg1Y2VhMWYxOWFhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwCkBAIC00ODQsNiArNDg0LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3BhZ2Ut
PnVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNl
dFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlv
dXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQoreworICAgIG1fc2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWU7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldFNob3VsZFByaW50QmFja2dyb3Vu
ZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKQogewogICAgIG1fc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3VuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5k
ZXggZWRlY2UyZjFmYmE4NmY1MzA2MmU2MjIxNDNiMzBiZWQ3OWE5OGRiYy4uMTg1MTlhNjhiNDZk
MjJlZmVmYzE4OTZkOTNkOTkwZTM0YTIwZjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAt
MTg5LDYgKzE4OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNl
clN0eWxlU2hlZXRMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2Nh
dGlvbjsgfQogCisgICAgICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZShib29sKTsKKyAgICAgICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lOyB9CisKICAgICAgICAgdm9pZCBzZXRTaG91bGRQcmludEJhY2tn
cm91bmRzKGJvb2wpOwogICAgICAgICBib29sIHNob3VsZFByaW50QmFja2dyb3VuZHMoKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZFByaW50QmFja2dyb3VuZHM7IH0KIApAQCAtNjI1LDYgKzYyOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Nyb3NzT3JpZ2luQ2hlY2tJ
bkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2ZvcmNlQ29t
cG9zaXRpbmdNb2RlIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRz
SW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7CisgICAgICAgIGJvb2wgbV9zaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIDogMTsKICAgICAgICAgYm9vbCBtX2FsbG93RGlz
cGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKICAgICAgICAgYm9vbCBtX2FsbG93UnVubmluZ09m
SW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ODNjMzgwNTY5M2FlYzYzZDRkOTg1YmQ3
OGMzODRmZDQ0ODRjNGVjLi4zNWU4NTVkNmU0OTkzMzUzNTU5Y2UyZDZjODE0ZmFkNDE5YTdkOGVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01ODgsMTMgKzU4OCwxMiBA
QCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29u
c3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogCiB2b2lkIEludGVybmFsczo6c2V0U2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPnZpZXcoKSkgeworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5n
cygpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOwot
ICAgIGZyYW1lVmlldy0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShlbmFibGVkKTsKKyAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGVkKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6
OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCmluZGV4IGNjZTQ3ZTJlMjdhNjdhMjY2ZDY4MmQ3ZjVhYWU5YzUwMzU2
MzIwMGMuLjI5N2M3ZDg3ODQ2NmE4N2Q5NGRiN2E5YzUwOTkzMTdiMDk5ZTFlYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtODUsNiArODUsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChib29s
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29sKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFN0b3JhZ2VFbmFi
bGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JO
ZXZlckxpdmUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4
IGM3MmI2MTMzY2YxODk4MDA0ZmRjNGNmMTI3N2E2NmNkYjdjNzI4YTMuLmVkODUzZTIzYTc3NWRm
NDliNDEzNzBkYzliYmM3MGI2MDBiNWUwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKQEAgLTI0MiwxMyArMjQyLDYgQEAgcHVibGljOgogICAgIC8vIFNldHMgdGhl
IHJhdGlvIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCiAgICAgdmly
dHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAKLSAgICAvLyBJbmRp
Y2F0ZXMgd2hldGhlciBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBzaG91bGQgYmUgbGFpZCBvdXQg
cmVsYXRpdmUKLSAgICAvLyB0byB0aGUgZnJhbWUgb3IgcmVsYXRpdmUgdG8gdGhlIHBhZ2UuCi0g
ICAgdmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
KSBjb25zdCA9IDA7Ci0KLSAgICAvLyBTZXRzIHRoZSByZWxhdGl2ZSBsYXlvdXQgb2YgcG9zaXRp
b246Zml4ZWQgZWxlbWVudHMuCi0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCkgPSAwOwotCiAKICAgICAvLyBGaXhlZCBMYXlv
dXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
aW5kZXggNzczM2UyNjk5MDg2ZGJiM2I1NTU2MzBmNGVlN2FkY2FmMzUyZTI5Yi4uODc4OTUzMDlk
ODRhNTNiYWY5NThhNDkyOGYyZDAxYmQwMTIyMDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0yMjQsNiArMjI0LDExIEBAIHZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgIG1fc2V0dGluZ3MtPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGVkKTsKIH0KIAor
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQor
eworICAgIG1fc2V0dGluZ3MtPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRv
RnJhbWUoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk7Cit9CisKIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wgZW5hYmxlZCkK
IHsKICAgICBtX3NldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJsZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCBjYzcwZDEz
MTZjNjRjMTY1OWUwZTIyMjk1NmM2ODE2NDAxNTViM2IyLi44YjM1MjdlZDE2ZGUxYWM0MTRmM2Qx
YTJhNzNhMDA2ZmQzYWNlOTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRhYmxlTGlu
a0JlaGF2aW9yTmV2ZXJMaXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKaW5kZXggYTE0NzQ4MzUzMTk3YjcyNzkzOTcyMDRmYTQ4MGRiYTMzNDA1OTdkNy4uZDM0MDVi
M2NhZDYzOGY1NjI1NWExMjAxM2M1NGY4YjA4N2MyOWU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjAzNywzMCArMjAzNyw2IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgIHBh
Z2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi1ib29sIFdlYlZp
ZXdJbXBsOjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QK
LXsKLSAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRnJhbWUq
IGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+
dmlldygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZnJhbWUtPnZpZXco
KS0+c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpOwotfQotCi12b2lk
IFdlYlZpZXdJbXBsOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
KGJvb2wgZW5hYmxlKQotewotICAgIGlmICghcGFnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwg
IWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT52aWV3KCktPnNl
dFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlKTsKLX0KLQog
Ym9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3QKIHsKICAg
ICBpZiAoIXBhZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmlu
ZGV4IDZlYTE5NmE3NWJiYzM5OWE0MjczNTMzMWQxZDBlZTllZWExM2I5MTYuLjZjZTY3MjA4NmE2
ODlmMmUyZWJjMmUyMDIzYmYzZjk0ZWUzODczNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaApAQCAtMTczLDggKzE3Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7CiAgICAgdmly
dHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBlbmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpOwogICAgIHZpcnR1YWwgV2Vi
U2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123690</attachid>
            <date>2012-01-23 19:52:37 -0800</date>
            <delta_ts>2012-01-24 15:05:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120123225235.patch</filename>
            <type>text/plain</type>
            <size>15633</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY4Y2FlYWZhZDdkOWVi
YTliMDQ0ZDU5MGQ5NTZkZTg3ZDBmZWI5Yi4uOTM3ZjRmZmI0MzE5YmU1OWExMWJjMmQxMDQ5NTQx
N2NkYzQwNjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIHNob3VsZCBiZSBh
IHNldHRpbmcgYmVjYXVzZSBpdCBpcyBpbmRlcGVuZGVudCBvZiBhIHBhcnRpY3VsYXIgZnJhbWUg
YW5kCisgICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZyYW1lIGNo
YW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6CisKIDIwMTIt
MDEtMjMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSB1cGRhdGVSZWN0IGlzIGluY29ycmVjdCB3aGVuIGNvbnRlbnRCb3VuZHMgIT0g
Ym91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ2Y2YzZmE3NmZjNThjMGRkMzg5
ODQ3MmZmMjM1MThlMmIzNDg4NjQuLjBhMDMyMzA5N2ViZTBkZjkzYTAzMTZmMjkxYTRmZjdkMzE2
ODBhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDEtMjMgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFr
ZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGEgc2V0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJT
ZXR0aW5ncy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0
U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogc3Jj
L1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAg
ICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEtMjMgIFNoYXduIFNpbmdoICA8c2hh
d25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSB1cGRhdGVSZWN0IGlz
IGluY29ycmVjdCB3aGVuIGNvbnRlbnRCb3VuZHMgIT0gYm91bmRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjE3
OTI5MWY1MWVkYmEwMDE4ODhjNGQzMTBiM2YwNTE1NDFmY2ZjZS4uMmJjZDZlMWExMzJmYmYyODZl
NzVjMGUzNzk3ODY0YzMyYTViM2YwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTAxLTIzICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1h
a2Ugc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTAxLTIzICBB
bGV4YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gSW1wbGVtZW50IFNTTCBlcnJvciBoYW5kbGluZyBRTUwgQVBJLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCA1MzAyY2VjYmMxZTVlYTM2MmMzMWUwOTA3YjFjYjExYmM0NzJjOTg1Li45MjIy
ZmRhZTJiNjMxZDMyZjQ5MzkxYzQ5YTg3NTA1ZDJhNzFhYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTA0OCw2ICsxMDQ4LDcgQEAgX19aTjdXZWJDb3JlOUZyYW1lVmlldzIxZmx1c2hEZWZl
cnJlZFJlcGFpbnRzRXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNldEJhc2VCYWNrZ3JvdW5k
Q29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjN1cGRhdGVDYW5IYXZl
U2Nyb2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3JjZUxheW91dEZvclBhZ2lu
YXRpb25FUktOU185RmxvYXRTaXplRVMzX2ZOU18xOUFkanVzdFZpZXdTaXplT3JOb3RFCitfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3NDNzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFkanVzdFBhZ2VIZWlnaHREZXByZWNh
dGVkRVBmZmZmCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjlzZXRTaG91bGRVcGRhdGVXaGlsZU9m
ZnNjcmVlbkViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlm
TmVlZGVkUmVjdXJzaXZlRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAyMTk0OGYz
ZmM2MGZjYjE3YjUyOTMzNDRhYTgwNmY1OWQ2OTY0ZTc2Li5mYTE5ZDZkZjIyZDhjMTY5MTRlMGUz
NDExYjAwNzIzODdhOTljMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjEs
NyArMjIxLDYgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc2V0KCkKICAgICBtX2Nhbm5vdEJsaXRUb1dp
bmRvdyA9IGZhbHNlOwogICAgIG1faXNPdmVybGFwcGVkID0gZmFsc2U7CiAgICAgbV9jb250ZW50
SXNPcGFxdWUgPSBmYWxzZTsKLSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUgPSBmYWxzZTsKICAgICBtX2JvcmRlclggPSAzMDsKICAgICBtX2JvcmRlclkgPSAz
MDsKICAgICBtX2xheW91dFRpbWVyLnN0b3AoKTsKQEAgLTE0NTcsMTggKzE0NTYsMTUgQEAgSW50
U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAg
IHJldHVybiBJbnRTaXplKHNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCksIHNjcm9sbFlGb3JGaXhl
ZFBvc2l0aW9uKCkpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWUpCitib29sIEZyYW1lVmlldzo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1Jl
bGF0aXZlVG9GcmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKHNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUgPT0gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUgPSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lOwotCi0gICAgaWYgKCFoYXNGaXhlZE9iamVjdHMoKSkKLSAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChtX2ZyYW1lKTsKKyAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHNldE5lZWRzTGF5b3V0KCk7CisgICAgcmV0dXJuIG1fZnJh
bWUtPnNldHRpbmdzKCktPnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
KTsKIH0KKwogSW50UG9pbnQgRnJhbWVWaWV3OjpjdXJyZW50TW91c2VQb3NpdGlvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVu
dE1vdXNlUG9zaXRpb24oKSA6IEludFBvaW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCAxMmFhMDdhMTM2NGY0NDc0YjQ0NGEwZmE0MDAwMzk2MDQ4OWQyZmQ0Li4wZjRjNWMwY2E4ZDY1
ZWZkNTcyOTA0NDIwOTI2ZTU4YjJiNTAxZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTE5Niw4ICsxOTYsNyBAQCBwdWJsaWM6CiAgICAgaW50IHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9u
KCkgY29uc3Q7CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29u
c3Q7CiAKLSAgICBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWU7IH0KLSAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoYm9vbCk7CisgICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKCkgY29uc3Q7CiAKICAgICB2b2lkIGJlZ2luRGVmZXJyZWRSZXBhaW50cygpOwogICAgIHZv
aWQgZW5kRGVmZXJyZWRSZXBhaW50cygpOwpAQCAtNDEwLDcgKzQwOSw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2Nhbm5vdEJsaXRUb1dpbmRvdzsKICAgICBib29sIG1faXNPdmVybGFwcGVkOwog
ICAgIGJvb2wgbV9jb250ZW50SXNPcGFxdWU7Ci0gICAgYm9vbCBtX3Nob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7CiAgICAgdW5zaWduZWQgbV9zbG93UmVwYWludE9iamVj
dENvdW50OwogICAgIHVuc2lnbmVkIG1fZml4ZWRPYmplY3RDb3VudDsKICAgICBpbnQgbV9ib3Jk
ZXJYOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA5NTU5NzkzYzY0MTE2NjJiMjcxNWZi
YmJkM2VjZjg5YzZiNWY3YTRmLi5hNGY0OWQzZThiYzIzZTU4N2M2MzFhYWExZjJjZjAzYTkwNjhi
MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMjEzLDYgKzIxMyw3IEBAIFNldHRp
bmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRN
YXRjaGVkQ1NTUnVsZXNEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01v
ZGUoZmFsc2UpCiAgICAgLCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlE
b2N1bWVudChmYWxzZSkKKyAgICAsIG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZShmYWxzZSkKICAgICAsIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1
ZSkKICAgICAsIG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSkKICNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKQEAgLTQ4Niw2ICs0ODcsMTEgQEAgdm9pZCBTZXR0aW5nczo6
c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0
aW9uKQogICAgIG1fcGFnZS0+dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKIH0KIAor
dm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpCit7CisgICAg
bV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lID0gc2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0U2hv
dWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sIHNob3VsZFByaW50QmFja2dyb3VuZHMpCiB7CiAgICAg
bV9zaG91bGRQcmludEJhY2tncm91bmRzID0gc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCBkNjUxNTIwY2EyYmU2Mzg2NGExYTZmNDE0ZmUyMGVkNjE3NDcw
YzhkLi5hYjNjMTI4MzdiYjhlNTE5ZTQyMmYxODYxOTEwOGE3MmU0MDlhZjA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0xODksNiArMTg5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VSTCYpOwogICAgICAg
ICBjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91
c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9CiAKKyAgICAgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpOworICAgICAgICBib29sIHNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7IH0KKwogICAgICAgICB2b2lkIHNl
dFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvdWxkUHJpbnRC
YWNrZ3JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsgfQog
CkBAIC02MzIsNiArNjM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1f
Y3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwogICAgICAgICBib29sIG1fc2hvdWxk
SW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDogMTsKKyAgICAgICAgYm9v
bCBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgOiAxOwogICAgICAg
ICBib29sIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogICAgICAgICBib29s
IG1fYWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVOQUJMRShTTU9PVEhf
U0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDdlNDgxY2E1
N2IyYjA3NmE5MDgwMWZkMGM0OWI4YjBjNGFjYzlkOTUuLmNhNGE1MDA4ZWUwZWI2NjUyYmI3Mjkz
ZWI3MGEyNjY5MGZkMzRlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTU5MywxMyArNTkzLDEyIEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVs
ZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAKIHZvaWQgSW50ZXJu
YWxzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKSB7CisgICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRv
Y3VtZW50LT52aWV3KCk7Ci0gICAgZnJhbWVWaWV3LT5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOworICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5z
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOwogfQog
CiB2b2lkIEludGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggY2NlNDdlMmUyN2E2N2EyNjZk
NjgyZDdmNWFhZTljNTAzNTYzMjAwYy4uMjk3YzdkODc4NDY2YTg3ZDk0ZGI3YTljNTA5OTMxN2Iw
OTllMWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlw
dENhbkFjY2Vzc0NsaXBib2FyZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFhTU0F1
ZGl0b3JFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE5TUHJlZmV0Y2hp
bmdFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0
YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKaW5kZXggYzcyYjYxMzNjZjE4OTgwMDRmZGM0Y2YxMjc3YTY2Y2RiN2M3Mjhh
My4uZWQ4NTNlMjNhNzc1ZGY0OWI0MTM3MGRjOWJiYzcwYjYwMGI1ZTAxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQyLDEzICsyNDIsNiBAQCBwdWJsaWM6
CiAgICAgLy8gU2V0cyB0aGUgcmF0aW8gYXMgY29tcHV0ZWQgYnkgY29tcHV0ZVZpZXdwb3J0QXR0
cmlidXRlcy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpID0g
MDsKIAotICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIHNo
b3VsZCBiZSBsYWlkIG91dCByZWxhdGl2ZQotICAgIC8vIHRvIHRoZSBmcmFtZSBvciByZWxhdGl2
ZSB0byB0aGUgcGFnZS4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50
c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0ID0gMDsKLQotICAgIC8vIFNldHMgdGhlIHJlbGF0aXZl
IGxheW91dCBvZiBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7Ci0KIAog
ICAgIC8vIEZpeGVkIExheW91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcAppbmRleCA3NzMzZTI2OTkwODZkYmIzYjU1NTYzMGY0ZWU3YWRjYWYz
NTJlMjliLi44Nzg5NTMwOWQ4NGE1M2JhZjk1OGE0OTI4ZjJkMDFiZDAxMjIwMWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTIyNCw2
ICsyMjQsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEROU1ByZWZldGNoaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVk
KGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNS
ZWxhdGl2ZVRvRnJhbWUpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZShzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oCmluZGV4IGNjNzBkMTMxNmM2NGMxNjU5ZTBlMjIyOTU2YzY4MTY0MDE1NWIzYjIuLjhiMzUy
N2VkMTZkZTFhYzQxNGYzZDFhMmE3M2EwMDZmZDNhY2U5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkNzM4ODkwYjRlYjg2ZThiMjBjYmQ2NWNkNmFkNGUw
N2FmZGIxZDM2Li5jN2ZiMDExYjVmMzNmYTQ1NWIwNDQ1ZmY0MWEwYzc2ZjM1YjYwNThjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMDM3LDMwICsy
MDM3LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2Nh
bGVGYWN0b3IpCiAgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7
CiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoKSBjb25zdAotewotICAgIGlmICghcGFnZSgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBmcmFtZS0+dmlldygpLT5zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBlbmFibGUpCi17Ci0gICAgaWYgKCFwYWdlKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
ZnJhbWUtPnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShlbmFibGUpOwotfQotCiBib29sIFdlYlZpZXdJbXBsOjppc0ZpeGVkTGF5b3V0TW9kZUVuYWJs
ZWQoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKaW5kZXggNTZmNGJhZDk2NmRiZDc3OWE5MGFkYWFmNTNkOTkzODJmNDQz
M2NiMi4uZTBlZGNiMTJjZThlNmFkYzA4NGMyMjY1YTRlZWE1MmY2NjFhYWU1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xNzMsOCArMTczLDYgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7Ci0gICAgdmlydHVhbCBi
b29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSk7
CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCmluZGV4IDlkMmM3OGRmNWQxM2JlMjk0NzA0YmI1ZDM2OGFlNzlmYTZhMjdkNzIu
LjQ1OWNhYWJjY2RhNDVhZTJhMTZmOTYzMTNlNmRmYTFlYWM0NWZhNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKQEAgLTE3NCw3ICsxNzQsNiBAQCBFWFBPUlRTCiAgICAgICAgID9yZW1vdmVTaGFk
b3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVjdXRpb25D
b250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2ViQ29y
ZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAgICAgICAgP3NldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhf
TkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpT
Q0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2ViQ29y
ZUBAU0FYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBAUUFF
WE1BQlZJbnRQb2ludEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXgg
NTQzZTA3YWE4ODEzNmVjNmZmN2NlZDkwY2JjZDE1ZmY1OWFhNWIyNS4uNDNiZDRjNTQ0MGI5N2Fl
YjEyMTU1ZmRhMGQzYjkzODk4NjI3NDc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgpAQCAtMTY4LDcgKzE2OCw2IEBAIEVYUE9SVFMKICAgICAgICAgP3JlbW92ZVNoYWRvd1Jv
b3RARWxlbWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29yZUBAUUJFUEFWU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0QEZyYW1lVmlld0BXZWJDb3JlQEBR
QUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgotICAgICAgICA/c2V0U2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWF9OQFoK
ICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBI
QFoKICAgICAgICAgP3NldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBT
QVhfTkBaCiAgICAgICAgID9zZXRQYWdlU2NhbGVGYWN0b3JAUGFnZUBXZWJDb3JlQEBRQUVYTUFC
VkludFBvaW50QDJAQFoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123820</attachid>
            <date>2012-01-24 15:05:44 -0800</date>
            <delta_ts>2012-01-24 19:46:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120124180543.patch</filename>
            <type>text/plain</type>
            <size>16087</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY4Y2FlYWZhZDdkOWVi
YTliMDQ0ZDU5MGQ5NTZkZTg3ZDBmZWI5Yi4uZGUwYTM1OTUyZjdlNGRlMzE3NzlmYzc4YzYwNzU3
YmNiODQ1YTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYmUgYSBzZXR0aW5n
IGJlY2F1c2UgaXQgaXMgaW5kZXBlbmRlbnQgb2YgYSBwYXJ0aWN1bGFyIGZyYW1lIGFuZAorICAg
ICAgICBzaG91bGQgYmUgcHJlc2VydmVkIGV2ZW4gaWYgdGhlIG1haW5mcmFtZSBjaGFuZ2VzLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdz
OjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFNo
b3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOgorCiAyMDEyLTAxLTIzICBT
aGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gdXBkYXRlUmVjdCBpcyBpbmNvcnJlY3Qgd2hlbiBjb250ZW50Qm91bmRzICE9IGJvdW5kcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0NmNmM2ZhNzZmYzU4YzBkZDM4OTg0NzJmZjIz
NTE4ZTJiMzQ4ODY0Li4wYTAzMjMwOTdlYmUwZGY5M2EwMzE2ZjI5MWE0ZmY3ZDMxNjgwYTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTIzICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3Mu
aDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJTZXR0
aW5nc0ltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5oOgorCiAyMDEyLTAxLTIzICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gdXBkYXRlUmVjdCBpcyBpbmNvcnJl
Y3Qgd2hlbiBjb250ZW50Qm91bmRzICE9IGJvdW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYxNzkyOTFmNTFl
ZGJhMDAxODg4YzRkMzEwYjNmMDUxNTQxZmNmY2UuLjJiY2Q2ZTFhMTMyZmJmMjg2ZTc1YzBlMzc5
Nzg2NGMzMmE1YjNmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0yMyAg
RmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgYSBzZXR0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgor
ICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0wMS0yMyAgQWxleGFuZGVy
IEbDpnLDuHkgIDxhbGV4YW5kZXIuZmFlcm95QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIElt
cGxlbWVudCBTU0wgZXJyb3IgaGFuZGxpbmcgUU1MIEFQSS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggNTMwMmNlY2JjMWU1ZWEzNjJjMzFlMDkwN2IxY2IxMWJjNDcyYzk4NS4uOTIyMmZkYWUyYjYz
MWQzMmY0OTM5MWM0OWE4NzUwNWQyYTcxYWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEw
NDgsNiArMTA0OCw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMWZsdXNoRGVmZXJyZWRSZXBh
aW50c0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjJzZXRCYXNlQmFja2dyb3VuZENvbG9yRVJL
TlNfNUNvbG9yRQogX19aTjdXZWJDb3JlOUZyYW1lVmlldzIzdXBkYXRlQ2FuSGF2ZVNjcm9sbGJh
cnNFdgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI0Zm9yY2VMYXlvdXRGb3JQYWdpbmF0aW9uRVJL
TlNfOUZsb2F0U2l6ZUVTM19mTlNfMTlBZGp1c3RWaWV3U2l6ZU9yTm90RQorX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzQzc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUVi
CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjZhZGp1c3RQYWdlSGVpZ2h0RGVwcmVjYXRlZEVQZmZm
ZgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI5c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW5F
YgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzM3dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJl
Y3Vyc2l2ZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMjE5NDhmM2ZjNjBmY2Ix
N2I1MjkzMzQ0YWE4MDZmNTlkNjk2NGU3Ni4uZmExOWQ2ZGYyMmQ4YzE2OTE0ZTBlMzQxMWIwMDcy
Mzg3YTk5YzEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjIxLDcgKzIyMSw2
IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXNldCgpCiAgICAgbV9jYW5ub3RCbGl0VG9XaW5kb3cgPSBm
YWxzZTsKICAgICBtX2lzT3ZlcmxhcHBlZCA9IGZhbHNlOwogICAgIG1fY29udGVudElzT3BhcXVl
ID0gZmFsc2U7Ci0gICAgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
ID0gZmFsc2U7CiAgICAgbV9ib3JkZXJYID0gMzA7CiAgICAgbV9ib3JkZXJZID0gMzA7CiAgICAg
bV9sYXlvdXRUaW1lci5zdG9wKCk7CkBAIC0xNDU3LDE4ICsxNDU2LDE1IEBAIEludFNpemUgRnJh
bWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICByZXR1cm4g
SW50U2l6ZShzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpLCBzY3JvbGxZRm9yRml4ZWRQb3NpdGlv
bigpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNS
ZWxhdGl2ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKQorYm9vbCBGcmFtZVZpZXc6OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRv
RnJhbWUoKSBjb25zdAogewotICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lID09IG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lID0gc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsKLQot
ICAgIGlmICghaGFzRml4ZWRPYmplY3RzKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQo
bV9mcmFtZSk7CisgICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzZXROZWVkc0xheW91dCgpOworICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0
aW5ncygpLT5zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCk7CiB9CisK
IEludFBvaW50IEZyYW1lVmlldzo6Y3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdAogewogICAg
IHJldHVybiBtX2ZyYW1lID8gbV9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJlbnRNb3VzZVBv
c2l0aW9uKCkgOiBJbnRQb2ludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMTJhYTA3
YTEzNjRmNDQ3NGI0NDRhMGZhNDAwMDM5NjA0ODlkMmZkNC4uMGY0YzVjMGNhOGQ2NWVmZDU3Mjkw
NDQyMDkyNmU1OGIyYjUwMWVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0xOTYsOCAr
MTk2LDcgQEAgcHVibGljOgogICAgIGludCBzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0
OwogICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0OwogCi0g
ICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOyB9Ci0g
ICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wp
OworICAgIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNv
bnN0OwogCiAgICAgdm9pZCBiZWdpbkRlZmVycmVkUmVwYWludHMoKTsKICAgICB2b2lkIGVuZERl
ZmVycmVkUmVwYWludHMoKTsKQEAgLTQxMCw3ICs0MDksNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9jYW5ub3RCbGl0VG9XaW5kb3c7CiAgICAgYm9vbCBtX2lzT3ZlcmxhcHBlZDsKICAgICBib29s
IG1fY29udGVudElzT3BhcXVlOwotICAgIGJvb2wgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lOwogICAgIHVuc2lnbmVkIG1fc2xvd1JlcGFpbnRPYmplY3RDb3VudDsK
ICAgICB1bnNpZ25lZCBtX2ZpeGVkT2JqZWN0Q291bnQ7CiAgICAgaW50IG1fYm9yZGVyWDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTU1OTc5M2M2NDExNjYyYjI3MTVmYmJiZDNlY2Y4
OWM2YjVmN2E0Zi4uYTRmNDlkM2U4YmMyM2U1ODdjNjMxYWFhMWYyY2YwM2E5MDY4YjJmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIxMyw2ICsyMTMsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENT
U1J1bGVzRGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNl
KQogICAgICwgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQo
ZmFsc2UpCisgICAgLCBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
ZmFsc2UpCiAgICAgLCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpCiAgICAg
LCBtX2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KHRydWUpCiAjaWYgRU5BQkxFKFNNT09U
SF9TQ1JPTExJTkcpCkBAIC00ODYsNiArNDg3LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAg
ICBtX3BhZ2UtPnVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgU2V0
dGluZ3M6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBz
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQoreworICAgIG1fc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IHNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWU7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldFNob3VsZFByaW50
QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKQogewogICAgIG1fc2hvdWxk
UHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dyb3VuZHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKaW5kZXggZDY1MTUyMGNhMmJlNjM4NjRhMWE2ZjQxNGZlMjBlZDYxNzQ3MGM4ZC4uYWIz
YzEyODM3YmI4ZTUxOWU0MjJmMTg2MTkxMDhhNzJlNDA5YWYwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaApAQCAtMTg5LDYgKzE4OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgY29uc3Qg
S1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxl
U2hlZXRMb2NhdGlvbjsgfQogCisgICAgICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKKyAgICAgICAgYm9vbCBzaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOyB9CisKICAgICAgICAgdm9pZCBzZXRTaG91bGRQ
cmludEJhY2tncm91bmRzKGJvb2wpOwogICAgICAgICBib29sIHNob3VsZFByaW50QmFja2dyb3Vu
ZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFByaW50QmFja2dyb3VuZHM7IH0KIApAQCAtNjMy
LDYgKzYzNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Nyb3NzT3Jp
Z2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkIDogMTsKICAgICAgICAgYm9vbCBt
X2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3VsZEluamVjdFVz
ZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7CisgICAgICAgIGJvb2wgbV9zaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIDogMTsKICAgICAgICAgYm9vbCBt
X2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKICAgICAgICAgYm9vbCBtX2FsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ZTQ4MWNhNTdiMmIwNzZh
OTA4MDFmZDBjNDliOGIwYzRhY2M5ZDk1Li5jYTRhNTAwOGVlMGViNjY1MmJiNzI5M2ViNzBhMjY2
OTBmZDM0ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01OTMsMTMg
KzU5MywxMiBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBz
Y29wZSwgY29uc3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogCiB2b2lkIEludGVybmFsczo6c2V0
U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShEb2N1bWVudCogZG9jdW1l
bnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFkb2N1bWVu
dCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkgeworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT5zZXR0aW5ncygpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+
dmlldygpOwotICAgIGZyYW1lVmlldy0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZShlbmFibGVkKTsKKyAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGVkKTsKIH0KIAogdm9pZCBJ
bnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGNjZTQ3ZTJlMjdhNjdhMjY2ZDY4MmQ3ZjVh
YWU5YzUwMzU2MzIwMGMuLjI5N2M3ZDg3ODQ2NmE4N2Q5NGRiN2E5YzUwOTkzMTdiMDk5ZTFlYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtODUs
NiArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRYU1NBdWRpdG9yRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxl
ZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFN0
b3JhZ2VFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5r
QmVoYXZpb3JOZXZlckxpdmUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCmluZGV4IGM3MmI2MTMzY2YxODk4MDA0ZmRjNGNmMTI3N2E2NmNkYjdjNzI4YTMuLmVkODUz
ZTIzYTc3NWRmNDliNDEzNzBkYzliYmM3MGI2MDBiNWUwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI0MiwxMyArMjQyLDYgQEAgcHVibGljOgogICAgIC8v
IFNldHMgdGhlIHJhdGlvIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMu
CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAKLSAg
ICAvLyBJbmRpY2F0ZXMgd2hldGhlciBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBzaG91bGQgYmUg
bGFpZCBvdXQgcmVsYXRpdmUKLSAgICAvLyB0byB0aGUgZnJhbWUgb3IgcmVsYXRpdmUgdG8gdGhl
IHBhZ2UuCi0gICAgdmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoKSBjb25zdCA9IDA7Ci0KLSAgICAvLyBTZXRzIHRoZSByZWxhdGl2ZSBsYXlvdXQg
b2YgcG9zaXRpb246Zml4ZWQgZWxlbWVudHMuCi0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCkgPSAwOwotCiAKICAgICAvLyBG
aXhlZCBMYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKaW5kZXggNzczM2UyNjk5MDg2ZGJiM2I1NTU2MzBmNGVlN2FkY2FmMzUyZTI5Yi4u
ODc4OTUzMDlkODRhNTNiYWY5NThhNDkyOGYyZDAxYmQwMTIyMDFhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0yMjQsNiArMjI0LDEx
IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGVk
KTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKQoreworICAgIG1fc2V0dGluZ3MtPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNS
ZWxhdGl2ZVRvRnJhbWUoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSk7
Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJs
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRl
eCBjYzcwZDEzMTZjNjRjMTY1OWUwZTIyMjk1NmM2ODE2NDAxNTViM2IyLi44YjM1MjdlZDE2ZGUx
YWM0MTRmM2QxYTJhNzNhMDA2ZmQzYWNlOTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEVk
aXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKaW5kZXggZDczODg5MGI0ZWI4NmU4YjIwY2JkNjVjZDZhZDRlMDdhZmRiMWQz
Ni4uYzdmYjAxMWI1ZjMzZmE0NTViMDQ0NWZmNDFhMGM3NmYzNWI2MDU4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjAzNywzMCArMjAzNyw2IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
KQogICAgIHBhZ2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi1i
b29sIFdlYlZpZXdJbXBsOjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
KCkgY29uc3QKLXsKLSAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8
ICFmcmFtZS0+dmlldygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZnJh
bWUtPnZpZXcoKS0+c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpOwot
fQotCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKGJvb2wgZW5hYmxlKQotewotICAgIGlmICghcGFnZSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT52
aWV3KCktPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxl
KTsKLX0KLQogYm9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29u
c3QKIHsKICAgICBpZiAoIXBhZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCmluZGV4IDU2ZjRiYWQ5NjZkYmQ3NzlhOTBhZGFhZjUzZDk5MzgyZjQ0MzNjYjIuLmUw
ZWRjYjEyY2U4ZTZhZGMwODRjMjI2NWE0ZWVhNTJmNjYxYWFlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTczLDggKzE3Myw2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7
CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBlbmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpOwogICAgIHZp
cnR1YWwgV2ViU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRl
ZgppbmRleCA5ZDJjNzhkZjVkMTNiZTI5NDcwNGJiNWQzNjhhZTc5ZmE2YTI3ZDcyLi5hMDY4N2Yw
ZjNhNzkxOTU2ZmZiNjE5MDNlNmVjZGZmYTliMjRkZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
CkBAIC0xNzQsOSArMTc0LDkgQEAgRVhQT1JUUwogICAgICAgICA/cmVtb3ZlU2hhZG93Um9vdEBF
bGVtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/c2NyaXB0RXhlY3V0aW9uQ29udGV4dEBK
U0RPTUdsb2JhbE9iamVjdEBXZWJDb3JlQEBRQkVQQVZTY3JpcHRFeGVjdXRpb25Db250ZXh0QDJA
WFoKICAgICAgICAgP3Njcm9sbEVsZW1lbnRUb1JlY3RARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhQ
QVZFbGVtZW50QDJAQUJWSW50UmVjdEAyQEBaCi0gICAgICAgID9zZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAg
ICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgog
ICAgICAgICA/c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdlYkNvcmVAQFNBWF9O
QFoKKyAgICAgICAgP3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVA
U2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQ
YWdlQFdlYkNvcmVAQFFBRVhNQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0UGFnaW5hdGlv
bkBQYWdlQFdlYkNvcmVAQFFBRVhBQlVQYWdpbmF0aW9uQDEyQEBaCiAgICAgICAgID9zZXRSZXNv
dXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNASW5zcGVjdG9yQ29udHJvbGxlckBXZWJD
b3JlQEBRQUVYSEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxp
dGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDU0M2Uw
N2FhODgxMzZlYzZmZjdjZWQ5MGNiY2QxNWZmNTlhYTViMjUuLmMzMTg4MDQ0OWNkNmQ1ZDBjYzhh
ZTQ4MjQ3ZjY0NjVmNjJjMjYxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYK
QEAgLTE2OCw5ICsxNjgsOSBAQCBFWFBPUlRTCiAgICAgICAgID9yZW1vdmVTaGFkb3dSb290QEVs
ZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVjdXRpb25Db250ZXh0QEpT
RE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBY
WgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWFBB
VkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAgICAgICAgP3NldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAg
ICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCiAg
ICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAU0FYX05A
WgorICAgICAgICA/c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBh
Z2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9zZXRQYWdpbmF0aW9u
QFBhZ2VAV2ViQ29yZUBAUUFFWEFCVVBhZ2luYXRpb25AMTJAQFoKICAgICAgICAgP3NldFJlc291
cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNv
cmVAQFFBRVhISEBaCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123876</attachid>
            <date>2012-01-24 19:46:18 -0800</date>
            <delta_ts>2012-01-26 07:27:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120124224617.patch</filename>
            <type>text/plain</type>
            <size>24948</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY4Y2FlYWZhZDdkOWVi
YTliMDQ0ZDU5MGQ5NTZkZTg3ZDBmZWI5Yi4uNTgwYjVhODk5ZjI4MjYzMjY3M2ZlZGIzNmRhNWNm
YWZjOWNkOTBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAxLTI0ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYmUgYSBzZXR0aW5n
IGJlY2F1c2UgaXQgaXMgaW5kZXBlbmRlbnQgb2YgYSBwYXJ0aWN1bGFyIGZyYW1lIGFuZAorICAg
ICAgICBzaG91bGQgYmUgcHJlc2VydmVkIGV2ZW4gaWYgdGhlIG1haW5mcmFtZSBjaGFuZ2VzLgor
CisgICAgICAgIFJlbmFtZWQgKHNldClTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lIHRvIAorICAgICAgICAoc2V0KUxheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUgZHVlIHRvIHRoZSBjb25ub3RhdGlvbgorICAgICAgICB0aGUgd29yZCAic2hvdWxkIiBtYXkg
aGF2ZSBpbiB0aGlzIGNvbnRleHQ6IElmIHNldCwgCisgICAgICAgIHBvc2l0aW9uOmZpeGVkIGVs
ZW1lbnRzIHdpbGwgQUxXQVkgYmUgbGFpZCBvdXQgcmVsYXRpdmUgdG8gdGhlIGZyYW1lLgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpsYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdz
OjpzZXRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6bGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmxheW91dEZpeGVkRWxlbWVudFJlbGF0aXZl
VG9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xv
Z2ljYWxXaWR0aEZvclBvc2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpj
b250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0Rm9yUG9zaXRpb25lZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDEtMjMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5n
aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSB1cGRhdGVSZWN0IGlzIGluY29y
cmVjdCB3aGVuIGNvbnRlbnRCb3VuZHMgIT0gYm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDQ2Y2YzZmE3NmZjNThjMGRkMzg5ODQ3MmZmMjM1MThlMmIzNDg4NjQuLmE2ODdkMjdl
YWExNzE0NjljMmQwMGFlNmJhOGNmMDQ5MGViNTg1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMjQgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lIGEgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZSk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEt
MjMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSB1cGRhdGVSZWN0IGlzIGluY29ycmVjdCB3aGVuIGNvbnRlbnRCb3VuZHMgIT0gYm91
bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggZjE3OTI5MWY1MWVkYmEwMDE4ODhjNGQzMTBiM2YwNTE1NDFmY2Zj
ZS4uZDg1OWFjY2U4YzExOGE2NzZlOWY4M2I2YzE4ZGQwNGUxNDcwYTFiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTI0ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1ha2Ugc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUu
ZGVmOgorCiAyMDEyLTAxLTIzICBBbGV4YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lA
bm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gSW1wbGVtZW50IFNTTCBlcnJvciBoYW5kbGluZyBR
TUwgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1MzAyY2VjYmMxZTVlYTM2MmMzMWUwOTA3
YjFjYjExYmM0NzJjOTg1Li4zOWQ3ZGJiNmM2OTNjOGViY2NhODljYmVmNDM3Y2IxZjdhMzZiOWE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTA1Myw3ICsxMDUzLDYgQEAgX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzI5c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW5FYgogX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzM3dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZUV2CiBfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3MzhzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0Zm9ybVdpZGdl
dEV2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MzhzeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGlu
Z1N1YmZyYW1lc0V2Ci1fX1pON1dlYkNvcmU5RnJhbWVWaWV3NDNzZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXc2Y3JlYXRl
RVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3NmNyZWF0ZUVQTlNfNUZyYW1lRVJL
TlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTBsaXN0aW5nVGFnRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDIxOTQ4ZjNmYzYwZmNiMTdiNTI5MzM0NGFhODA2ZjU5
ZDY5NjRlNzYuLjY0YWEyNWRlYjIwYjM5MzY2MDZhOGIxZGQ5NGI5MGY5NzMwN2IxZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIyMSw3ICsyMjEsNiBAQCB2b2lkIEZyYW1lVmll
dzo6cmVzZXQoKQogICAgIG1fY2Fubm90QmxpdFRvV2luZG93ID0gZmFsc2U7CiAgICAgbV9pc092
ZXJsYXBwZWQgPSBmYWxzZTsKICAgICBtX2NvbnRlbnRJc09wYXF1ZSA9IGZhbHNlOwotICAgIG1f
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IGZhbHNlOwogICAgIG1f
Ym9yZGVyWCA9IDMwOwogICAgIG1fYm9yZGVyWSA9IDMwOwogICAgIG1fbGF5b3V0VGltZXIuc3Rv
cCgpOwpAQCAtMTQxNyw3ICsxNDE2LDcgQEAgaW50IEZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVk
UG9zaXRpb24oKSBjb25zdAogICAgIC8vIFdoZW4gdGhlIHBhZ2UgaXMgc2NhbGVkLCB0aGUgc2Nh
bGVkICJ2aWV3cG9ydCIgd2l0aCByZXNwZWN0IHRvIHdoaWNoIGZpeGVkIG9iamVjdCBhcmUgcG9z
aXRpb25lZAogICAgIC8vIGRvZXNuJ3QgbW92ZSBhcyBmYXN0IGFzIHRoZSBjb250ZW50IHZpZXcs
IHNvIHRoYXQgd2hlbiB0aGUgY29udGVudCBpcyBzY3JvbGxlZCBhbGwgdGhlIHdheSB0byB0aGUK
ICAgICAvLyBlbmQsIHRoZSBib3R0b20gb2YgdGhlIHNjYWxlZCAidmlld3BvcnQiIHRvdWNoZXMg
dGhlIGJvdHRvbSBvZiB0aGUgcmVhbCB2aWV3cG9ydC4KLSAgICBmbG9hdCBkcmFnRmFjdG9yID0g
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpID8gMSA6IChjb250ZW50
c1dpZHRoKCkgLSB2aXNpYmxlQ29udGVudFdpZHRoICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhY
OworICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBsYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKCkgPyAxIDogKGNvbnRlbnRzV2lkdGgoKSAtIHZpc2libGVDb250ZW50V2lkdGggKiBmcmFt
ZVNjYWxlRmFjdG9yKSAvIG1heFg7CiAKICAgICByZXR1cm4geCAqIGRyYWdGYWN0b3IgLyBmcmFt
ZVNjYWxlRmFjdG9yOwogfQpAQCAtMTQ0OCw3ICsxNDQ3LDcgQEAgaW50IEZyYW1lVmlldzo6c2Ny
b2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4geTsKIAogICAgIGZs
b2F0IGZyYW1lU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7Ci0gICAg
ZmxvYXQgZHJhZ0ZhY3RvciA9IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoKSA/IDEgOiAoY29udGVudHNIZWlnaHQoKSAtIHZpc2libGVDb250ZW50SGVpZ2h0ICogZnJh
bWVTY2FsZUZhY3RvcikgLyBtYXhZOworICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBsYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRzSGVpZ2h0KCkgLSB2aXNp
YmxlQ29udGVudEhlaWdodCAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4WTsKICAgICByZXR1cm4g
eSAqIGRyYWdGYWN0b3IgLyBmcmFtZVNjYWxlRmFjdG9yOwogfQogCkBAIC0xNDU3LDE4ICsxNDU2
LDE1IEBAIEludFNpemUgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkg
Y29uc3QKICAgICByZXR1cm4gSW50U2l6ZShzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpLCBzY3Jv
bGxZRm9yRml4ZWRQb3NpdGlvbigpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQorYm9vbCBGcmFtZVZpZXc6OmxheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdAogewotICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lID09IG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lID0gc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZTsKLQotICAgIGlmICghaGFzRml4ZWRPYmplY3RzKCkpCi0gICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQobV9mcmFtZSk7CisgICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzZXROZWVkc0xheW91dCgpOworICAgIHJldHVybiBt
X2ZyYW1lLT5zZXR0aW5ncygpLT5sYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCk7
CiB9CisKIEludFBvaW50IEZyYW1lVmlldzo6Y3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdAog
ewogICAgIHJldHVybiBtX2ZyYW1lID8gbV9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJlbnRN
b3VzZVBvc2l0aW9uKCkgOiBJbnRQb2ludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
MTJhYTA3YTEzNjRmNDQ3NGI0NDRhMGZhNDAwMDM5NjA0ODlkMmZkNC4uM2E1ZDI1YmFiNmU2YjZl
MTIwN2I5MWQ4MjdjMmIzZDgwM2E1MjM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0x
OTYsOCArMTk2LDcgQEAgcHVibGljOgogICAgIGludCBzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigp
IGNvbnN0OwogICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0
OwogCi0gICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
OyB9Ci0gICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
KGJvb2wpOworICAgIGJvb2wgbGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNv
bnN0OwogCiAgICAgdm9pZCBiZWdpbkRlZmVycmVkUmVwYWludHMoKTsKICAgICB2b2lkIGVuZERl
ZmVycmVkUmVwYWludHMoKTsKQEAgLTQxMCw3ICs0MDksNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9jYW5ub3RCbGl0VG9XaW5kb3c7CiAgICAgYm9vbCBtX2lzT3ZlcmxhcHBlZDsKICAgICBib29s
IG1fY29udGVudElzT3BhcXVlOwotICAgIGJvb2wgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lOwogICAgIHVuc2lnbmVkIG1fc2xvd1JlcGFpbnRPYmplY3RDb3VudDsK
ICAgICB1bnNpZ25lZCBtX2ZpeGVkT2JqZWN0Q291bnQ7CiAgICAgaW50IG1fYm9yZGVyWDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTU1OTc5M2M2NDExNjYyYjI3MTVmYmJiZDNlY2Y4
OWM2YjVmN2E0Zi4uZDlhN2JjYzdiMzhlMzgxODUwYzgzNjQ4NDk5MGNmZmZlMmUwYjQxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIxMyw2ICsyMTMsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENT
U1J1bGVzRGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNl
KQogICAgICwgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQo
ZmFsc2UpCisgICAgLCBtX2xheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZmFsc2Up
CiAgICAgLCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpCiAgICAgLCBtX2Fs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KHRydWUpCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JP
TExJTkcpCkBAIC00ODYsNiArNDg3LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3Bh
Z2UtPnVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6
OnNldExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBsYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQoreworICAgIG1fbGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZSA9IGxheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7Cit9CisKIHZv
aWQgU2V0dGluZ3M6OnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJh
Y2tncm91bmRzKQogewogICAgIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50
QmFja2dyb3VuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZDY1MTUyMGNhMmJlNjM4NjRh
MWE2ZjQxNGZlMjBlZDYxNzQ3MGM4ZC4uMjgxYzJjODcxMGRhYzkwYmUyNGQyODYyZGU5NmQ2YWMw
MmE5MWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTg5LDYgKzE4OSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNv
bnN0IEtVUkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsgfQogCisgICAgICAgIHZv
aWQgc2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKKyAgICAgICAg
Ym9vbCBsYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9sYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOyB9CisKICAgICAgICAgdm9pZCBz
ZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wpOwogICAgICAgICBib29sIHNob3VsZFByaW50
QmFja2dyb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFByaW50QmFja2dyb3VuZHM7IH0K
IApAQCAtNjMyLDYgKzYzNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBt
X2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkIDogMTsKICAgICAg
ICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3Vs
ZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7CisgICAgICAgIGJv
b2wgbV9sYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIDogMTsKICAgICAgICAgYm9v
bCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKICAgICAgICAgYm9vbCBtX2Fs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYTg5YjE0ZDhh
ODUyYmU3NWM0YmY1NTYyOGQ2ZWJlM2JkOWI1YWY3NS4uYTQxMjZjOTEzMzkxZGRjYzkwM2UyNWM3
Yzc5ODZmYWNlYzBkMTc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
QEAgLTYzMyw5ICs2MzMsOSBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6cmVmbGVjdGVkUmVjdChj
b25zdCBMYXlvdXRSZWN0JiByKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wg
UmVuZGVyQm94OjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUq
IGZyYW1lLCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgUmVuZGVyQm94OjpsYXlv
dXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqIGZyYW1lLCBGcmFtZVZpZXcqIGZy
YW1lVmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlv
bigpID09IEZpeGVkUG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZy
YW1lICYmIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPnNob3VsZExheW91dEZpeGVkRWxlbWVudHNS
ZWxhdGl2ZVRvRnJhbWUoKTsKKyAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlv
bigpID09IEZpeGVkUG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZy
YW1lICYmIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoKTsKIH0KIAogYm9vbCBSZW5kZXJCb3g6OmluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJh
clNpemUoKSBjb25zdApAQCAtMjMwNyw3ICsyMzA3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6
OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94
TW8KICAgICAvLyBDb250YWluZXIgZm9yIHBvc2l0aW9uOmZpeGVkIGlzIHRoZSBmcmFtZS4KICAg
ICBGcmFtZSogZnJhbWUgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lKCk6IDA7CiAgICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lVmlldygpIDogMDsKLSAgICBp
ZiAoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZp
ZXcpKQorICAgIGlmIChsYXlvdXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRvRnJhbWUoZnJhbWUsIGZy
YW1lVmlldykpCiAgICAgICAgIHJldHVybiAodmlldygpLT5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgoKSA6IGZyYW1lVmlldy0+dmlzaWJsZUhlaWdo
dCgpKSAvIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7CiAKICAgICBpZiAoY2hlY2tGb3JQZXJw
ZW5kaWN1bGFyV3JpdGluZ01vZGUgJiYgY29udGFpbmluZ0Jsb2NrLT5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpICE9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC0yMzY0LDcgKzIzNjQs
NyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZv
clBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TQogewogICAgIEZyYW1lKiBmcmFtZSA9IHZpZXco
KSA/IHZpZXcoKS0+ZnJhbWUoKTogMDsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXco
KSA/IHZpZXcoKS0+ZnJhbWVWaWV3KCkgOiAwOwotICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRSZWxhdGl2ZVRvRnJhbWUoZnJhbWUsIGZyYW1lVmlldykpCisgICAgaWYgKGxheW91dEZp
eGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShmcmFtZSwgZnJhbWVWaWV3KSkKICAgICAgICAgcmV0
dXJuICh2aWV3KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBmcmFtZVZpZXctPnZpc2li
bGVIZWlnaHQoKSA6IGZyYW1lVmlldy0+dmlzaWJsZVdpZHRoKCkpIC8gZnJhbWUtPmZyYW1lU2Nh
bGVGYWN0b3IoKTsKIAogICAgIGlmIChjaGVja0ZvclBlcnBlbmRpY3VsYXJXcml0aW5nTW9kZSAm
JiBjb250YWluaW5nQmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBl
MDBlMWQ4YzI1NjFiMjY4ZjZiYWRlZGQzOGRlM2U0YTg1MjEyMmRkLi44ODFkNTkwZjVkOTRkZDM1
N2E3ODc5ZDZhMWJhNzA2NzdjMGU2NWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC00NjIsNyArNDYyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRSb290Qm94
RmlsbExheWVycyhjb25zdCBQYWludEluZm8mKTsKIAogcHJpdmF0ZToKLSAgICBib29sIHNob3Vs
ZExheW91dEZpeGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmlldyopIGNv
bnN0OworICAgIGJvb2wgbGF5b3V0Rml4ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwg
RnJhbWVWaWV3KikgY29uc3Q7CiAKICAgICBib29sIGluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNp
emUoKSBjb25zdDsKICAgICBib29sIGluY2x1ZGVIb3Jpem9udGFsU2Nyb2xsYmFyU2l6ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDdlNDgxY2E1N2IyYjA3
NmE5MDgwMWZkMGM0OWI4YjBjNGFjYzlkOTUuLjJkZjhmNjJhNTBkOWI1NGQ1NDFlMWI2YjY5NDhl
MjA4NjEwNmRhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU5MSwx
NSArNTkxLDE0IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQq
IHNjb3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAgcmV0dXJuIGxlbmd0aDsK
IH0KIAotdm9pZCBJbnRlcm5hbHM6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBJbnRlcm5hbHM6OnNldExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewogICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsKLSAgICBmcmFtZVZpZXctPnNldFNob3VsZExheW91
dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7CisgICAgZG9jdW1lbnQtPnNl
dHRpbmdzKCktPnNldExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7
CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1
bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzZTI4MWJkZTEyOTk5ZWEzOTc5Mjc1MGI3NzMyMjQx
NzQ4OTNkY2YyLi40ZThmN2U0NGQyYTY4MWZiN2I0NzgyMWMwMjMwM2FjMWUwNmE5Yzc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAg
ICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoRWxlbWVudCog
c2NvcGUsIGludCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICB1bnNpZ25lZCBsb2NhdGlvbkZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3Qg
UmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGVuZ3RoRnJvbVJhbmdlKEVs
ZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNl
dFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1lbnQqLCBib29s
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKERvY3VtZW50KiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg3NDg1
NzkyZGQ2MjM4MDczMzE4NGQxZTY0NDdjN2EwOTE3ZTEyOGEuLmQwZGEwY2YyZDZiNjllMTU0ZWU2
YjkwZjkzOWY1NmJmOTE4MmJlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTgzLDcgKzgzLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcg
bG9jYXRpb25Gcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW5ndGhGcm9tUmFuZ2Uo
aW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggY2NlNDdlMmUyN2E2N2EyNjZkNjgy
ZDdmNWFhZTljNTAzNTYzMjAwYy4uNDZkZjZlYmIwMTIxYzhhOTVhM2EyMjY0ZmY5ZDM3MWJkNTJh
ZjdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBA
IC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFhTU0F1ZGl0
b3JFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE5TUHJlZmV0Y2hpbmdF
bmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5b3V0Rml4ZWRFbGVtZW50
c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExvY2FsU3Rv
cmFnZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUxpbmtC
ZWhhdmlvck5ldmVyTGl2ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVGbGF0dGVu
aW5nRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
LmgKaW5kZXggYzcyYjYxMzNjZjE4OTgwMDRmZGM0Y2YxMjc3YTY2Y2RiN2M3MjhhMy4uZWQ4NTNl
MjNhNzc1ZGY0OWI0MTM3MGRjOWJiYzcwYjYwMGI1ZTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQyLDEzICsyNDIsNiBAQCBwdWJsaWM6CiAgICAgLy8g
U2V0cyB0aGUgcmF0aW8gYXMgY29tcHV0ZWQgYnkgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpID0gMDsKIAotICAg
IC8vIEluZGljYXRlcyB3aGV0aGVyIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIHNob3VsZCBiZSBs
YWlkIG91dCByZWxhdGl2ZQotICAgIC8vIHRvIHRoZSBmcmFtZSBvciByZWxhdGl2ZSB0byB0aGUg
cGFnZS4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSgpIGNvbnN0ID0gMDsKLQotICAgIC8vIFNldHMgdGhlIHJlbGF0aXZlIGxheW91dCBv
ZiBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7Ci0KIAogICAgIC8vIEZp
eGVkIExheW91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcAppbmRleCA3NzMzZTI2OTkwODZkYmIzYjU1NTYzMGY0ZWU3YWRjYWYzNTJlMjliLi5i
NTBjNGYwOGExODEzMDQ1NGJlZTg4MWEwOWVjNGYxMDVhYWI1MDdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTIyNCw2ICsyMjQsMTEg
QEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZWQp
OwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZShib29sIGxheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpCit7Cisg
ICAgbV9zZXR0aW5ncy0+c2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShsYXlv
dXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0lt
cGw6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fc2V0dGlu
Z3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IGNjNzBkMTMxNmM2NGMxNjU5ZTBlMjIy
OTU2YzY4MTY0MDE1NWIzYjIuLjk3MGU4MGZlYmY5ZDE3ZDVmY2M4YTk2ZWE5Yjc2MDVlODRmNTE2
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBA
IC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0WFNTQXVkaXRvckVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxlZChi
b29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29s
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkNzM4ODkwYjRlYjg2
ZThiMjBjYmQ2NWNkNmFkNGUwN2FmZGIxZDM2Li5jN2ZiMDExYjVmMzNmYTQ1NWIwNDQ1ZmY0MWEw
Yzc2ZjM1YjYwNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCkBAIC0yMDM3LDMwICsyMDM3LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2aWNlU2Nh
bGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZh
Y3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6OnNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdAotewotICAgIGlmICghcGFnZSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiBmcmFtZS0+dmlldygpLT5zaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6OnNldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBlbmFibGUpCi17Ci0gICAg
aWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2Uo
KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZnJhbWUtPnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGUpOwotfQotCiBib29sIFdlYlZpZXdJbXBsOjppc0Zp
eGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggNTZmNGJhZDk2NmRiZDc3OWE5
MGFkYWFmNTNkOTkzODJmNDQzM2NiMi4uZTBlZGNiMTJjZThlNmFkYzA4NGMyMjY1YTRlZWE1MmY2
NjFhYWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0x
NzMsOCArMTczLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9h
dCk7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRv
RnJhbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZExheW91
dE1vZGVFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUZpeGVkTGF5b3V0
TW9kZShib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5b3V0U2l6ZSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDlkMmM3OGRmNWQxM2JlMjk0NzA0YmI1
ZDM2OGFlNzlmYTZhMjdkNzIuLjQ1OWNhYWJjY2RhNDVhZTJhMTZmOTYzMTNlNmRmYTFlYWM0NWZh
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3NCw3ICsxNzQsNiBAQCBFWFBPUlRTCiAg
ICAgICAgID9yZW1vdmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAg
ID9zY3JpcHRFeGVjdXRpb25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBB
VlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVj
dEBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAg
ICAgICAgP3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVW
aWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBA
WUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJs
ZWRAU2V0dGluZ3NAV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9y
QFBhZ2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKaW5kZXggNTQzZTA3YWE4ODEzNmVjNmZmN2NlZDkwY2JjZDE1ZmY1OWFhNWIy
NS4uNDNiZDRjNTQ0MGI5N2FlYjEyMTU1ZmRhMGQzYjkzODk4NjI3NDc2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTY4LDcgKzE2OCw2IEBAIEVYUE9SVFMKICAgICAg
ICAgP3JlbW92ZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29yZUBAUUJFUEFWU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0QEZy
YW1lVmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgotICAgICAg
ICA/c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUBGcmFtZVZpZXdA
V2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQ
QVZFeGVjU3RhdGVASlNDQEBIQFoKICAgICAgICAgP3NldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEBT
ZXR0aW5nc0BXZWJDb3JlQEBTQVhfTkBaCiAgICAgICAgID9zZXRQYWdlU2NhbGVGYWN0b3JAUGFn
ZUBXZWJDb3JlQEBRQUVYTUFCVkludFBvaW50QDJAQFoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWM4ZWE0YjM2MTEwMWUw
N2M1MTE5NzY0YmJkMGVjMDRhOTY0NDNmLi5iYjgxNDVjNzQ0NTY1ZWMwYTBlMDBjNDM4OTU2YjEz
NzZhNTAyNDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDEtMjQgIEZhZHkgU2FtdWVs
ICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBzaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGEgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNj
YWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1w
YWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBh
Z2Utc2NhbGUuaHRtbDoKKwogMjAxMi0wMS0yMyAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9ucyBmaXhlcyBmb3Ig
YSBjb3VwbGUgb2Ygd2luZG93L2ZyYW1lIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggYTk1YzU3Mjg2ODY2MGM1NTNi
Njg4N2FlNzA4NWJmZDQxNWNiMzAwYi4uZDJlNjYxOTkyNzNmMGVlZDhlMTI2NWJkM2I5MDA1ZGJj
ZDg1YWRkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBh
Z2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFn
ZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cu
ZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1Jl
bGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1ZSk7CisgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsK
IAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygx
MDAsMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdo
dC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2Zp
eGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMTJmYzQ1YTdjYTczMzgx
ZWUzYzkzNGVkNjE4YzdlMjE5YzcxYmQ3Yi4uY2ZlNTU1OGU1NDM3NTllMmMzMzllYWMxY2Y4ZTA4
M2Q5M2JjNTBiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJp
Z2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBA
CiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwog
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVl
KTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7
CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXgg
OTAzODNlODY5YjYwZWRkY2EwODIyNTgyMWYxZjBmZjQ1MDQ1MGE2ZS4uMDBiOWZiMTU1Y2YzOTJh
NjI0MWNjNzE5YjA5NmRmODBjN2Y2MGNhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBA
QAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1
ZSk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkg
ewogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygxMDAsMTAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124117</attachid>
            <date>2012-01-26 07:27:52 -0800</date>
            <delta_ts>2012-01-26 16:55:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120126102751.patch</filename>
            <type>text/plain</type>
            <size>25010</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY4Y2FlYWZhZDdkOWVi
YTliMDQ0ZDU5MGQ5NTZkZTg3ZDBmZWI5Yi4uZDkyZGZjODE2NTRmNmUzZDg0ZDJkNWY2NWZmNjJl
MzI0YzhlODQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAxLTI1ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNob3Vs
ZCBiZSBhIHNldHRpbmcgYmVjYXVzZSBpdCBpcyBpbmRlcGVuZGVudCBvZiBhIHBhcnRpY3VsYXIg
ZnJhbWUgYW5kCisgICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZy
YW1lIGNoYW5nZXMuCisKKyAgICAgICAgUmVuYW1lZCAoc2V0KVNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUgdG8gCisgICAgICAgIChzZXQpRml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZSBkdWUgdG8gdGhlIGNvbm5vdGF0aW9uCisgICAgICAgIHRoZSB3b3Jk
ICJzaG91bGQiIG1heSBoYXZlIGluIHRoaXMgY29udGV4dDogSWYgc2V0LCAKKyAgICAgICAgcG9z
aXRpb246Zml4ZWQgZWxlbWVudHMgd2lsbCBBTFdBWVMgYmUgbGFpZCBvdXQgcmVsYXRpdmUgdG8g
dGhlIGZyYW1lLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKToK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmZpeGVkRWxlbWVu
dExheXNPdXRSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpj
b250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTAxLTIzICBTaGF3biBT
aW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gdXBk
YXRlUmVjdCBpcyBpbmNvcnJlY3Qgd2hlbiBjb250ZW50Qm91bmRzICE9IGJvdW5kcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA0NmNmM2ZhNzZmYzU4YzBkZDM4OTg0NzJmZjIzNTE4ZTJi
MzQ4ODY0Li45MDIyNTFjMGEyMjkyNzg2YmFjYmY3NTczMDljN2ZjNTM1N2E2MDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTI1ICBGYWR5IFNh
bXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRMYXlv
dXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJT
ZXR0aW5ncy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0
Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogc3JjL1dlYlNl
dHRpbmdzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEtMjMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5n
aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSB1cGRhdGVSZWN0IGlzIGluY29y
cmVjdCB3aGVuIGNvbnRlbnRCb3VuZHMgIT0gYm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjE3OTI5MWY1
MWVkYmEwMDE4ODhjNGQzMTBiM2YwNTE1NDFmY2ZjZS4uNDFlN2Y2NzI4MTE0YzYzYWI5NTQ5ODMx
YWYzNGNjMDIzZDMzOTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTI1
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBz
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0
dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTIt
MDEtMjMgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+CiAK
ICAgICAgICAgW1F0XSBJbXBsZW1lbnQgU1NMIGVycm9yIGhhbmRsaW5nIFFNTCBBUEkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDUzMDJjZWNiYzFlNWVhMzYyYzMxZTA5MDdiMWNiMTFiYzQ3MmM5
ODUuLjM5ZDdkYmI2YzY5M2M4ZWJjY2E4OWNiZWY0MzdjYjFmN2EzNmI5YTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xMDUzLDcgKzEwNTMsNiBAQCBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mjlz
ZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbkViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mzd1
cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlRXYKIF9fWk43V2ViQ29yZTlGcmFt
ZVZpZXczOHNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0RXYKIF9fWk43V2Vi
Q29yZTlGcmFtZVZpZXczOHN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzRXYK
LV9fWk43V2ViQ29yZTlGcmFtZVZpZXc0M3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWVFYgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzZjcmVhdGVFUE5TXzVGcmFtZUUK
IF9fWk43V2ViQ29yZTlGcmFtZVZpZXc2Y3JlYXRlRVBOU181RnJhbWVFUktOU183SW50U2l6ZUUK
IF9fWk43V2ViQ29yZTlIVE1MTmFtZXMxMGxpc3RpbmdUYWdFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggMjE5NDhmM2ZjNjBmY2IxN2I1MjkzMzQ0YWE4MDZmNTlkNjk2NGU3Ni4uYWE3
ZWQ5NmZjZDE4OTM5NWRjZTBmY2U5NzY1ZTAyNmI4ZjY2ZTFjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMjIxLDcgKzIyMSw2IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXNldCgpCiAg
ICAgbV9jYW5ub3RCbGl0VG9XaW5kb3cgPSBmYWxzZTsKICAgICBtX2lzT3ZlcmxhcHBlZCA9IGZh
bHNlOwogICAgIG1fY29udGVudElzT3BhcXVlID0gZmFsc2U7Ci0gICAgbV9zaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lID0gZmFsc2U7CiAgICAgbV9ib3JkZXJYID0gMzA7
CiAgICAgbV9ib3JkZXJZID0gMzA7CiAgICAgbV9sYXlvdXRUaW1lci5zdG9wKCk7CkBAIC0xNDE3
LDcgKzE0MTYsNyBAQCBpbnQgRnJhbWVWaWV3OjpzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpIGNv
bnN0CiAgICAgLy8gV2hlbiB0aGUgcGFnZSBpcyBzY2FsZWQsIHRoZSBzY2FsZWQgInZpZXdwb3J0
IiB3aXRoIHJlc3BlY3QgdG8gd2hpY2ggZml4ZWQgb2JqZWN0IGFyZSBwb3NpdGlvbmVkCiAgICAg
Ly8gZG9lc24ndCBtb3ZlIGFzIGZhc3QgYXMgdGhlIGNvbnRlbnQgdmlldywgc28gdGhhdCB3aGVu
IHRoZSBjb250ZW50IGlzIHNjcm9sbGVkIGFsbCB0aGUgd2F5IHRvIHRoZQogICAgIC8vIGVuZCwg
dGhlIGJvdHRvbSBvZiB0aGUgc2NhbGVkICJ2aWV3cG9ydCIgdG91Y2hlcyB0aGUgYm90dG9tIG9m
IHRoZSByZWFsIHZpZXdwb3J0LgotICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBzaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRzV2lkdGgoKSAtIHZp
c2libGVDb250ZW50V2lkdGggKiBmcmFtZVNjYWxlRmFjdG9yKSAvIG1heFg7CisgICAgZmxvYXQg
ZHJhZ0ZhY3RvciA9IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSA/IDEgOiAo
Y29udGVudHNXaWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRXaWR0aCAqIGZyYW1lU2NhbGVGYWN0b3Ip
IC8gbWF4WDsKIAogICAgIHJldHVybiB4ICogZHJhZ0ZhY3RvciAvIGZyYW1lU2NhbGVGYWN0b3I7
CiB9CkBAIC0xNDQ4LDcgKzE0NDcsNyBAQCBpbnQgRnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQ
b3NpdGlvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB5OwogCiAgICAgZmxvYXQgZnJhbWVTY2Fs
ZUZhY3RvciA9IG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKTsKLSAgICBmbG9hdCBkcmFnRmFj
dG9yID0gc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpID8gMSA6IChj
b250ZW50c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBmcmFtZVNjYWxlRmFjdG9y
KSAvIG1heFk7CisgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxh
dGl2ZVRvRnJhbWUoKSA/IDEgOiAoY29udGVudHNIZWlnaHQoKSAtIHZpc2libGVDb250ZW50SGVp
Z2h0ICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhZOwogICAgIHJldHVybiB5ICogZHJhZ0ZhY3Rv
ciAvIGZyYW1lU2NhbGVGYWN0b3I7CiB9CiAKQEAgLTE0NTcsMTggKzE0NTYsMTUgQEAgSW50U2l6
ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIHJl
dHVybiBJbnRTaXplKHNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCksIHNjcm9sbFlGb3JGaXhlZFBv
c2l0aW9uKCkpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUpCitib29sIEZyYW1lVmlldzo6Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUgPT0gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUgPSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOwotCi0g
ICAgaWYgKCFoYXNGaXhlZE9iamVjdHMoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCht
X2ZyYW1lKTsKKyAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHNldE5lZWRzTGF5b3V0KCk7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRp
bmdzKCktPmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsKIH0KKwogSW50UG9p
bnQgRnJhbWVWaWV3OjpjdXJyZW50TW91c2VQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZnJhbWUgPyBtX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVudE1vdXNlUG9zaXRpb24o
KSA6IEludFBvaW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAxMmFhMDdhMTM2NGY0
NDc0YjQ0NGEwZmE0MDAwMzk2MDQ4OWQyZmQ0Li5lNTI5NjZjMWQwNDI0NGY2N2NiM2M2ODI1YjM5
NjdjN2Y0MDczMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE5Niw4ICsxOTYsNyBA
QCBwdWJsaWM6CiAgICAgaW50IHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAgICAg
SW50U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICBib29s
IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7IH0KLSAgICB2b2lk
IHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7CisgICAg
Ym9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Q7CiAKICAgICB2
b2lkIGJlZ2luRGVmZXJyZWRSZXBhaW50cygpOwogICAgIHZvaWQgZW5kRGVmZXJyZWRSZXBhaW50
cygpOwpAQCAtNDEwLDcgKzQwOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Nhbm5vdEJsaXRU
b1dpbmRvdzsKICAgICBib29sIG1faXNPdmVybGFwcGVkOwogICAgIGJvb2wgbV9jb250ZW50SXNP
cGFxdWU7Ci0gICAgYm9vbCBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWU7CiAgICAgdW5zaWduZWQgbV9zbG93UmVwYWludE9iamVjdENvdW50OwogICAgIHVuc2lnbmVk
IG1fZml4ZWRPYmplY3RDb3VudDsKICAgICBpbnQgbV9ib3JkZXJYOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAppbmRleCA5NTU5NzkzYzY0MTE2NjJiMjcxNWZiYmJkM2VjZjg5YzZiNWY3YTRmLi4x
ODYxNjYwYmRlNzE1MmI2MGVlZmU5NWZmZGM4OGUyM2I4MDc5YTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcApAQCAtMjEzLDYgKzIxMyw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBw
YWdlKQogICAgICwgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVsZXNEaXNhYmxl
ZChmYWxzZSkKICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCiAgICAgLCBtX3No
b3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChmYWxzZSkKKyAgICAs
IG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShmYWxzZSkKICAgICAsIG1fYWxs
b3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSkKICAgICAsIG1fYWxsb3dSdW5uaW5nT2ZJ
bnNlY3VyZUNvbnRlbnQodHJ1ZSkKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKQEAgLTQ4
Niw2ICs0ODcsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihj
b25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKQogICAgIG1fcGFnZS0+dXNlclN0eWxl
U2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0Rml4ZWRFbGVt
ZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWUpCit7CisgICAgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lID0g
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZTsKK30KKwogdm9pZCBTZXR0aW5nczo6
c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sIHNob3VsZFByaW50QmFja2dyb3VuZHMpCiB7
CiAgICAgbV9zaG91bGRQcmludEJhY2tncm91bmRzID0gc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBkNjUxNTIwY2EyYmU2Mzg2NGExYTZmNDE0ZmUyMGVk
NjE3NDcwYzhkLi44ZTRkOTFkNWMwNGY1M2Q2NDE1N2UwMjVkMWIyYjkzNGQ2ZDRkNjZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xODksNiArMTg5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VSTCYpOwog
ICAgICAgICBjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9CiAKKyAgICAgICAgdm9pZCBzZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wpOworICAgICAgICBib29sIGZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7IH0KKwogICAgICAgICB2b2lkIHNldFNob3VsZFByaW50
QmFja2dyb3VuZHMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcygp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsgfQogCkBAIC02MzIsNiAr
NjM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fY3Jvc3NPcmlnaW5D
aGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fZm9y
Y2VDb21wb3NpdGluZ01vZGUgOiAxOwogICAgICAgICBib29sIG1fc2hvdWxkSW5qZWN0VXNlclNj
cmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDogMTsKKyAgICAgICAgYm9vbCBtX2ZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgOiAxOwogICAgICAgICBib29sIG1fYWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogICAgICAgICBib29sIG1fYWxsb3dSdW5uaW5nT2ZJ
bnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBhODliMTRkOGE4NTJiZTc1YzRiZjU1
NjI4ZDZlYmUzYmQ5YjVhZjc1Li4wZGYxZDVhOTVkYmFhNWU0ZGY0MGJmYmFmNGI0ZTQ5ZTViMDAx
ZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjMzLDkgKzYz
Myw5IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpyZWZsZWN0ZWRSZWN0KGNvbnN0IExheW91dFJl
Y3QmIHIpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBSZW5kZXJCb3g6OnNo
b3VsZExheW91dEZpeGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShGcmFtZSogZnJhbWUsIEZyYW1l
VmlldyogZnJhbWVWaWV3KSBjb25zdAorYm9vbCBSZW5kZXJCb3g6OmZpeGVkRWxlbWVudExheXNP
dXRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqIGZyYW1lLCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29u
c3QKIHsKLSAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1lICYmIGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUoKTsKKyAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1lICYmIGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsK
IH0KIAogYm9vbCBSZW5kZXJCb3g6OmluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNpemUoKSBjb25z
dApAQCAtMjMwNyw3ICsyMzA3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnRhaW5pbmdC
bG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TW8KICAgICAvLyBD
b250YWluZXIgZm9yIHBvc2l0aW9uOmZpeGVkIGlzIHRoZSBmcmFtZS4KICAgICBGcmFtZSogZnJh
bWUgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lKCk6IDA7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lVmlldygpIDogMDsKLSAgICBpZiAoc2hvdWxkTGF5
b3V0Rml4ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQorICAgIGlm
IChmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQog
ICAgICAgICByZXR1cm4gKHZpZXcoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZyYW1l
Vmlldy0+dmlzaWJsZVdpZHRoKCkgOiBmcmFtZVZpZXctPnZpc2libGVIZWlnaHQoKSkgLyBmcmFt
ZS0+ZnJhbWVTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKGNoZWNrRm9yUGVycGVuZGljdWxhcldy
aXRpbmdNb2RlICYmIGNvbnRhaW5pbmdCbG9jay0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAh
PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQpAQCAtMjM2NCw3ICsyMzY0LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHRGb3JQb3NpdGlvbmVk
KGNvbnN0IFJlbmRlckJveE0KIHsKICAgICBGcmFtZSogZnJhbWUgPSB2aWV3KCkgPyB2aWV3KCkt
PmZyYW1lKCk6IDA7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkgPyB2aWV3KCkt
PmZyYW1lVmlldygpIDogMDsKLSAgICBpZiAoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50UmVsYXRp
dmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQorICAgIGlmIChmaXhlZEVsZW1lbnRMYXlzT3V0
UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4gKHZpZXco
KS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZyYW1lVmlldy0+dmlzaWJsZUhlaWdodCgp
IDogZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgoKSkgLyBmcmFtZS0+ZnJhbWVTY2FsZUZhY3Rvcigp
OwogCiAgICAgaWYgKGNoZWNrRm9yUGVycGVuZGljdWxhcldyaXRpbmdNb2RlICYmIGNvbnRhaW5p
bmdCbG9jay0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAhPSBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGUwMGUxZDhjMjU2
MWIyNjhmNmJhZGVkZDM4ZGUzZTRhODUyMTIyZGQuLmQxNjM3ZmFhMjEzNjBhMDUwNmMwZDEzYmRi
YjFiMmVhZWY4NjcwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ2
Miw3ICs0NjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludFJvb3RCb3hGaWxsTGF5ZXJz
KGNvbnN0IFBhaW50SW5mbyYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgc2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3KikgY29uc3Q7CisgICAg
Ym9vbCBmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3
KikgY29uc3Q7CiAKICAgICBib29sIGluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNpemUoKSBjb25z
dDsKICAgICBib29sIGluY2x1ZGVIb3Jpem9udGFsU2Nyb2xsYmFyU2l6ZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDdlNDgxY2E1N2IyYjA3NmE5MDgwMWZk
MGM0OWI4YjBjNGFjYzlkOTUuLmNiYjRhOGRmNTM1OTYxY2Y2MzcwNWM2YjNlOGU1MDUxZjBmY2I0
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU5MSwxNSArNTkxLDE0
IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBj
b25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdm9p
ZCBJbnRlcm5hbHM6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBJbnRlcm5hbHM6OnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsKKyAgICBpZiAoIWRvY3VtZW50IHx8
ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
ZG9jdW1lbnQtPnZpZXcoKTsKLSAgICBmcmFtZVZpZXctPnNldFNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7CisgICAgZG9jdW1lbnQtPnNldHRpbmdzKCkt
PnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7CiB9CiAKIHZv
aWQgSW50ZXJuYWxzOjpzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9j
dW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCAzZTI4MWJkZTEyOTk5ZWEzOTc5Mjc1MGI3NzMyMjQxNzQ4OTNkY2Yy
Li5iZjI2NjEyY2UwMjQ1NWMyODZhYmU3ZDU3YWU3ZWU0OTEyMDY2MDI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1Jl
ZlB0cjxSYW5nZT4gcmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoRWxlbWVudCogc2NvcGUsIGlu
dCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1
bnNpZ25lZCBsb2NhdGlvbkZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQqIHNj
b3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1lbnQqLCBib29sLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
KERvY3VtZW50KiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZXRVbmlmaWVk
VGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg3NDg1NzkyZGQ2MjM4
MDczMzE4NGQxZTY0NDdjN2EwOTE3ZTEyOGEuLmViYmJkYjk4NGQ3MGQ2NTgxZmVkNjQwZTk5NGRj
YTU0ZjJkZDRiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTgzLDcg
KzgzLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9jYXRpb25G
cm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW5ndGhGcm9tUmFuZ2UoaW4gRWxlbWVu
dCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAg
ICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggY2NlNDdlMmUyN2E2N2EyNjZkNjgyZDdmNWFhZTlj
NTAzNTYzMjAwYy4uMDhmMTQ0MGExYTVjMTgzOTY2NzNmYWMxOTNlZTBkMmJkODlmYTE3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC04NSw2ICs4
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVk
KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJv
b2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvck5l
dmVyTGl2ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXgg
YzcyYjYxMzNjZjE4OTgwMDRmZGM0Y2YxMjc3YTY2Y2RiN2M3MjhhMy4uZWQ4NTNlMjNhNzc1ZGY0
OWI0MTM3MGRjOWJiYzcwYjYwMGI1ZTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaApAQCAtMjQyLDEzICsyNDIsNiBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyB0aGUg
cmF0aW8gYXMgY29tcHV0ZWQgYnkgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpID0gMDsKIAotICAgIC8vIEluZGlj
YXRlcyB3aGV0aGVyIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIHNob3VsZCBiZSBsYWlkIG91dCBy
ZWxhdGl2ZQotICAgIC8vIHRvIHRoZSBmcmFtZSBvciByZWxhdGl2ZSB0byB0aGUgcGFnZS4KLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgp
IGNvbnN0ID0gMDsKLQotICAgIC8vIFNldHMgdGhlIHJlbGF0aXZlIGxheW91dCBvZiBwb3NpdGlv
bjpmaXhlZCBlbGVtZW50cy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7Ci0KIAogICAgIC8vIEZpeGVkIExheW91
dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApp
bmRleCA3NzMzZTI2OTkwODZkYmIzYjU1NTYzMGY0ZWU3YWRjYWYzNTJlMjliLi5iYmM1NzUyNGNl
OWM1NTgwOWI0Y2M5NTAxZjY1ODRmNzA4NDJiN2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTIyNCw2ICsyMjQsMTEgQEAgdm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAg
ICAgbV9zZXR0aW5ncy0+c2V0RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGVuYWJsZWQpOwogfQogCit2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZShib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpCit7CisgICAgbV9zZXR0
aW5ncy0+c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShmaXhlZEVsZW1lbnRz
TGF5b3V0UmVsYXRpdmVUb0ZyYW1lKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fc2V0dGluZ3MtPnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IGNjNzBkMTMxNmM2NGMxNjU5ZTBlMjIyOTU2YzY4MTY0
MDE1NWIzYjIuLjUzM2YyN2ZiM2U0NTZiYTVkNDUzMGY3ZTUzMzMwNGQ1ZTFlODBiM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC03Nyw2ICs3
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29sKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29s
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JOZXZlckxpdmUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkNzM4ODkwYjRlYjg2ZThiMjBjYmQ2
NWNkNmFkNGUwN2FmZGIxZDM2Li5jN2ZiMDExYjVmMzNmYTQ1NWIwNDQ1ZmY0MWEwYzc2ZjM1YjYw
NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0y
MDM3LDMwICsyMDM3LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2Fs
ZUZhY3Rvcik7CiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6OnNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdAotewotICAgIGlmICghcGFnZSgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwot
ICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiBmcmFtZS0+dmlldygpLT5zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6OnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBlbmFibGUpCi17Ci0gICAgaWYgKCFwYWdl
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZy
YW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZnJhbWUtPnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZShlbmFibGUpOwotfQotCiBib29sIFdlYlZpZXdJbXBsOjppc0ZpeGVkTGF5b3V0
TW9kZUVuYWJsZWQoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggNTZmNGJhZDk2NmRiZDc3OWE5MGFkYWFmNTNk
OTkzODJmNDQzM2NiMi4uZTBlZGNiMTJjZThlNmFkYzA4NGMyMjY1YTRlZWE1MmY2NjFhYWU1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xNzMsOCArMTcz
LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZShib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZExheW91dE1vZGVFbmFi
bGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29s
IGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDlkMmM3OGRmNWQxM2JlMjk0NzA0YmI1ZDM2OGFlNzlm
YTZhMjdkNzIuLjQ1OWNhYWJjY2RhNDVhZTJhMTZmOTYzMTNlNmRmYTFlYWM0NWZhNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3NCw3ICsxNzQsNiBAQCBFWFBPUlRTCiAgICAgICAgID9y
ZW1vdmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRF
eGVjdXRpb25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZp
ZXdAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAgICAgICAgP3Nl
dFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNv
cmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhl
Y1N0YXRlQEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGlu
Z3NAV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2Vi
Q29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKaW5kZXggNTQzZTA3YWE4ODEzNmVjNmZmN2NlZDkwY2JjZDE1ZmY1OWFhNWIyNS4uNDNiZDRj
NTQ0MGI5N2FlYjEyMTU1ZmRhMGQzYjkzODk4NjI3NDc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ0ZMaXRlLmRlZgpAQCAtMTY4LDcgKzE2OCw2IEBAIEVYUE9SVFMKICAgICAgICAgP3JlbW92
ZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmplY3RAV2ViQ29yZUBAUUJFUEFWU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0QEZyYW1lVmlld0BX
ZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgotICAgICAgICA/c2V0U2hv
dWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUBGcmFtZVZpZXdAV2ViQ29yZUBA
UUFFWF9OQFoKICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3Rh
dGVASlNDQEBIQFoKICAgICAgICAgP3NldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEBTZXR0aW5nc0BX
ZWJDb3JlQEBTQVhfTkBaCiAgICAgICAgID9zZXRQYWdlU2NhbGVGYWN0b3JAUGFnZUBXZWJDb3Jl
QEBRQUVYTUFCVkludFBvaW50QDJAQFoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWM4ZWE0YjM2MTEwMWUwN2M1MTE5NzY0
YmJkMGVjMDRhOTY0NDNmLi5kOTAwYTE1NmJlODlmNjA0OGJlOTRhM2MwNjZhYjM4YWU4ZGVkYzMz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDEtMjUgIEZhZHkgU2FtdWVsICA8ZnNhbXVl
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIHNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUgYW5kIG1ha2UgaXQgYSBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBh
Z2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9t
LWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQt
aW4tcGFnZS1zY2FsZS5odG1sOgorCiAyMDEyLTAxLTIzICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb25zIGZpeGVz
IGZvciBhIGNvdXBsZSBvZiB3aW5kb3cvZnJhbWUgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBhOTVjNTcyODY4NjYw
YzU1M2I2ODg3YWU3MDg1YmZkNDE1Y2IzMDBiLi5iYTI0YmFkNjk3NjQ3ZTdkNGJhOWYzMGUxYWJl
NDNiNjA5MGEwOWUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQt
aW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1p
bi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdp
bmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRy
dWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7CiAgICAgICAgICAgd2luZG93LnNjcm9s
bFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCAxMmZjNDVhN2Nh
NzMzODFlZTNjOTM0ZWQ2MThjN2UyMTljNzFiZDdiLi5lZmNjM2E3N2E4NDJhZjJmY2FhNDU1NWRi
Zjc2OWZiMWRiYjBmNjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4
ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbApAQCAtOSw3ICs5
LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgd2luZG93LmVuYWJsZVBpeGVsVGVzdGluZyA9IHRy
dWU7CiAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQs
IHRydWUpOworICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Rml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9s
bCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbApp
bmRleCA5MDM4M2U4NjliNjBlZGRjYTA4MjI1ODIxZjFmMGZmNDUwNDUwYTZlLi4wZDM5Mzc5NmYy
OGI3ZWVmOTBiYjY3NTI1ZjFiYThmYTRmNTQ0MDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyAr
OSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0
cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50
LCB0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3Jv
bGwoKSB7CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124217</attachid>
            <date>2012-01-26 16:55:13 -0800</date>
            <delta_ts>2012-01-26 21:42:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120126195512.patch</filename>
            <type>text/plain</type>
            <size>25155</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmYTYyMWI5OGRiZDg2
NzFjYTRhOTk2NGExNDFjMzUxNGYyNGNjYy4uOGFmMjk1NDM3NGY4NmFkN2E1MmYwNzBkNjY0NGE4
ZDVlMzY0ZjViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTAxLTI2ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNob3Vs
ZCBiZSBhIHNldHRpbmcgYmVjYXVzZSBpdCBpcyBpbmRlcGVuZGVudCBvZiBhIHBhcnRpY3VsYXIg
ZnJhbWUgYW5kCisgICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZy
YW1lIGNoYW5nZXMuCisKKyAgICAgICAgUmVuYW1lZCAoc2V0KVNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUgdG8gCisgICAgICAgIChzZXQpRml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZSBkdWUgdG8gdGhlIGNvbm5vdGF0aW9uCisgICAgICAgIHRoZSB3b3Jk
ICJzaG91bGQiIG1heSBoYXZlIGluIHRoaXMgY29udGV4dDogSWYgc2V0LCAKKyAgICAgICAgcG9z
aXRpb246Zml4ZWQgZWxlbWVudHMgd2lsbCBBTFdBWVMgYmUgbGFpZCBvdXQgcmVsYXRpdmUgdG8g
dGhlIGZyYW1lLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZXNldCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgIChGcmFtZVZpZXcpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdz
OjpzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0Zy
YW1lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6Zml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBv
c2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tM
b2dpY2FsSGVpZ2h0Rm9yUG9zaXRpb25lZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0Rml4ZWRF
bGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTAxLTI2ICBOaWtvbGFzIFppbW1lcm1h
bm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFNWRyArIDxvYmplY3Q+IHRlc3Rz
IGFyZSBmbGFrZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGE5MjBkNWQwYjhiYzFk
NTI0MGNmYTU4MWZhYjM3ZmFiNWM3ZDRiYi4uZTBiODVlMTczYzZkNjE5ZGQ4MzBhZjdlNTZkYjZh
ZThhYmNjZjU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMi0wMS0yNiAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZW5hbWUgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhbmQgbWFr
ZSBpdCBhIHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc2NDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKCk6CisgICAgICAgICogcHVi
bGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorICAgICAgICAqIHNyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEZpeGVk
RWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
Lmg6CisgICAgICAgIChXZWJWaWV3SW1wbCk6CisKIDIwMTItMDEtMjUgIEdyZWcgQmlsbG9jayAg
PGdiaWxsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIEludGVudFJlcXVlc3QgaW5jbHVk
ZSBmb3IgRnJhbWVMb2FkZXJDbGllbnRJbXBsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJiYjczMDU3OGI3OThl
YTY5OThkNzgyMmM2MTZkYTE1ODc0MmQ5Y2YuLjVkMzRhOWMwMzg1ZWQxMDMxNGU1NTA2MjJmZjhi
ZjY0NGQ4MTIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0yNiAgRmFk
eSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5hbWUgc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhbmQgbWFrZSBpdCBhIHNldHRpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2Vi
S2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTAxLTI2
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXSzJdIFByaW1hcnkgY2xpcGJvYXJkIHNob3VsZCBiZSB1cGRhdGVkIHdpdGggdGhlIGN1
cnJlbnQgc2VsZWN0aW9uIGluIFgxMSBwbGF0Zm9ybXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
OTRmMjYxMDMwNWJlM2YwY2I1NWI4Y2QxMWE2YmQ3OGM1YjcwNTE0YS4uOTg1MWNlOTQ5ZWU1NGQx
ZDAzMDkwMGIzNmM4ZDM3OTk0ZjQ5ZDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNTQs
NyArMTA1NCw2IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyOXNldFNob3VsZFVwZGF0ZVdoaWxl
T2Zmc2NyZWVuRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXczN3VwZGF0ZUxheW91dEFuZFN0eWxl
SWZOZWVkZWRSZWN1cnNpdmVFdgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzM4c2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhUGxhdGZvcm1XaWRnZXRFdgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzM4c3lu
Y0NvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXNFdgotX19aTjdXZWJDb3JlOUZyYW1l
VmlldzQzc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUViCiBfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3NmNyZWF0ZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlOUZyYW1l
VmlldzZjcmVhdGVFUE5TXzVGcmFtZUVSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlOUhUTUxO
YW1lczEwbGlzdGluZ1RhZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA2NWI0ODNm
YThiZmYxMzVlZTg4NTgxM2M2ZDA3YWIwZmViMDFkYjBkLi4xYzkxZDVmYmEyOTM4NzhhMjQ1NWMy
OGMxZTAwYmQ5MzllMjA5ZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMTgs
NyArMjE4LDYgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc2V0KCkKICAgICBtX2Nhbm5vdEJsaXRUb1dp
bmRvdyA9IGZhbHNlOwogICAgIG1faXNPdmVybGFwcGVkID0gZmFsc2U7CiAgICAgbV9jb250ZW50
SXNPcGFxdWUgPSBmYWxzZTsKLSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUgPSBmYWxzZTsKICAgICBtX2JvcmRlclggPSAzMDsKICAgICBtX2JvcmRlclkgPSAz
MDsKICAgICBtX2xheW91dFRpbWVyLnN0b3AoKTsKQEAgLTE0MDQsNyArMTQwMyw3IEBAIGludCBG
cmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICAvLyBXaGVuIHRo
ZSBwYWdlIGlzIHNjYWxlZCwgdGhlIHNjYWxlZCAidmlld3BvcnQiIHdpdGggcmVzcGVjdCB0byB3
aGljaCBmaXhlZCBvYmplY3QgYXJlIHBvc2l0aW9uZWQKICAgICAvLyBkb2Vzbid0IG1vdmUgYXMg
ZmFzdCBhcyB0aGUgY29udGVudCB2aWV3LCBzbyB0aGF0IHdoZW4gdGhlIGNvbnRlbnQgaXMgc2Ny
b2xsZWQgYWxsIHRoZSB3YXkgdG8gdGhlCiAgICAgLy8gZW5kLCB0aGUgYm90dG9tIG9mIHRoZSBz
Y2FsZWQgInZpZXdwb3J0IiB0b3VjaGVzIHRoZSBib3R0b20gb2YgdGhlIHJlYWwgdmlld3BvcnQu
Ci0gICAgZmxvYXQgZHJhZ0ZhY3RvciA9IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoKSA/IDEgOiAoY29udGVudHNXaWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRXaWR0aCAq
IGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4WDsKKyAgICBmbG9hdCBkcmFnRmFjdG9yID0gZml4ZWRF
bGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpID8gMSA6IChjb250ZW50c1dpZHRoKCkgLSB2
aXNpYmxlQ29udGVudFdpZHRoICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhYOwogCiAgICAgcmV0
dXJuIHggKiBkcmFnRmFjdG9yIC8gZnJhbWVTY2FsZUZhY3RvcjsKIH0KQEAgLTE0MzUsNyArMTQz
NCw3IEBAIGludCBGcmFtZVZpZXc6OnNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIHk7CiAKICAgICBmbG9hdCBmcmFtZVNjYWxlRmFjdG9yID0gbV9mcmFtZS0+
ZnJhbWVTY2FsZUZhY3RvcigpOwotICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBzaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRzSGVpZ2h0KCkgLSB2
aXNpYmxlQ29udGVudEhlaWdodCAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4WTsKKyAgICBmbG9h
dCBkcmFnRmFjdG9yID0gZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpID8gMSA6
IChjb250ZW50c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBmcmFtZVNjYWxlRmFj
dG9yKSAvIG1heFk7CiAgICAgcmV0dXJuIHkgKiBkcmFnRmFjdG9yIC8gZnJhbWVTY2FsZUZhY3Rv
cjsKIH0KIApAQCAtMTQ0NCwxOCArMTQ0MywxNSBAQCBJbnRTaXplIEZyYW1lVmlldzo6c2Nyb2xs
T2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIEludFNpemUoc2Nyb2xs
WEZvckZpeGVkUG9zaXRpb24oKSwgc2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSk7CiB9CiAKLXZv
aWQgRnJhbWVWaWV3OjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1l
KGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSkKK2Jvb2wgRnJh
bWVWaWV3OjpmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QKIHsKLSAg
ICBpZiAoc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9PSBtX3Nob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IHNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7Ci0KLSAgICBpZiAoIWhhc0ZpeGVkT2Jq
ZWN0cygpKQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJhbWUpOworICAgIGlmICgh
bV9mcmFtZS0+c2V0dGluZ3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2V0TmVl
ZHNMYXlvdXQoKTsKKyAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKS0+Zml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpOwogfQorCiBJbnRQb2ludCBGcmFtZVZpZXc6OmN1cnJl
bnRNb3VzZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZSA/IG1fZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5jdXJyZW50TW91c2VQb3NpdGlvbigpIDogSW50UG9pbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDE3NjFhMDZiZDQ5OTc4MjUwOTdlOWY2MThmZGJjM2Zh
OGJiMDZjZWYuLmNlYjZiN2Y2MDdlNWEyZDM4OTkzNjRjZmNmMzNiYThmYTE0Y2E5M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTk2LDggKzE5Niw3IEBAIHB1YmxpYzoKICAgICBpbnQg
c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKICAgICBJbnRTaXplIHNjcm9sbE9mZnNl
dEZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKIAotICAgIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsgfQotICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKKyAgICBib29sIGZpeGVkRWxlbWVudHNM
YXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdDsKIAogICAgIHZvaWQgYmVnaW5EZWZlcnJlZFJl
cGFpbnRzKCk7CiAgICAgdm9pZCBlbmREZWZlcnJlZFJlcGFpbnRzKCk7CkBAIC00MTAsNyArNDA5
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2Fubm90QmxpdFRvV2luZG93OwogICAgIGJvb2wg
bV9pc092ZXJsYXBwZWQ7CiAgICAgYm9vbCBtX2NvbnRlbnRJc09wYXF1ZTsKLSAgICBib29sIG1f
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZTsKICAgICB1bnNpZ25lZCBt
X3Nsb3dSZXBhaW50T2JqZWN0Q291bnQ7CiAgICAgdW5zaWduZWQgbV9maXhlZE9iamVjdENvdW50
OwogICAgIGludCBtX2JvcmRlclg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDk1NTk3
OTNjNjQxMTY2MmIyNzE1ZmJiYmQzZWNmODljNmI1ZjdhNGYuLjE4NjE2NjBiZGU3MTUyYjYwZWVm
ZTk1ZmZkYzg4ZTIzYjgwNzlhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0yMTMs
NiArMjEzLDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2Nyb3Nz
T3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkKGZhbHNlKQogICAgICwgbV9m
b3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1fc2hvdWxkSW5qZWN0VXNlclNjcmlw
dHNJbkluaXRpYWxFbXB0eURvY3VtZW50KGZhbHNlKQorICAgICwgbV9maXhlZEVsZW1lbnRzTGF5
b3V0UmVsYXRpdmVUb0ZyYW1lKGZhbHNlKQogICAgICwgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJl
Q29udGVudCh0cnVlKQogICAgICwgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCh0cnVl
KQogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpAQCAtNDg2LDYgKzQ4NywxMSBAQCB2b2lk
IFNldHRpbmdzOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmIHVzZXJTdHls
ZVNoZWV0TG9jYXRpb24pCiAgICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdl
ZCgpOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSkKK3sKKyAgICBt
X2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgPSBmaXhlZEVsZW1lbnRzTGF5b3V0
UmVsYXRpdmVUb0ZyYW1lOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRTaG91bGRQcmludEJhY2tn
cm91bmRzKGJvb2wgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcykKIHsKICAgICBtX3Nob3VsZFByaW50
QmFja2dyb3VuZHMgPSBzaG91bGRQcmludEJhY2tncm91bmRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CmluZGV4IGQ2NTE1MjBjYTJiZTYzODY0YTFhNmY0MTRmZTIwZWQ2MTc0NzBjOGQuLjhlNGQ5MWQ1
YzA0ZjUzZDY0MTU3ZTAyNWQxYjJiOTM0ZDZkNGQ2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgK
QEAgLTE4OSw2ICsxODksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBLVVJMJik7CiAgICAgICAgIGNvbnN0IEtVUkwm
IHVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3VzZXJTdHlsZVNoZWV0
TG9jYXRpb247IH0KIAorICAgICAgICB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWUoYm9vbCk7CisgICAgICAgIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZTsgfQorCiAgICAgICAgIHZvaWQgc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sKTsK
ICAgICAgICAgYm9vbCBzaG91bGRQcmludEJhY2tncm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRQcmludEJhY2tncm91bmRzOyB9CiAKQEAgLTYzMiw2ICs2MzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NT
UnVsZXNEaXNhYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA6
IDE7CiAgICAgICAgIGJvb2wgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5
RG9jdW1lbnQgOiAxOworICAgICAgICBib29sIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSA6IDE7CiAgICAgICAgIGJvb2wgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVu
dCA6IDE7CiAgICAgICAgIGJvb2wgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA6IDE7
CiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IDJlMmUyMTUyYzhkMGJlZDc3OTM5ZGNlY2MzZjVlNjUyMDFkNDQ2MWMu
LjgzNmIzMTIyOGY1ODg1MDc4ZWZmMzVhMDg5NTY3ZTVlNTVhZDhlYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC02MzQsOSArNjM0LDkgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OnJlZmxlY3RlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgcikgY29uc3QKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFJlbmRlckJveDo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiBmcmFtZSwgRnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNv
bnN0Citib29sIFJlbmRlckJveDo6Zml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShG
cmFtZSogZnJhbWUsIEZyYW1lVmlldyogZnJhbWVWaWV3KSBjb25zdAogewotICAgIHJldHVybiBz
dHlsZSgpICYmIHN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiAmJiBjb250YWlu
ZXIoKS0+aXNSZW5kZXJWaWV3KCkgJiYgZnJhbWUgJiYgZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpOworICAgIHJldHVybiBz
dHlsZSgpICYmIHN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiAmJiBjb250YWlu
ZXIoKS0+aXNSZW5kZXJWaWV3KCkgJiYgZnJhbWUgJiYgZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpOwogfQogCiBib29sIFJlbmRlckJv
eDo6aW5jbHVkZVZlcnRpY2FsU2Nyb2xsYmFyU2l6ZSgpIGNvbnN0CkBAIC0yMzA4LDcgKzIzMDgs
NyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9y
UG9zaXRpb25lZChjb25zdCBSZW5kZXJCb3hNbwogICAgIC8vIENvbnRhaW5lciBmb3IgcG9zaXRp
b246Zml4ZWQgaXMgdGhlIGZyYW1lLgogICAgIEZyYW1lKiBmcmFtZSA9IHZpZXcoKSA/IHZpZXco
KS0+ZnJhbWUoKTogMDsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSA/IHZpZXco
KS0+ZnJhbWVWaWV3KCkgOiAwOwotICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRSZWxh
dGl2ZVRvRnJhbWUoZnJhbWUsIGZyYW1lVmlldykpCisgICAgaWYgKGZpeGVkRWxlbWVudExheXNP
dXRSZWxhdGl2ZVRvRnJhbWUoZnJhbWUsIGZyYW1lVmlldykpCiAgICAgICAgIHJldHVybiAodmll
dygpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgo
KSA6IGZyYW1lVmlldy0+dmlzaWJsZUhlaWdodCgpKSAvIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9y
KCk7CiAKICAgICBpZiAoY2hlY2tGb3JQZXJwZW5kaWN1bGFyV3JpdGluZ01vZGUgJiYgY29udGFp
bmluZ0Jsb2NrLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpICE9IGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkpCkBAIC0yMzY1LDcgKzIzNjUsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29u
dGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TQog
ewogICAgIEZyYW1lKiBmcmFtZSA9IHZpZXcoKSA/IHZpZXcoKS0+ZnJhbWUoKTogMDsKICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSA/IHZpZXcoKS0+ZnJhbWVWaWV3KCkgOiAwOwot
ICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRvRnJhbWUoZnJhbWUsIGZy
YW1lVmlldykpCisgICAgaWYgKGZpeGVkRWxlbWVudExheXNPdXRSZWxhdGl2ZVRvRnJhbWUoZnJh
bWUsIGZyYW1lVmlldykpCiAgICAgICAgIHJldHVybiAodmlldygpLT5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gZnJhbWVWaWV3LT52aXNpYmxlSGVpZ2h0KCkgOiBmcmFtZVZpZXctPnZpc2li
bGVXaWR0aCgpKSAvIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7CiAKICAgICBpZiAoY2hlY2tG
b3JQZXJwZW5kaWN1bGFyV3JpdGluZ01vZGUgJiYgY29udGFpbmluZ0Jsb2NrLT5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpICE9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZTAwZTFkOGMyNTYxYjI2OGY2YmFkZWRkMzhkZTNl
NGE4NTIxMjJkZC4uZDE2MzdmYWEyMTM2MGEwNTA2YzBkMTNiZGJiMWIyZWFlZjg2NzA2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNDYyLDcgKzQ2Miw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50Um9vdEJveEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJik7
CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRv
RnJhbWUoRnJhbWUqLCBGcmFtZVZpZXcqKSBjb25zdDsKKyAgICBib29sIGZpeGVkRWxlbWVudExh
eXNPdXRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqLCBGcmFtZVZpZXcqKSBjb25zdDsKIAogICAgIGJv
b2wgaW5jbHVkZVZlcnRpY2FsU2Nyb2xsYmFyU2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgaW5jbHVk
ZUhvcml6b250YWxTY3JvbGxiYXJTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBlNTY2Y2QwOWEyZjkxNDg1YThlZjExN2VlM2Q0
MjVjODM1NDU1NzFhLi5hNGRiYjQ0YmYyNTk3M2NkMWEyZWUwNWUwZjkzM2ZhODk4ODViOGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIzNSwx
MCArMjM1LDEwIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzCiAgICAgc2V0dGluZ3MoKS0+c2V0
UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZHVyYXRpb25JblNlY29uZHMpOwogfQogCi12
b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvckZy
YW1lVmlldygpOwotICAgIGZyYW1lKCktPnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGVkKTsKKyAgICBzZXR0aW5ncygpLT5zZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOwogfQogCiB2b2lkIEludGVybmFs
U2V0dGluZ3M6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IDIxYWEwNGExNTEwYmIyYTBkMzJlYzRmN2ViNWM2MWZmNzc1NmNiODEuLmJlOTMyOGVl
NzE0YTNhMmI5MDBmMTFiOGQ0YWE5NWNhNGExOGU2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUg
ZHVyYXRpb25JblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChib29s
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChF
eGNlcHRpb25Db2RlJik7CiAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDcx
YTc3MDg5NGNmZmMzZGM1NDUwNDBhYjdkYTNkNWIwZTc0NzU1MjkuLmMyZjViMmFjNzc1NDNkNTQz
YTRmYWQ3YWVhZjJiMzBmZjY4ZDQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbApAQCAtMzksNyArMzksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0
UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoaW4gZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRz
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdF
bmFibGVkKCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IGNjZTQ3ZTJlMjdhNjdhMjY2ZDY4MmQ3ZjVhYWU5YzUw
MzU2MzIwMGMuLjA4ZjE0NDBhMWE1YzE4Mzk2NjczZmFjMTkzZWUwZDJiZDg5ZmExNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtODUsNiArODUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChi
b29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZldGNoaW5nRW5hYmxlZChib29s
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRv
RnJhbWUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFN0b3JhZ2VFbmFibGVk
KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3JOZXZl
ckxpdmUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
Ym9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IGM3
MmI2MTMzY2YxODk4MDA0ZmRjNGNmMTI3N2E2NmNkYjdjNzI4YTMuLmVkODUzZTIzYTc3NWRmNDli
NDEzNzBkYzliYmM3MGI2MDBiNWUwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKQEAgLTI0MiwxMyArMjQyLDYgQEAgcHVibGljOgogICAgIC8vIFNldHMgdGhlIHJh
dGlvIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMuCiAgICAgdmlydHVh
bCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAKLSAgICAvLyBJbmRpY2F0
ZXMgd2hldGhlciBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBzaG91bGQgYmUgbGFpZCBvdXQgcmVs
YXRpdmUKLSAgICAvLyB0byB0aGUgZnJhbWUgb3IgcmVsYXRpdmUgdG8gdGhlIHBhZ2UuCi0gICAg
dmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBj
b25zdCA9IDA7Ci0KLSAgICAvLyBTZXRzIHRoZSByZWxhdGl2ZSBsYXlvdXQgb2YgcG9zaXRpb246
Zml4ZWQgZWxlbWVudHMuCi0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCkgPSAwOwotCiAKICAgICAvLyBGaXhlZCBMYXlvdXQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5k
ZXggNzczM2UyNjk5MDg2ZGJiM2I1NTU2MzBmNGVlN2FkY2FmMzUyZTI5Yi4uYmJjNTc1MjRjZTlj
NTU4MDliNGNjOTUwMWY2NTg0ZjcwODQyYjdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0yMjQsNiArMjI0LDExIEBAIHZvaWQgV2Vi
U2V0dGluZ3NJbXBsOjpzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAg
IG1fc2V0dGluZ3MtPnNldEROU1ByZWZldGNoaW5nRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUo
Ym9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKQoreworICAgIG1fc2V0dGlu
Z3MtPnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZSk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2Nh
bFN0b3JhZ2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRMb2Nh
bFN0b3JhZ2VFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaAppbmRleCBjYzcwZDEzMTZjNjRjMTY1OWUwZTIyMjk1NmM2ODE2NDAx
NTViM2IyLi41MzNmMjdmYjNlNDU2YmE1ZDQ1MzBmN2U1MzMzMDRkNWUxZTgwYjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtNzcsNiArNzcs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNjZhOGE5ZDljMGE2MjdjN2NiZDExZmU0
N2FjYjkzMTI5OGY3ZTZiMC4uNjMwOGJmNTQ0MTYzODdlMjRiOTA3NTc4YjRmYjMwNzM2ZjdmOTI0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjA1
OCwzMCArMjA1OCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERldmljZVNjYWxlRmFjdG9yKGZs
b2F0IHNjYWxlRmFjdG9yKQogICAgIHBhZ2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IpOwogfQogCi1ib29sIFdlYlZpZXdJbXBsOjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QKLXsKLSAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAg
ICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+dmlldygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gZnJhbWUtPnZpZXcoKS0+c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZSgpOwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjpzZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wgZW5hYmxlKQotewotICAgIGlmICghcGFnZSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFt
ZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGZyYW1lLT52aWV3KCktPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoZW5hYmxlKTsKLX0KLQogYm9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1v
ZGVFbmFibGVkKCkgY29uc3QKIHsKICAgICBpZiAoIXBhZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDQ1OWFhMjAzMjA5MmFlZjc4Yjk0NGYzYmRhMzE4
YmI4ZjQ5OWYzZGUuLjAyYmM1YzkyMWRhMzZjNmVjZGI3ZTBlMTFhY2U5YmYzMTdkMmQyZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTc2LDggKzE3Niw2
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxl
ZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBl
bmFibGUpOwogICAgIHZpcnR1YWwgV2ViU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgppbmRleCA5ODNjOTBkYjljZTNjNTFiZjYwNmE4ZTEyMmYxYTM4ODNk
NWE4MjMzLi5lN2RiOTY4M2I1MGU2MTAyNmYzNDRjM2YxMzM2YTExMzM2MDUzMDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmCkBAIC0xNzUsNyArMTc1LDYgQEAgRVhQT1JUUwogICAgICAgICA/cmVt
b3ZlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEBKU0RPTUdsb2JhbE9iamVjdEBXZWJDb3JlQEBRQkVQQVZTY3JpcHRFeGVj
dXRpb25Db250ZXh0QDJAWFoKICAgICAgICAgP3Njcm9sbEVsZW1lbnRUb1JlY3RARnJhbWVWaWV3
QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQUJWSW50UmVjdEAyQEBaCi0gICAgICAgID9zZXRT
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3Jl
QEBRQUVYX05AWgogICAgICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNT
dGF0ZUBKU0NAQEhAWgogICAgICAgICA/c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdz
QFdlYkNvcmVAQFNBWF9OQFoKICAgICAgICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNv
cmVAQFFBRVhNQUJWSW50UG9pbnRAMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
CmluZGV4IGQ2MDE0MzZkNDE5OTM3NWU5YzY5Nzg0ODY2MTk2NDA2MDE1N2YyZjIuLmZhNDliODdm
MmQyMDI5ODA5NDZlMTY2NjAxYWE4YjAzMTQxNjI2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKQEAgLTE2OSw3ICsxNjksNiBAQCBFWFBPUlRTCiAgICAgICAgID9yZW1vdmVT
aGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVjdXRp
b25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2Vi
Q29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAgICAgICAgP3NldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFB
RVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRl
QEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2Vi
Q29yZUBAU0FYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBA
UUFFWE1BQlZJbnRQb2ludEAyQEBaCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDZiMjE2MTUxOWRkZmQ5NDNhOTNlMGUyZjNi
NTViNzlkYWYzNjUxOC4uNjc3ZTQyNDQzN2M2NTQ1ZTcwYzJkODg0NjY3NjU4MTRmNGJlNjkxMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAxLTI2ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1wYWdl
LXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1p
bi1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWlu
LXBhZ2Utc2NhbGUuaHRtbDoKKwogMjAxMi0wMS0yNiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpz
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIFN0aWxsIGZhaWxpbmcgdGVzdHMgYWZ0
ZXIgbW92aW5nIHRvIElDVQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2Zp
eGVkLWluLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1p
bi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggYjc2NTdlZmY5ZGM4ZmU5MGM0YmQ1ZDE4NzE5Njc0OWQz
MmQ4ODE4My4uYjZmYWU1NjAxN2NkOTkwM2ExYjkzNzlkNTYyODZhZjVhYWEwMDBmMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCkBA
IC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0
aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSh0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9u
IHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Ut
c2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20t
aW4tcGFnZS1zY2FsZS5odG1sCmluZGV4IDk2MTM4NDk2NDcyMGVkZjgwZDA3N2IxMmU2NTJmZjJj
NDc1Zjk3NzUuLmJlNzk3ZTE5ZjI4NjZkNGJmMzhhN2ZjNWRjMzFhYWJkODMyZmEzYzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFn
ZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1i
b3R0b20taW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAg
ICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSh0cnVlKTsKKyAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cu
c2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
Zml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBhMjhjMTQ2Y2VmZTcxMGZkYjAx
NWMwZWI5MDNkNjk0MjQxZTA0NDhjLi4wYjY3ZGU3ODFiYWExMGZmNTExMDRhNzQzM2ZhMDU2MGZi
OTUwNTEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQt
aW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1y
aWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAg
ICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOworICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFt
ZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5z
Y3JvbGxUbygxMDAsMTAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124254</attachid>
            <date>2012-01-26 21:42:31 -0800</date>
            <delta_ts>2012-01-27 08:21:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120127004230.patch</filename>
            <type>text/plain</type>
            <size>26609</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmYTYyMWI5OGRiZDg2
NzFjYTRhOTk2NGExNDFjMzUxNGYyNGNjYy4uZmIzNjJiMGVjZDI4MjA5NDYzMTg2Mzg1N2M2ZjA2
NjFmZjNjNDZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAxLTI2ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNob3Vs
ZCBiZSBhIHNldHRpbmcgYmVjYXVzZSBpdCBpcyBpbmRlcGVuZGVudCBvZiBhIHBhcnRpY3VsYXIg
ZnJhbWUgYW5kCisgICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZy
YW1lIGNoYW5nZXMuCisgCisgICAgICAgIFJlbmFtZWQgKHNldClTaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIHRvIAorICAgICAgICAoc2V0KUZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUgZHVlIHRvIHRoZSBjb25ub3RhdGlvbgorICAgICAgICB0aGUgd29y
ZCAic2hvdWxkIiBtYXkgaGF2ZSBpbiB0aGlzIGNvbnRleHQ6IElmIHNldCwgCisgICAgICAgIHBv
c2l0aW9uOmZpeGVkIGVsZW1lbnRzIHdpbGwgQUxXQVlTIGJlIGxhaWQgb3V0IHJlbGF0aXZlIHRv
IHRoZSBmcmFtZS4KKyAKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBh
Z2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgor
ICAgICAgICAoRnJhbWVWaWV3KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChTZXR0aW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmZpeGVkRWxlbWVudExheXNPdXRSZWxhdGl2ZVRvRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JQb3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGFpbmluZ0Js
b2NrTG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0wMS0yNiAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTVkcgKyA8b2JqZWN0PiB0
ZXN0cyBhcmUgZmxha2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRhOTIwZDVkMGI4
YmMxZDUyNDBjZmE1ODFmYWIzN2ZhYjVjN2Q0YmIuLmUwYjg1ZTE3M2M2ZDYxOWRkODMwYWY3ZTU2
ZGI2YWU4YWJjY2Y1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMDEtMjYgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmVuYW1lIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgYW5k
IG1ha2UgaXQgYSBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICgpOgorICAgICAgICAq
IHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRG
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBs
KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTAxLTI1ICBHcmVnIEJpbGxv
Y2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIEFkZCBJbnRlbnRSZXF1ZXN0IGlu
Y2x1ZGUgZm9yIEZyYW1lTG9hZGVyQ2xpZW50SW1wbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyYmI3MzA1Nzhi
Nzk4ZWE2OTk4ZDc4MjJjNjE2ZGExNTg3NDJkOWNmLi41ZDM0YTljMDM4NWVkMTAzMTRlNTUwNjIy
ZmY4YmY2NDRkODEyM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDEtMjYg
IEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIHNo
b3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgYW5kIG1ha2UgaXQgYSBzZXR0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2lu
L1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0w
MS0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBQcmltYXJ5IGNsaXBib2FyZCBzaG91bGQgYmUgdXBkYXRlZCB3aXRoIHRo
ZSBjdXJyZW50IHNlbGVjdGlvbiBpbiBYMTEgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDk0ZjI2MTAzMDViZTNmMGNiNTViOGNkMTFhNmJkNzhjNWI3MDUxNGEuLjc4YjI5ZTg0Zjdj
OGNhYzBkYTY3OGQ3ZjBlZjQ2NGQ5ZDRmMDE0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05
NTcsNiArOTU3LDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFs
RXYKIF9fWk43V2ViQ29yZThTZXR0aW5nczE5c2V0U2hvd0RlYnVnQm9yZGVyc0ViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyMHNldEN1cnNpdmVGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0UxMVVTY3JpcHRDb2RlCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNldEZhbnRhc3lGb250RmFt
aWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCitfX1pON1dlYkNvcmU4U2V0
dGluZ3MzN3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVFYgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjBzZXRYU1NBdWRpdG9yRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyMW1vY2tTY3JvbGxiYXJzRW5hYmxlZEV2CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFNo
b3dSZXBhaW50Q291bnRlckViCkBAIC0xMDU0LDcgKzEwNTUsNiBAQCBfX1pON1dlYkNvcmU5RnJh
bWVWaWV3MjlzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbkViCiBfX1pON1dlYkNvcmU5RnJh
bWVWaWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlRXYKIF9fWk43V2Vi
Q29yZTlGcmFtZVZpZXczOHNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0RXYK
IF9fWk43V2ViQ29yZTlGcmFtZVZpZXczOHN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3Vi
ZnJhbWVzRXYKLV9fWk43V2ViQ29yZTlGcmFtZVZpZXc0M3NldFNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWVFYgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzZjcmVhdGVFUE5T
XzVGcmFtZUUKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXc2Y3JlYXRlRVBOU181RnJhbWVFUktOU183
SW50U2l6ZUUKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXMxMGxpc3RpbmdUYWdFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggNjViNDgzZmE4YmZmMTM1ZWU4ODU4MTNjNmQwN2FiMGZlYjAx
ZGIwZC4uMWM5MWQ1ZmJhMjkzODc4YTI0NTVjMjhjMWUwMGJkOTM5ZTIwOWVjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjE4LDcgKzIxOCw2IEBAIHZvaWQgRnJhbWVWaWV3Ojpy
ZXNldCgpCiAgICAgbV9jYW5ub3RCbGl0VG9XaW5kb3cgPSBmYWxzZTsKICAgICBtX2lzT3Zlcmxh
cHBlZCA9IGZhbHNlOwogICAgIG1fY29udGVudElzT3BhcXVlID0gZmFsc2U7Ci0gICAgbV9zaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lID0gZmFsc2U7CiAgICAgbV9ib3Jk
ZXJYID0gMzA7CiAgICAgbV9ib3JkZXJZID0gMzA7CiAgICAgbV9sYXlvdXRUaW1lci5zdG9wKCk7
CkBAIC0xNDA0LDcgKzE0MDMsNyBAQCBpbnQgRnJhbWVWaWV3OjpzY3JvbGxYRm9yRml4ZWRQb3Np
dGlvbigpIGNvbnN0CiAgICAgLy8gV2hlbiB0aGUgcGFnZSBpcyBzY2FsZWQsIHRoZSBzY2FsZWQg
InZpZXdwb3J0IiB3aXRoIHJlc3BlY3QgdG8gd2hpY2ggZml4ZWQgb2JqZWN0IGFyZSBwb3NpdGlv
bmVkCiAgICAgLy8gZG9lc24ndCBtb3ZlIGFzIGZhc3QgYXMgdGhlIGNvbnRlbnQgdmlldywgc28g
dGhhdCB3aGVuIHRoZSBjb250ZW50IGlzIHNjcm9sbGVkIGFsbCB0aGUgd2F5IHRvIHRoZQogICAg
IC8vIGVuZCwgdGhlIGJvdHRvbSBvZiB0aGUgc2NhbGVkICJ2aWV3cG9ydCIgdG91Y2hlcyB0aGUg
Ym90dG9tIG9mIHRoZSByZWFsIHZpZXdwb3J0LgotICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBzaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRzV2lk
dGgoKSAtIHZpc2libGVDb250ZW50V2lkdGggKiBmcmFtZVNjYWxlRmFjdG9yKSAvIG1heFg7Cisg
ICAgZmxvYXQgZHJhZ0ZhY3RvciA9IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUo
KSA/IDEgOiAoY29udGVudHNXaWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRXaWR0aCAqIGZyYW1lU2Nh
bGVGYWN0b3IpIC8gbWF4WDsKIAogICAgIHJldHVybiB4ICogZHJhZ0ZhY3RvciAvIGZyYW1lU2Nh
bGVGYWN0b3I7CiB9CkBAIC0xNDM1LDcgKzE0MzQsNyBAQCBpbnQgRnJhbWVWaWV3OjpzY3JvbGxZ
Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB5OwogCiAgICAgZmxvYXQg
ZnJhbWVTY2FsZUZhY3RvciA9IG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKTsKLSAgICBmbG9h
dCBkcmFnRmFjdG9yID0gc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgp
ID8gMSA6IChjb250ZW50c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBmcmFtZVNj
YWxlRmFjdG9yKSAvIG1heFk7CisgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IGZpeGVkRWxlbWVudHNM
YXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSA/IDEgOiAoY29udGVudHNIZWlnaHQoKSAtIHZpc2libGVD
b250ZW50SGVpZ2h0ICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhZOwogICAgIHJldHVybiB5ICog
ZHJhZ0ZhY3RvciAvIGZyYW1lU2NhbGVGYWN0b3I7CiB9CiAKQEAgLTE0NDQsMTggKzE0NDMsMTUg
QEAgSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25z
dAogICAgIHJldHVybiBJbnRTaXplKHNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCksIHNjcm9sbFlG
b3JGaXhlZFBvc2l0aW9uKCkpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUpCitib29sIEZyYW1lVmlldzo6Zml4ZWRFbGVtZW50c0xheW91dFJl
bGF0aXZlVG9GcmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKHNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUgPT0gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUgPSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lOwotCi0gICAgaWYgKCFoYXNGaXhlZE9iamVjdHMoKSkKLSAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChtX2ZyYW1lKTsKKyAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHNldE5lZWRzTGF5b3V0KCk7CisgICAgcmV0dXJuIG1fZnJh
bWUtPnNldHRpbmdzKCktPmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsKIH0K
KwogSW50UG9pbnQgRnJhbWVWaWV3OjpjdXJyZW50TW91c2VQb3NpdGlvbigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVudE1vdXNl
UG9zaXRpb24oKSA6IEludFBvaW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAxNzYx
YTA2YmQ0OTk3ODI1MDk3ZTlmNjE4ZmRiYzNmYThiYjA2Y2VmLi5jZWI2YjdmNjA3ZTVhMmQzODk5
MzY0Y2ZjZjMzYmE4ZmExNGNhOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE5Niw4
ICsxOTYsNyBAQCBwdWJsaWM6CiAgICAgaW50IHNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29u
c3Q7CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3Q7CiAK
LSAgICBib29sIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWU7IH0K
LSAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9v
bCk7CisgICAgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Q7
CiAKICAgICB2b2lkIGJlZ2luRGVmZXJyZWRSZXBhaW50cygpOwogICAgIHZvaWQgZW5kRGVmZXJy
ZWRSZXBhaW50cygpOwpAQCAtNDEwLDcgKzQwOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Nh
bm5vdEJsaXRUb1dpbmRvdzsKICAgICBib29sIG1faXNPdmVybGFwcGVkOwogICAgIGJvb2wgbV9j
b250ZW50SXNPcGFxdWU7Ci0gICAgYm9vbCBtX3Nob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWU7CiAgICAgdW5zaWduZWQgbV9zbG93UmVwYWludE9iamVjdENvdW50OwogICAg
IHVuc2lnbmVkIG1fZml4ZWRPYmplY3RDb3VudDsKICAgICBpbnQgbV9ib3JkZXJYOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAppbmRleCA5NTU5NzkzYzY0MTE2NjJiMjcxNWZiYmJkM2VjZjg5YzZi
NWY3YTRmLi4xODYxNjYwYmRlNzE1MmI2MGVlZmU5NWZmZGM4OGUyM2I4MDc5YTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMjEzLDYgKzIxMyw3IEBAIFNldHRpbmdzOjpTZXR0aW5n
cyhQYWdlKiBwYWdlKQogICAgICwgbV9jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVs
ZXNEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCiAg
ICAgLCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudChmYWxz
ZSkKKyAgICAsIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShmYWxzZSkKICAg
ICAsIG1fYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSkKICAgICAsIG1fYWxsb3dS
dW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSkKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElO
RykKQEAgLTQ4Niw2ICs0ODcsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0VXNlclN0eWxlU2hlZXRM
b2NhdGlvbihjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKQogICAgIG1fcGFnZS0+
dXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0
Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sIGZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUpCit7CisgICAgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lID0gZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZTsKK30KKwogdm9pZCBT
ZXR0aW5nczo6c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sIHNob3VsZFByaW50QmFja2dy
b3VuZHMpCiB7CiAgICAgbV9zaG91bGRQcmludEJhY2tncm91bmRzID0gc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBkNjUxNTIwY2EyYmU2Mzg2NGExYTZm
NDE0ZmUyMGVkNjE3NDcwYzhkLi44ZTRkOTFkNWMwNGY1M2Q2NDE1N2UwMjVkMWIyYjkzNGQ2ZDRk
NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xODksNiArMTg5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3Qg
S1VSTCYpOwogICAgICAgICBjb25zdCBLVVJMJiB1c2VyU3R5bGVTaGVldExvY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOyB9CiAKKyAgICAgICAgdm9pZCBz
ZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wpOworICAgICAgICBib29s
IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2Zp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7IH0KKwogICAgICAgICB2b2lkIHNldFNo
b3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczsgfQogCkBA
IC02MzIsNiArNjM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fY3Jv
c3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQgOiAxOwogICAgICAgICBi
b29sIG1fZm9yY2VDb21wb3NpdGluZ01vZGUgOiAxOwogICAgICAgICBib29sIG1fc2hvdWxkSW5q
ZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDogMTsKKyAgICAgICAgYm9vbCBt
X2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgOiAxOwogICAgICAgICBib29sIG1f
YWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogICAgICAgICBib29sIG1fYWxsb3dS
dW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQgOiAxOwogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAyZTJlMjE1MmM4ZDBi
ZWQ3NzkzOWRjZWNjM2Y1ZTY1MjAxZDQ0NjFjLi44MzZiMzEyMjhmNTg4NTA3OGVmZjM1YTA4OTU2
N2U1ZTU1YWQ4ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
NjM0LDkgKzYzNCw5IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpyZWZsZWN0ZWRSZWN0KGNvbnN0
IExheW91dFJlY3QmIHIpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBSZW5k
ZXJCb3g6OnNob3VsZExheW91dEZpeGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShGcmFtZSogZnJh
bWUsIEZyYW1lVmlldyogZnJhbWVWaWV3KSBjb25zdAorYm9vbCBSZW5kZXJCb3g6OmZpeGVkRWxl
bWVudExheXNPdXRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqIGZyYW1lLCBGcmFtZVZpZXcqIGZyYW1l
VmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlvbigp
ID09IEZpeGVkUG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1l
ICYmIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxh
dGl2ZVRvRnJhbWUoKTsKKyAgICByZXR1cm4gc3R5bGUoKSAmJiBzdHlsZSgpLT5wb3NpdGlvbigp
ID09IEZpeGVkUG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1l
ICYmIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRv
RnJhbWUoKTsKIH0KIAogYm9vbCBSZW5kZXJCb3g6OmluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNp
emUoKSBjb25zdApAQCAtMjMwOCw3ICsyMzA4LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TW8K
ICAgICAvLyBDb250YWluZXIgZm9yIHBvc2l0aW9uOmZpeGVkIGlzIHRoZSBmcmFtZS4KICAgICBG
cmFtZSogZnJhbWUgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lKCk6IDA7CiAgICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSB2aWV3KCkgPyB2aWV3KCktPmZyYW1lVmlldygpIDogMDsKLSAgICBpZiAo
c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcp
KQorICAgIGlmIChmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFt
ZVZpZXcpKQogICAgICAgICByZXR1cm4gKHZpZXcoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IGZyYW1lVmlldy0+dmlzaWJsZVdpZHRoKCkgOiBmcmFtZVZpZXctPnZpc2libGVIZWlnaHQo
KSkgLyBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKGNoZWNrRm9yUGVycGVu
ZGljdWxhcldyaXRpbmdNb2RlICYmIGNvbnRhaW5pbmdCbG9jay0+aXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSAhPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQpAQCAtMjM2NSw3ICsyMzY1LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHRGb3JQ
b3NpdGlvbmVkKGNvbnN0IFJlbmRlckJveE0KIHsKICAgICBGcmFtZSogZnJhbWUgPSB2aWV3KCkg
PyB2aWV3KCktPmZyYW1lKCk6IDA7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkg
PyB2aWV3KCktPmZyYW1lVmlldygpIDogMDsKLSAgICBpZiAoc2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQorICAgIGlmIChmaXhlZEVsZW1l
bnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKGZyYW1lLCBmcmFtZVZpZXcpKQogICAgICAgICByZXR1
cm4gKHZpZXcoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZyYW1lVmlldy0+dmlzaWJs
ZUhlaWdodCgpIDogZnJhbWVWaWV3LT52aXNpYmxlV2lkdGgoKSkgLyBmcmFtZS0+ZnJhbWVTY2Fs
ZUZhY3RvcigpOwogCiAgICAgaWYgKGNoZWNrRm9yUGVycGVuZGljdWxhcldyaXRpbmdNb2RlICYm
IGNvbnRhaW5pbmdCbG9jay0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAhPSBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGUw
MGUxZDhjMjU2MWIyNjhmNmJhZGVkZDM4ZGUzZTRhODUyMTIyZGQuLmQxNjM3ZmFhMjEzNjBhMDUw
NmMwZDEzYmRiYjFiMmVhZWY4NjcwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTQ2Miw3ICs0NjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludFJvb3RCb3hG
aWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwgRnJhbWVWaWV3KikgY29u
c3Q7CisgICAgYm9vbCBmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiwg
RnJhbWVWaWV3KikgY29uc3Q7CiAKICAgICBib29sIGluY2x1ZGVWZXJ0aWNhbFNjcm9sbGJhclNp
emUoKSBjb25zdDsKICAgICBib29sIGluY2x1ZGVIb3Jpem9udGFsU2Nyb2xsYmFyU2l6ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXgg
ZTU2NmNkMDlhMmY5MTQ4NWE4ZWYxMTdlZTNkNDI1YzgzNTQ1NTcxYS4uYTRkYmI0NGJmMjU5NzNj
ZDFhMmVlMDVlMGY5MzNmYTg5ODg1YjhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlvbklu
U2Vjb25kcwogICAgIHNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
KGR1cmF0aW9uSW5TZWNvbmRzKTsKIH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JGcmFtZVZpZXcoKTsKLSAgICBmcmFtZSgpLT52aWV3
KCktPnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7
CisgICAgc2V0dGluZ3MoKS0+c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShl
bmFibGVkKTsKIH0KIAogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRVbmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCAyMWFhMDRhMTUxMGJiMmEwZDMyZWM0
ZjdlYjVjNjFmZjc3NTZjYjgxLi5iZTkzMjhlZTcxNGEzYTJiOTAwZjExYjhkNGFhOTVjYTRhMThl
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0UGFzc3dvcmRF
Y2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VW5p
ZmllZFRleHRDaGVja2luZ0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wg
dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYpOwogICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcihFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCA3MWE3NzA4OTRjZmZjM2RjNTQ1MDQwYWI3ZGEzZDVi
MGU3NDc1NTI5Li5jMmY1YjJhYzc3NTQzZDU0M2E0ZmFkN2FlYWYyYjMwZmY2OGQ0OGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTM5LDcgKzM5
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFi
bGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
KGluIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldEZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
Ym9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZCgpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCBjY2U0
N2UyZTI3YTY3YTI2NmQ2ODJkN2Y1YWFlOWM1MDM1NjMyMDBjLi4wOGYxNDQwYTFhNWMxODM5NjY3
M2ZhYzE5M2VlMGQyYmQ4OWZhMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNldHRpbmdzLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRG
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEVkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaAppbmRleCBjNzJiNjEzM2NmMTg5ODAwNGZkYzRjZjEyNzdhNjZj
ZGI3YzcyOGEzLi5lZDg1M2UyM2E3NzVkZjQ5YjQxMzcwZGM5YmJjNzBiNjAwYjVlMDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yNDIsMTMgKzI0Miw2IEBA
IHB1YmxpYzoKICAgICAvLyBTZXRzIHRoZSByYXRpbyBhcyBjb21wdXRlZCBieSBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzLgogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3Rvcihm
bG9hdCkgPSAwOwogCi0gICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgcG9zaXRpb246Zml4ZWQgZWxl
bWVudHMgc2hvdWxkIGJlIGxhaWQgb3V0IHJlbGF0aXZlCi0gICAgLy8gdG8gdGhlIGZyYW1lIG9y
IHJlbGF0aXZlIHRvIHRoZSBwYWdlLgotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgPSAwOwotCi0gICAgLy8gU2V0cyB0aGUg
cmVsYXRpdmUgbGF5b3V0IG9mIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzLgotICAgIHZpcnR1YWwg
dm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpID0g
MDsKLQogCiAgICAgLy8gRml4ZWQgTGF5b3V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDc3MzNlMjY5OTA4NmRiYjNiNTU1NjMwZjRl
ZTdhZGNhZjM1MmUyOWIuLmJiYzU3NTI0Y2U5YzU1ODA5YjRjYzk1MDFmNjU4NGY3MDg0MmI3YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApA
QCAtMjI0LDYgKzIyNCwxMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RE5TUHJlZmV0Y2hp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5zZXRETlNQcmVmZXRjaGlu
Z0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZSkKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lKGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOworfQorCiB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGVkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggY2M3MGQx
MzE2YzY0YzE2NTllMGUyMjI5NTZjNjgxNjQwMTU1YjNiMi4uNTMzZjI3ZmIzZTQ1NmJhNWQ0NTMw
ZjdlNTMzMzA0ZDVlMWU4MGIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZEVsZW1lbnRz
TGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFN0
b3JhZ2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUxpbmtCZWhh
dmlvck5ldmVyTGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDY2YThhOWQ5YzBhNjI3YzdjYmQxMWZlNDdhY2I5MzEyOThmN2U2YjAuLjYzMDhiZjU0NDE2
Mzg3ZTI0YjkwNzU3OGI0ZmIzMDczNmY3ZjkyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIwNTgsMzAgKzIwNTgsNiBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKICAgICBwYWdlKCkt
PnNldERldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0KIAotYm9vbCBXZWJWaWV3SW1w
bDo6c2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEZyYW1lKiBmcmFt
ZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXco
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGZyYW1lLT52aWV3KCktPnNo
b3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKTsKLX0KLQotdm9pZCBXZWJW
aWV3SW1wbDo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29s
IGVuYWJsZSkKLXsKLSAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJh
bWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8ICFmcmFt
ZS0+dmlldygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmFtZS0+dmlldygpLT5zZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZSk7Ci19Ci0KIGJvb2wg
V2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CiB7CiAgICAgaWYg
KCFwYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA0
NTlhYTIwMzIwOTJhZWY3OGI5NDRmM2JkYTMxOGJiOGY0OTlmM2RlLi4wMmJjNWM5MjFkYTM2YzZl
Y2RiN2UwZTExYWNlOWJmMzE3ZDJkMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKQEAgLTE3Niw4ICsxNzYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmlj
ZVNjYWxlRmFjdG9yKGZsb2F0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wpOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIFdlYlNpemUg
Zml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggOTgzYzkw
ZGI5Y2UzYzUxYmY2MDZhOGUxMjJmMWEzODgzZDVhODIzMy4uYTE5MjZhNWVhYzliYjVkNzI3NjMz
NDYxMGFmYTUyZjA0NTIyNTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTc1LDcgKzE3
NSw2IEBAIEVYUE9SVFMKICAgICAgICAgP3JlbW92ZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3Jl
QEBRQUVYWFoKICAgICAgICAgP3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRASlNET01HbG9iYWxPYmpl
Y3RAV2ViQ29yZUBAUUJFUEFWU2NyaXB0RXhlY3V0aW9uQ29udGV4dEAyQFhaCiAgICAgICAgID9z
Y3JvbGxFbGVtZW50VG9SZWN0QEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFC
VkludFJlY3RAMkBAWgotICAgICAgICA/c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0
aXZlVG9GcmFtZUBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAgP3NldERPTUV4
Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBIQFoKICAgICAgICAgP3NldE1v
Y2tTY3JvbGxiYXJzRW5hYmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBTQVhfTkBaCiAgICAgICAgID9z
ZXRQYWdlU2NhbGVGYWN0b3JAUGFnZUBXZWJDb3JlQEBRQUVYTUFCVkludFBvaW50QDJAQFoKQEAg
LTE4Niw2ICsxODUsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1M
SW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0
dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2V0
dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgorICAgICAgICA/c2V0Rml4
ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05A
WgogICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RA
MkBYWgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBR
QkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRv
Y3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
CmluZGV4IGQ2MDE0MzZkNDE5OTM3NWU5YzY5Nzg0ODY2MTk2NDA2MDE1N2YyZjIuLjM4NDk5MmQz
MTY2ZGVkMzEwZmM2MzIxNzkxNTYxMmMwYzA3NDZmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKQEAgLTE2OSw3ICsxNjksNiBAQCBFWFBPUlRTCiAgICAgICAgID9yZW1vdmVT
aGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVjdXRp
b25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRAMkBYWgogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2Vi
Q29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKLSAgICAgICAgP3NldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFB
RVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRl
QEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2Vi
Q29yZUBAU0FYX05AWgogICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBA
UUFFWE1BQlZJbnRQb2ludEAyQEBaCkBAIC0xODAsNiArMTc5LDcgQEAgRVhQT1JUUwogICAgICAg
ICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3Ry
aW5nQFdURkBAQFoKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNl
dHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRp
bmdzQDJAWFoKKyAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVA
U2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBX
ZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhU
TUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3Rv
RG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAwNmIyMTYxNTE5ZGRmZDk0M2E5M2UwZTJmM2I1NWI3OWRhZjM2NTE4Li42NzdlNDI0NDM3YzY1
NDVlNzBjMmQ4ODQ2Njc2NTgxNGY0YmU2OTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDEtMjYgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVu
YW1lIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgYW5kIG1ha2UgaXQg
YSBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sOgorCiAyMDEyLTAx
LTI2ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRd
W1dLMl0gU3RpbGwgZmFpbGluZyB0ZXN0cyBhZnRlciBtb3ZpbmcgdG8gSUNVCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBiNzY1
N2VmZjlkYzhmZTkwYzRiZDVkMTg3MTk2NzQ5ZDMyZDg4MTgzLi5iNmZhZTU2MDE3Y2Q5OTAzYTFi
OTM3OWQ1NjI4NmFmNWFhYTAwMGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4K
ICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOworICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRv
dy5zY3JvbGxUbygxMDAsMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggOTYx
Mzg0OTY0NzIwZWRmODBkMDc3YjEyZTY1MmZmMmM0NzVmOTc3NS4uYmU3OTdlMTlmMjg2NmQ0YmYz
OGE3ZmM1ZGMzMWFhYmQ4MzJmYTNjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKQEAg
LTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3Rp
bmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKHRydWUpOworICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rml4
ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24g
c2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygxMDAsMTAwKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5o
dG1sCmluZGV4IGEyOGMxNDZjZWZlNzEwZmRiMDE1YzBlYjkwM2Q2OTQyNDFlMDQ0OGMuLjBiNjdk
ZTc4MWJhYTEwZmY1MTEwNGE3NDMzZmEwNTYwZmI5NTA1MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbApAQCAt
OSw3ICs5LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgd2luZG93LmVuYWJsZVBpeGVsVGVzdGlu
ZyA9IHRydWU7CiAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRv
RnJhbWUodHJ1ZSk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRGaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBz
Y3JvbGwoKSB7CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124323</attachid>
            <date>2012-01-27 08:21:55 -0800</date>
            <delta_ts>2012-01-27 13:52:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76459-20120127112153.patch</filename>
            <type>text/plain</type>
            <size>28074</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmYTYyMWI5OGRiZDg2
NzFjYTRhOTk2NGExNDFjMzUxNGYyNGNjYy4uNDgwMDI3YWY1NGI2N2ZlMjdiMzc5ZGU4ZWIyYTJk
ZTA2MmNhMWRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAxLTI3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNob3Vs
ZCBiZSBhIHNldHRpbmcgYmVjYXVzZSBpdCBpcyBpbmRlcGVuZGVudCBvZiBhIHBhcnRpY3VsYXIg
ZnJhbWUgYW5kCisgICAgICAgIHNob3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgbWFpbmZy
YW1lIGNoYW5nZXMuCisKKyAgICAgICAgUmVuYW1lZCAoc2V0KVNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUgdG8gCisgICAgICAgIChzZXQpRml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZSBkdWUgdG8gdGhlIGNvbm5vdGF0aW9uCisgICAgICAgIHRoZSB3b3Jk
ICJzaG91bGQiIG1heSBoYXZlIGluIHRoaXMgY29udGV4dDogSWYgc2V0LCAKKyAgICAgICAgcG9z
aXRpb246Zml4ZWQgZWxlbWVudHMgd2lsbCBBTFdBWVMgYmUgbGFpZCBvdXQgcmVsYXRpdmUgdG8g
dGhlIGZyYW1lLgorCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKEZyYW1lVmlldyk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0dGluZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRv
RnJhbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9y
UG9zaXRpb25lZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9j
a0xvZ2ljYWxIZWlnaHRGb3JQb3NpdGlvbmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRGaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTItMDEtMjYgIE5pa29sYXMgWmltbWVy
bWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgU1ZHICsgPG9iamVjdD4gdGVz
dHMgYXJlIGZsYWtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkYTkyMGQ1ZDBiOGJj
MWQ1MjQwY2ZhNTgxZmFiMzdmYWI1YzdkNGJiLi43ZjZlM2Q3NWMxNmFiYWFiZjVkZDg2YTZmYzZm
N2RmOWI2MGY5YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDEyLTAxLTI3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJlbmFtZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBt
YWtlIGl0IGEgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzY0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAgICogc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0Rml4
ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6
CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wMS0yNSAgR3JlZyBCaWxsb2Nr
ICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBZGQgSW50ZW50UmVxdWVzdCBpbmNs
dWRlIGZvciBGcmFtZUxvYWRlckNsaWVudEltcGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmJiNzMwNTc4Yjc5
OGVhNjk5OGQ3ODIyYzYxNmRhMTU4NzQyZDljZi4uODVkMmQ4NzQxYTMzYjU0YjdiMThiYWZmZmMy
NjZiY2ZlZTM3Zjc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTI3ICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmFtZSBzaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9X
ZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDEt
MjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1dLMl0gUHJpbWFyeSBjbGlwYm9hcmQgc2hvdWxkIGJlIHVwZGF0ZWQgd2l0aCB0aGUg
Y3VycmVudCBzZWxlY3Rpb24gaW4gWDExIHBsYXRmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA5NGYyNjEwMzA1YmUzZjBjYjU1YjhjZDExYTZiZDc4YzViNzA1MTRhLi43OGIyOWU4NGY3Yzhj
YWMwZGE2NzhkN2YwZWY0NjRkOWQ0ZjAxNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTU3
LDYgKzk1Nyw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczE5bWluRE9NVGltZXJJbnRlcnZhbEV2
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjBzZXRDdXJzaXZlRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdF
MTFVU2NyaXB0Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRGYW50YXN5Rm9udEZhbWls
eUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQorX19aTjdXZWJDb3JlOFNldHRp
bmdzMzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lRWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIwc2V0WFNTQXVkaXRvckVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdz
MjFtb2NrU2Nyb2xsYmFyc0VuYWJsZWRFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTaG93
UmVwYWludENvdW50ZXJFYgpAQCAtMTA1NCw3ICsxMDU1LDYgQEAgX19aTjdXZWJDb3JlOUZyYW1l
VmlldzI5c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW5FYgogX19aTjdXZWJDb3JlOUZyYW1l
VmlldzM3dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZUV2CiBfX1pON1dlYkNv
cmU5RnJhbWVWaWV3MzhzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0Zm9ybVdpZGdldEV2CiBf
X1pON1dlYkNvcmU5RnJhbWVWaWV3MzhzeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZy
YW1lc0V2Ci1fX1pON1dlYkNvcmU5RnJhbWVWaWV3NDNzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXc2Y3JlYXRlRVBOU181
RnJhbWVFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3NmNyZWF0ZUVQTlNfNUZyYW1lRVJLTlNfN0lu
dFNpemVFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTBsaXN0aW5nVGFnRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IDY1YjQ4M2ZhOGJmZjEzNWVlODg1ODEzYzZkMDdhYjBmZWIwMWRi
MGQuLjFjOTFkNWZiYTI5Mzg3OGEyNDU1YzI4YzFlMDBiZDkzOWUyMDllYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIxOCw3ICsyMTgsNiBAQCB2b2lkIEZyYW1lVmlldzo6cmVz
ZXQoKQogICAgIG1fY2Fubm90QmxpdFRvV2luZG93ID0gZmFsc2U7CiAgICAgbV9pc092ZXJsYXBw
ZWQgPSBmYWxzZTsKICAgICBtX2NvbnRlbnRJc09wYXF1ZSA9IGZhbHNlOwotICAgIG1fc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSA9IGZhbHNlOwogICAgIG1fYm9yZGVy
WCA9IDMwOwogICAgIG1fYm9yZGVyWSA9IDMwOwogICAgIG1fbGF5b3V0VGltZXIuc3RvcCgpOwpA
QCAtMTQwNCw3ICsxNDAzLDcgQEAgaW50IEZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRp
b24oKSBjb25zdAogICAgIC8vIFdoZW4gdGhlIHBhZ2UgaXMgc2NhbGVkLCB0aGUgc2NhbGVkICJ2
aWV3cG9ydCIgd2l0aCByZXNwZWN0IHRvIHdoaWNoIGZpeGVkIG9iamVjdCBhcmUgcG9zaXRpb25l
ZAogICAgIC8vIGRvZXNuJ3QgbW92ZSBhcyBmYXN0IGFzIHRoZSBjb250ZW50IHZpZXcsIHNvIHRo
YXQgd2hlbiB0aGUgY29udGVudCBpcyBzY3JvbGxlZCBhbGwgdGhlIHdheSB0byB0aGUKICAgICAv
LyBlbmQsIHRoZSBib3R0b20gb2YgdGhlIHNjYWxlZCAidmlld3BvcnQiIHRvdWNoZXMgdGhlIGJv
dHRvbSBvZiB0aGUgcmVhbCB2aWV3cG9ydC4KLSAgICBmbG9hdCBkcmFnRmFjdG9yID0gc2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpID8gMSA6IChjb250ZW50c1dpZHRo
KCkgLSB2aXNpYmxlQ29udGVudFdpZHRoICogZnJhbWVTY2FsZUZhY3RvcikgLyBtYXhYOworICAg
IGZsb2F0IGRyYWdGYWN0b3IgPSBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkg
PyAxIDogKGNvbnRlbnRzV2lkdGgoKSAtIHZpc2libGVDb250ZW50V2lkdGggKiBmcmFtZVNjYWxl
RmFjdG9yKSAvIG1heFg7CiAKICAgICByZXR1cm4geCAqIGRyYWdGYWN0b3IgLyBmcmFtZVNjYWxl
RmFjdG9yOwogfQpAQCAtMTQzNSw3ICsxNDM0LDcgQEAgaW50IEZyYW1lVmlldzo6c2Nyb2xsWUZv
ckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4geTsKIAogICAgIGZsb2F0IGZy
YW1lU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7Ci0gICAgZmxvYXQg
ZHJhZ0ZhY3RvciA9IHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSA/
IDEgOiAoY29udGVudHNIZWlnaHQoKSAtIHZpc2libGVDb250ZW50SGVpZ2h0ICogZnJhbWVTY2Fs
ZUZhY3RvcikgLyBtYXhZOworICAgIGZsb2F0IGRyYWdGYWN0b3IgPSBmaXhlZEVsZW1lbnRzTGF5
b3V0UmVsYXRpdmVUb0ZyYW1lKCkgPyAxIDogKGNvbnRlbnRzSGVpZ2h0KCkgLSB2aXNpYmxlQ29u
dGVudEhlaWdodCAqIGZyYW1lU2NhbGVGYWN0b3IpIC8gbWF4WTsKICAgICByZXR1cm4geSAqIGRy
YWdGYWN0b3IgLyBmcmFtZVNjYWxlRmFjdG9yOwogfQogCkBAIC0xNDQ0LDE4ICsxNDQzLDE1IEBA
IEludFNpemUgRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QK
ICAgICByZXR1cm4gSW50U2l6ZShzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpLCBzY3JvbGxZRm9y
Rml4ZWRQb3NpdGlvbigpKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lKQorYm9vbCBGcmFtZVZpZXc6OmZpeGVkRWxlbWVudHNMYXlvdXRSZWxh
dGl2ZVRvRnJhbWUoKSBjb25zdAogewotICAgIGlmIChzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lID09IG1fc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lID0gc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZTsKLQotICAgIGlmICghaGFzRml4ZWRPYmplY3RzKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBB
U1NFUlQobV9mcmFtZSk7CisgICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBzZXROZWVkc0xheW91dCgpOworICAgIHJldHVybiBtX2ZyYW1l
LT5zZXR0aW5ncygpLT5maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCk7CiB9CisK
IEludFBvaW50IEZyYW1lVmlldzo6Y3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdAogewogICAg
IHJldHVybiBtX2ZyYW1lID8gbV9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJlbnRNb3VzZVBv
c2l0aW9uKCkgOiBJbnRQb2ludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMTc2MWEw
NmJkNDk5NzgyNTA5N2U5ZjYxOGZkYmMzZmE4YmIwNmNlZi4uY2ViNmI3ZjYwN2U1YTJkMzg5OTM2
NGNmY2YzM2JhOGZhMTRjYTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0xOTYsOCAr
MTk2LDcgQEAgcHVibGljOgogICAgIGludCBzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0
OwogICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0OwogCi0g
ICAgYm9vbCBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lOyB9Ci0g
ICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wp
OworICAgIGJvb2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpIGNvbnN0Owog
CiAgICAgdm9pZCBiZWdpbkRlZmVycmVkUmVwYWludHMoKTsKICAgICB2b2lkIGVuZERlZmVycmVk
UmVwYWludHMoKTsKQEAgLTQxMCw3ICs0MDksNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5u
b3RCbGl0VG9XaW5kb3c7CiAgICAgYm9vbCBtX2lzT3ZlcmxhcHBlZDsKICAgICBib29sIG1fY29u
dGVudElzT3BhcXVlOwotICAgIGJvb2wgbV9zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lOwogICAgIHVuc2lnbmVkIG1fc2xvd1JlcGFpbnRPYmplY3RDb3VudDsKICAgICB1
bnNpZ25lZCBtX2ZpeGVkT2JqZWN0Q291bnQ7CiAgICAgaW50IG1fYm9yZGVyWDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5jcHAKaW5kZXggOTU1OTc5M2M2NDExNjYyYjI3MTVmYmJiZDNlY2Y4OWM2YjVm
N2E0Zi4uMTg2MTY2MGJkZTcxNTJiNjBlZWZlOTVmZmRjODhlMjNiODA3OWE0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIxMyw2ICsyMTMsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3Mo
UGFnZSogcGFnZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVz
RGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAg
ICwgbV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2Up
CisgICAgLCBtX2ZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZmFsc2UpCiAgICAg
LCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpCiAgICAgLCBtX2FsbG93UnVu
bmluZ09mSW5zZWN1cmVDb250ZW50KHRydWUpCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
CkBAIC00ODYsNiArNDg3LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFVzZXJTdHlsZVNoZWV0TG9j
YXRpb24oY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbikKICAgICBtX3BhZ2UtPnVz
ZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldEZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0
UmVsYXRpdmVUb0ZyYW1lKQoreworICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZSA9IGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU7Cit9CisKIHZvaWQgU2V0
dGluZ3M6OnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCBzaG91bGRQcmludEJhY2tncm91
bmRzKQogewogICAgIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyA9IHNob3VsZFByaW50QmFja2dy
b3VuZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZDY1MTUyMGNhMmJlNjM4NjRhMWE2ZjQx
NGZlMjBlZDYxNzQ3MGM4ZC4uOGU0ZDkxZDVjMDRmNTNkNjQxNTdlMDI1ZDFiMmI5MzRkNmQ0ZDY2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTg5LDYgKzE4OSw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtV
UkwmKTsKICAgICAgICAgY29uc3QgS1VSTCYgdXNlclN0eWxlU2hlZXRMb2NhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsgfQogCisgICAgICAgIHZvaWQgc2V0
Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sKTsKKyAgICAgICAgYm9vbCBm
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9maXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOyB9CisKICAgICAgICAgdm9pZCBzZXRTaG91
bGRQcmludEJhY2tncm91bmRzKGJvb2wpOwogICAgICAgICBib29sIHNob3VsZFByaW50QmFja2dy
b3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFByaW50QmFja2dyb3VuZHM7IH0KIApAQCAt
NjMyLDYgKzYzNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Nyb3Nz
T3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkIDogMTsKICAgICAgICAgYm9v
bCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3VsZEluamVj
dFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7CisgICAgICAgIGJvb2wgbV9m
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIDogMTsKICAgICAgICAgYm9vbCBtX2Fs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKICAgICAgICAgYm9vbCBtX2FsbG93UnVu
bmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggMmUyZTIxNTJjOGQwYmVk
Nzc5MzlkY2VjYzNmNWU2NTIwMWQ0NDYxYy4uODM2YjMxMjI4ZjU4ODUwNzhlZmYzNWEwODk1Njdl
NWU1NWFkOGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTYz
NCw5ICs2MzQsOSBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6cmVmbGVjdGVkUmVjdChjb25zdCBM
YXlvdXRSZWN0JiByKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgUmVuZGVy
Qm94OjpzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqIGZyYW1l
LCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgUmVuZGVyQm94OjpmaXhlZEVsZW1l
bnRMYXlzT3V0UmVsYXRpdmVUb0ZyYW1lKEZyYW1lKiBmcmFtZSwgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0eWxlKCkgJiYgc3R5bGUoKS0+cG9zaXRpb24oKSA9
PSBGaXhlZFBvc2l0aW9uICYmIGNvbnRhaW5lcigpLT5pc1JlbmRlclZpZXcoKSAmJiBmcmFtZSAm
JiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5zaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKCk7CisgICAgcmV0dXJuIHN0eWxlKCkgJiYgc3R5bGUoKS0+cG9zaXRpb24oKSA9
PSBGaXhlZFBvc2l0aW9uICYmIGNvbnRhaW5lcigpLT5pc1JlbmRlclZpZXcoKSAmJiBmcmFtZSAm
JiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0Zy
YW1lKCk7CiB9CiAKIGJvb2wgUmVuZGVyQm94OjppbmNsdWRlVmVydGljYWxTY3JvbGxiYXJTaXpl
KCkgY29uc3QKQEAgLTIzMDgsNyArMjMwOCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb250
YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkKGNvbnN0IFJlbmRlckJveE1vCiAg
ICAgLy8gQ29udGFpbmVyIGZvciBwb3NpdGlvbjpmaXhlZCBpcyB0aGUgZnJhbWUuCiAgICAgRnJh
bWUqIGZyYW1lID0gdmlldygpID8gdmlldygpLT5mcmFtZSgpOiAwOwogICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gdmlldygpID8gdmlldygpLT5mcmFtZVZpZXcoKSA6IDA7Ci0gICAgaWYgKHNo
b3VsZExheW91dEZpeGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShmcmFtZSwgZnJhbWVWaWV3KSkK
KyAgICBpZiAoZml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShmcmFtZSwgZnJhbWVW
aWV3KSkKICAgICAgICAgcmV0dXJuICh2aWV3KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBmcmFtZVZpZXctPnZpc2libGVXaWR0aCgpIDogZnJhbWVWaWV3LT52aXNpYmxlSGVpZ2h0KCkp
IC8gZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKTsKIAogICAgIGlmIChjaGVja0ZvclBlcnBlbmRp
Y3VsYXJXcml0aW5nTW9kZSAmJiBjb250YWluaW5nQmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgIT0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKQEAgLTIzNjUsNyArMjM2NSw3IEBA
IExheW91dFVuaXQgUmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0Rm9yUG9z
aXRpb25lZChjb25zdCBSZW5kZXJCb3hNCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gdmlldygpID8g
dmlldygpLT5mcmFtZSgpOiAwOwogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdmlldygpID8g
dmlldygpLT5mcmFtZVZpZXcoKSA6IDA7Ci0gICAgaWYgKHNob3VsZExheW91dEZpeGVkRWxlbWVu
dFJlbGF0aXZlVG9GcmFtZShmcmFtZSwgZnJhbWVWaWV3KSkKKyAgICBpZiAoZml4ZWRFbGVtZW50
TGF5c091dFJlbGF0aXZlVG9GcmFtZShmcmFtZSwgZnJhbWVWaWV3KSkKICAgICAgICAgcmV0dXJu
ICh2aWV3KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBmcmFtZVZpZXctPnZpc2libGVI
ZWlnaHQoKSA6IGZyYW1lVmlldy0+dmlzaWJsZVdpZHRoKCkpIC8gZnJhbWUtPmZyYW1lU2NhbGVG
YWN0b3IoKTsKIAogICAgIGlmIChjaGVja0ZvclBlcnBlbmRpY3VsYXJXcml0aW5nTW9kZSAmJiBj
b250YWluaW5nQmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBlMDBl
MWQ4YzI1NjFiMjY4ZjZiYWRlZGQzOGRlM2U0YTg1MjEyMmRkLi5kMTYzN2ZhYTIxMzYwYTA1MDZj
MGQxM2JkYmIxYjJlYWVmODY3MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CkBAIC00NjIsNyArNDYyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRSb290Qm94Rmls
bExheWVycyhjb25zdCBQYWludEluZm8mKTsKIAogcHJpdmF0ZToKLSAgICBib29sIHNob3VsZExh
eW91dEZpeGVkRWxlbWVudFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZyYW1lVmlldyopIGNvbnN0
OworICAgIGJvb2wgZml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShGcmFtZSosIEZy
YW1lVmlldyopIGNvbnN0OwogCiAgICAgYm9vbCBpbmNsdWRlVmVydGljYWxTY3JvbGxiYXJTaXpl
KCkgY29uc3Q7CiAgICAgYm9vbCBpbmNsdWRlSG9yaXpvbnRhbFNjcm9sbGJhclNpemUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGU1
NjZjZDA5YTJmOTE0ODVhOGVmMTE3ZWUzZDQyNWM4MzU0NTU3MWEuLmE0ZGJiNDRiZjI1OTczY2Qx
YTJlZTA1ZTBmOTMzZmE4OTg4NWI4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcApAQCAtMjM1LDEwICsyMzUsMTAgQEAgdm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25JblNl
Y29uZHMKICAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhk
dXJhdGlvbkluU2Vjb25kcyk7CiB9CiAKLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRGaXhlZEVsZW1lbnRzTGF5b3V0
UmVsYXRpdmVUb0ZyYW1lKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
SW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yRnJhbWVWaWV3KCk7Ci0gICAgZnJhbWUoKS0+dmlldygp
LT5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOwor
ICAgIHNldHRpbmdzKCktPnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoZW5h
YmxlZCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0VW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggMjFhYTA0YTE1MTBiYjJhMGQzMmVjNGY3
ZWI1YzYxZmY3NzU2Y2I4MS4uYmU5MzI4ZWU3MTRhM2EyYjkwMGYxMWI4ZDRhYTk1Y2E0YTE4ZTZj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTU4LDcg
KzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxl
ZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFBhc3N3b3JkRWNo
b0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShib29sLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0
UmVsYXRpdmVUb0ZyYW1lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIHVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IoRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNzFhNzcwODk0Y2ZmYzNkYzU0NTA0MGFiN2RhM2Q1YjBl
NzQ3NTUyOS4uYzJmNWIyYWM3NzU0M2Q1NDNhNGZhZDdhZWFmMmIzMGZmNjhkNDhmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zOSw3ICszOSw3
IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHNldFBhc3N3b3JkRWNob0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhp
biBkb3VibGUgZHVyYXRpb25JblNlY29uZHMpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRGaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJs
ZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGJv
b2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIHJhaXNlcyhET01FeGNlcHRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggY2NlNDdl
MmUyN2E2N2EyNjZkNjgyZDdmNWFhZTljNTAzNTYzMjAwYy4uMDhmMTQ0MGExYTVjMTgzOTY2NzNm
YWMxOTNlZTBkMmJkODlmYTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RE5TUHJlZmV0Y2hpbmdFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4
ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFZGl0YWJsZUxpbmtCZWhhdmlvck5ldmVyTGl2ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzcyYjYxMzNjZjE4OTgwMDRmZGM0Y2YxMjc3YTY2Y2Ri
N2M3MjhhMy4uZWQ4NTNlMjNhNzc1ZGY0OWI0MTM3MGRjOWJiYzcwYjYwMGI1ZTAxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQyLDEzICsyNDIsNiBAQCBw
dWJsaWM6CiAgICAgLy8gU2V0cyB0aGUgcmF0aW8gYXMgY29tcHV0ZWQgYnkgY29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlcy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxv
YXQpID0gMDsKIAotICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIHBvc2l0aW9uOmZpeGVkIGVsZW1l
bnRzIHNob3VsZCBiZSBsYWlkIG91dCByZWxhdGl2ZQotICAgIC8vIHRvIHRoZSBmcmFtZSBvciBy
ZWxhdGl2ZSB0byB0aGUgcGFnZS4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZSgpIGNvbnN0ID0gMDsKLQotICAgIC8vIFNldHMgdGhlIHJl
bGF0aXZlIGxheW91dCBvZiBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cy4KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKSA9IDA7
Ci0KIAogICAgIC8vIEZpeGVkIExheW91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCA3NzMzZTI2OTkwODZkYmIzYjU1NTYzMGY0ZWU3
YWRjYWYzNTJlMjliLi5iYmM1NzUyNGNlOWM1NTgwOWI0Y2M5NTAxZjY1ODRmNzA4NDJiN2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAg
LTIyNCw2ICsyMjQsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEROU1ByZWZldGNoaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0RE5TUHJlZmV0Y2hpbmdF
bmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Rml4ZWRFbGVt
ZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sIGZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2
ZVRvRnJhbWUpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZShmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKTsKK30KKwogdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ewogICAgIG1fc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IGNjNzBkMTMx
NmM2NGMxNjU5ZTBlMjIyOTU2YzY4MTY0MDE1NWIzYjIuLjUzM2YyN2ZiM2U0NTZiYTVkNDUzMGY3
ZTUzMzMwNGQ1ZTFlODBiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEROU1ByZWZl
dGNoaW5nRW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxTdG9y
YWdlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVMaW5rQmVoYXZp
b3JOZXZlckxpdmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRl
eCA2NmE4YTlkOWMwYTYyN2M3Y2JkMTFmZTQ3YWNiOTMxMjk4ZjdlNmIwLi42MzA4YmY1NDQxNjM4
N2UyNGI5MDc1NzhiNGZiMzA3MzZmN2Y5MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMDU4LDMwICsyMDU4LDYgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgcGFnZSgpLT5z
ZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6
OnNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdAotewotICAg
IGlmICghcGFnZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBGcmFtZSogZnJhbWUg
PSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBmcmFtZS0+dmlldygpLT5zaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmll
d0ltcGw6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCBl
bmFibGUpCi17Ci0gICAgaWYgKCFwYWdlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZyYW1l
KiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUt
PnZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZnJhbWUtPnZpZXcoKS0+c2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGUpOwotfQotCiBib29sIFdl
YlZpZXdJbXBsOjppc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdAogewogICAgIGlmICgh
cGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggNDU5
YWEyMDMyMDkyYWVmNzhiOTQ0ZjNiZGEzMThiYjhmNDk5ZjNkZS4uMDJiYzVjOTIxZGEzNmM2ZWNk
YjdlMGUxMWFjZTliZjMxN2QyZDJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCkBAIC0xNzYsOCArMTc2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCk7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZExheW91dEZpeGVkRWxl
bWVudHNSZWxhdGl2ZVRvRnJhbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sKTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGVu
YWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJTaXplIGZp
eGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDk4M2M5MGRi
OWNlM2M1MWJmNjA2YThlMTIyZjFhMzg4M2Q1YTgyMzMuLmExOTI2YTVlYWM5YmI1ZDcyNzYzMzQ2
MTBhZmE1MmYwNDUyMjUyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3NSw3ICsxNzUs
NiBAQCBFWFBPUlRTCiAgICAgICAgID9yZW1vdmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBA
UUFFWFhaCiAgICAgICAgID9zY3JpcHRFeGVjdXRpb25Db250ZXh0QEpTRE9NR2xvYmFsT2JqZWN0
QFdlYkNvcmVAQFFCRVBBVlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBYWgogICAgICAgICA/c2Ny
b2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBBQlZJ
bnRSZWN0QDJAQFoKLSAgICAgICAgP3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRET01FeGNl
cHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/c2V0
UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCkBAIC0x
ODYsNiArMTg1LDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElu
cHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldHRp
bmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRp
bmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKKyAgICAgICAgP3NldEZpeGVk
RWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoK
ICAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJA
WFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJF
QUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1
bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpp
bmRleCBkNjAxNDM2ZDQxOTkzNzVlOWM2OTc4NDg2NjE5NjQwNjAxNTdmMmYyLi4zODQ5OTJkMzE2
NmRlZDMxMGZjNjMyMTc5MTU2MTJjMGMwNzQ2ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmCkBAIC0xNjksNyArMTY5LDYgQEAgRVhQT1JUUwogICAgICAgICA/cmVtb3ZlU2hh
ZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/c2NyaXB0RXhlY3V0aW9u
Q29udGV4dEBKU0RPTUdsb2JhbE9iamVjdEBXZWJDb3JlQEBRQkVQQVZTY3JpcHRFeGVjdXRpb25D
b250ZXh0QDJAWFoKICAgICAgICAgP3Njcm9sbEVsZW1lbnRUb1JlY3RARnJhbWVWaWV3QFdlYkNv
cmVAQFFBRVhQQVZFbGVtZW50QDJAQUJWSW50UmVjdEAyQEBaCi0gICAgICAgID9zZXRTaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBRQUVY
X05AWgogICAgICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBK
U0NAQEhAWgogICAgICAgICA/c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdlYkNv
cmVAQFNBWF9OQFoKICAgICAgICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNvcmVAQFFB
RVhNQUJWSW50UG9pbnRAMkBAWgpAQCAtMTgwLDYgKzE3OSw3IEBAIEVYUE9SVFMKICAgICAgICAg
P3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmlu
Z0BXVEZAQEBaCiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0
aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5n
c0AyQFhaCisgICAgICAgID9zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNl
dHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2Vi
Q29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9zdWdnZXN0ZWRWYWx1ZUBIVE1M
SW5wdXRFbGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZAQFhaCiAgICAgICAgID90b0Rv
Y3VtZW50QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcgppbmRleCBhNDc2ZTQ5NzY1MmVmODg3ZmViNmU3ODY5ODdlZjQxYmJmM2M3
ZGNhLi4xOTU0MDkyYjk3MTA1ZDQ0OTU2OGQyYWIwNzI1MDVhZWRmOGViYmM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIKQEAgLTg2LDkgKzg2LDkgQEAgX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0
Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRTsKIF9aTjdXZWJDb3JlMTRTY3Jv
bGxhYmxlQXJlYTI4c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0VSS05TXzhJbnRQb2ludEU7
CiBfWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIzc2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmI7CiBf
Wk43V2ViQ29yZThTZXR0aW5nczI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CitfWk43V2Vi
Q29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUViOwog
X1pON1dlYkNvcmU5RnJhbWVWaWV3MTdwYWludENvbnRyb2xUaW50c0V2OwogX1pON1dlYkNvcmU5
RnJhbWVWaWV3MTlzY3JvbGxFbGVtZW50VG9SZWN0RVBOU183RWxlbWVudEVSS05TXzdJbnRSZWN0
RTsKLV9aTjdXZWJDb3JlOUZyYW1lVmlldzQzc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1Jl
bGF0aXZlVG9GcmFtZUViOwogX1pON1dlYkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckQy
RXY7CiBfWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQzJFUE5TXzVGcmFtZUU7
CiBfWk43V2ViQ29yZTI0RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyMTJvYnNlcnZlRnJhbWVFUE5T
XzVGcmFtZUU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMDZiMjE2MTUxOWRkZmQ5NDNhOTNlMGUyZjNiNTViNzlkYWYzNjUx
OC4uM2YyZDc5OWNmZTA1MmQwNDkwOWYxYTQ4Y2IxZmUxZTlmYzMxMWY0MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTAxLTI3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJlbmFtZSBzaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lIGFuZCBtYWtlIGl0IGEgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxl
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUu
aHRtbDoKKwogMjAxMi0wMS0yNiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XVtXSzJdIFN0aWxsIGZhaWxpbmcgdGVzdHMgYWZ0ZXIgbW92aW5nIHRv
IElDVQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Ut
c2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxl
Lmh0bWwKaW5kZXggYjc2NTdlZmY5ZGM4ZmU5MGM0YmQ1ZDE4NzE5Njc0OWQzMmQ4ODE4My4uYjZm
YWU1NjAxN2NkOTkwM2ExYjkzNzlkNTYyODZhZjVhYWEwMDBmMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBA
QAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSh0cnVl
KTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEZpeGVkRWxlbWVudHNM
YXlvdXRSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsK
ICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2Fs
ZS5odG1sCmluZGV4IDk2MTM4NDk2NDcyMGVkZjgwZDA3N2IxMmU2NTJmZjJjNDc1Zjk3NzUuLmJl
Nzk3ZTE5ZjI4NjZkNGJmMzhhN2ZjNWRjMzFhYWJkODMyZmEzYzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFn
ZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cu
ZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRF
bGVtZW50c1JlbGF0aXZlVG9GcmFtZSh0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAK
ICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAw
LDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQt
aW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0
LWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBhMjhjMTQ2Y2VmZTcxMGZkYjAxNWMwZWI5MDNkNjk0
MjQxZTA0NDhjLi4wYjY3ZGU3ODFiYWExMGZmNTExMDRhNzQzM2ZhMDU2MGZiOTUwNTEwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2Fs
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdl
LXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5l
bmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOworICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSh0cnVlKTsKIAog
ICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygxMDAs
MTAwKTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3MjNlOGRhZTQ0
YTU5NjZmZjgxYThkYTJiZDBkYTEzZmQ3MjU4ZjVlLi5jZmY3NTc1ZjQ2YzNkZGE3YjAxN2ZjNTRi
ZjlkNWNiYWEzNTE5NTU5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTItMDEtMjcgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2
ZVRvRnJhbWUgYW5kIG1ha2UgaXQgYSBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoK
KwogMjAxMi0wMS0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBQb3J0IE1vemlsbGEncyBHcmFwaCBTZXJ2ZXIK
</data>

          </attachment>
      

    </bug>

</bugzilla>