<?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>91206</bug_id>
          
          <creation_ts>2012-07-13 02:30:58 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add ewk_settings.</short_desc>
          <delta_ts>2012-09-03 07:48:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>61838</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Eunmi Lee">enmi.lee</assigned_to>
          <cc>alexander.shalamov</cc>
    
    <cc>cdumez</cc>
    
    <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>js45.yang</cc>
    
    <cc>kihong.kwon</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>vimff0</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan.nyul</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>668772</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-13 02:30:58 -0700</bug_when>
    <thetext>Add ewk_setting which is wrapping WKPreferencesRef.
The ewk_setting will be created by ewk_view and it will be destroyed when ewk_view is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668782</commentid>
    <comment_count>1</comment_count>
      <attachid>152196</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-13 02:43:10 -0700</bug_when>
    <thetext>Created attachment 152196
patch for ewk_setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668784</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 02:46:39 -0700</bug_when>
    <thetext>Attachment 152196 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:41:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668787</commentid>
    <comment_count>3</comment_count>
      <attachid>152198</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-13 02:50:54 -0700</bug_when>
    <thetext>Created attachment 152198
patch for ewk_setting.

Sytle error is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668948</commentid>
    <comment_count>4</comment_count>
      <attachid>152198</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-13 06:23:30 -0700</bug_when>
    <thetext>Comment on attachment 152198
patch for ewk_setting.

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.cpp:29
&gt; +struct _Ewk_Setting {

I think it should be &quot;Ewk_Settings&quot; (plural).

&gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.cpp:36
&gt; +    setting-&gt;preferences = wkPreferences;

It would be nice if you could use a constructor like for the other Ewk classes.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.h:29
&gt; +

I think we should add a few important settings in this patch already. It looks bad to add an empty wrapper.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:265
&gt; +EAPI Ewk_Setting* ewk_view_setting_get(Evas_Object* o);

Stars are on the wrong side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669719</commentid>
    <comment_count>5</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-13 22:45:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 152198 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152198&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.cpp:29
&gt; &gt; +struct _Ewk_Setting {
&gt; 
&gt; I think it should be &quot;Ewk_Settings&quot; (plural).
&gt; 
OK, I will change it to ewk_settings.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.cpp:36
&gt; &gt; +    setting-&gt;preferences = wkPreferences;
&gt; 
&gt; It would be nice if you could use a constructor like for the other Ewk classes.
&gt; 

Thanks, I will use constructor.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_setting.h:29
&gt; &gt; +
&gt; 
&gt; I think we should add a few important settings in this patch already. It looks bad to add an empty wrapper.
&gt; 

Yes, so I will add a few settings APIs.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:265
&gt; &gt; +EAPI Ewk_Setting* ewk_view_setting_get(Evas_Object* o);
&gt; 
&gt; Stars are on the wrong side.

My mistake. I will fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669721</commentid>
    <comment_count>6</comment_count>
      <attachid>152408</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-13 22:47:27 -0700</bug_when>
    <thetext>Created attachment 152408
patch for ewk_settings.

Fixed for Christophe&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669757</commentid>
    <comment_count>7</comment_count>
      <attachid>152413</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 00:45:37 -0700</bug_when>
    <thetext>Created attachment 152413
patch for ewk_settings.

rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669760</commentid>
    <comment_count>8</comment_count>
      <attachid>152413</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-14 00:51:37 -0700</bug_when>
    <thetext>Comment on attachment 152413
patch for ewk_settings.

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:24
&gt; +#include &lt;WebKit2/WKPreferences.h&gt;

Shouldn&apos;t we include ewk_settings_private.h ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:37
&gt; +Ewk_Settings* ewk_settings_new(WKPreferencesRef wkPreferences)

Missing @internal documentation.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:39
&gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);

No EINA_SAFETY check for wkPreferences? and you could return the result directly, without the extra assignment.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:44
&gt; +void ewk_settings_free(Ewk_Settings* settings)

Missing @internal documentation.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:29
&gt; +

/** Creates a type name for _Ewk_Settings */

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:55
&gt; +    Ewk_Settings* settings;

Should be initialized to 0 in the constructor.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:288
&gt; +    ewk_settings_free(priv-&gt;settings);

null check since it is set to 0 in the constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669807</commentid>
    <comment_count>9</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 04:28:14 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 152413 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152413&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:24
&gt; &gt; +#include &lt;WebKit2/WKPreferences.h&gt;
&gt; 
&gt; Shouldn&apos;t we include ewk_settings_private.h ?
&gt; 

Actually, I don&apos;t know we should include private header or not.
but, other cpp files have its private header, so I will add like them.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:37
&gt; &gt; +Ewk_Settings* ewk_settings_new(WKPreferencesRef wkPreferences)
&gt; 
&gt; Missing @internal documentation.
&gt; 

I will add.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:39
&gt; &gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);
&gt; 
&gt; No EINA_SAFETY check for wkPreferences? and you could return the result directly, without the extra assignment.
&gt; 

Yes, right. I missed that. I will add EINA_SAFETY.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:44
&gt; &gt; +void ewk_settings_free(Ewk_Settings* settings)
&gt; 
&gt; Missing @internal documentation.
&gt; 

I will add.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:29
&gt; &gt; +
&gt; 
&gt; /** Creates a type name for _Ewk_Settings */
&gt; 

Dotto. thanks.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:55
&gt; &gt; +    Ewk_Settings* settings;
&gt; 
&gt; Should be initialized to 0 in the constructor.
&gt; 

yes. I will add.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:288
&gt; &gt; +    ewk_settings_free(priv-&gt;settings);
&gt; 
&gt; null check since it is set to 0 in the constructor?

We don&apos;t have to check null here because ewk_settings_free() checks the null. :_)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669808</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-14 04:33:23 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 152413 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152413&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:24
&gt; &gt; &gt; +#include &lt;WebKit2/WKPreferences.h&gt;
&gt; &gt; 
&gt; &gt; Shouldn&apos;t we include ewk_settings_private.h ?
&gt; &gt; 
&gt; 
&gt; Actually, I don&apos;t know we should include private header or not.
&gt; but, other cpp files have its private header, so I will add like them.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:37
&gt; &gt; &gt; +Ewk_Settings* ewk_settings_new(WKPreferencesRef wkPreferences)
&gt; &gt; 
&gt; &gt; Missing @internal documentation.
&gt; &gt; 
&gt; 
&gt; I will add.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:39
&gt; &gt; &gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);
&gt; &gt; 
&gt; &gt; No EINA_SAFETY check for wkPreferences? and you could return the result directly, without the extra assignment.
&gt; &gt; 
&gt; 
&gt; Yes, right. I missed that. I will add EINA_SAFETY.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:44
&gt; &gt; &gt; +void ewk_settings_free(Ewk_Settings* settings)
&gt; &gt; 
&gt; &gt; Missing @internal documentation.
&gt; &gt; 
&gt; 
&gt; I will add.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:29
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; /** Creates a type name for _Ewk_Settings */
&gt; &gt; 
&gt; 
&gt; Dotto. thanks.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:55
&gt; &gt; &gt; +    Ewk_Settings* settings;
&gt; &gt; 
&gt; &gt; Should be initialized to 0 in the constructor.
&gt; &gt; 
&gt; 
&gt; yes. I will add.
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:288
&gt; &gt; &gt; +    ewk_settings_free(priv-&gt;settings);
&gt; &gt; 
&gt; &gt; null check since it is set to 0 in the constructor?
&gt; 
&gt; We don&apos;t have to check null here because ewk_settings_free() checks the null. :_)
It does but it will print a warning I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669812</commentid>
    <comment_count>11</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 04:56:41 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; (From update of attachment 152413 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152413&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:24
&gt; &gt; &gt; &gt; +#include &lt;WebKit2/WKPreferences.h&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; Shouldn&apos;t we include ewk_settings_private.h ?
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Actually, I don&apos;t know we should include private header or not.
&gt; &gt; but, other cpp files have its private header, so I will add like them.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:37
&gt; &gt; &gt; &gt; +Ewk_Settings* ewk_settings_new(WKPreferencesRef wkPreferences)
&gt; &gt; &gt; 
&gt; &gt; &gt; Missing @internal documentation.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I will add.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:39
&gt; &gt; &gt; &gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);
&gt; &gt; &gt; 
&gt; &gt; &gt; No EINA_SAFETY check for wkPreferences? and you could return the result directly, without the extra assignment.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Yes, right. I missed that. I will add EINA_SAFETY.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:44
&gt; &gt; &gt; &gt; +void ewk_settings_free(Ewk_Settings* settings)
&gt; &gt; &gt; 
&gt; &gt; &gt; Missing @internal documentation.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I will add.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:29
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; /** Creates a type name for _Ewk_Settings */
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Dotto. thanks.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:55
&gt; &gt; &gt; &gt; +    Ewk_Settings* settings;
&gt; &gt; &gt; 
&gt; &gt; &gt; Should be initialized to 0 in the constructor.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; yes. I will add.
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:288
&gt; &gt; &gt; &gt; +    ewk_settings_free(priv-&gt;settings);
&gt; &gt; &gt; 
&gt; &gt; &gt; null check since it is set to 0 in the constructor?
&gt; &gt; 
&gt; &gt; We don&apos;t have to check null here because ewk_settings_free() checks the null. :_)
&gt; It does but it will print a warning I believe.

Yes, a warining will be printed for null.
and, If the priv is allocated and ewk_view is created correctly, the priv-&gt;settings should not be null.
So, I think it is good to let applications know that something was wrong by warning. If there is no warning, applications don&apos;t know what happens.
How do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669814</commentid>
    <comment_count>12</comment_count>
      <attachid>152413</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-14 05:09:08 -0700</bug_when>
    <thetext>Comment on attachment 152413
patch for ewk_settings.

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

Informal r- because of many comments.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:21
&gt; +#ifndef ewk_settings_h

File description is missing.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:577
&gt; +Ewk_Settings* ewk_view_settings_get(Evas_Object* ewkView)

Use *const* keyword for _get() function.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; + * @return the Ewk_Settings of this view

Need to mention what is return on failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669815</commentid>
    <comment_count>13</comment_count>
      <attachid>152420</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 05:09:30 -0700</bug_when>
    <thetext>Created attachment 152420
patch for ewk_settings.

fixed for Christophe&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669816</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-14 05:12:00 -0700</bug_when>
    <thetext>CC&apos;ing Grzegorz, could you take a look this APIs comments ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669820</commentid>
    <comment_count>15</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 05:23:20 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 152413 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152413&amp;action=review
&gt; 
&gt; Informal r- because of many comments.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:21
&gt; &gt; +#ifndef ewk_settings_h
&gt; 
&gt; File description is missing.
&gt; 
oops. I have to check doxygen comments again and again!
Thanks for your comments.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:577
&gt; &gt; +Ewk_Settings* ewk_view_settings_get(Evas_Object* ewkView)
&gt; 
&gt; Use *const* keyword for _get() function.
&gt; 
my mistake. I have to add const.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; + * @return the Ewk_Settings of this view
&gt; 
&gt; Need to mention what is return on failure.

sure. I will add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669823</commentid>
    <comment_count>16</comment_count>
      <attachid>152422</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 05:27:50 -0700</bug_when>
    <thetext>Created attachment 152422
patch for ewk_settings.

Fixed for Gyuyoung&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669830</commentid>
    <comment_count>17</comment_count>
      <attachid>152422</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-14 07:55:44 -0700</bug_when>
    <thetext>Comment on attachment 152422
patch for ewk_settings.

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:50
&gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);

Useless assignment. You could return directly.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:511
&gt; +    priv-&gt;settings = ewk_settings_new(WKPageGroupGetPreferences(WKPageGetPageGroup(toAPI(priv-&gt;pageClient-&gt;page()))));

why not use pageGroupRef directly instead of retrieving it again from the pageClient you have just created?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; + * @return the Ewk_Settings of this view or @c 0 on failure

I would prefer NULL instead of 0, since this is a C API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669833</commentid>
    <comment_count>18</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 08:23:06 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 152422 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152422&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:50
&gt; &gt; +    Ewk_Settings* settings = new Ewk_Settings(wkPreferences);
&gt; 
&gt; Useless assignment. You could return directly.

Yes, I will change that.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:511
&gt; &gt; +    priv-&gt;settings = ewk_settings_new(WKPageGroupGetPreferences(WKPageGetPageGroup(toAPI(priv-&gt;pageClient-&gt;page()))));
&gt; 
&gt; why not use pageGroupRef directly instead of retrieving it again from the pageClient you have just created?
&gt; 

We can not use pageGroupRef directly because it can be 0.
If pageGroupRef is 0, newly created WebPageProxy&apos;s PageGroup will be the default PageGroup.
so, we have to get PageGroup from the created WebPageProxy.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; + * @return the Ewk_Settings of this view or @c 0 on failure
&gt; 
&gt; I would prefer NULL instead of 0, since this is a C API.

OK, I will change that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669834</commentid>
    <comment_count>19</comment_count>
      <attachid>152424</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-14 08:33:45 -0700</bug_when>
    <thetext>Created attachment 152424
patch for ewk_settings.

Fixed for Christophe&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669835</commentid>
    <comment_count>20</comment_count>
      <attachid>152424</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-14 08:36:00 -0700</bug_when>
    <thetext>Comment on attachment 152424
patch for ewk_settings.

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669900</commentid>
    <comment_count>21</comment_count>
      <attachid>152424</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-14 18:09:10 -0700</bug_when>
    <thetext>Comment on attachment 152424
patch for ewk_settings.

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; + * @return the Ewk_Settings of this view or @c NULL on failure

Use 0 instead of NULL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669934</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-14 23:40:43 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 152424 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; + * @return the Ewk_Settings of this view or @c NULL on failure
&gt; 
&gt; Use 0 instead of NULL.

gyuyoung, I asked her to do the exact opposite :) Could you please explain why?
In my opinion, this is a public C API so NULL is not appropriate than 0. If you look at EVAS documentation, they seem to use NULL in the doc as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670070</commentid>
    <comment_count>23</comment_count>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-07-15 21:43:15 -0700</bug_when>
    <thetext>How about using the similar function name to webkit1?

Webkit1:
ewk_view_setting_auto_load_images_get
ewk_view_setting_auto_load_images_set
ewk_view_setting_enable_scripts_get
ewk_view_setting_enable_scripts_set

So, I think it&apos;s better to use the below function name for webkit2
ewk_settings_auto_load_images_get
ewk_settings_auto_load_images_set
ewk_settings_enable_scripts_get
ewk_settings_enable_scripts_set

Could you please express your opinion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670096</commentid>
    <comment_count>24</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-15 22:52:38 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (From update of attachment 152424 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; &gt; + * @return the Ewk_Settings of this view or @c NULL on failure
&gt; &gt; 
&gt; &gt; Use 0 instead of NULL.
&gt; 
&gt; gyuyoung, I asked her to do the exact opposite :) Could you please explain why?
&gt; In my opinion, this is a public C API so NULL is not appropriate than 0. If you look at EVAS documentation, they seem to use NULL in the doc as well.

EFL port has used 0 instead of NULL. This is webkit style. If you think we should use NULL instead of 0, you have to discuss it with webkit-efl mailing list first. I think we need to adhere this style until deciding it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670105</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-15 23:12:08 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; (From update of attachment 152424 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; &gt; &gt; + * @return the Ewk_Settings of this view or @c NULL on failure
&gt; &gt; &gt; 
&gt; &gt; &gt; Use 0 instead of NULL.
&gt; &gt; 
&gt; &gt; gyuyoung, I asked her to do the exact opposite :) Could you please explain why?
&gt; &gt; In my opinion, this is a public C API so NULL is not appropriate than 0. If you look at EVAS documentation, they seem to use NULL in the doc as well.
&gt; 
&gt; EFL port has used 0 instead of NULL. This is webkit style. If you think we should use NULL instead of 0, you have to discuss it with webkit-efl mailing list first. I think we need to adhere this style until deciding it.

Since when are we following WebKit style in public C headers?
Then, let&apos;s move the stars towards the data types too :)

Using 0 here is wrong: http://lwn.net/Articles/93574/
If you really want to take this to the mailing list, we can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670107</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-15 23:13:46 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; (From update of attachment 152424 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; &gt; &gt; &gt; + * @return the Ewk_Settings of this view or @c NULL on failure
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Use 0 instead of NULL.
&gt; &gt; &gt; 
&gt; &gt; &gt; gyuyoung, I asked her to do the exact opposite :) Could you please explain why?
&gt; &gt; &gt; In my opinion, this is a public C API so NULL is not appropriate than 0. If you look at EVAS documentation, they seem to use NULL in the doc as well.
&gt; &gt; 
&gt; &gt; EFL port has used 0 instead of NULL. This is webkit style. If you think we should use NULL instead of 0, you have to discuss it with webkit-efl mailing list first. I think we need to adhere this style until deciding it.
&gt; 
&gt; Since when are we following WebKit style in public C headers?
&gt; Then, let&apos;s move the stars towards the data types too :)
&gt; 
&gt; Using 0 here is wrong: http://lwn.net/Articles/93574/
&gt; If you really want to take this to the mailing list, we can.

Your rule is undocumented it seems by the way:
http://trac.webkit.org/wiki/EFLWebKitCodingStyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670113</commentid>
    <comment_count>27</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-15 23:25:23 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; How about using the similar function name to webkit1?
&gt; 
&gt; Webkit1:
&gt; ewk_view_setting_auto_load_images_get
&gt; ewk_view_setting_auto_load_images_set
&gt; ewk_view_setting_enable_scripts_get
&gt; ewk_view_setting_enable_scripts_set
&gt; 
&gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; ewk_settings_auto_load_images_get
&gt; ewk_settings_auto_load_images_set
&gt; ewk_settings_enable_scripts_get
&gt; ewk_settings_enable_scripts_set
&gt; 
&gt; Could you please express your opinion?

There was similar issue on other bug. I think we need to decide if we follow WK1 EFL coding style first. So, I sent an email to webkit-efl dev. Let&apos;s discuss this on mailing list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670118</commentid>
    <comment_count>28</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-15 23:27:49 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (In reply to comment #24)
&gt; &gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; &gt; (From update of attachment 152424 [details] [details] [details] [details] [details])
&gt; &gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:263
&gt; &gt; &gt; &gt; &gt; &gt; + * @return the Ewk_Settings of this view or @c NULL on failure
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Use 0 instead of NULL.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; gyuyoung, I asked her to do the exact opposite :) Could you please explain why?
&gt; &gt; &gt; &gt; In my opinion, this is a public C API so NULL is not appropriate than 0. If you look at EVAS documentation, they seem to use NULL in the doc as well.
&gt; &gt; &gt; 
&gt; &gt; &gt; EFL port has used 0 instead of NULL. This is webkit style. If you think we should use NULL instead of 0, you have to discuss it with webkit-efl mailing list first. I think we need to adhere this style until deciding it.
&gt; &gt; 
&gt; &gt; Since when are we following WebKit style in public C headers?
&gt; &gt; Then, let&apos;s move the stars towards the data types too :)
&gt; &gt; 
&gt; &gt; Using 0 here is wrong: http://lwn.net/Articles/93574/
&gt; &gt; If you really want to take this to the mailing list, we can.
&gt; 
&gt; Your rule is undocumented it seems by the way:
&gt; http://trac.webkit.org/wiki/EFLWebKitCodingStyle

Unfortunately, it seems this is implicit rule so far. As you know, all EFL APIs have used 0 instead of NULL so far. So, I think we need to fix it for all APIs as once. If not, this can make confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670140</commentid>
    <comment_count>29</comment_count>
      <attachid>152424</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-07-16 00:11:59 -0700</bug_when>
    <thetext>Comment on attachment 152424
patch for ewk_settings.

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:23
&gt; + * @brief   Describes the settings API.

From API from of view there is a lack of detailed description how those settings are connected with ewk view object. Does ewk_settings exist one object peer application or is it created for each view? If the setting was changed for instance, ewk_settings_javascript_enabled_set(setting, EINA_TRUE) does it mean that javascript is enabled for all views?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670142</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-16 00:13:49 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; How about using the similar function name to webkit1?
&gt; 
&gt; Webkit1:
&gt; ewk_view_setting_auto_load_images_get
&gt; ewk_view_setting_auto_load_images_set
&gt; ewk_view_setting_enable_scripts_get
&gt; ewk_view_setting_enable_scripts_set
&gt; 
&gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; ewk_settings_auto_load_images_get
&gt; ewk_settings_auto_load_images_set
&gt; ewk_settings_enable_scripts_get
&gt; ewk_settings_enable_scripts_set
&gt; 
&gt; Could you please express your opinion?

It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.

I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670148</commentid>
    <comment_count>31</comment_count>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-07-16 00:21:21 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #23)
&gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; 
&gt; &gt; Webkit1:
&gt; &gt; ewk_view_setting_auto_load_images_get
&gt; &gt; ewk_view_setting_auto_load_images_set
&gt; &gt; ewk_view_setting_enable_scripts_get
&gt; &gt; ewk_view_setting_enable_scripts_set
&gt; &gt; 
&gt; &gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; &gt; ewk_settings_auto_load_images_get
&gt; &gt; ewk_settings_auto_load_images_set
&gt; &gt; ewk_settings_enable_scripts_get
&gt; &gt; ewk_settings_enable_scripts_set
&gt; &gt; 
&gt; &gt; Could you please express your opinion?
&gt; 
&gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; 
&gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.


I&apos;m sorry that it was confused.
I think that ewk_setting or ewk_settings is good and my point is just function name.

ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670150</commentid>
    <comment_count>32</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-16 00:24:04 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; 
&gt; &gt; &gt; Webkit1:
&gt; &gt; &gt; ewk_view_setting_auto_load_images_get
&gt; &gt; &gt; ewk_view_setting_auto_load_images_set
&gt; &gt; &gt; ewk_view_setting_enable_scripts_get
&gt; &gt; &gt; ewk_view_setting_enable_scripts_set
&gt; &gt; &gt; 
&gt; &gt; &gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; &gt; &gt; ewk_settings_auto_load_images_get
&gt; &gt; &gt; ewk_settings_auto_load_images_set
&gt; &gt; &gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; ewk_settings_enable_scripts_set
&gt; &gt; &gt; 
&gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; 
&gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; 
&gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; 
&gt; 
&gt; I&apos;m sorry that it was confused.
&gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; 
&gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get

Oh right, I misread your comment, sorry. Well, then I disagree :)
Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670159</commentid>
    <comment_count>33</comment_count>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-07-16 00:36:22 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; (In reply to comment #30)
&gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Webkit1:
&gt; &gt; &gt; &gt; ewk_view_setting_auto_load_images_get
&gt; &gt; &gt; &gt; ewk_view_setting_auto_load_images_set
&gt; &gt; &gt; &gt; ewk_view_setting_enable_scripts_get
&gt; &gt; &gt; &gt; ewk_view_setting_enable_scripts_set
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; &gt; &gt; &gt; ewk_settings_auto_load_images_get
&gt; &gt; &gt; &gt; ewk_settings_auto_load_images_set
&gt; &gt; &gt; &gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; &gt; ewk_settings_enable_scripts_set
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; &gt; 
&gt; &gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; &gt; 
&gt; &gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; I&apos;m sorry that it was confused.
&gt; &gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; &gt; 
&gt; &gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get
&gt; 
&gt; Oh right, I misread your comment, sorry. Well, then I disagree :)
&gt; Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.

GTK port uses &quot;settings&quot; word for view settings.
static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec);

They use &quot;context&quot; word for &quot;global&quot; settings like the below
WEBKIT_API void webkit_web_context_set_cache_model(WebKitWebContext *context, WebKitCacheModel cache_model);

So, I think ewk_setting is good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670183</commentid>
    <comment_count>34</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-16 01:14:02 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; (In reply to comment #30)
&gt; &gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Webkit1:
&gt; &gt; &gt; &gt; &gt; ewk_view_setting_auto_load_images_get
&gt; &gt; &gt; &gt; &gt; ewk_view_setting_auto_load_images_set
&gt; &gt; &gt; &gt; &gt; ewk_view_setting_enable_scripts_get
&gt; &gt; &gt; &gt; &gt; ewk_view_setting_enable_scripts_set
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; So, I think it&apos;s better to use the below function name for webkit2
&gt; &gt; &gt; &gt; &gt; ewk_settings_auto_load_images_get
&gt; &gt; &gt; &gt; &gt; ewk_settings_auto_load_images_set
&gt; &gt; &gt; &gt; &gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; &gt; &gt; ewk_settings_enable_scripts_set
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m sorry that it was confused.
&gt; &gt; &gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; &gt; &gt; 
&gt; &gt; &gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get
&gt; &gt; 
&gt; &gt; Oh right, I misread your comment, sorry. Well, then I disagree :)
&gt; &gt; Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.
&gt; 
&gt; GTK port uses &quot;settings&quot; word for view settings.
&gt; static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec);
&gt; 
&gt; They use &quot;context&quot; word for &quot;global&quot; settings like the below
&gt; WEBKIT_API void webkit_web_context_set_cache_model(WebKitWebContext *context, WebKitCacheModel cache_model);
&gt; 
&gt; So, I think ewk_setting is good.

Right, both the GTK and Qt ports are omitting &quot;view&quot; from the name. It&apos;s fine by me then if no one else has any issue with &quot;ewk_settings&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670188</commentid>
    <comment_count>35</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-16 01:37:36 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 152424 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=152424&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:23
&gt; &gt; + * @brief   Describes the settings API.
&gt; 
&gt; From API from of view there is a lack of detailed description how those settings are connected with ewk view object. Does ewk_settings exist one object peer application or is it created for each view? If the setting was changed for instance, ewk_settings_javascript_enabled_set(setting, EINA_TRUE) does it mean that javascript is enabled for all views?

Thanks for your comments.
I have to add detailed description.

The ewk_settings is connected with page group. That means the ewk_settings_javascript_enabled_set() will change the views in the same page group.
This patch can cause the confusion because the ewk_view has the ewk_settings.
so, I have to think about this patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670194</commentid>
    <comment_count>36</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-16 01:51:32 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; (In reply to comment #30)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;m sorry that it was confused.
&gt; &gt; &gt; &gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; 
&gt; &gt; &gt; Oh right, I misread your comment, sorry. Well, then I disagree :)
&gt; &gt; &gt; Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.
&gt; &gt; 
&gt; &gt; GTK port uses &quot;settings&quot; word for view settings.
&gt; &gt; static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec);
&gt; &gt; 
&gt; &gt; They use &quot;context&quot; word for &quot;global&quot; settings like the below
&gt; &gt; WEBKIT_API void webkit_web_context_set_cache_model(WebKitWebContext *context, WebKitCacheModel cache_model);
&gt; &gt; 
&gt; &gt; So, I think ewk_setting is good.
&gt; 
&gt; Right, both the GTK and Qt ports are omitting &quot;view&quot; from the name. It&apos;s fine by me then if no one else has any issue with &quot;ewk_settings&quot;.

Dear Christophe, Jongseok and all,

I think this patch causes the confusion because ewk_settings is connected to the ewk_view.
so, someone can think ewk_settings set the specific ewk_view and someone can think ewk_settings is for global settings.
However, both are wrong. ewk_settings is for page group and views in the page group.

So, how about moving settings to the ewk_page_group?
The page group (WKBrowsingContextGroup.mm) has the WKPreferences in the mac port, and the qwebpreferences.cpp uses the WKPreference and the view has qwebpreferences like this patch.

I think mac port&apos;s style is more clear, so I want to modify this patch for that.

How do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670935</commentid>
    <comment_count>37</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-16 20:23:32 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #34)
&gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #30)
&gt; &gt; &gt; &gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; &gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I&apos;m sorry that it was confused.
&gt; &gt; &gt; &gt; &gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Oh right, I misread your comment, sorry. Well, then I disagree :)
&gt; &gt; &gt; &gt; Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.
&gt; &gt; &gt; 
&gt; &gt; &gt; GTK port uses &quot;settings&quot; word for view settings.
&gt; &gt; &gt; static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec);
&gt; &gt; &gt; 
&gt; &gt; &gt; They use &quot;context&quot; word for &quot;global&quot; settings like the below
&gt; &gt; &gt; WEBKIT_API void webkit_web_context_set_cache_model(WebKitWebContext *context, WebKitCacheModel cache_model);
&gt; &gt; &gt; 
&gt; &gt; &gt; So, I think ewk_setting is good.
&gt; &gt; 
&gt; &gt; Right, both the GTK and Qt ports are omitting &quot;view&quot; from the name. It&apos;s fine by me then if no one else has any issue with &quot;ewk_settings&quot;.
&gt; 
&gt; Dear Christophe, Jongseok and all,
&gt; 
&gt; I think this patch causes the confusion because ewk_settings is connected to the ewk_view.
&gt; so, someone can think ewk_settings set the specific ewk_view and someone can think ewk_settings is for global settings.
&gt; However, both are wrong. ewk_settings is for page group and views in the page group.
&gt; 
&gt; So, how about moving settings to the ewk_page_group?
&gt; The page group (WKBrowsingContextGroup.mm) has the WKPreferences in the mac port, and the qwebpreferences.cpp uses the WKPreference and the view has qwebpreferences like this patch.
&gt; 
&gt; I think mac port&apos;s style is more clear, so I want to modify this patch for that.
&gt; 
&gt; How do you think?

It make sense to me.
If then, can you make a bug for ewk_page_group first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670975</commentid>
    <comment_count>38</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-16 22:07:42 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; (In reply to comment #36)
&gt; &gt; (In reply to comment #34)
&gt; &gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; &gt; &gt; (In reply to comment #30)
&gt; &gt; &gt; &gt; &gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; How about using the similar function name to webkit1?
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Could you please express your opinion?
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; &gt; It is a good point that all the WKPreferences are associated to a PageGroup and for us to a view since we don&apos;t have page groups in Ewk APIs. As a consequence, all the preferences in this patch (and the others to come) are specific to a view.
&gt; &gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; &gt; I believe Jongseok Yang is right, we need to rename the files and methods to &quot;ewk_view_setting&quot; or &quot;ewk_view_settings&quot;. Personally, I have a preference for the plural version but since we used ewk_view_setting in WK1, we can use that for consistency.
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; I&apos;m sorry that it was confused.
&gt; &gt; &gt; &gt; &gt; &gt; I think that ewk_setting or ewk_settings is good and my point is just function name.
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; ewk_settings_javascript_enabled_get -&gt; ewk_settings_enable_scripts_get
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Oh right, I misread your comment, sorry. Well, then I disagree :)
&gt; &gt; &gt; &gt; &gt; Those are view-specific settings and right now they can be confused as &quot;global&quot; settings.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; GTK port uses &quot;settings&quot; word for view settings.
&gt; &gt; &gt; &gt; static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; They use &quot;context&quot; word for &quot;global&quot; settings like the below
&gt; &gt; &gt; &gt; WEBKIT_API void webkit_web_context_set_cache_model(WebKitWebContext *context, WebKitCacheModel cache_model);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; So, I think ewk_setting is good.
&gt; &gt; &gt; 
&gt; &gt; &gt; Right, both the GTK and Qt ports are omitting &quot;view&quot; from the name. It&apos;s fine by me then if no one else has any issue with &quot;ewk_settings&quot;.
&gt; &gt; 
&gt; &gt; Dear Christophe, Jongseok and all,
&gt; &gt; 
&gt; &gt; I think this patch causes the confusion because ewk_settings is connected to the ewk_view.
&gt; &gt; so, someone can think ewk_settings set the specific ewk_view and someone can think ewk_settings is for global settings.
&gt; &gt; However, both are wrong. ewk_settings is for page group and views in the page group.
&gt; &gt; 
&gt; &gt; So, how about moving settings to the ewk_page_group?
&gt; &gt; The page group (WKBrowsingContextGroup.mm) has the WKPreferences in the mac port, and the qwebpreferences.cpp uses the WKPreference and the view has qwebpreferences like this patch.
&gt; &gt; 
&gt; &gt; I think mac port&apos;s style is more clear, so I want to modify this patch for that.
&gt; &gt; 
&gt; &gt; How do you think?
&gt; 
&gt; It make sense to me.
&gt; If then, can you make a bug for ewk_page_group first?

I think ewk_page_group is necessary not only settings, but WK2 EFL port.
so, I&apos;ve created new Bug for that.
https://bugs.webkit.org/show_bug.cgi?id=91468</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672007</commentid>
    <comment_count>39</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 22:57:54 -0700</bug_when>
    <thetext>The confusion from ewk_settings can be solved if I make each view in its own group like Qt port.

So, I don&apos;t want to make ewk_view_group and I&apos;m going to add code to create WebPageGroup per ewk_view instead of that.
That means, ewk_settings can set preferences for only one ewk_view.

I&apos;m going to upload new patch for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672026</commentid>
    <comment_count>40</comment_count>
      <attachid>152938</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-17 23:33:00 -0700</bug_when>
    <thetext>Created attachment 152938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672076</commentid>
    <comment_count>41</comment_count>
      <attachid>152951</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-18 00:30:13 -0700</bug_when>
    <thetext>Created attachment 152951
Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686474</commentid>
    <comment_count>42</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-08-03 02:27:28 -0700</bug_when>
    <thetext>I have a question related to this patch. Why did you choose class name &quot;ewk_settings&quot;? All other ports have &quot;preferences&quot;, moreover, WK API is also called WKPreferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693258</commentid>
    <comment_count>43</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-12 06:20:59 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; I have a question related to this patch. Why did you choose class name &quot;ewk_settings&quot;? All other ports have &quot;preferences&quot;, moreover, WK API is also called WKPreferences.

I choose the &quot;ewk_settings&quot; because WebKit1 EFL port also using that name.
I think &quot;ewk_settings&quot; is more familiar to WebKit EFL developers. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693261</commentid>
    <comment_count>44</comment_count>
      <attachid>157896</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-12 06:51:25 -0700</bug_when>
    <thetext>Created attachment 157896
Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693279</commentid>
    <comment_count>45</comment_count>
      <attachid>157896</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-08-12 09:12:11 -0700</bug_when>
    <thetext>Comment on attachment 157896
Rebased

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

&gt; Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp:53
&gt; -    m_page = context-&gt;createWebPage(this, pageGroup);
&gt; +    if (pageGroup)
&gt; +        m_page = context-&gt;createWebPage(this, pageGroup);
&gt; +    else
&gt; +        m_page = context-&gt;createWebPage(this, WebPageGroup::create().get());

Is this really needed? WebContext::createWebPage already falls back to a default page group if pageGroup is 0.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:682
&gt; +    priv-&gt;settings = ewk_settings_new(WKPageGroupGetPreferences(WKPageGetPageGroup(toAPI(priv-&gt;pageClient-&gt;page()))));

Since ewk_settings_new is private and simply creates a new instance on the heap, isn&apos;t it better to move the structure definition to ewk_settings_private.h and use an OwnPtr here. You then do not need to manually manage the allocated memory anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693407</commentid>
    <comment_count>46</comment_count>
      <attachid>157896</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-12 23:53:39 -0700</bug_when>
    <thetext>Comment on attachment 157896
Rebased

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

Thank you for your advice :)

&gt;&gt; Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp:53
&gt;&gt; +        m_page = context-&gt;createWebPage(this, WebPageGroup::create().get());
&gt; 
&gt; Is this really needed? WebContext::createWebPage already falls back to a default page group if pageGroup is 0.

I really needed above codes because I want that one ewk_view has one WebPageGroup.
If we set the default page group when pageGroup is 0, some ewk_views will share the one WebPageGropup (default page group),
and it will make users of ewk_view confused.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:682
&gt;&gt; +    priv-&gt;settings = ewk_settings_new(WKPageGroupGetPreferences(WKPageGetPageGroup(toAPI(priv-&gt;pageClient-&gt;page()))));
&gt; 
&gt; Since ewk_settings_new is private and simply creates a new instance on the heap, isn&apos;t it better to move the structure definition to ewk_settings_private.h and use an OwnPtr here. You then do not need to manually manage the allocated memory anymore.

I think that is a good idea, so I will change codes like that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693410</commentid>
    <comment_count>47</comment_count>
      <attachid>157896</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-12 23:56:27 -0700</bug_when>
    <thetext>Comment on attachment 157896
Rebased

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp:53
&gt;&gt;&gt; -    m_page = context-&gt;createWebPage(this, pageGroup);
&gt;&gt;&gt; +    if (pageGroup)
&gt;&gt;&gt; +        m_page = context-&gt;createWebPage(this, pageGroup);
&gt;&gt;&gt; +    else
&gt;&gt;&gt; +        m_page = context-&gt;createWebPage(this, WebPageGroup::create().get());
&gt;&gt; 
&gt;&gt; Is this really needed? WebContext::createWebPage already falls back to a default page group if pageGroup is 0.
&gt; 
&gt; I really needed above codes because I want that one ewk_view has one WebPageGroup.
&gt; If we set the default page group when pageGroup is 0, some ewk_views will share the one WebPageGropup (default page group),
&gt; and it will make users of ewk_view confused.

Additionally, the WebPageGroup has one WebPreferences, so one WebPageGroup means one WebPreferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693414</commentid>
    <comment_count>48</comment_count>
      <attachid>157930</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-13 00:00:48 -0700</bug_when>
    <thetext>Created attachment 157930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693446</commentid>
    <comment_count>49</comment_count>
      <attachid>157930</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 01:32:07 -0700</bug_when>
    <thetext>Comment on attachment 157930
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:2
&gt; + * Copyright (C) 2012 Samsung Electronics

Eunmi, I was told BSD license has more benefits than LGPL. How do you think about it?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:32
&gt; +

Don&apos;t you need to use &quot;enable = !! enable&quot; ? EFL port has used double not operator(!!) in order to support bit field operation in Eina_Bool.

See also, http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_settings.cpp#L261

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:48
&gt; +

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:18
&gt; + *

Nit : Unneeded line.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:39
&gt; +    _Ewk_Settings(WKPreferencesRef wkPreferences)

Please add *explicit* keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693634</commentid>
    <comment_count>50</comment_count>
      <attachid>157930</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-13 07:19:36 -0700</bug_when>
    <thetext>Comment on attachment 157930
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:2
&gt;&gt; + * Copyright (C) 2012 Samsung Electronics
&gt; 
&gt; Eunmi, I was told BSD license has more benefits than LGPL. How do you think about it?

I agree with you and I will change the copyright :)

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:32
&gt;&gt; +
&gt; 
&gt; Don&apos;t you need to use &quot;enable = !! enable&quot; ? EFL port has used double not operator(!!) in order to support bit field operation in Eina_Bool.
&gt; 
&gt; See also, http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_settings.cpp#L261

In this case, the parameter &quot;Eina_Bool enable&quot; is set to the &quot;bool&quot; type variable in the WKPreferencesSetJavaScriptEnabled(), so we don&apos;t have to use double not operator here because bool type variable can have only true or false.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:18
&gt;&gt; + *
&gt; 
&gt; Nit : Unneeded line.

I will change this copyright to BSD :)

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings_private.h:39
&gt;&gt; +    _Ewk_Settings(WKPreferencesRef wkPreferences)
&gt; 
&gt; Please add *explicit* keyword.

Thanks, I will add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693673</commentid>
    <comment_count>51</comment_count>
      <attachid>158004</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-13 08:22:46 -0700</bug_when>
    <thetext>Created attachment 158004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693696</commentid>
    <comment_count>52</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 08:54:44 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; In this case, the parameter &quot;Eina_Bool enable&quot; is set to the &quot;bool&quot; type variable in the WKPreferencesSetJavaScriptEnabled(), so we don&apos;t have to use double not operator here because bool type variable can have only true or false.

Yes, it looks this is not strict rule in WebKit. But, this is can be useful when variable was initialized as bit operation as below,

   Eina_Bool enable : 1;

If application passes a bool variable which is set as bit operation, API needs to use &quot;= !!&quot;. 

I would like to know how does Kubo think about this. CC&apos;ing Kubo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693859</commentid>
    <comment_count>53</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-08-13 11:20:07 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; (In reply to comment #50)
&gt; &gt; In this case, the parameter &quot;Eina_Bool enable&quot; is set to the &quot;bool&quot; type variable in the WKPreferencesSetJavaScriptEnabled(), so we don&apos;t have to use double not operator here because bool type variable can have only true or false.
&gt; 
&gt; Yes, it looks this is not strict rule in WebKit. But, this is can be useful when variable was initialized as bit operation as below,
&gt; 
&gt;    Eina_Bool enable : 1;
&gt; 
&gt; If application passes a bool variable which is set as bit operation, API needs to use &quot;= !!&quot;. 

Sorry, when you poked me on IRC I didn&apos;t realize you meant this case here.

Using the double negation is useful if you end up passing a value other than 0 or 1 to Eina_Bool (which is possible, since it&apos;s an unsigned char typedef) and keep manipulating it.

In this case here, we&apos;re directly passing the Eina_Bool to a function that takes a bool, which, according to the C++ standard, can only assume the values 0 or 1, so what EunMi is doing is safe.

This also applies to the example you linked to in WK1&apos;s ewk_setting.cpp; it makes sense to do this where we do store an Eina_Bool in a bitfield, such as in &lt;http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.cpp#L2584&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694322</commentid>
    <comment_count>54</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 18:00:22 -0700</bug_when>
    <thetext>(In reply to comment #53)
 
&gt; Sorry, when you poked me on IRC I didn&apos;t realize you meant this case here.
&gt; 
&gt; Using the double negation is useful if you end up passing a value other than 0 or 1 to Eina_Bool (which is possible, since it&apos;s an unsigned char typedef) and keep manipulating it.
&gt; 
&gt; In this case here, we&apos;re directly passing the Eina_Bool to a function that takes a bool, which, according to the C++ standard, can only assume the values 0 or 1, so what EunMi is doing is safe.
&gt; 
&gt; This also applies to the example you linked to in WK1&apos;s ewk_setting.cpp; it makes sense to do this where we do store an Eina_Bool in a bitfield, such as in &lt;http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.cpp#L2584&gt;.

Kubo, thank you for your comment. It looks I thought unnecessary things. Ok, I agree with your explanation.

LGTM on latest patch. Thank you Eunmi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694378</commentid>
    <comment_count>55</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 18:40:12 -0700</bug_when>
    <thetext>I add this case(!!) to WebKit EFL coding style. :) If there is something wrong, please fix it. Thanks.

https://trac.webkit.org/wiki/EFLWebKitCodingStyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694384</commentid>
    <comment_count>56</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-13 18:52:41 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; I add this case(!!) to WebKit EFL coding style. :) If there is something wrong, please fix it. Thanks.
&gt; 
&gt; https://trac.webkit.org/wiki/EFLWebKitCodingStyle

Thanks Gyuyoung,
We have to be careful to use C style boolean type! :)

I&apos;ve add &quot;compare with&quot; in the your sentence of EFLWebKitCodingStyle page.
so, the sentence is as follows:
&quot;Use double not operator(!!) when you modify or compare with a Eina Bool member variable which stores a value in a bit field.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694425</commentid>
    <comment_count>57</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-08-13 19:34:01 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; I add this case(!!) to WebKit EFL coding style. :) If there is something wrong, please fix it. Thanks.
&gt; 
&gt; https://trac.webkit.org/wiki/EFLWebKitCodingStyle

I&apos;ve added a better explanation for the issue (and corrected the correct example :-) and added some syntax highlighting.

To be clear, bools in bitfields work fine; Eina_Bools in bitfields need extra caution (see my explanation in the wiki). At the end, though, one just needs to understand what&apos;s going on and have some common sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694428</commentid>
    <comment_count>58</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-13 19:39:07 -0700</bug_when>
    <thetext>(In reply to comment #57)

&gt; To be clear, bools in bitfields work fine; Eina_Bools in bitfields need extra caution (see my explanation in the wiki). At the end, though, one just needs to understand what&apos;s going on and have some common sense.

Looks much better than before. Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694845</commentid>
    <comment_count>59</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-14 05:03:18 -0700</bug_when>
    <thetext>LGTM, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703857</commentid>
    <comment_count>60</comment_count>
      <attachid>158004</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-24 00:41:27 -0700</bug_when>
    <thetext>Comment on attachment 158004
Patch

Eunmi, could you add unit test for this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703861</commentid>
    <comment_count>61</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-24 00:47:19 -0700</bug_when>
    <thetext>(In reply to comment #60)
&gt; (From update of attachment 158004 [details])
&gt; Eunmi, could you add unit test for this patch ?

sure, I will add it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704828</commentid>
    <comment_count>62</comment_count>
      <attachid>160600</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-26 04:20:11 -0700</bug_when>
    <thetext>Created attachment 160600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704835</commentid>
    <comment_count>63</comment_count>
      <attachid>160600</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-26 05:40:54 -0700</bug_when>
    <thetext>Comment on attachment 160600
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:55
&gt; +EAPI Eina_Bool ewk_settings_enable_scripts_set(Ewk_Settings* settings, Eina_Bool enable);

Nit : Wrong &apos;*&apos; operator place.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:65
&gt; +EAPI Eina_Bool ewk_settings_enable_scripts_get(const Ewk_Settings* settings);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:76
&gt; +EAPI Eina_Bool ewk_settings_auto_load_images_set(Ewk_Settings* settings, Eina_Bool automatic);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:86
&gt; +EAPI Eina_Bool ewk_settings_auto_load_images_get(const Ewk_Settings* settings);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:353
&gt; + * @param o the view object to get Ewk_Settings

s/the view/view/g

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp:38
&gt; +    ASSERT_TRUE(ewk_settings_enable_scripts_set(settings, EINA_TRUE));

Please use standard boolean type. Other are same.

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp:194
&gt; +    ASSERT_TRUE(ewk_view_settings_get(webView()));

Is below test is more proper ?

Ewk_Settings* settings = ewk_view_settings_get(webView());
ASSERT_TRUE(settings);
ASSERT_EQ(settings, ewk_view_settings_get(webView()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708235</commentid>
    <comment_count>64</comment_count>
      <attachid>160600</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-08-29 19:57:18 -0700</bug_when>
    <thetext>Comment on attachment 160600
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:55
&gt;&gt; +EAPI Eina_Bool ewk_settings_enable_scripts_set(Ewk_Settings* settings, Eina_Bool enable);
&gt; 
&gt; Nit : Wrong &apos;*&apos; operator place.

oops. I will fix it.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:353
&gt;&gt; + * @param o the view object to get Ewk_Settings
&gt; 
&gt; s/the view/view/g

Thanks. I will fix it.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp:38
&gt;&gt; +    ASSERT_TRUE(ewk_settings_enable_scripts_set(settings, EINA_TRUE));
&gt; 
&gt; Please use standard boolean type. Other are same.

The ewk_settings_enable_scripts_set() API gets Eina_Bool type as a parameter, so I used it.
Do I have to use bool type for test cases?

&gt;&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp:194
&gt;&gt; +    ASSERT_TRUE(ewk_view_settings_get(webView()));
&gt; 
&gt; Is below test is more proper ?
&gt; 
&gt; Ewk_Settings* settings = ewk_view_settings_get(webView());
&gt; ASSERT_TRUE(settings);
&gt; ASSERT_EQ(settings, ewk_view_settings_get(webView()));

Thanks, I will change like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710536</commentid>
    <comment_count>65</comment_count>
      <attachid>161895</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 04:10:58 -0700</bug_when>
    <thetext>Created attachment 161895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710540</commentid>
    <comment_count>66</comment_count>
      <attachid>161898</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 04:16:16 -0700</bug_when>
    <thetext>Created attachment 161898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710544</commentid>
    <comment_count>67</comment_count>
      <attachid>161898</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-03 04:34:04 -0700</bug_when>
    <thetext>Comment on attachment 161898
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710550</commentid>
    <comment_count>68</comment_count>
      <attachid>161898</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-03 05:06:05 -0700</bug_when>
    <thetext>Comment on attachment 161898
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:34
&gt; +Eina_Bool ewk_settings_enable_scripts_set(Ewk_Settings* settings, Eina_Bool enable)

Not the best name. Scripts? which scripts? enable_scripting makes a lot more sense!

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:50
&gt; +Eina_Bool ewk_settings_auto_load_images_set(Ewk_Settings* settings, Eina_Bool automatic)

why not load_images_automatically? It is a lot easier to understand. It is ok though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710552</commentid>
    <comment_count>69</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 05:13:25 -0700</bug_when>
    <thetext>(In reply to comment #68)
&gt; (From update of attachment 161898 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161898&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:34
&gt; &gt; +Eina_Bool ewk_settings_enable_scripts_set(Ewk_Settings* settings, Eina_Bool enable)
&gt; 
&gt; Not the best name. Scripts? which scripts? enable_scripting makes a lot more sense!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:50
&gt; &gt; +Eina_Bool ewk_settings_auto_load_images_set(Ewk_Settings* settings, Eina_Bool automatic)
&gt; 
&gt; why not load_images_automatically? It is a lot easier to understand. It is ok though

I&apos;ve chosen those names to synchronize with WK1 APIs.
Do you think it is better to choose new name for WK2 APIs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710586</commentid>
    <comment_count>70</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 06:09:49 -0700</bug_when>
    <thetext>(In reply to comment #69)
&gt; (In reply to comment #68)
&gt; &gt; (From update of attachment 161898 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161898&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:34
&gt; &gt; &gt; +Eina_Bool ewk_settings_enable_scripts_set(Ewk_Settings* settings, Eina_Bool enable)
&gt; &gt; 
&gt; &gt; Not the best name. Scripts? which scripts? enable_scripting makes a lot more sense!
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:50
&gt; &gt; &gt; +Eina_Bool ewk_settings_auto_load_images_set(Ewk_Settings* settings, Eina_Bool automatic)
&gt; &gt; 
&gt; &gt; why not load_images_automatically? It is a lot easier to understand. It is ok though
&gt; 
&gt; I&apos;ve chosen those names to synchronize with WK1 APIs.
&gt; Do you think it is better to choose new name for WK2 APIs?

I&apos;ve decided to give better name to WK2 API without matching name with WK1 API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710588</commentid>
    <comment_count>71</comment_count>
      <attachid>161913</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 06:13:40 -0700</bug_when>
    <thetext>Created attachment 161913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710591</commentid>
    <comment_count>72</comment_count>
      <attachid>161915</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-03 06:17:31 -0700</bug_when>
    <thetext>Created attachment 161915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710653</commentid>
    <comment_count>73</comment_count>
      <attachid>161915</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 07:48:22 -0700</bug_when>
    <thetext>Comment on attachment 161915
Patch

Clearing flags on attachment: 161915

Committed r127422: &lt;http://trac.webkit.org/changeset/127422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710654</commentid>
    <comment_count>74</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 07:48:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152196</attachid>
            <date>2012-07-13 02:43:10 -0700</date>
            <delta_ts>2012-07-13 02:50:54 -0700</delta_ts>
            <desc>patch for ewk_setting.</desc>
            <filename>ewk_setting.patch</filename>
            <type>text/plain</type>
            <size>9885</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjOTAwODVjLi44MzZjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXdrX3NldHRpbmcgd2hpY2ggd3JhcHMgdGhl
IFdLUHJlZmVyZW5jZXNSZWYuCisgICAgICAgIFRoZSBld2tfc2V0dGluZyB3aWxsIGJlIGNyZWF0
ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4gZXdr
X3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3NldHRp
bmcKKyAgICAgICAgZnJvbSBld2tfdmlldyB1c2luZyBld2tfdmlld19zZXR0aW5nX2dldCBBUEku
CisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9FV2ViS2l0Mi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
LmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmcpOgorICAgICAgICAoZXdrX3NldHRp
bmdfbmV3KToKKyAgICAgICAgKGV3a19zZXR0aW5nX2ZyZWUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5nX3ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6Cisg
ICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOgorICAgICAgICAoZXdrX3ZpZXdfYmFzZV9hZGQp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0IEhUVFBT
IHN0YXR1cyB0byBXZWJLaXQyIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZTVl
NTRlNi4uNDNkYmUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcg
QEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMTcw
LDYgKzE3MSw3IEBAIENPTkZJR1VSRV9GSUxFKGVmbC9ld2Via2l0Mi5wYy5pbiAke0NNQUtFX0JJ
TkFSWV9ESVJ9L1dlYktpdDIvZWZsL2V3ZWJraXQyLnBjIEBPCiBTRVQgKEVXZWJLaXQyX0hFQURF
UlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL0VX
ZWJLaXQyLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5oIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgiCiApCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjY3MzQwMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50X3Nl
cnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKKyNp
bmNsdWRlICJld2tfc2V0dGluZy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2lu
Y2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNzk2NWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZy5jcHAKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmcuaCIKKworI2luY2x1
ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK3N0cnVjdCBfRXdrX1NldHRpbmcgeworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzOworfTsKKworRXdrX1NldHRpbmcqIGV3a19z
ZXR0aW5nX25ldyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCit7CisgICAgRXdrX1Nl
dHRpbmcqIHNldHRpbmcgPSBuZXcgRXdrX1NldHRpbmc7CisgICAgc2V0dGluZy0+cHJlZmVyZW5j
ZXMgPSB3a1ByZWZlcmVuY2VzOworCisgICAgcmV0dXJuIHNldHRpbmc7Cit9CisKK3ZvaWQgZXdr
X3NldHRpbmdfZnJlZShFd2tfU2V0dGluZyogc2V0dGluZykKK3sKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihzZXR0aW5nKTsKKworICAgIGRlbGV0ZSBzZXR0aW5nOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUxYzMwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmgKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJv
Z3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZu
ZGVmIGV3a19zZXR0aW5nX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdfaAorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGlu
ZyBFd2tfU2V0dGluZzsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAv
LyBld2tfc2V0dGluZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc2V0dGluZ19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc2V0dGluZ19wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDUxN2QxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nX3ByaXZhdGUuaApAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgZXdrX3Nl
dHRpbmdfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19zZXR0aW5nX3ByaXZhdGVfaAorCisjaW5jbHVk
ZSAiZXdrX3NldHRpbmcuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKwor
RXdrX1NldHRpbmcqIGV3a19zZXR0aW5nX25ldyhXS1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQgZXdr
X3NldHRpbmdfZnJlZShFd2tfU2V0dGluZyopOworCisjZW5kaWYgLy8gZXdrX3NldHRpbmdfcHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
aW5kZXggZWIxZTVlNy4uZTI5Y2M4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzEsMTIgKzMxLDE0IEBACiAjaW5jbHVkZSAiZXdrX2Nv
bnRleHQuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192
aWV3X3BvbGljeV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9wcml2YXRlLmgiCiAj
aW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTUwLDYgKzUyLDcgQEAgc3RydWN0
IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIGNvbnN0IGNoYXIqIHVyaTsKICAgICBjb25z
dCBjaGFyKiB0aXRsZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRpbmdSZXNvdXJjZXNN
YXA7CisgICAgRXdrX1NldHRpbmcqIHNldHRpbmc7CiAKICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhKCkKICAgICAgICAgOiB1cmkoMCkKQEAgLTI4Miw2ICsyODUsNyBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfcHJpdl9kZWwoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2KQogICAgIHByaXYt
PnBhZ2VDbGllbnQgPSBudWxscHRyOwogICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHByaXYtPnVy
aSk7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJpdi0+dGl0bGUpOworICAgIGV3a19zZXR0
aW5nX2ZyZWUocHJpdi0+c2V0dGluZyk7CiAgICAgZGVsZXRlIHByaXY7CiB9CiAKQEAgLTUwMyw2
ICs1MDcsNyBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdQogICAgIH0KIAogICAgIHByaXYtPnBh
Z2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKHRvSW1wbChjb250ZXh0UmVmKSwgdG9J
bXBsKHBhZ2VHcm91cFJlZiksIGV3a1ZpZXcpOworICAgIHByaXYtPnNldHRpbmcgPSBld2tfc2V0
dGluZ19uZXcoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9B
UEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpKTsKICAgICBld2tfdmlld19sb2FkZXJfY2xp
ZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsKICAg
ICBld2tfdmlld19wb2xpY3lfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5w
YWdlKCkpLCBld2tWaWV3KTsKICAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9hdHRh
Y2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CkBAIC01NjksNiAr
NTc0LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZyogZXdrX3ZpZXdfc2V0dGluZ19nZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihz
bWFydERhdGEsIHByaXYsIDApOworCisgICAgcmV0dXJuIHByaXYtPnNldHRpbmc7Cit9CisKIC8q
KgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4g
dGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaApp
bmRleCA1ODU1MmVjLi45YjQ4MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmgKQEAgLTQ5LDYgKzQ5LDcgQEAKIAogI2luY2x1ZGUgImV3a19jb250ZXh0
LmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5nLmgiCiAj
aW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5o
IgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAgLTI1NSw2ICsyNTYsMTUgQEAgRUFQSSBF
aW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVjdCAqbyk7CiBF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCisg
KiBHZXRzIHRoZSBFd2tfU2V0dGluZyBvZiB0aGlzIHZpZXcuCisgKgorICogQHBhcmFtIG8gdGhl
IHZpZXcgb2JqZWN0IHRvIGdldCBFd2tfU2V0dGluZworICoKKyAqIEByZXR1cm4gdGhlIEV3a19T
ZXR0aW5nIG9mIHRoaXMgdmlldworICovCitFQVBJIEV3a19TZXR0aW5nKiBld2tfdmlld19zZXR0
aW5nX2dldChFdmFzX09iamVjdCogbyk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50
IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0
byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152198</attachid>
            <date>2012-07-13 02:50:54 -0700</date>
            <delta_ts>2012-07-13 22:47:27 -0700</delta_ts>
            <desc>patch for ewk_setting.</desc>
            <filename>ewk_setting.patch</filename>
            <type>text/plain</type>
            <size>9859</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjOTAwODVjLi44MzZjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXdrX3NldHRpbmcgd2hpY2ggd3JhcHMgdGhl
IFdLUHJlZmVyZW5jZXNSZWYuCisgICAgICAgIFRoZSBld2tfc2V0dGluZyB3aWxsIGJlIGNyZWF0
ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4gZXdr
X3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3NldHRp
bmcKKyAgICAgICAgZnJvbSBld2tfdmlldyB1c2luZyBld2tfdmlld19zZXR0aW5nX2dldCBBUEku
CisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9FV2ViS2l0Mi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
LmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmcpOgorICAgICAgICAoZXdrX3NldHRp
bmdfbmV3KToKKyAgICAgICAgKGV3a19zZXR0aW5nX2ZyZWUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5nX3ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6Cisg
ICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOgorICAgICAgICAoZXdrX3ZpZXdfYmFzZV9hZGQp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0IEhUVFBT
IHN0YXR1cyB0byBXZWJLaXQyIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZTVl
NTRlNi4uNDNkYmUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcg
QEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMTcw
LDYgKzE3MSw3IEBAIENPTkZJR1VSRV9GSUxFKGVmbC9ld2Via2l0Mi5wYy5pbiAke0NNQUtFX0JJ
TkFSWV9ESVJ9L1dlYktpdDIvZWZsL2V3ZWJraXQyLnBjIEBPCiBTRVQgKEVXZWJLaXQyX0hFQURF
UlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL0VX
ZWJLaXQyLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5oIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgiCiApCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjY3MzQwMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50X3Nl
cnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKKyNp
bmNsdWRlICJld2tfc2V0dGluZy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2lu
Y2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNzk2NWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZy5jcHAKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmcuaCIKKworI2luY2x1
ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK3N0cnVjdCBfRXdrX1NldHRpbmcgeworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzOworfTsKKworRXdrX1NldHRpbmcqIGV3a19z
ZXR0aW5nX25ldyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCit7CisgICAgRXdrX1Nl
dHRpbmcqIHNldHRpbmcgPSBuZXcgRXdrX1NldHRpbmc7CisgICAgc2V0dGluZy0+cHJlZmVyZW5j
ZXMgPSB3a1ByZWZlcmVuY2VzOworCisgICAgcmV0dXJuIHNldHRpbmc7Cit9CisKK3ZvaWQgZXdr
X3NldHRpbmdfZnJlZShFd2tfU2V0dGluZyogc2V0dGluZykKK3sKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihzZXR0aW5nKTsKKworICAgIGRlbGV0ZSBzZXR0aW5nOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUxYzMwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nLmgKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJv
Z3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZu
ZGVmIGV3a19zZXR0aW5nX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdfaAorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGlu
ZyBFd2tfU2V0dGluZzsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAv
LyBld2tfc2V0dGluZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc2V0dGluZ19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc2V0dGluZ19wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDUxN2QxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nX3ByaXZhdGUuaApAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgZXdrX3Nl
dHRpbmdfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19zZXR0aW5nX3ByaXZhdGVfaAorCisjaW5jbHVk
ZSAiZXdrX3NldHRpbmcuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKwor
RXdrX1NldHRpbmcqIGV3a19zZXR0aW5nX25ldyhXS1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQgZXdr
X3NldHRpbmdfZnJlZShFd2tfU2V0dGluZyopOworCisjZW5kaWYgLy8gZXdrX3NldHRpbmdfcHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
aW5kZXggZWIxZTVlNy4uOGFiZjE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiZXdrX2Nv
bnRleHQuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192
aWV3X3BvbGljeV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9wcml2YXRlLmgiCiAj
aW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3Jv
dXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CkBAIC01MCw2ICs1Miw3IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsK
ICAgICBjb25zdCBjaGFyKiB1cmk7CiAgICAgY29uc3QgY2hhciogdGl0bGU7CiAgICAgTG9hZGlu
Z1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOworICAgIEV3a19TZXR0aW5nKiBzZXR0
aW5nOwogCiAgICAgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogdXJpKDApCkBA
IC0yODIsNiArMjg1LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3
X1ByaXZhdGVfRGF0YSogcHJpdikKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gbnVsbHB0cjsKICAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwcml2LT51cmkpOwogICAgIGVpbmFfc3RyaW5nc2hhcmVf
ZGVsKHByaXYtPnRpdGxlKTsKKyAgICBld2tfc2V0dGluZ19mcmVlKHByaXYtPnNldHRpbmcpOwog
ICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC01MDMsNiArNTA3LDcgQEAgRXZhc19PYmplY3QqIGV3
a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3UKICAgICB9CiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6
OmNyZWF0ZSh0b0ltcGwoY29udGV4dFJlZiksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBld2tWaWV3
KTsKKyAgICBwcml2LT5zZXR0aW5nID0gZXdrX3NldHRpbmdfbmV3KFdLUGFnZUdyb3VwR2V0UHJl
ZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KSkpKSk7CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFn
ZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9h
dHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdr
X3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQt
PnBhZ2UoKSksIGV3a1ZpZXcpOwpAQCAtNTY5LDYgKzU3NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfc3RvcChFdmFzX09iamVjdCogZXdrVmlldykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdr
X1NldHRpbmcqIGV3a192aWV3X3NldHRpbmdfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorewor
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKKworICAg
IHJldHVybiBwcml2LT5zZXR0aW5nOworfQorCiAvKioKICAqIEBpbnRlcm5hbAogICogTG9hZCB3
YXMgaW5pdGlhdGVkIGZvciBhIHJlc291cmNlIGluIHRoZSB2aWV3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggNTg1NTJlYy4uOWI0ODJkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBAIC00OSw2ICs0
OSw3IEBACiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKKyNpbmNsdWRlICJld2tfc2V0dGluZy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5o
IgogI2luY2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9y
LmgiCkBAIC0yNTUsNiArMjU2LDE1IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9i
eXBhc3NfY2FjaGUoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdf
c3RvcChFdmFzX09iamVjdCAqbyk7CiAKIC8qKgorICogR2V0cyB0aGUgRXdrX1NldHRpbmcgb2Yg
dGhpcyB2aWV3LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9iamVjdCB0byBnZXQgRXdrX1Nl
dHRpbmcKKyAqCisgKiBAcmV0dXJuIHRoZSBFd2tfU2V0dGluZyBvZiB0aGlzIHZpZXcKKyAqLwor
RUFQSSBFd2tfU2V0dGluZyogZXdrX3ZpZXdfc2V0dGluZ19nZXQoRXZhc19PYmplY3QqIG8pOwor
CisvKioKICAqIERlbGl2ZXJzIGEgV2ViIGludGVudCB0byB0aGUgdmlldydzIG1haW4gZnJhbWUu
CiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZGVsaXZlciB0aGUgaW50ZW50IHRvCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152408</attachid>
            <date>2012-07-13 22:47:27 -0700</date>
            <delta_ts>2012-07-14 00:45:37 -0700</delta_ts>
            <desc>patch for ewk_settings.</desc>
            <filename>ewk_setting.patch</filename>
            <type>text/plain</type>
            <size>12480</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4MTc5ZDQxLi5lNGRkMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0
aGUgV0tQcmVmZXJlbmNlc1JlZi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNy
ZWF0ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4g
ZXdrX3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzCisgICAgICAgIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
IEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19uZXcpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmll
d19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nc19nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTMgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVu
dCBkaXNrIGNhY2hlIGluIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZTVl
NTRlNi4uMjdlNzQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcg
QEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Vy
bF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3
MCw2ICsxNzEsNyBAQCBDT05GSUdVUkVfRklMRShlZmwvZXdlYmtpdDIucGMuaW4gJHtDTUFLRV9C
SU5BUllfRElSfS9XZWJLaXQyL2VmbC9ld2Via2l0Mi5wYyBATwogU0VUIChFV2ViS2l0Ml9IRUFE
RVJTCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHQuaCIKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKICkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggOGZhOTBhZS4uNThlOGY3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRf
c2VydmljZS5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgor
I2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgog
I2luY2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU0ZTg3ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAg
LTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dL
UmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK3N0cnVjdCBfRXdrX1Nl
dHRpbmdzIHsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlczsK
KworICAgIF9Fd2tfU2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQorICAg
ICAgICA6IHByZWZlcmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCitFd2tfU2V0
dGluZ3MqIGV3a19zZXR0aW5nc19uZXcoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQor
eworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3MgPSBuZXcgRXdrX1NldHRpbmdzKHdrUHJlZmVy
ZW5jZXMpOworCisgICAgcmV0dXJuIHNldHRpbmdzOworfQorCit2b2lkIGV3a19zZXR0aW5nc19m
cmVlKEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oc2V0dGluZ3MpOworCisgICAgZGVsZXRlIHNldHRpbmdzOworfQorCitFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5n
cywgRWluYV9Cb29sIGVuYWJsZWQpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVu
YWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBlbmFibGVkKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0
KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisK
K0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3
a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpCit7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBXS1ByZWZl
cmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5n
ZXQoKSwgYXV0b21hdGljKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdz
KiBzZXR0aW5ncykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjIwZDllMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApAQCAtMCwwICsxLDc3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYg
ZXdrX3NldHRpbmdzX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX2gKKworI2luY2x1ZGUgPEVpbmEu
aD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVm
IHN0cnVjdCBfRXdrX1NldHRpbmdzIEV3a19TZXR0aW5nczsKKworLyoqCisgKiBFbmFibGVzL2Rp
c2FibGVzIHRoZSBqYXZhc2NyaXB0IGV4ZWN1dGluZy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mg
RXdrX1NldHRpbmdzIHRvIHNldCBqYXZhc2NyaXB0IGV4ZWN1dGluZworICogQHBhcmFtIGVuYWJs
ZWQgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBqYXZhc2NyaXB0IGV4ZWN1dGluZworICogICAgICAg
IEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9u
IHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29s
IGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyAqc2V0dGlu
Z3MsIEVpbmFfQm9vbCBlbmFibGVkKTsKKworLyoqCisgKiBRdWVyaWVzIGlmIHRoZSBqYXZhc2Ny
aXB0IGNhbiBiZSBleGVjdXRlZC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3MgRXdrX1NldHRpbmdz
IHRvIHF1ZXJ5IGlmIHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZAorICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZAorICogICAg
ICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9C
b29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5n
cyAqc2V0dGluZ3MpOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgYXV0byBsb2FkaW5nIG9m
IHRoZSBpbWFnZXMuCisgKgorICogQHBhcmFtIHNldHRpbmdzIEV3a19TZXR0aW5ncyB0byBzZXQg
YXV0byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMKKyAqIEBwYXJhbSBhdXRvbWF0aWMgQGMgRUlOQV9U
UlVFIHRvIGVuYWJsZSBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcywKKyAqICAgICAgICBAYyBF
SU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNj
ZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tf
c2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3a19TZXR0aW5ncyAqc2V0
dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpOworCisvKioKKyAqIFF1ZXJpZXMgaWYgdGhlIGlt
YWdlcyBhcmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuCisgKgorICogQHBhcmFtIHNldHRpbmdzIEV3
a19TZXR0aW5ncyB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBsb2FkZWQgYXV0b21hdGljYWxs
eQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBh
dXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWls
dXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21h
dGljYWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX3NldHRpbmdzX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZGJlZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJp
dmF0ZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisjZGVmaW5l
IGV3a19zZXR0aW5nc19wcml2YXRlX2gKKworI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgorCitFd2tfU2V0dGluZ3MqIGV3a19zZXR0
aW5nc19uZXcoV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIGV3a19zZXR0aW5nc19mcmVlKEV3a19T
ZXR0aW5ncyopOworCisjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGViMWU1ZTcuLmVh
ZjIxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVk
ZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5o
IgorI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdf
bG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2Vi
X3Jlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTUwLDYg
KzUyLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIGNvbnN0IGNoYXIq
IHVyaTsKICAgICBjb25zdCBjaGFyKiB0aXRsZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxv
YWRpbmdSZXNvdXJjZXNNYXA7CisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5nczsKIAogICAgIF9F
d2tfVmlld19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IHVyaSgwKQpAQCAtMjgyLDYgKzI4NSw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEq
IHByaXYpCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IG51bGxwdHI7CiAgICAgZWluYV9zdHJpbmdz
aGFyZV9kZWwocHJpdi0+dXJpKTsKICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwcml2LT50aXRs
ZSk7CisgICAgZXdrX3NldHRpbmdzX2ZyZWUocHJpdi0+c2V0dGluZ3MpOwogICAgIGRlbGV0ZSBw
cml2OwogfQogCkBAIC01MDMsNiArNTA3LDcgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2Vf
YWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3UKICAg
ICB9CiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZSh0b0lt
cGwoY29udGV4dFJlZiksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBld2tWaWV3KTsKKyAgICBwcml2
LT5zZXR0aW5ncyA9IGV3a19zZXR0aW5nc19uZXcoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpKTsKICAg
ICBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5w
YWdlKCkpLCBld2tWaWV3KTsKICAgICBld2tfdmlld19wb2xpY3lfY2xpZW50X2F0dGFjaCh0b0FQ
SShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsKICAgICBld2tfdmlld19yZXNv
dXJjZV9sb2FkX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwg
ZXdrVmlldyk7CkBAIC01NjksNiArNTc0LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3Mq
IGV3a192aWV3X3NldHRpbmdzX2dldChFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tf
VklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4g
cHJpdi0+c2V0dGluZ3M7Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0
aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCA1ODU1MmVjLi4zYTc3M2E1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTQ5LDYgKzQ5LDcgQEAK
IAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2lu
Y2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2lu
Y2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCkBA
IC0yNTUsNiArMjU2LDE1IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9ieXBhc3Nf
Y2FjaGUoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc3RvcChF
dmFzX09iamVjdCAqbyk7CiAKIC8qKgorICogR2V0cyB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMg
dmlldy4KKyAqCisgKiBAcGFyYW0gbyB0aGUgdmlldyBvYmplY3QgdG8gZ2V0IEV3a19TZXR0aW5n
cworICoKKyAqIEByZXR1cm4gdGhlIEV3a19TZXR0aW5ncyBvZiB0aGlzIHZpZXcKKyAqLworRUFQ
SSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRpbmdzX2dldChFdmFzX09iamVjdCAqbyk7CisK
Ky8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4K
ICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152413</attachid>
            <date>2012-07-14 00:45:37 -0700</date>
            <delta_ts>2012-07-14 05:09:30 -0700</delta_ts>
            <desc>patch for ewk_settings.</desc>
            <filename>ewk_settings.patch</filename>
            <type>text/plain</type>
            <size>12658</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzN2IyOGRkLi4xM2RhMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0
aGUgV0tQcmVmZXJlbmNlc1JlZi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNy
ZWF0ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4g
ZXdrX3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzCisgICAgICAgIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
IEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19uZXcpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmll
d19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nc19nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTMgIFRoaWFnbyBNYXJj
b3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBQcm9wZXIgaGFuZGxpbmcgb2YgRU5BQkxFX0FQSV9URVNUUyBidWlsZCBvcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTg3MGUwZS4uZDgzNWZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3Myw2ICsxNzQsNyBAQCBTRVQgKEVXZWJLaXQyX0hF
QURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc2V0dGluZ3MuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjU4
ZThmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NGU4N2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitzdHJ1Y3Qg
X0V3a19TZXR0aW5ncyB7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVy
ZW5jZXM7CisKKyAgICBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNl
cykKKyAgICAgICAgOiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQorICAgIHsgfQorfTsKKwor
RXdrX1NldHRpbmdzKiBld2tfc2V0dGluZ3NfbmV3KFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJl
bmNlcykKK3sKKyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gbmV3IEV3a19TZXR0aW5ncyh3
a1ByZWZlcmVuY2VzKTsKKworICAgIHJldHVybiBzZXR0aW5nczsKK30KKwordm9pZCBld2tfc2V0
dGluZ3NfZnJlZShFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOKHNldHRpbmdzKTsKKworICAgIGRlbGV0ZSBzZXR0aW5nczsKK30KKworRWlu
YV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGVkKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFT
Y3JpcHRFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSwgZW5hYmxlZCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFi
bGVkX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCkp
OworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAg
V0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMuZ2V0KCksIGF1dG9tYXRpYyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9v
bCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGQ5ZTBhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKQEAgLTAsMCArMSw3
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
cHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIGV3a19zZXR0aW5nc19oCisjZGVmaW5lIGV3a19zZXR0aW5nc19oCisKKyNpbmNsdWRl
IDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
dHlwZWRlZiBzdHJ1Y3QgX0V3a19TZXR0aW5ncyBFd2tfU2V0dGluZ3M7CisKKy8qKgorICogRW5h
Ymxlcy9kaXNhYmxlcyB0aGUgamF2YXNjcmlwdCBleGVjdXRpbmcuCisgKgorICogQHBhcmFtIHNl
dHRpbmdzIEV3a19TZXR0aW5ncyB0byBzZXQgamF2YXNjcmlwdCBleGVjdXRpbmcKKyAqIEBwYXJh
bSBlbmFibGVkIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgamF2YXNjcmlwdCBleGVjdXRpbmcKKyAq
ICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFf
VFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3NldChFd2tfU2V0dGluZ3Mg
KnNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CisKKy8qKgorICogUXVlcmllcyBpZiB0aGUg
amF2YXNjcmlwdCBjYW4gYmUgZXhlY3V0ZWQuCisgKgorICogQHBhcmFtIHNldHRpbmdzIEV3a19T
ZXR0aW5ncyB0byBxdWVyeSBpZiB0aGUgamF2YXNjcmlwdCBjYW4gYmUgZXhlY3V0ZWQKKyAqCisg
KiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgamF2YXNjcmlwdCBjYW4gYmUgZXhlY3V0ZWQK
KyAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBpZiBub3Qgb3Igb24gZmFpbHVyZQorICovCitFQVBJ
IEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChjb25zdCBFd2tf
U2V0dGluZ3MgKnNldHRpbmdzKTsKKworLyoqCisgKiBFbmFibGVzL2Rpc2FibGVzIGF1dG8gbG9h
ZGluZyBvZiB0aGUgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBFd2tfU2V0dGluZ3Mg
dG8gc2V0IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzCisgKiBAcGFyYW0gYXV0b21hdGljIEBj
IEVJTkFfVFJVRSB0byBlbmFibGUgYXV0byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMsCisgKiAgICAg
ICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUg
b24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChFd2tfU2V0dGlu
Z3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBRdWVyaWVzIGlm
IHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIEBwYXJhbSBzZXR0
aW5ncyBFd2tfU2V0dGluZ3MgdG8gcXVlcnkgaWYgdGhlIGltYWdlcyBhcmUgbG9hZGVkIGF1dG9t
YXRpY2FsbHkKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2VzIGFyZSBs
b2FkZWQgYXV0b21hdGljYWxseSwKKyAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBpZiBub3Qgb3Ig
b24gZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2Vz
X2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqc2V0dGluZ3MpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19zZXR0aW5nc19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3By
aXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmRiZWY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzX3ByaXZhdGUuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAor
I2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tfc2V0dGluZ3Mu
aCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKworRXdrX1NldHRpbmdzKiBl
d2tfc2V0dGluZ3NfbmV3KFdLUHJlZmVyZW5jZXNSZWYpOwordm9pZCBld2tfc2V0dGluZ3NfZnJl
ZShFd2tfU2V0dGluZ3MqKTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBlYjFl
NWU3Li5lYWYyMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgog
I2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfaW50ZW50X3By
aXZhdGUuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3BvbGlj
eV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKICNpbmNs
dWRlICJld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAi
ZXdrX3dlYl9yZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3JvdXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBA
IC01MCw2ICs1Miw3IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBjb25z
dCBjaGFyKiB1cmk7CiAgICAgY29uc3QgY2hhciogdGl0bGU7CiAgICAgTG9hZGluZ1Jlc291cmNl
c01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3M7CiAK
ICAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAgICAgICAgOiB1cmkoMCkKQEAgLTI4Miw2
ICsyODUsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfcHJpdl9kZWwoRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwcml2KQogICAgIHByaXYtPnBhZ2VDbGllbnQgPSBudWxscHRyOwogICAgIGVpbmFf
c3RyaW5nc2hhcmVfZGVsKHByaXYtPnVyaSk7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJp
di0+dGl0bGUpOworICAgIGV3a19zZXR0aW5nc19mcmVlKHByaXYtPnNldHRpbmdzKTsKICAgICBk
ZWxldGUgcHJpdjsKIH0KIApAQCAtNTAzLDYgKzUwNyw3IEBAIEV2YXNfT2JqZWN0KiBld2tfdmll
d19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91CiAgICAgfQogCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVh
dGUodG9JbXBsKGNvbnRleHRSZWYpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgZXdrVmlldyk7Cisg
ICAgcHJpdi0+c2V0dGluZ3MgPSBld2tfc2V0dGluZ3NfbmV3KFdLUGFnZUdyb3VwR2V0UHJlZmVy
ZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkp
KSk7CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNs
aWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9hdHRh
Y2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3Zp
ZXdfcmVzb3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKSksIGV3a1ZpZXcpOwpAQCAtNTY5LDYgKzU3NCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c3RvcChFdmFzX09iamVjdCogZXdrVmlldykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdrX1Nl
dHRpbmdzKiBld2tfdmlld19zZXR0aW5nc19nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7Cisg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworCisgICAg
cmV0dXJuIHByaXYtPnNldHRpbmdzOworfQorCiAvKioKICAqIEBpbnRlcm5hbAogICogTG9hZCB3
YXMgaW5pdGlhdGVkIGZvciBhIHJlc291cmNlIGluIHRoZSB2aWV3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggNTg1NTJlYy4uM2E3NzNhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBAIC00OSw2ICs0
OSw3IEBACiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnQu
aCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3Qu
aCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3dlYl9lcnJv
ci5oIgpAQCAtMjU1LDYgKzI1NiwxNSBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19yZWxvYWRf
YnlwYXNzX2NhY2hlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3
X3N0b3AoRXZhc19PYmplY3QgKm8pOwogCiAvKioKKyAqIEdldHMgdGhlIEV3a19TZXR0aW5ncyBv
ZiB0aGlzIHZpZXcuCisgKgorICogQHBhcmFtIG8gdGhlIHZpZXcgb2JqZWN0IHRvIGdldCBFd2tf
U2V0dGluZ3MKKyAqCisgKiBAcmV0dXJuIHRoZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3Cisg
Ki8KK0VBUEkgRXdrX1NldHRpbmdzICpld2tfdmlld19zZXR0aW5nc19nZXQoRXZhc19PYmplY3Qg
Km8pOworCisvKioKICAqIERlbGl2ZXJzIGEgV2ViIGludGVudCB0byB0aGUgdmlldydzIG1haW4g
ZnJhbWUuCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZGVsaXZlciB0aGUgaW50ZW50
IHRvCg==
</data>
<flag name="review"
          id="161099"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
    <flag name="commit-queue"
          id="161100"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152420</attachid>
            <date>2012-07-14 05:09:30 -0700</date>
            <delta_ts>2012-07-14 05:27:50 -0700</delta_ts>
            <desc>patch for ewk_settings.</desc>
            <filename>ewk_settings.patch</filename>
            <type>text/plain</type>
            <size>13065</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzN2IyOGRkLi4xM2RhMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0
aGUgV0tQcmVmZXJlbmNlc1JlZi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNy
ZWF0ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4g
ZXdrX3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzCisgICAgICAgIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
IEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19uZXcpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmll
d19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nc19nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTMgIFRoaWFnbyBNYXJj
b3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBQcm9wZXIgaGFuZGxpbmcgb2YgRU5BQkxFX0FQSV9URVNUUyBidWlsZCBvcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTg3MGUwZS4uZDgzNWZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3Myw2ICsxNzQsNyBAQCBTRVQgKEVXZWJLaXQyX0hF
QURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc2V0dGluZ3MuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjU4
ZThmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwM2MwOTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19TZXR0aW5n
cworICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHNldHRpbmdzIGRhdGEuCisgKi8KK3N0cnVjdCBf
RXdrX1NldHRpbmdzIHsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJl
bmNlczsKKworICAgIF9Fd2tfU2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2Vz
KQorICAgICAgICA6IHByZWZlcmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisv
KioKKyAqIEBpbnRlcm5hbAorICogQ29uc3RydWN0cyBhIEV3a19TZXR0aW5ncyB3aXRoIFdLUHJl
ZmVyZW5jZXNSZWYuCisgKi8KK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZl
cmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHdrUHJlZmVyZW5jZXMsIDApOworCisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5ncyA9
IG5ldyBFd2tfU2V0dGluZ3Mod2tQcmVmZXJlbmNlcyk7CisgICAgcmV0dXJuIHNldHRpbmdzOwor
fQorCisvKioKKyAqIEBpbnRlcm5hbAorICogRGVzdHJ1Y3RzIHRoZSBFd2tfU2V0dGluZ3MuCisg
Ki8KK3ZvaWQgZXdrX3NldHRpbmdzX2ZyZWUoRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZXR0aW5ncyk7CisKKyAgICBkZWxldGUgc2V0
dGluZ3M7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlZCkKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJl
ZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCks
IGVuYWJsZWQpOworICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKwor
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzLmdldCgpKTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFn
ZXNfYXV0b21hdGljYWxseV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1
dG9tYXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
c2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOworICAgIHJldHVybiB0cnVl
OworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdl
dCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU2YTViZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBld2tfc2V0dGluZ3NfaAorI2RlZmluZSBld2tfc2V0dGlu
Z3NfaAorCisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1NldHRpbmdz
ICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX1NldHRpbmdzIEV3a19TZXR0aW5nczsKKworLyoqCisg
KiBFbmFibGVzL2Rpc2FibGVzIHRoZSBqYXZhc2NyaXB0IGV4ZWN1dGluZy4KKyAqCisgKiBAcGFy
YW0gc2V0dGluZ3MgRXdrX1NldHRpbmdzIHRvIHNldCBqYXZhc2NyaXB0IGV4ZWN1dGluZworICog
QHBhcmFtIGVuYWJsZWQgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBqYXZhc2NyaXB0IGV4ZWN1dGlu
ZworICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VB
UEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0
aW5ncyAqc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGVkKTsKKworLyoqCisgKiBRdWVyaWVzIGlm
IHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mg
RXdrX1NldHRpbmdzIHRvIHF1ZXJ5IGlmIHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZAor
ICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVj
dXRlZAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8K
K0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KGNvbnN0
IEV3a19TZXR0aW5ncyAqc2V0dGluZ3MpOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgYXV0
byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMuCisgKgorICogQHBhcmFtIHNldHRpbmdzIEV3a19TZXR0
aW5ncyB0byBzZXQgYXV0byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMKKyAqIEBwYXJhbSBhdXRvbWF0
aWMgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcywKKyAq
ICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFf
VFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3a19T
ZXR0aW5ncyAqc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpOworCisvKioKKyAqIFF1ZXJp
ZXMgaWYgdGhlIGltYWdlcyBhcmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuCisgKgorICogQHBhcmFt
IHNldHRpbmdzIEV3a19TZXR0aW5ncyB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBsb2FkZWQg
YXV0b21hdGljYWxseQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMg
YXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5v
dCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19p
bWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX3NldHRpbmdzX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
c19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3NfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZGJlZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
c2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0
ZV9oCisjZGVmaW5lIGV3a19zZXR0aW5nc19wcml2YXRlX2gKKworI2luY2x1ZGUgImV3a19zZXR0
aW5ncy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgorCitFd2tfU2V0dGlu
Z3MqIGV3a19zZXR0aW5nc19uZXcoV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIGV3a19zZXR0aW5n
c19mcmVlKEV3a19TZXR0aW5ncyopOworCisjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZhdGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4
IGViMWU1ZTcuLjI5Y2RkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0
LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRl
bnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdf
cG9saWN5X2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgImV3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNs
dWRlICJld2tfd2ViX3Jlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKQEAgLTUwLDEwICs1MiwxMiBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAg
ICAgY29uc3QgY2hhciogdXJpOwogICAgIGNvbnN0IGNoYXIqIHRpdGxlOwogICAgIExvYWRpbmdS
ZXNvdXJjZXNNYXAgbG9hZGluZ1Jlc291cmNlc01hcDsKKyAgICBFd2tfU2V0dGluZ3MqIHNldHRp
bmdzOwogCiAgICAgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogdXJpKDApCiAg
ICAgICAgICwgdGl0bGUoMCkKKyAgICAgICAgLCBzZXR0aW5ncygwKQogICAgIHsgfQogfTsKIApA
QCAtMjgyLDYgKzI4Niw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmll
d19Qcml2YXRlX0RhdGEqIHByaXYpCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IG51bGxwdHI7CiAg
ICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJpdi0+dXJpKTsKICAgICBlaW5hX3N0cmluZ3NoYXJl
X2RlbChwcml2LT50aXRsZSk7CisgICAgZXdrX3NldHRpbmdzX2ZyZWUocHJpdi0+c2V0dGluZ3Mp
OwogICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC01MDMsNiArNTA4LDcgQEAgRXZhc19PYmplY3Qq
IGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3UKICAgICB9CiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZSh0b0ltcGwoY29udGV4dFJlZiksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBld2tW
aWV3KTsKKyAgICBwcml2LT5zZXR0aW5ncyA9IGV3a19zZXR0aW5nc19uZXcoV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+
cGFnZSgpKSkpKTsKICAgICBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2
LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsKICAgICBld2tfdmlld19wb2xpY3lfY2xp
ZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsKICAg
ICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNs
aWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CkBAIC01NjksNiArNTc1LDE0IEBAIEVpbmFfQm9vbCBl
d2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJldHVybiB0cnVlOwogfQog
CitFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRpbmdzX2dldChFdmFzX09iamVjdCogZXdrVmll
dykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwg
MCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7
CisKKyAgICByZXR1cm4gcHJpdi0+c2V0dGluZ3M7Cit9CisKIC8qKgogICogQGludGVybmFsCiAg
KiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCA1ODU1MmVjLi4zYTc3
M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAKIAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdr
X2ludGVudC5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxf
cmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tf
d2ViX2Vycm9yLmgiCkBAIC0yNTUsNiArMjU2LDE1IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3
X3JlbG9hZF9ieXBhc3NfY2FjaGUoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX3ZpZXdfc3RvcChFdmFzX09iamVjdCAqbyk7CiAKIC8qKgorICogR2V0cyB0aGUgRXdrX1Nl
dHRpbmdzIG9mIHRoaXMgdmlldy4KKyAqCisgKiBAcGFyYW0gbyB0aGUgdmlldyBvYmplY3QgdG8g
Z2V0IEV3a19TZXR0aW5ncworICoKKyAqIEByZXR1cm4gdGhlIEV3a19TZXR0aW5ncyBvZiB0aGlz
IHZpZXcKKyAqLworRUFQSSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRpbmdzX2dldChFdmFz
X09iamVjdCAqbyk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50IHRvIHRoZSB2aWV3
J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBkZWxpdmVyIHRo
ZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152422</attachid>
            <date>2012-07-14 05:27:50 -0700</date>
            <delta_ts>2012-07-14 08:33:45 -0700</delta_ts>
            <desc>patch for ewk_settings.</desc>
            <filename>ewk_settings.patch</filename>
            <type>text/plain</type>
            <size>13177</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzN2IyOGRkLi4xM2RhMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0
aGUgV0tQcmVmZXJlbmNlc1JlZi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNy
ZWF0ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4g
ZXdrX3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzCisgICAgICAgIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
IEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19uZXcpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmll
d19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nc19nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTMgIFRoaWFnbyBNYXJj
b3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBQcm9wZXIgaGFuZGxpbmcgb2YgRU5BQkxFX0FQSV9URVNUUyBidWlsZCBvcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTg3MGUwZS4uZDgzNWZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3Myw2ICsxNzQsNyBAQCBTRVQgKEVXZWJLaXQyX0hF
QURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc2V0dGluZ3MuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjU4
ZThmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwM2MwOTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19TZXR0aW5n
cworICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHNldHRpbmdzIGRhdGEuCisgKi8KK3N0cnVjdCBf
RXdrX1NldHRpbmdzIHsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJl
bmNlczsKKworICAgIF9Fd2tfU2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2Vz
KQorICAgICAgICA6IHByZWZlcmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisv
KioKKyAqIEBpbnRlcm5hbAorICogQ29uc3RydWN0cyBhIEV3a19TZXR0aW5ncyB3aXRoIFdLUHJl
ZmVyZW5jZXNSZWYuCisgKi8KK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZl
cmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHdrUHJlZmVyZW5jZXMsIDApOworCisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5ncyA9
IG5ldyBFd2tfU2V0dGluZ3Mod2tQcmVmZXJlbmNlcyk7CisgICAgcmV0dXJuIHNldHRpbmdzOwor
fQorCisvKioKKyAqIEBpbnRlcm5hbAorICogRGVzdHJ1Y3RzIHRoZSBFd2tfU2V0dGluZ3MuCisg
Ki8KK3ZvaWQgZXdrX3NldHRpbmdzX2ZyZWUoRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZXR0aW5ncyk7CisKKyAgICBkZWxldGUgc2V0
dGluZ3M7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlZCkKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJl
ZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCks
IGVuYWJsZWQpOworICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdz
X2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKwor
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnBy
ZWZlcmVuY2VzLmdldCgpKTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFn
ZXNfYXV0b21hdGljYWxseV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1
dG9tYXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3Ms
IGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
c2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOworICAgIHJldHVybiB0cnVl
OworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVy
ZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdl
dCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWViNDk5MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICogQGJyaWVm
ICAgRGVzY3JpYmVzIHRoZSBzZXR0aW5ncyBBUEkuCisgKi8KKworI2lmbmRlZiBld2tfc2V0dGlu
Z3NfaAorI2RlZmluZSBld2tfc2V0dGluZ3NfaAorCisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlw
ZSBuYW1lIGZvciBfRXdrX1NldHRpbmdzICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX1NldHRpbmdz
IEV3a19TZXR0aW5nczsKKworLyoqCisgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBqYXZhc2NyaXB0
IGV4ZWN1dGluZy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3MgRXdrX1NldHRpbmdzIHRvIHNldCBq
YXZhc2NyaXB0IGV4ZWN1dGluZworICogQHBhcmFtIGVuYWJsZWQgQGMgRUlOQV9UUlVFIHRvIGVu
YWJsZSBqYXZhc2NyaXB0IGV4ZWN1dGluZworICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlz
YWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9G
QUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2Ny
aXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyAqc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGVk
KTsKKworLyoqCisgKiBRdWVyaWVzIGlmIHRoZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZC4K
KyAqCisgKiBAcGFyYW0gc2V0dGluZ3MgRXdrX1NldHRpbmdzIHRvIHF1ZXJ5IGlmIHRoZSBqYXZh
c2NyaXB0IGNhbiBiZSBleGVjdXRlZAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRo
ZSBqYXZhc2NyaXB0IGNhbiBiZSBleGVjdXRlZAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlm
IG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZh
c2NyaXB0X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqc2V0dGluZ3MpOworCisvKioK
KyAqIEVuYWJsZXMvZGlzYWJsZXMgYXV0byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMuCisgKgorICog
QHBhcmFtIHNldHRpbmdzIEV3a19TZXR0aW5ncyB0byBzZXQgYXV0byBsb2FkaW5nIG9mIHRoZSBp
bWFnZXMKKyAqIEBwYXJhbSBhdXRvbWF0aWMgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBhdXRvIGxv
YWRpbmcgb2YgdGhlIGltYWdlcywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUK
KyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ug
b24gZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2Vz
X2F1dG9tYXRpY2FsbHlfc2V0KEV3a19TZXR0aW5ncyAqc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRv
bWF0aWMpOworCisvKioKKyAqIFF1ZXJpZXMgaWYgdGhlIGltYWdlcyBhcmUgbG9hZGVkIGF1dG9t
YXRpY2FsbHkuCisgKgorICogQHBhcmFtIHNldHRpbmdzIEV3a19TZXR0aW5ncyB0byBxdWVyeSBp
ZiB0aGUgaW1hZ2VzIGFyZSBsb2FkZWQgYXV0b21hdGljYWxseQorICoKKyAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICogICAg
ICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9C
b29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdr
X1NldHRpbmdzICpzZXR0aW5ncyk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisj
ZW5kaWYgLy8gZXdrX3NldHRpbmdzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjEyZGJlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lm
bmRlZiBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19zZXR0aW5nc19wcml2YXRl
X2gKKworI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVm
ZXJlbmNlcy5oPgorCitFd2tfU2V0dGluZ3MqIGV3a19zZXR0aW5nc19uZXcoV0tQcmVmZXJlbmNl
c1JlZik7Cit2b2lkIGV3a19zZXR0aW5nc19mcmVlKEV3a19TZXR0aW5ncyopOworCisjZW5kaWYg
Ly8gZXdrX3NldHRpbmdzX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGViMWU1ZTcuLmFiYmZlMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMxLDExICszMSwxMyBA
QAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0
ZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19zZXR0
aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3Jlc291cmNlX2xvYWRf
Y2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgiCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTUwLDEwICs1MiwxMiBAQCBzdHJ1Y3QgX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgY29uc3QgY2hhciogdXJpOwogICAgIGNvbnN0IGNo
YXIqIHRpdGxlOwogICAgIExvYWRpbmdSZXNvdXJjZXNNYXAgbG9hZGluZ1Jlc291cmNlc01hcDsK
KyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzOwogCiAgICAgX0V3a19WaWV3X1ByaXZhdGVfRGF0
YSgpCiAgICAgICAgIDogdXJpKDApCiAgICAgICAgICwgdGl0bGUoMCkKKyAgICAgICAgLCBzZXR0
aW5ncygwKQogICAgIHsgfQogfTsKIApAQCAtMjgyLDYgKzI4Niw3IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiAgICAgcHJpdi0+
cGFnZUNsaWVudCA9IG51bGxwdHI7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJpdi0+dXJp
KTsKICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwcml2LT50aXRsZSk7CisgICAgZXdrX3NldHRp
bmdzX2ZyZWUocHJpdi0+c2V0dGluZ3MpOwogICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC01MDMs
NiArNTA4LDcgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywg
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3UKICAgICB9CiAKICAgICBwcml2LT5w
YWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZSh0b0ltcGwoY29udGV4dFJlZiksIHRv
SW1wbChwYWdlR3JvdXBSZWYpLCBld2tWaWV3KTsKKyAgICBwcml2LT5zZXR0aW5ncyA9IGV3a19z
ZXR0aW5nc19uZXcoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAo
dG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpKTsKICAgICBld2tfdmlld19sb2FkZXJf
Y2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBld2tWaWV3KTsK
ICAgICBld2tfdmlld19wb2xpY3lfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50
LT5wYWdlKCkpLCBld2tWaWV3KTsKICAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudF9h
dHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CkBAIC01Njks
NiArNTc1LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3
KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRpbmdz
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJpdi0+c2V0dGlu
Z3M7Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEg
cmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuaAppbmRleCA1ODU1MmVjLi43YjM2NTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTQ5LDYgKzQ5LDcgQEAKIAogI2luY2x1ZGUg
ImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2luY2x1ZGUgImV3a19z
ZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a191
cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCkBAIC0yNTUsNiArMjU2
LDE1IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUoRXZhc19P
YmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc3RvcChFdmFzX09iamVjdCAq
byk7CiAKIC8qKgorICogR2V0cyB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMgdmlldy4KKyAqCisg
KiBAcGFyYW0gbyB0aGUgdmlldyBvYmplY3QgdG8gZ2V0IEV3a19TZXR0aW5ncworICoKKyAqIEBy
ZXR1cm4gdGhlIEV3a19TZXR0aW5ncyBvZiB0aGlzIHZpZXcgb3IgQGMgMCBvbiBmYWlsdXJlCisg
Ki8KK0VBUEkgRXdrX1NldHRpbmdzICpld2tfdmlld19zZXR0aW5nc19nZXQoY29uc3QgRXZhc19P
YmplY3QgKm8pOworCisvKioKICAqIERlbGl2ZXJzIGEgV2ViIGludGVudCB0byB0aGUgdmlldydz
IG1haW4gZnJhbWUuCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZGVsaXZlciB0aGUg
aW50ZW50IHRvCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152424</attachid>
            <date>2012-07-14 08:33:45 -0700</date>
            <delta_ts>2012-07-17 23:32:52 -0700</delta_ts>
            <desc>patch for ewk_settings.</desc>
            <filename>ewk_settings.patch</filename>
            <type>text/plain</type>
            <size>13140</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzN2IyOGRkLi4xM2RhMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMTMgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIGV3a19zZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0
aGUgV0tQcmVmZXJlbmNlc1JlZi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNy
ZWF0ZWQgYnkgZXdrX3ZpZXcgYW5kIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgICAgIHdoZW4g
ZXdrX3ZpZXcgaXMgZGVzdHJveWVkLiBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzCisgICAgICAgIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
IEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3
a19zZXR0aW5nc19uZXcpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChld2tfdmll
d19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nc19nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisKIDIwMTItMDctMTMgIFRoaWFnbyBNYXJj
b3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBQcm9wZXIgaGFuZGxpbmcgb2YgRU5BQkxFX0FQSV9URVNUUyBidWlsZCBvcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTg3MGUwZS4uZDgzNWZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQwLDYgKzQwLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTE3Myw2ICsxNzQsNyBAQCBTRVQgKEVXZWJLaXQyX0hF
QURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnQuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc2V0dGluZ3MuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDhmYTkwYWUuLjU4
ZThmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllODgyYTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
Y3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5n
cy5oIgorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19TZXR0aW5n
cworICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHNldHRpbmdzIGRhdGEuCisgKi8KK3N0cnVjdCBf
RXdrX1NldHRpbmdzIHsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJl
bmNlczsKKworICAgIF9Fd2tfU2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2Vz
KQorICAgICAgICA6IHByZWZlcmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisv
KioKKyAqIEBpbnRlcm5hbAorICogQ29uc3RydWN0cyBhIEV3a19TZXR0aW5ncyB3aXRoIFdLUHJl
ZmVyZW5jZXNSZWYuCisgKi8KK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZl
cmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHdrUHJlZmVyZW5jZXMsIDApOworCisgICAgcmV0dXJuIG5ldyBFd2tfU2V0dGluZ3Mo
d2tQcmVmZXJlbmNlcyk7Cit9CisKKy8qKgorICogQGludGVybmFsCisgKiBEZXN0cnVjdHMgdGhl
IEV3a19TZXR0aW5ncy4KKyAqLwordm9pZCBld2tfc2V0dGluZ3NfZnJlZShFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNldHRpbmdzKTsK
KworICAgIGRlbGV0ZSBzZXR0aW5nczsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19qYXZh
c2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFi
bGVkKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFs
c2UpOworCisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5w
cmVmZXJlbmNlcy5nZXQoKSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFf
Qm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0
aW5ncywgZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5h
YmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQorCitFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCksIGF1dG9tYXRpYyk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1h
Z2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7Cisg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5n
cy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45ZWI0OTkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisvKioKKyAqIEBmaWxlICAgIGV3a19zZXR0
aW5ncy5oCisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIHNldHRpbmdzIEFQSS4KKyAqLworCisj
aWZuZGVmIGV3a19zZXR0aW5nc19oCisjZGVmaW5lIGV3a19zZXR0aW5nc19oCisKKyNpbmNsdWRl
IDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
LyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3Ry
dWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJs
ZXMgdGhlIGphdmFzY3JpcHQgZXhlY3V0aW5nLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBFd2tf
U2V0dGluZ3MgdG8gc2V0IGphdmFzY3JpcHQgZXhlY3V0aW5nCisgKiBAcGFyYW0gZW5hYmxlZCBA
YyBFSU5BX1RSVUUgdG8gZW5hYmxlIGphdmFzY3JpcHQgZXhlY3V0aW5nCisgKiAgICAgICAgQGMg
RUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3Vj
Y2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzICpzZXR0aW5ncywg
RWluYV9Cb29sIGVuYWJsZWQpOworCisvKioKKyAqIFF1ZXJpZXMgaWYgdGhlIGphdmFzY3JpcHQg
Y2FuIGJlIGV4ZWN1dGVkLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBFd2tfU2V0dGluZ3MgdG8g
cXVlcnkgaWYgdGhlIGphdmFzY3JpcHQgY2FuIGJlIGV4ZWN1dGVkCisgKgorICogQHJldHVybiBA
YyBFSU5BX1RSVUUgaWYgdGhlIGphdmFzY3JpcHQgY2FuIGJlIGV4ZWN1dGVkCisgKiAgICAgICAg
IEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wg
ZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdzICpz
ZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhl
IGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3MgRXdrX1NldHRpbmdzIHRvIHNldCBhdXRv
IGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUg
dG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLAorICogICAgICAgIEBjIEVJTkFf
RkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mg
b3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0
aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9zZXQoRXdrX1NldHRpbmdzICpzZXR0aW5n
cywgRWluYV9Cb29sIGF1dG9tYXRpYyk7CisKKy8qKgorICogUXVlcmllcyBpZiB0aGUgaW1hZ2Vz
IGFyZSBsb2FkZWQgYXV0b21hdGljYWxseS4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3MgRXdrX1Nl
dHRpbmdzIHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5Cisg
KgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGltYWdlcyBhcmUgbG9hZGVkIGF1dG9t
YXRpY2FsbHksCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUK
KyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNh
bGx5X2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnNldHRpbmdzKTsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJkYmVmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRl
LmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKKyNkZWZpbmUgZXdr
X3NldHRpbmdzX3ByaXZhdGVfaAorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisKK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdz
X25ldyhXS1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQgZXdrX3NldHRpbmdzX2ZyZWUoRXdrX1NldHRp
bmdzKik7CisKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggZWIxZTVlNy4uYWJiZmUw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApA
QCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJl
d2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisj
aW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2Fk
ZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wb2xpY3lfY2xpZW50X3By
aXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXdfcmVzb3VyY2VfbG9hZF9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193ZWJfcmVz
b3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTAsMTAgKzUy
LDEyIEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB1
cmk7CiAgICAgY29uc3QgY2hhciogdGl0bGU7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2Fk
aW5nUmVzb3VyY2VzTWFwOworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3M7CiAKICAgICBfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAgICAgICAgOiB1cmkoMCkKICAgICAgICAgLCB0aXRsZSgw
KQorICAgICAgICAsIHNldHRpbmdzKDApCiAgICAgeyB9CiB9OwogCkBAIC0yODIsNiArMjg2LDcg
QEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
cHJpdikKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gbnVsbHB0cjsKICAgICBlaW5hX3N0cmluZ3No
YXJlX2RlbChwcml2LT51cmkpOwogICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHByaXYtPnRpdGxl
KTsKKyAgICBld2tfc2V0dGluZ3NfZnJlZShwcml2LT5zZXR0aW5ncyk7CiAgICAgZGVsZXRlIHBy
aXY7CiB9CiAKQEAgLTUwMyw2ICs1MDgsNyBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9h
ZGQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdQogICAg
IH0KIAogICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKHRvSW1w
bChjb250ZXh0UmVmKSwgdG9JbXBsKHBhZ2VHcm91cFJlZiksIGV3a1ZpZXcpOworICAgIHByaXYt
PnNldHRpbmdzID0gZXdrX3NldHRpbmdzX25ldyhXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdL
UGFnZUdldFBhZ2VHcm91cCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpKSkpOwogICAg
IGV3a192aWV3X2xvYWRlcl9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKSksIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKHRvQVBJ
KHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSksIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3Jlc291
cmNlX2xvYWRfY2xpZW50X2F0dGFjaCh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBl
d2tWaWV3KTsKQEAgLTU2OSw2ICs1NzUsMTQgQEAgRWluYV9Cb29sIGV3a192aWV3X3N0b3AoRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0V3a19TZXR0aW5ncyog
ZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKKworICAgIHJl
dHVybiBwcml2LT5zZXR0aW5nczsKK30KKwogLyoqCiAgKiBAaW50ZXJuYWwKICAqIExvYWQgd2Fz
IGluaXRpYXRlZCBmb3IgYSByZXNvdXJjZSBpbiB0aGUgdmlldy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IDU4NTUyZWMuLmIyY2M4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaApAQCAtNDksNiArNDks
NyBAQAogCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50Lmgi
CisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3Iu
aCIKQEAgLTI1NSw2ICsyNTYsMTUgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5
cGFzc19jYWNoZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19z
dG9wKEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCisgKiBHZXRzIHRoZSBFd2tfU2V0dGluZ3Mgb2Yg
dGhpcyB2aWV3LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9iamVjdCB0byBnZXQgRXdrX1Nl
dHRpbmdzCisgKgorICogQHJldHVybiB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMgdmlldyBvciBA
YyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRp
bmdzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIg
aW50ZW50IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9i
amVjdCB0byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152938</attachid>
            <date>2012-07-17 23:33:00 -0700</date>
            <delta_ts>2012-07-18 00:30:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120718153259.patch</filename>
            <type>text/plain</type>
            <size>15320</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDJhOWM0NDYxMzU4Y2M0
MzA2MDhhMzMyNTQ2NDdlOGFjMDUxOTQ2NC4uMDU3ZGFlNDMwOGE0MDA3NmZkNzY0NDlmNjNiY2Vm
OTg1MzI2NTU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA3LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSB0aGUgZXdrX3NldHRpbmdzIHNldHMgdGhlIHByZWZlcmVuY2VzIG9ubHkg
Zm9yCisgICAgICAgIG9uZSBld2tfdmlldy4KKyAgICAgICAgVGhlIGFwcGxpY2F0aW9uIGNhbiBn
ZXQgdGhlIGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nCisgICAgICAgIGV3a192aWV3
X3NldHRpbmdzX2dldCgpIEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6UGFnZUNsaWVudEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAgIChf
RXdrX1NldHRpbmdzOjpfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3a19zZXR0aW5nc19uZXcp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Vu
YWJsZV9zY3JpcHRzX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNf
Z2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldCk6CisgICAg
ICAgIChld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YTo6fl9Fd2tfVmlld19Qcml2YXRl
X0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfYmFzZV9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdf
c2V0dGluZ3NfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgor
CiAyMDEyLTA3LTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gUmVwbGFjZSAwIGJ5IE5VTEwgaW4gcHVibGljIGhlYWRlcnMg
ZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmMzI3ZTI2YTVmMGZj
MTZkMzZiM2M3N2YyMWI5YTY5OGVjNDhlOGYzLi5hMTI1MjliNzhhZTAzMWU5M2ExZmQ5MjNlZDdk
ODk4M2RjYjdhNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDAsNiArNDAsNyBA
QCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMTc1
LDYgKzE3Niw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNl
LmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0Lmgi
CiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3Jlc3BvbnNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0VXZWJLaXQyLmgKaW5kZXggOGZhOTBhZWI5NmFjZGExZGY4Njk0MTRhY2FjZTllM2RiM2E4ZGNl
Yy4uNThlOGY3OTA2N2M2NDdiZGEzMjc2MThiODFhZmVlZGUwYjJlZGUyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiZXdrX2ludGVudC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZS5oIgog
I2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgorI2luY2x1ZGUgImV3
a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3
a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGU2OWY4
N2QyODAxMmRlMTUzMGM5MmM5Y2NiMjIxYmRjODIxYzRhZGYuLjY0MjM4NzhmNWNiYjUwYTk5OTJm
YjRjMDVhZTNkZGU4MzU5OThmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogCkBAIC00
MSw3ICs0MiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xp
ZW50SW1wbChXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgRXZh
c19PYmplY3QqIHZpZXdXaWRnZXQpCiAgICAgOiBtX3ZpZXdXaWRnZXQodmlld1dpZGdldCkKIHsK
LSAgICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCk7Cisg
ICAgaWYgKHBhZ2VHcm91cCkKKyAgICAgICAgbV9wYWdlID0gY29udGV4dC0+Y3JlYXRlV2ViUGFn
ZSh0aGlzLCBwYWdlR3JvdXApOworICAgIGVsc2UKKyAgICAgICAgbV9wYWdlID0gY29udGV4dC0+
Y3JlYXRlV2ViUGFnZSh0aGlzLCBXZWJQYWdlR3JvdXA6OmNyZWF0ZSgpLmdldCgpKTsKICAgICBt
X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYTE4ZDVhNDZk
NjFiYTU2MWU4YTBjYjMwMmM5OGVjNjg2NTM5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsOTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy
b2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgorCisjaW5jbHVkZSAi
ZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19TZXR0aW5ncworICogQGJyaWVmICAgQ29u
dGFpbnMgdGhlIHNldHRpbmdzIGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX1NldHRpbmdzIHsKKyAg
ICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlczsKKworICAgIF9Fd2tf
U2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQorICAgICAgICA6IHByZWZl
cmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisvKioKKyAqIEBpbnRlcm5hbAor
ICogQ29uc3RydWN0cyBhIEV3a19TZXR0aW5ncyB3aXRoIFdLUHJlZmVyZW5jZXNSZWYuCisgKi8K
K0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVy
ZW5jZXMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHdrUHJlZmVyZW5j
ZXMsIDApOworCisgICAgcmV0dXJuIG5ldyBFd2tfU2V0dGluZ3Mod2tQcmVmZXJlbmNlcyk7Cit9
CisKKy8qKgorICogQGludGVybmFsCisgKiBEZXN0cnVjdHMgdGhlIEV3a19TZXR0aW5ncy4KKyAq
Lwordm9pZCBld2tfc2V0dGluZ3NfZnJlZShFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNldHRpbmdzKTsKKworICAgIGRlbGV0ZSBzZXR0
aW5nczsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQoRXdr
X1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKK3sKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5j
ZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCksIGVuYWJs
ZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFi
bGVfc2NyaXB0c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2Vz
LmdldCgpKTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQoreworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgV0tQ
cmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMuZ2V0KCksIGF1dG9tYXRpYyk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29s
IGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNl
dHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdiNjU0MmNm
Y2NiOTY5NjVmYWZlN2ZiMDE2ZDJlYmE0ZDAzMjRiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy
b2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworLyoq
CisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICogQGJyaWVmICAgRGVzY3JpYmVzIHRoZSBz
ZXR0aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3a19zZXR0aW5ncyBpcyBmb3Igc2V0dGlu
ZyB0aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tfdmlldy4KKyAqIFdlIGNhbiBnZXQgdGhl
IGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nIGV3a192aWV3X3NldHRpbmdzX2dldCgp
IEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5nc19oCisjZGVmaW5lIGV3a19zZXR0aW5n
c19oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJD
IiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3Mg
Ki8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAq
IEVuYWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQgZXhlY3V0aW5nLgorICoKKyAqIEBwYXJh
bSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IHNjcmlwdCBleGVjdXRpbmcKKyAqIEBw
YXJhbSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBzY3JpcHQgZXhlY3V0aW5nCisgKiAg
ICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RS
VUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHRzIGNh
biBiZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mg
b2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICoKKyAqIEBy
ZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICogICAg
ICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9C
b29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhl
IGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBh
dXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RS
VUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLAorICogICAgICAgIEBjIEVJ
TkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nl
c3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5h
X0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxv
YWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGlu
Z3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAor
ICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkg
RWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFd2tfU2V0
dGluZ3MqIHNldHRpbmdzKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRp
ZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJkYmVmNTNmNzgz
NThjNGZhNjcxN2M1ZjE0ZmExOTQwMjliZmU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKQEAgLTAsMCAr
MSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX3By
aXZhdGVfaAorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1ByZWZlcmVuY2VzLmg+CisKK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZl
cmVuY2VzUmVmKTsKK3ZvaWQgZXdrX3NldHRpbmdzX2ZyZWUoRXdrX1NldHRpbmdzKik7CisKKyNl
bmRpZiAvLyBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggOGI3MTMyYjQ4NDdhYTY1MTNiNTJiYTJjMGUy
OWVkZjc2YmEyZTM1ZC4uNzJmNmMxOGNkYzU3MTVkYmMwOWM5Zjc3NmZhYjJjMGMzMjkwYzU3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAt
MzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tf
Y29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5j
bHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2FkZXJf
Y2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdf
cmVzb3VyY2VfbG9hZF9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193ZWJfcmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTEsMTEgKzUzLDEz
IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB0aXRs
ZTsKICAgICBjb25zdCBjaGFyKiB0aGVtZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRp
bmdSZXNvdXJjZXNNYXA7CisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5nczsKIAogICAgIF9Fd2tf
Vmlld19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IHVyaSgwKQogICAgICAgICAsIHRpdGxlKDAp
CiAgICAgICAgICwgdGhlbWUoMCkKKyAgICAgICAgLCBzZXR0aW5ncygwKQogICAgIHsgfQogCiAg
ICAgfl9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQpAQCAtNjMsNiArNjcsNyBAQCBzdHJ1Y3QgX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHVyaSk7
CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHRpdGxlKTsKICAgICAgICAgZWluYV9zdHJp
bmdzaGFyZV9kZWwodGhlbWUpOworICAgICAgICBld2tfc2V0dGluZ3NfZnJlZShzZXR0aW5ncyk7
CiAgICAgfQogfTsKIApAQCAtNTA2LDYgKzUxMSw3IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19i
YXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91
CiAgICAgfQogCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGUo
dG9JbXBsKGNvbnRleHRSZWYpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgZXdrVmlldyk7CisgICAg
cHJpdi0+c2V0dGluZ3MgPSBld2tfc2V0dGluZ3NfbmV3KFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkpKSk7
CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVu
dC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9hdHRhY2go
dG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdf
cmVzb3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KSksIGV3a1ZpZXcpOwpAQCAtNTc0LDYgKzU4MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc3Rv
cChFdmFzX09iamVjdCogZXdrVmlldykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdrX1NldHRp
bmdzKiBld2tfdmlld19zZXR0aW5nc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7
CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwor
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworCisg
ICAgcmV0dXJuIHByaXYtPnNldHRpbmdzOworfQorCiAvKioKICAqIEBpbnRlcm5hbAogICogTG9h
ZCB3YXMgaW5pdGlhdGVkIGZvciBhIHJlc291cmNlIGluIHRoZSB2aWV3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggZmUzZjEwNjc1NTEyYzkyNDQ0
NDAwYzZjZDE5ZWFiMjZiYzM5NTAxOS4uMTI3NzE5MzlhOTY0YmU2Y2M5NjBjNjljNWIzMjMzMTRj
YzAxNTg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
CkBAIC01Myw2ICs1Myw3IEBACiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUg
ImV3a19pbnRlbnQuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tf
dXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
ZXdrX3dlYl9lcnJvci5oIgpAQCAtMjU5LDYgKzI2MCwxNSBAQCBFQVBJIEVpbmFfQm9vbCBld2tf
dmlld19yZWxvYWRfYnlwYXNzX2NhY2hlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29s
ICAgIGV3a192aWV3X3N0b3AoRXZhc19PYmplY3QgKm8pOwogCiAvKioKKyAqIEdldHMgdGhlIEV3
a19TZXR0aW5ncyBvZiB0aGlzIHZpZXcuCisgKgorICogQHBhcmFtIG8gdGhlIHZpZXcgb2JqZWN0
IHRvIGdldCBFd2tfU2V0dGluZ3MKKyAqCisgKiBAcmV0dXJuIHRoZSBFd2tfU2V0dGluZ3Mgb2Yg
dGhpcyB2aWV3IG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3a19TZXR0aW5ncyAq
ZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCiAgKiBE
ZWxpdmVycyBhIFdlYiBpbnRlbnQgdG8gdGhlIHZpZXcncyBtYWluIGZyYW1lLgogICoKICAqIEBw
YXJhbSBvIHZpZXcgb2JqZWN0IHRvIGRlbGl2ZXIgdGhlIGludGVudCB0bwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152951</attachid>
            <date>2012-07-18 00:30:13 -0700</date>
            <delta_ts>2012-08-12 06:51:15 -0700</delta_ts>
            <desc>Rebased patch.</desc>
            <filename>bug-91206-20120718163012.patch</filename>
            <type>text/plain</type>
            <size>15320</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDJhOWM0NDYxMzU4Y2M0
MzA2MDhhMzMyNTQ2NDdlOGFjMDUxOTQ2NC4uMmIzMmM1YTQzMjI2NDI1YTg0OWM5YjU2YmNkZDdm
OTY1OWE5ZmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA3LTE4ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSB0aGUgZXdrX3NldHRpbmdzIHNldHMgdGhlIHByZWZlcmVuY2VzIG9ubHkg
Zm9yCisgICAgICAgIG9uZSBld2tfdmlldy4KKyAgICAgICAgVGhlIGFwcGxpY2F0aW9uIGNhbiBn
ZXQgdGhlIGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nCisgICAgICAgIGV3a192aWV3
X3NldHRpbmdzX2dldCgpIEFQSS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6UGFnZUNsaWVudEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19z
ZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAgIChf
RXdrX1NldHRpbmdzOjpfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKGV3a19zZXR0aW5nc19uZXcp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2ZyZWUpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Vu
YWJsZV9zY3JpcHRzX3NldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNf
Z2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldCk6CisgICAg
ICAgIChld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGE6Ol9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YTo6fl9Fd2tfVmlld19Qcml2YXRl
X0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfYmFzZV9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdf
c2V0dGluZ3NfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgor
CiAyMDEyLTA3LTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gUmVwbGFjZSAwIGJ5IE5VTEwgaW4gcHVibGljIGhlYWRlcnMg
ZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmMzI3ZTI2YTVmMGZj
MTZkMzZiM2M3N2YyMWI5YTY5OGVjNDhlOGYzLi5hMTI1MjliNzhhZTAzMWU5M2ExZmQ5MjNlZDdk
ODk4M2RjYjdhNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDAsNiArNDAsNyBA
QCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMTc1
LDYgKzE3Niw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNl
LmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIgogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0Lmgi
CiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3Jlc3BvbnNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0VXZWJLaXQyLmgKaW5kZXggOGZhOTBhZWI5NmFjZGExZGY4Njk0MTRhY2FjZTllM2RiM2E4ZGNl
Yy4uNThlOGY3OTA2N2M2NDdiZGEzMjc2MThiODFhZmVlZGUwYjJlZGUyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiZXdrX2ludGVudC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZS5oIgog
I2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgorI2luY2x1ZGUgImV3
a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3
a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGU2OWY4
N2QyODAxMmRlMTUzMGM5MmM5Y2NiMjIxYmRjODIxYzRhZGYuLjY0MjM4NzhmNWNiYjUwYTk5OTJm
YjRjMDVhZTNkZGU4MzU5OThmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogCkBAIC00
MSw3ICs0MiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xp
ZW50SW1wbChXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgRXZh
c19PYmplY3QqIHZpZXdXaWRnZXQpCiAgICAgOiBtX3ZpZXdXaWRnZXQodmlld1dpZGdldCkKIHsK
LSAgICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCk7Cisg
ICAgaWYgKHBhZ2VHcm91cCkKKyAgICAgICAgbV9wYWdlID0gY29udGV4dC0+Y3JlYXRlV2ViUGFn
ZSh0aGlzLCBwYWdlR3JvdXApOworICAgIGVsc2UKKyAgICAgICAgbV9wYWdlID0gY29udGV4dC0+
Y3JlYXRlV2ViUGFnZSh0aGlzLCBXZWJQYWdlR3JvdXA6OmNyZWF0ZSgpLmdldCgpKTsKICAgICBt
X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYTE4ZDVhNDZk
NjFiYTU2MWU4YTBjYjMwMmM5OGVjNjg2NTM5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsOTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy
b2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgorCisjaW5jbHVkZSAi
ZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19TZXR0aW5ncworICogQGJyaWVmICAgQ29u
dGFpbnMgdGhlIHNldHRpbmdzIGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX1NldHRpbmdzIHsKKyAg
ICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlczsKKworICAgIF9Fd2tf
U2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQorICAgICAgICA6IHByZWZl
cmVuY2VzKHdrUHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisvKioKKyAqIEBpbnRlcm5hbAor
ICogQ29uc3RydWN0cyBhIEV3a19TZXR0aW5ncyB3aXRoIFdLUHJlZmVyZW5jZXNSZWYuCisgKi8K
K0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVy
ZW5jZXMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHdrUHJlZmVyZW5j
ZXMsIDApOworCisgICAgcmV0dXJuIG5ldyBFd2tfU2V0dGluZ3Mod2tQcmVmZXJlbmNlcyk7Cit9
CisKKy8qKgorICogQGludGVybmFsCisgKiBEZXN0cnVjdHMgdGhlIEV3a19TZXR0aW5ncy4KKyAq
Lwordm9pZCBld2tfc2V0dGluZ3NfZnJlZShFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNldHRpbmdzKTsKKworICAgIGRlbGV0ZSBzZXR0
aW5nczsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQoRXdr
X1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkKK3sKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5j
ZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCksIGVuYWJs
ZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFi
bGVfc2NyaXB0c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2Vz
LmdldCgpKTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3Nl
dChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKQoreworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgV0tQ
cmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMuZ2V0KCksIGF1dG9tYXRpYyk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29s
IGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNl
dHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdiNjU0MmNm
Y2NiOTY5NjVmYWZlN2ZiMDE2ZDJlYmE0ZDAzMjRiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy
b2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworLyoq
CisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICogQGJyaWVmICAgRGVzY3JpYmVzIHRoZSBz
ZXR0aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3a19zZXR0aW5ncyBpcyBmb3Igc2V0dGlu
ZyB0aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tfdmlldy4KKyAqIFdlIGNhbiBnZXQgdGhl
IGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nIGV3a192aWV3X3NldHRpbmdzX2dldCgp
IEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5nc19oCisjZGVmaW5lIGV3a19zZXR0aW5n
c19oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJD
IiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3Mg
Ki8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAq
IEVuYWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQgZXhlY3V0aW5nLgorICoKKyAqIEBwYXJh
bSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IHNjcmlwdCBleGVjdXRpbmcKKyAqIEBw
YXJhbSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBzY3JpcHQgZXhlY3V0aW5nCisgKiAg
ICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RS
VUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChFd2tfU2V0dGluZ3MqIHNldHRp
bmdzLCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHRzIGNh
biBiZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mg
b2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICoKKyAqIEBy
ZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICogICAg
ICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9C
b29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBz
ZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhl
IGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBh
dXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RS
VUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLAorICogICAgICAgIEBjIEVJ
TkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nl
c3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19z
ZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5h
X0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxv
YWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGlu
Z3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAor
ICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkg
RWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFd2tfU2V0
dGluZ3MqIHNldHRpbmdzKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRp
ZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJkYmVmNTNmNzgz
NThjNGZhNjcxN2M1ZjE0ZmExOTQwMjliZmU2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKQEAgLTAsMCAr
MSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaWZuZGVmIGV3a19zZXR0aW5nc19wcml2YXRlX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX3By
aXZhdGVfaAorCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1ByZWZlcmVuY2VzLmg+CisKK0V3a19TZXR0aW5ncyogZXdrX3NldHRpbmdzX25ldyhXS1ByZWZl
cmVuY2VzUmVmKTsKK3ZvaWQgZXdrX3NldHRpbmdzX2ZyZWUoRXdrX1NldHRpbmdzKik7CisKKyNl
bmRpZiAvLyBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggOGI3MTMyYjQ4NDdhYTY1MTNiNTJiYTJjMGUy
OWVkZjc2YmEyZTM1ZC4uNzJmNmMxOGNkYzU3MTVkYmMwOWM5Zjc3NmZhYjJjMGMzMjkwYzU3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAt
MzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tf
Y29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5j
bHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2FkZXJf
Y2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdf
cmVzb3VyY2VfbG9hZF9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193ZWJfcmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTEsMTEgKzUzLDEz
IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB0aXRs
ZTsKICAgICBjb25zdCBjaGFyKiB0aGVtZTsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRp
bmdSZXNvdXJjZXNNYXA7CisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5nczsKIAogICAgIF9Fd2tf
Vmlld19Qcml2YXRlX0RhdGEoKQogICAgICAgICA6IHVyaSgwKQogICAgICAgICAsIHRpdGxlKDAp
CiAgICAgICAgICwgdGhlbWUoMCkKKyAgICAgICAgLCBzZXR0aW5ncygwKQogICAgIHsgfQogCiAg
ICAgfl9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQpAQCAtNjMsNiArNjcsNyBAQCBzdHJ1Y3QgX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHVyaSk7
CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHRpdGxlKTsKICAgICAgICAgZWluYV9zdHJp
bmdzaGFyZV9kZWwodGhlbWUpOworICAgICAgICBld2tfc2V0dGluZ3NfZnJlZShzZXR0aW5ncyk7
CiAgICAgfQogfTsKIApAQCAtNTA2LDYgKzUxMSw3IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19i
YXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91
CiAgICAgfQogCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGUo
dG9JbXBsKGNvbnRleHRSZWYpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgZXdrVmlldyk7CisgICAg
cHJpdi0+c2V0dGluZ3MgPSBld2tfc2V0dGluZ3NfbmV3KFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkpKSk7
CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVu
dC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9hdHRhY2go
dG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdf
cmVzb3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KSksIGV3a1ZpZXcpOwpAQCAtNTc0LDYgKzU4MCwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc3Rv
cChFdmFzX09iamVjdCogZXdrVmlldykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdrX1NldHRp
bmdzKiBld2tfdmlld19zZXR0aW5nc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7
CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwor
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworCisg
ICAgcmV0dXJuIHByaXYtPnNldHRpbmdzOworfQorCiAvKioKICAqIEBpbnRlcm5hbAogICogTG9h
ZCB3YXMgaW5pdGlhdGVkIGZvciBhIHJlc291cmNlIGluIHRoZSB2aWV3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggZmUzZjEwNjc1NTEyYzkyNDQ0
NDAwYzZjZDE5ZWFiMjZiYzM5NTAxOS4uMTI3NzE5MzlhOTY0YmU2Y2M5NjBjNjljNWIzMjMzMTRj
YzAxNTg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
CkBAIC01Myw2ICs1Myw3IEBACiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUg
ImV3a19pbnRlbnQuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tf
dXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
ZXdrX3dlYl9lcnJvci5oIgpAQCAtMjU5LDYgKzI2MCwxNSBAQCBFQVBJIEVpbmFfQm9vbCBld2tf
dmlld19yZWxvYWRfYnlwYXNzX2NhY2hlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29s
ICAgIGV3a192aWV3X3N0b3AoRXZhc19PYmplY3QgKm8pOwogCiAvKioKKyAqIEdldHMgdGhlIEV3
a19TZXR0aW5ncyBvZiB0aGlzIHZpZXcuCisgKgorICogQHBhcmFtIG8gdGhlIHZpZXcgb2JqZWN0
IHRvIGdldCBFd2tfU2V0dGluZ3MKKyAqCisgKiBAcmV0dXJuIHRoZSBFd2tfU2V0dGluZ3Mgb2Yg
dGhpcyB2aWV3IG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3a19TZXR0aW5ncyAq
ZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCiAgKiBE
ZWxpdmVycyBhIFdlYiBpbnRlbnQgdG8gdGhlIHZpZXcncyBtYWluIGZyYW1lLgogICoKICAqIEBw
YXJhbSBvIHZpZXcgb2JqZWN0IHRvIGRlbGl2ZXIgdGhlIGludGVudCB0bwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157896</attachid>
            <date>2012-08-12 06:51:25 -0700</date>
            <delta_ts>2012-08-13 00:00:41 -0700</delta_ts>
            <desc>Rebased</desc>
            <filename>bug-91206-20120812225054.patch</filename>
            <type>text/plain</type>
            <size>15375</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzk5NGI1YzM2ODJjZTNk
NzVlNTU4ZWQyYjA3ZGNiMTk0YmJhN2ExMS4uYThkNDE1YTRhZDFiNTJiMTczZmYwOGIyZWZhOGRj
Mjg4MWI5MTcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA4LTEyICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKF9Fd2tf
U2V0dGluZ3M6Ol9Fd2tfU2V0dGluZ3MpOgorICAgICAgICAoZXdrX3NldHRpbmdzX25ldyk6Cisg
ICAgICAgIChld2tfc2V0dGluZ3NfZnJlZSk6CisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxl
X3NjcmlwdHNfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQp
OgorICAgICAgICAoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAg
KGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgor
ICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YTo6X0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6
CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOjp+X0V3a19WaWV3X1ByaXZhdGVfRGF0
YSk6CisgICAgICAgIChfZXdrX3ZpZXdfaW5pdGlhbGl6ZSk6CisgICAgICAgIChld2tfdmlld19z
ZXR0aW5nc19nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisK
IDIwMTItMDgtMTEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXgg
dGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2Ug
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkNWVkNTQyMGYwNDhhOTRm
NWY5ZTNlMjUwNTI1MTRhMzRiOTEzNjNiLi4yYjIzNWFjZGNjY2Q5NzgwZWUyNDcyYWM1NDM5MTc0
Mzk0YjI1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTYsNiArNTYsNyBAQCBM
SVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50
ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAorICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNw
b25zZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNw
cApAQCAtMjA1LDYgKzIwNiw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNl
LmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbWFpbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCisgICAgIiR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaCIKICAgICAi
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVx
dWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggZDk4MDIzZGU2ZTBlZmE2ZGUw
N2ZjOWZiOGMyMTVkMzljYzQ4OTg3Yy4uNTE1NGNjMjExZTM0ZjllNGM2ZGM2YThhODIyNDJlZjY4
Njc2MGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdl
YktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5o
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlLmgiCiAjaW5j
bHVkZSAiZXdrX21haW4uaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWFlMWExZWZhOTYzOGRiNzc0NzY3NmIw
MWEzMWEyMWM2YjYuLjFkYzY3ZjhkNzgzY2VhMzRiN2QyZjUxNmQ2OWMxMDljY2I2ZTQwYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTQ3LDcgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUGFnZUNsaWVudElt
cGw6OlBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFn
ZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dpZGdldCh2aWV3
V2lkZ2V0KQogewotICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFn
ZUdyb3VwKTsKKyAgICBpZiAocGFnZUdyb3VwKQorICAgICAgICBtX3BhZ2UgPSBjb250ZXh0LT5j
cmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCk7CisgICAgZWxzZQorICAgICAgICBtX3BhZ2Ug
PSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIFdlYlBhZ2VHcm91cDo6Y3JlYXRlKCkuZ2V0
KCkpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGFnZS0+cGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmZhMThkNWE0NmQ2MWJhNTYxZThhMGNiMzAyYzk4ZWM2ODY1Mzlm
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
ZXdrX3NldHRpbmdzLmgiCisKKyNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBcc3RydWN0ICBf
RXdrX1NldHRpbmdzCisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgc2V0dGluZ3MgZGF0YS4KKyAq
Lworc3RydWN0IF9Fd2tfU2V0dGluZ3MgeworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNS
ZWY+IHByZWZlcmVuY2VzOworCisgICAgX0V3a19TZXR0aW5ncyhXS1ByZWZlcmVuY2VzUmVmIHdr
UHJlZmVyZW5jZXMpCisgICAgICAgIDogcHJlZmVyZW5jZXMod2tQcmVmZXJlbmNlcykKKyAgICB7
IH0KK307CisKKy8qKgorICogQGludGVybmFsCisgKiBDb25zdHJ1Y3RzIGEgRXdrX1NldHRpbmdz
IHdpdGggV0tQcmVmZXJlbmNlc1JlZi4KKyAqLworRXdrX1NldHRpbmdzKiBld2tfc2V0dGluZ3Nf
bmV3KFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcykKK3sKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwod2tQcmVmZXJlbmNlcywgMCk7CisKKyAgICByZXR1cm4gbmV3IEV3
a19TZXR0aW5ncyh3a1ByZWZlcmVuY2VzKTsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqIERl
c3RydWN0cyB0aGUgRXdrX1NldHRpbmdzLgorICovCit2b2lkIGV3a19zZXR0aW5nc19mcmVlKEV3
a19TZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4o
c2V0dGluZ3MpOworCisgICAgZGVsZXRlIHNldHRpbmdzOworfQorCitFaW5hX0Jvb2wgZXdrX3Nl
dHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jv
b2wgZW5hYmxlKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5n
cywgZmFsc2UpOworCisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHNldHRp
bmdzLT5wcmVmZXJlbmNlcy5nZXQoKSwgZW5hYmxlKTsKKworICAgIHJldHVybiB0cnVlOworfQor
CitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX2dldChjb25zdCBFd2tfU2V0
dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZXR0aW5ncywgZmFsc2UpOworCisgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0
RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQorCitFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBhdXRvbWF0aWMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSwgYXV0b21hdGljKTsKKworICAg
IHJldHVybiB0cnVlOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFn
ZXNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMu
Z2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3NldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0
dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jN2I2NTQyY2ZjY2I5Njk2NWZhZmU3ZmIwMTZkMmViYTRkMDMy
NGIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3NldHRpbmdzLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisvKioKKyAqIEBmaWxlICAgIGV3a19zZXR0aW5ncy5o
CisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIHNldHRpbmdzIEFQSS4KKyAqCisgKiBAbm90ZSBU
aGUgZXdrX3NldHRpbmdzIGlzIGZvciBzZXR0aW5nIHRoZSBwcmVmZXJlbmNlIG9mIHNwZWNpZmlj
IGV3a192aWV3LgorICogV2UgY2FuIGdldCB0aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcg
dXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KCkgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX3Nl
dHRpbmdzX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBh
IHR5cGUgbmFtZSBmb3IgX0V3a19TZXR0aW5ncyAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19TZXR0
aW5ncyBFd2tfU2V0dGluZ3M7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgamF2YXNj
cmlwdCBleGVjdXRpbmcuCisgKgorICogQHBhcmFtIHNldHRpbmdzIHNldHRpbmdzIG9iamVjdCB0
byBzZXQgc2NyaXB0IGV4ZWN1dGluZworICogQHBhcmFtIGVuYWJsZSBAYyBFSU5BX1RSVUUgdG8g
ZW5hYmxlIHNjcmlwdCBleGVjdXRpbmcKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2Fi
bGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFM
U0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxlX3Nj
cmlwdHNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpOworCisv
KioKKyAqIFJldHVybnMgdGhlIHNjcmlwdHMgY2FuIGJlIGV4ZWN1dGFibGUgb3Igbm90LgorICoK
KyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIHNjcmlw
dHMgY2FuIGJlIGV4ZWN1dGVkCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIHNj
cmlwdHMgY2FuIGJlIGV4ZWN1dGVkCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9y
IG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3Jp
cHRzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKTsKKworLyoqCisgKiBFbmFibGVz
L2Rpc2FibGVzIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBzZXR0
aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzCisg
KiBAcGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYXV0byBsb2FkaW5nIG9m
IHRoZSBpbWFnZXMsCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICog
QHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1
cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0
KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpOworCisvKioKKyAq
IFJldHVybnMgdGhlIGltYWdlcyBjYW4gYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkgb3Igbm90Lgor
ICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gZ2V0IGF1dG8gbG9hZGlu
ZyBvZiB0aGUgaW1hZ2VzCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGltYWdl
cyBhcmUgbG9hZGVkIGF1dG9tYXRpY2FsbHksCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYg
bm90IG9yIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2F1dG9f
bG9hZF9pbWFnZXNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19zZXR0aW5nc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMmRiZWY1M2Y3ODM1OGM0ZmE2NzE3YzVmMTRmYTE5NDAyOWJmZTY4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzX3ByaXZhdGUuaApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZh
dGVfaAorI2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tfc2V0
dGluZ3MuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKworRXdrX1NldHRp
bmdzKiBld2tfc2V0dGluZ3NfbmV3KFdLUHJlZmVyZW5jZXNSZWYpOwordm9pZCBld2tfc2V0dGlu
Z3NfZnJlZShFd2tfU2V0dGluZ3MqKTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRl
eCA3ZDhiMWNlMDU2NDMxNTQ5M2I1MTNkMTE1MzUyZDk5YjQwZTUxYzEyLi40OTA2ZTZmNjk0NWQx
Mjc3OWJhM2U1ZTA2N2I3MzNjNzVkZjFkY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiZXdr
X2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9j
bGllbnRfcHJpdmF0ZS5oIgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPEVkamUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWZsU2NyZWVuVXRp
bGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAg
LTgxLDYgKzgzLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIEV2YXNf
T2JqZWN0KiBjdXJzb3JPYmplY3Q7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVz
b3VyY2VzTWFwOwogICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0Owor
ICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3M7CiAKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICBi
b29sIGlzVXNpbmdFY29yZVg7CkBAIC0xMDAsNiArMTAzLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Q
cml2YXRlX0RhdGEgewogICAgICAgICAsIGN1cnNvckdyb3VwKDApCiAgICAgICAgICwgY3Vyc29y
T2JqZWN0KDApCiAgICAgICAgICwgYmFja0ZvcndhcmRMaXN0KDApCisgICAgICAgICwgc2V0dGlu
Z3MoMCkKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICAgICAgLCBpc1VzaW5nRWNvcmVYKGZhbHNl
KQogI2VuZGlmCkBAIC0xMjIsNiArMTI2LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0Rh
dGEgewogICAgICAgICAgICAgZXZhc19vYmplY3RfZGVsKGN1cnNvck9iamVjdCk7CiAKICAgICAg
ICAgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2ZyZWUoYmFja0ZvcndhcmRMaXN0KTsKKyAgICAgICAg
ZXdrX3NldHRpbmdzX2ZyZWUoc2V0dGluZ3MpOwogICAgIH0KIH07CiAKQEAgLTY3NCw2ICs2Nzks
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShFdmFzX09iamVjdCogZXdrVmll
dywgRXdrX0NvbnRleHQqIGNvbnRleHQsIFdLUAogCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IFBh
Z2VDbGllbnRJbXBsOjpjcmVhdGUodG9JbXBsKGV3a19jb250ZXh0X1dLQ29udGV4dF9nZXQoY29u
dGV4dCkpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgZXdrVmlldyk7CiAgICAgcHJpdi0+YmFja0Zv
cndhcmRMaXN0ID0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X25ldyh0b0FQSShwcml2LT5wYWdlQ2xp
ZW50LT5wYWdlKCktPmJhY2tGb3J3YXJkTGlzdCgpKSk7CisgICAgcHJpdi0+c2V0dGluZ3MgPSBl
d2tfc2V0dGluZ3NfbmV3KFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdy
b3VwKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkpKSk7CiAKICNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCiAgICAgcHJpdi0+dmlld3BvcnRIYW5kbGVyID0gRWZsVmlld3BvcnRI
YW5kbGVyOjpjcmVhdGUocHJpdi0+cGFnZUNsaWVudC5nZXQoKSk7CkBAIC04MjksNiArODM1LDE0
IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJl
dHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRpbmdzX2dldChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJO
KHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJpdi0+c2V0dGluZ3M7Cit9CisK
IC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEgcmVzb3VyY2Ug
aW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aAppbmRleCA0MjNmOWUxNDMxODMyYjI0MGI5Mjc3YTU4ZDE3MGJlYTIzMTc5MTYzLi45MWM2ODFj
MTdlMjNmOTNkZWIwYTJkODcyMjdlOWQ3MmM0NDFiYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJl
d2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3dubG9hZF9qb2IuaCIKICNpbmNsdWRlICJl
d2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgogI2luY2x1ZGUgImV3
a193ZWJfZXJyb3IuaCIKQEAgLTM0Nyw2ICszNDgsMTUgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAg
ICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCisgKiBHZXRzIHRoZSBFd2tf
U2V0dGluZ3Mgb2YgdGhpcyB2aWV3LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9iamVjdCB0
byBnZXQgRXdrX1NldHRpbmdzCisgKgorICogQHJldHVybiB0aGUgRXdrX1NldHRpbmdzIG9mIHRo
aXMgdmlldyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfU2V0dGluZ3MgKmV3
a192aWV3X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgogICogRGVs
aXZlcnMgYSBXZWIgaW50ZW50IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFy
YW0gbyB2aWV3IG9iamVjdCB0byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157930</attachid>
            <date>2012-08-13 00:00:48 -0700</date>
            <delta_ts>2012-08-13 08:22:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120813160016.patch</filename>
            <type>text/plain</type>
            <size>14412</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGE5NWJkOWFlNjk0ZmQx
ZTU0M2M1YTg3NzVjODU0ZTA2YjEwYThlMi4uOWU3MTcwMzFkODJjMDIwNDQyNDY2MTI1NmI2NDY0
OTBkYjNlODNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA4LTEyICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0
KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19hdXRvX2xvYWRfaW1hZ2VzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAg
IChfRXdrX1NldHRpbmdzOjpfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAg
ICAgICAgKF9ld2tfdmlld19pbml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdz
X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKwogMjAxMi0w
OC0xMiAgTnVubyBMb3BlcyAgPG5sb3Blc0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxk
IHdpdGggcmVjZW50IGNsYW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkNWVkNTQy
MGYwNDhhOTRmNWY5ZTNlMjUwNTI1MTRhMzRiOTEzNjNiLi4yYjIzNWFjZGNjY2Q5NzgwZWUyNDcy
YWM1NDM5MTc0Mzk0YjI1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTYsNiAr
NTYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4u
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9y
ZXF1ZXN0LmNwcApAQCAtMjA1LDYgKzIwNiw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAg
ICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVu
dF9zZXJ2aWNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbWFpbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCisgICAgIiR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggZDk4MDIzZGU2
ZTBlZmE2ZGUwN2ZjOWZiOGMyMTVkMzljYzQ4OTg3Yy4uNTE1NGNjMjExZTM0ZjllNGM2ZGM2YThh
ODIyNDJlZjY4Njc2MGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRVdlYktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNl
LmgiCiAjaW5jbHVkZSAiZXdrX21haW4uaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xp
Y3lfZGVjaXNpb24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tf
dXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWFlMWExZWZhOTYzOGRi
Nzc0NzY3NmIwMWEzMWEyMWM2YjYuLjFkYzY3ZjhkNzgzY2VhMzRiN2QyZjUxNmQ2OWMxMDljY2I2
ZTQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdl
Q2xpZW50SW1wbC5jcHAKQEAgLTQ3LDcgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUGFn
ZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dp
ZGdldCh2aWV3V2lkZ2V0KQogewotICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2Uo
dGhpcywgcGFnZUdyb3VwKTsKKyAgICBpZiAocGFnZUdyb3VwKQorICAgICAgICBtX3BhZ2UgPSBj
b250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCk7CisgICAgZWxzZQorICAgICAg
ICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIFdlYlBhZ2VHcm91cDo6Y3Jl
YXRlKCkuZ2V0KCkpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGFn
ZS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1ZTJiYmU5MDg4ZDg3YzBiYTVjMDU5MDE1ZTQ4
Y2EyMzllNmQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisKKyNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0
ZS5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKQoreworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgV0tQcmVmZXJl
bmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSwgZW5h
YmxlKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2Vu
YWJsZV9zY3JpcHRzX2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAgcmV0
dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVyZW5j
ZXMuZ2V0KCkpOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNf
c2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBhdXRvbWF0aWMpCit7CisgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBX
S1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJl
bmNlcy5nZXQoKSwgYXV0b21hdGljKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseShzZXR0aW5ncy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2I2NTQy
Y2ZjY2I5Njk2NWZhZmU3ZmIwMTZkMmViYTRkMDMyNGIwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
cHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisv
KioKKyAqIEBmaWxlICAgIGV3a19zZXR0aW5ncy5oCisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhl
IHNldHRpbmdzIEFQSS4KKyAqCisgKiBAbm90ZSBUaGUgZXdrX3NldHRpbmdzIGlzIGZvciBzZXR0
aW5nIHRoZSBwcmVmZXJlbmNlIG9mIHNwZWNpZmljIGV3a192aWV3LgorICogV2UgY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
KCkgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX2gKKyNkZWZpbmUgZXdrX3NldHRp
bmdzX2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19TZXR0aW5n
cyAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19TZXR0aW5ncyBFd2tfU2V0dGluZ3M7CisKKy8qKgor
ICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgamF2YXNjcmlwdCBleGVjdXRpbmcuCisgKgorICogQHBh
cmFtIHNldHRpbmdzIHNldHRpbmdzIG9iamVjdCB0byBzZXQgc2NyaXB0IGV4ZWN1dGluZworICog
QHBhcmFtIGVuYWJsZSBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIHNjcmlwdCBleGVjdXRpbmcKKyAq
ICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFf
VFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0KEV3a19TZXR0aW5ncyogc2V0
dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpOworCisvKioKKyAqIFJldHVybnMgdGhlIHNjcmlwdHMg
Y2FuIGJlIGV4ZWN1dGFibGUgb3Igbm90LgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5n
cyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIHNjcmlwdHMgY2FuIGJlIGV4ZWN1dGVkCisgKgorICog
QHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIHNjcmlwdHMgY2FuIGJlIGV4ZWN1dGVkCisgKiAg
ICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5h
X0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX2dldChjb25zdCBFd2tfU2V0dGluZ3Mq
IHNldHRpbmdzKTsKKworLyoqCisgKiBFbmFibGVzL2Rpc2FibGVzIGF1dG8gbG9hZGluZyBvZiB0
aGUgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0
IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzCisgKiBAcGFyYW0gYXV0b21hdGljIEBjIEVJTkFf
VFJVRSB0byBlbmFibGUgYXV0byBsb2FkaW5nIG9mIHRoZSBpbWFnZXMsCisgKiAgICAgICAgQGMg
RUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3Vj
Y2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdr
X3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVp
bmFfQm9vbCBhdXRvbWF0aWMpOworCisvKioKKyAqIFJldHVybnMgdGhlIGltYWdlcyBjYW4gYmUg
bG9hZGVkIGF1dG9tYXRpY2FsbHkgb3Igbm90LgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0
aW5ncyBvYmplY3QgdG8gZ2V0IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzCisgKgorICogQHJl
dHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGltYWdlcyBhcmUgbG9hZGVkIGF1dG9tYXRpY2FsbHks
CisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKKyAqLworRUFQ
SSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfZ2V0KGNvbnN0IEV3a19T
ZXR0aW5ncyogc2V0dGluZ3MpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2Vu
ZGlmIC8vIGV3a19zZXR0aW5nc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjY2MDZmMTdl
ZDhhZDA2MmVjYWUzNDIyMzdiOGNjOGQ2Mzk3ZWZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAorI2RlZmluZSBld2tfc2V0dGluZ3Nf
cHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9F
d2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdz
OworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfU2V0dGluZ3MKKyAqIEBicmllZiAgIENvbnRhaW5z
IHRoZSBzZXR0aW5ncyBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19TZXR0aW5ncyB7CisgICAgV0tS
ZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXM7CisKKyAgICBfRXdrX1NldHRp
bmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcykKKyAgICAgICAgOiBwcmVmZXJlbmNl
cyh3a1ByZWZlcmVuY2VzKQorICAgIHsgfQorfTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19w
cml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cAppbmRleCA3ZDhiMWNlMDU2NDMxNTQ5M2I1MTNkMTE1MzUyZDk5YjQwZTUxYzEyLi4yZmNlNDEz
YTQ2MGRiZDgwYjVkZDI5YmE1N2JiYzQzYWYwNWI4MmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5o
IgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xv
YWRlcl9jbGllbnRfcHJpdmF0ZS5oIgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPEVkamUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWZsU2Ny
ZWVuVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKQEAgLTgxLDYgKzgzLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAg
IEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2Fk
aW5nUmVzb3VyY2VzTWFwOwogICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRM
aXN0OworICAgIE93blB0cjxFd2tfU2V0dGluZ3M+IHNldHRpbmdzOwogCiAjaWZkZWYgSEFWRV9F
Q09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwpAQCAtNjc0LDYgKzY3Nyw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29u
dGV4dCogY29udGV4dCwgV0tQCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZSh0b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSksIHRv
SW1wbChwYWdlR3JvdXBSZWYpLCBld2tWaWV3KTsKICAgICBwcml2LT5iYWNrRm9yd2FyZExpc3Qg
PSBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKKyAgICBwcml2LT5zZXR0aW5ncyA9IGFkb3B0UHRyKG5l
dyBFd2tfU2V0dGluZ3MoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3Jv
dXAodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpKSk7CiAKICNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCiAgICAgcHJpdi0+dmlld3BvcnRIYW5kbGVyID0gRWZsVmlld3BvcnRI
YW5kbGVyOjpjcmVhdGUocHJpdi0+cGFnZUNsaWVudC5nZXQoKSk7CkBAIC04MjksNiArODMzLDE0
IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJl
dHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRpbmdzX2dldChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJO
KHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJpdi0+c2V0dGluZ3MuZ2V0KCk7
Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEgcmVz
b3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuaAppbmRleCA0MjNmOWUxNDMxODMyYjI0MGI5Mjc3YTU4ZDE3MGJlYTIzMTc5MTYzLi45
MWM2ODFjMTdlMjNmOTNkZWIwYTJkODcyMjdlOWQ3MmM0NDFiYjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNs
dWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3dubG9hZF9qb2IuaCIKICNpbmNs
dWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgogI2luY2x1
ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAgLTM0Nyw2ICszNDgsMTUgQEAgRUFQSSBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFf
Qm9vbCAgICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCisgKiBHZXRzIHRo
ZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9i
amVjdCB0byBnZXQgRXdrX1NldHRpbmdzCisgKgorICogQHJldHVybiB0aGUgRXdrX1NldHRpbmdz
IG9mIHRoaXMgdmlldyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfU2V0dGlu
Z3MgKmV3a192aWV3X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgog
ICogRGVsaXZlcnMgYSBXZWIgaW50ZW50IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAg
KiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158004</attachid>
            <date>2012-08-13 08:22:46 -0700</date>
            <delta_ts>2012-08-26 04:20:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120814002214.patch</filename>
            <type>text/plain</type>
            <size>15984</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGE5NWJkOWFlNjk0ZmQx
ZTU0M2M1YTg3NzVjODU0ZTA2YjEwYThlMi4uOWU3MTcwMzFkODJjMDIwNDQyNDY2MTI1NmI2NDY0
OTBkYjNlODNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA4LTEyICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0
KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19hdXRvX2xvYWRfaW1hZ2VzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAg
IChfRXdrX1NldHRpbmdzOjpfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAg
ICAgICAgKF9ld2tfdmlld19pbml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdz
X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKwogMjAxMi0w
OC0xMiAgTnVubyBMb3BlcyAgPG5sb3Blc0BhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxk
IHdpdGggcmVjZW50IGNsYW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkNWVkNTQy
MGYwNDhhOTRmNWY5ZTNlMjUwNTI1MTRhMzRiOTEzNjNiLi4yYjIzNWFjZGNjY2Q5NzgwZWUyNDcy
YWM1NDM5MTc0Mzk0YjI1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTYsNiAr
NTYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4u
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXNwb25zZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9y
ZXF1ZXN0LmNwcApAQCAtMjA1LDYgKzIwNiw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAg
ICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVu
dF9zZXJ2aWNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbWFpbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCisgICAgIiR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggZDk4MDIzZGU2
ZTBlZmE2ZGUwN2ZjOWZiOGMyMTVkMzljYzQ4OTg3Yy4uNTE1NGNjMjExZTM0ZjllNGM2ZGM2YThh
ODIyNDJlZjY4Njc2MGUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRVdlYktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNl
LmgiCiAjaW5jbHVkZSAiZXdrX21haW4uaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xp
Y3lfZGVjaXNpb24uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tf
dXJsX3JlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWFlMWExZWZhOTYzOGRi
Nzc0NzY3NmIwMWEzMWEyMWM2YjYuLjFkYzY3ZjhkNzgzY2VhMzRiN2QyZjUxNmQ2OWMxMDljY2I2
ZTQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdl
Q2xpZW50SW1wbC5jcHAKQEAgLTQ3LDcgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUGFn
ZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dp
ZGdldCh2aWV3V2lkZ2V0KQogewotICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2Uo
dGhpcywgcGFnZUdyb3VwKTsKKyAgICBpZiAocGFnZUdyb3VwKQorICAgICAgICBtX3BhZ2UgPSBj
b250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCk7CisgICAgZWxzZQorICAgICAg
ICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIFdlYlBhZ2VHcm91cDo6Y3Jl
YXRlKCkuZ2V0KCkpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGFn
ZS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJkYzdlMTdlMzEyOGQ2NTFmYjg5MTY3MTVmNTQ4
YjIzNGNmOTYxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKworI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxlX3Njcmlw
dHNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCit7CisgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBX
S1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdl
dCgpLCBlbmFibGUpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0
dGluZ3NfZW5hYmxlX3NjcmlwdHNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7
CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisK
KyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5w
cmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0b19sb2Fk
X2ltYWdlc19zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1dG9tYXRpYykK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
KworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3Mt
PnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQoY29uc3QgRXdrX1Nl
dHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2V0dGluZ3MsIGZhbHNlKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzN2ZmZDY4Nzc3MmQ2MzllMDdlZDc2YWU0MTdhNTQ4MmM5OTA0MjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApAQCAt
MCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICogQGJyaWVm
ICAgRGVzY3JpYmVzIHRoZSBzZXR0aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3a19zZXR0
aW5ncyBpcyBmb3Igc2V0dGluZyB0aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tfdmlldy4K
KyAqIFdlIGNhbiBnZXQgdGhlIGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nIGV3a192
aWV3X3NldHRpbmdzX2dldCgpIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5nc19oCisj
ZGVmaW5lIGV3a19zZXR0aW5nc19oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUg
Zm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1Nl
dHRpbmdzOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQgZXhlY3V0
aW5nLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IHNjcmlw
dCBleGVjdXRpbmcKKyAqIEBwYXJhbSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBzY3Jp
cHQgZXhlY3V0aW5nCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICog
QHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1
cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChF
d2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisgKiBSZXR1
cm5zIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBAcGFyYW0g
c2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBl
eGVjdXRlZAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRzIGNhbiBi
ZSBleGVjdXRlZAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJl
CisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoY29u
c3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBh
dXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGlu
Z3Mgb2JqZWN0IHRvIHNldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1
dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2Vz
LAorICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VB
UEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1cm5zIHRo
ZSBpbWFnZXMgY2FuIGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisgKiBAcGFy
YW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGlt
YWdlcworICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRl
ZCBhdXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBm
YWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2Vz
X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKTsKKworI2lmZGVmIF9fY3BsdXNwbHVz
Cit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmM5ZGEwZDdjMzlmNmEwMjU0MzE4YTQ1YThiYzIzMGE1YmI5OTU3YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19w
cml2YXRlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZhdGVf
aAorI2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tfc2V0dGlu
Z3MuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworLyoqIENy
ZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9F
d2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfU2V0dGlu
Z3MKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBzZXR0aW5ncyBkYXRhLgorICovCitzdHJ1Y3Qg
X0V3a19TZXR0aW5ncyB7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVy
ZW5jZXM7CisKKyAgICBleHBsaWNpdCBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQ
cmVmZXJlbmNlcykKKyAgICAgICAgOiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQorICAgIHsg
fQorfTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA3ZDhiMWNlMDU2NDMxNTQ5
M2I1MTNkMTE1MzUyZDk5YjQwZTUxYzEyLi4yZmNlNDEzYTQ2MGRiZDgwYjVkZDI5YmE1N2JiYzQz
YWYwNWI4MmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5o
IgogI2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19wcml2YXRl
LmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmll
d19maW5kX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRf
cHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgpA
QCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1
cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWZsU2NyZWVuVXRpbGl0aWVzLmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTgxLDYgKzgzLDcgQEAgc3Ry
dWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmpl
Y3Q7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwogICAgIEV3
a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0OworICAgIE93blB0cjxFd2tfU2V0
dGluZ3M+IHNldHRpbmdzOwogCiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5n
RWNvcmVYOwpAQCAtNjc0LDYgKzY3Nyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFs
aXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAKICAg
ICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZSh0b0ltcGwoZXdrX2Nv
bnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBld2tW
aWV3KTsKICAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBld2tfYmFja19mb3J3YXJkX2xpc3Rf
bmV3KHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+YmFja0ZvcndhcmRMaXN0KCkpKTsK
KyAgICBwcml2LT5zZXR0aW5ncyA9IGFkb3B0UHRyKG5ldyBFd2tfU2V0dGluZ3MoV0tQYWdlR3Jv
dXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZUNsaWVu
dC0+cGFnZSgpKSkpKSk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJp
di0+dmlld3BvcnRIYW5kbGVyID0gRWZsVmlld3BvcnRIYW5kbGVyOjpjcmVhdGUocHJpdi0+cGFn
ZUNsaWVudC5nZXQoKSk7CkBAIC04MjksNiArODMzLDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
dG9wKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0
dGluZ3MqIGV3a192aWV3X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
K3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7
CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisK
KyAgICByZXR1cm4gcHJpdi0+c2V0dGluZ3MuZ2V0KCk7Cit9CisKIC8qKgogICogQGludGVybmFs
CiAgKiBMb2FkIHdhcyBpbml0aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCA0MjNmOWUxNDMx
ODMyYjI0MGI5Mjc3YTU4ZDE3MGJlYTIzMTc5MTYzLi45MWM2ODFjMTdlMjNmOTNkZWIwYTJkODcy
MjdlOWQ3MmM0NDFiYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2lu
Y2x1ZGUgImV3a19kb3dubG9hZF9qb2IuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5j
bHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAg
LTM0Nyw2ICszNDgsMTUgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19j
YWNoZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zdG9wKEV2
YXNfT2JqZWN0ICpvKTsKIAogLyoqCisgKiBHZXRzIHRoZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2
aWV3LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9iamVjdCB0byBnZXQgRXdrX1NldHRpbmdz
CisgKgorICogQHJldHVybiB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMgdmlldyBvciBAYyBOVUxM
IG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRpbmdzX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50
IHRvIHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0
byBkZWxpdmVyIHRoZSBpbnRlbnQgdG8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160600</attachid>
            <date>2012-08-26 04:20:11 -0700</date>
            <delta_ts>2012-09-03 04:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120826202003.patch</filename>
            <type>text/plain</type>
            <size>19962</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjYzZDI4N2YzMzA0ZTJh
YzllZTQxNzlhMzU5Mzk5YzQ2MDVmNmJhMC4uZWM5ZTMzYzQ0NTVkMmIzZTMwZjRmMjFmZTQyNTQ2
YmFmYTcyZTcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA4LTI2ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0
KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQpOgorICAgICAgICAo
ZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19hdXRvX2xvYWRfaW1hZ2VzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAg
IChfRXdrX1NldHRpbmdzOjpfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAg
ICAgICAgKF9ld2tfdmlld19pbml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdz
X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX3ZpZXcuY3BwOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0wOC0yNSAgVml2ZWsg
R2FsYXRhZ2UgIDx2aXZla2dhbGF0YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBXaW5DYWlybyBC
dWlsZCBCcm9rZW4gZHVlIHRvIG1pc3NpbmcgZXhwb3J0IGRlZmluaXRpb25zCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCmluZGV4IGQ0YjA4ZjhiZTAwM2Y4NGVmMjFhMGE0NGM4MTI2NWJhMmQ2Yzhl
YTYuLmYwMmZiMmEyOGY1ZjU2YzA4MWFlOGVlNmRiMWI4MDczZGJjMTU5NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC01NSw2ICs1NSw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09V
UkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbWFpbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCisgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCkBAIC0yMDYsNiArMjA3LDcgQEAg
U0VUIChFV2ViS2l0Ml9IRUFERVJTCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaCIKICAgICAiJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmgiCiAgICAgIiR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb24uaCIKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgiCiAgICAgIiR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmgi
CiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3NjaGVtZV9yZXF1ZXN0LmgiCkBAIC0yNzEsNiArMjczLDcgQEAgU0VUKEVXSzJVbml0VGVz
dHNfQklOQVJJRVMKICAgICB0ZXN0X2V3azJfZG93bmxvYWRfam9iCiAgICAgdGVzdF9ld2syX2Vp
bmFfc2hhcmVkX3N0cmluZwogICAgIHRlc3RfZXdrMl9pbnRlbnRzCisgICAgdGVzdF9ld2syX3Nl
dHRpbmdzCiAgICAgdGVzdF9ld2syX3ZpZXcKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggZDk4MDIzZGU2ZTBlZmE2ZGUwN2ZjOWZiOGMyMTVk
MzljYzQ4OTg3Yy4uNTE1NGNjMjExZTM0ZjllNGM2ZGM2YThhODIyNDJlZjY4Njc2MGUyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlLmgiCiAjaW5jbHVkZSAiZXdrX21h
aW4uaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKKyNpbmNs
dWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3QuaCIKICNpbmNs
dWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVz
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVu
dEltcGwuY3BwCmluZGV4IDcyNmNhYWFlMWExZWZhOTYzOGRiNzc0NzY3NmIwMWEzMWEyMWM2YjYu
LjFkYzY3ZjhkNzgzY2VhMzRiN2QyZjUxNmQ2OWMxMDljY2I2ZTQwYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQ3
LDcgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUGFnZUNsaWVudEltcGw6OlBhZ2VDbGll
bnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFz
X09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dpZGdldCh2aWV3V2lkZ2V0KQogewot
ICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFnZUdyb3VwKTsKKyAg
ICBpZiAocGFnZUdyb3VwKQorICAgICAgICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdl
KHRoaXMsIHBhZ2VHcm91cCk7CisgICAgZWxzZQorICAgICAgICBtX3BhZ2UgPSBjb250ZXh0LT5j
cmVhdGVXZWJQYWdlKHRoaXMsIFdlYlBhZ2VHcm91cDo6Y3JlYXRlKCkuZ2V0KCkpOwogCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGFnZS0+cGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTJkYzdlMTdlMzEyOGQ2NTFmYjg5MTY3MTVmNTQ4YjIzNGNmOTYxMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5j
cHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tf
c2V0dGluZ3MuaCIKKworI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisK
K0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0KEV3a19TZXR0aW5ncyog
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNj
cmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBlbmFibGUpOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNf
Z2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJl
bmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9
CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19zZXQoRXdrX1NldHRp
bmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1dG9tYXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNT
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBh
dXRvbWF0aWMpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfYXV0b19sb2FkX2ltYWdlc19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKwor
ICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRp
bmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzN2ZmZDY4Nzc3MmQ2MzllMDdl
ZDc2YWU0MTdhNTQ4MmM5OTA0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApAQCAtMCwwICsxLDkxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisg
KiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICogQGJyaWVmICAgRGVzY3JpYmVzIHRoZSBzZXR0
aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3a19zZXR0aW5ncyBpcyBmb3Igc2V0dGluZyB0
aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tfdmlldy4KKyAqIFdlIGNhbiBnZXQgdGhlIGV3
a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nIGV3a192aWV3X3NldHRpbmdzX2dldCgpIEFQ
SS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5nc19oCisjZGVmaW5lIGV3a19zZXR0aW5nc19o
CisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAqIEVu
YWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQgZXhlY3V0aW5nLgorICoKKyAqIEBwYXJhbSBz
ZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IHNjcmlwdCBleGVjdXRpbmcKKyAqIEBwYXJh
bSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBzY3JpcHQgZXhlY3V0aW5nCisgKiAgICAg
ICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUg
b24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdz
LCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHRzIGNhbiBi
ZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2Jq
ZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRlZAorICogICAgICAg
ICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29s
IGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoY29uc3QgRXdrX1NldHRpbmdzKiBzZXR0
aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhlIGlt
YWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBhdXRv
IGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUg
dG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLAorICogICAgICAgIEBjIEVJTkFf
RkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mg
b3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0
aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jv
b2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxvYWRl
ZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mg
b2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICoKKyAqIEByZXR1cm4g
QGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICog
ICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWlu
YV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAv
LyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM5ZGEwZDdjMzlmNmEw
MjU0MzE4YTQ1YThiYzIzMGE1YmI5OTU3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAorI2RlZmluZSBld2tfc2V0dGlu
Z3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9y
IF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRp
bmdzOworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfU2V0dGluZ3MKKyAqIEBicmllZiAgIENvbnRh
aW5zIHRoZSBzZXR0aW5ncyBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19TZXR0aW5ncyB7CisgICAg
V0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXM7CisKKyAgICBleHBsaWNp
dCBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcykKKyAgICAgICAg
OiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQorICAgIHsgfQorfTsKKworI2VuZGlmIC8vIGV3
a19zZXR0aW5nc19wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcAppbmRleCBjZTdmN2I0NTQ5NDYzYzEwZmJhY2NiNzU3M2EzYmVhYWRlMjUz
YjBkLi5kZmNkNmFiMWUwY2MxMWVjOTIzZjY0ZTJkODBmZGJmMWVhMzU3ZGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19pbnRl
bnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3Nl
dHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVudF9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
ImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgpAQCAtNDgsNiArNDksNyBAQAogI2lu
Y2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRWZsU2NyZWVuVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKQEAgLTgyLDYgKzg0LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRl
X0RhdGEgewogICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CiAgICAgTG9hZGluZ1Jlc291
cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwogICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCog
YmFja0ZvcndhcmRMaXN0OworICAgIE93blB0cjxFd2tfU2V0dGluZ3M+IHNldHRpbmdzOwogCiAj
aWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwpAQCAtNjY2LDYgKzY2
OSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZSh0b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChj
b250ZXh0KSksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBld2tWaWV3KTsKICAgICBwcml2LT5iYWNr
Rm9yd2FyZExpc3QgPSBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKKyAgICBwcml2LT5zZXR0aW5ncyA9
IGFkb3B0UHRyKG5ldyBFd2tfU2V0dGluZ3MoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKSkpKSk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJpdi0+dmlld3BvcnRIYW5kbGVyID0g
RWZsVmlld3BvcnRIYW5kbGVyOjpjcmVhdGUocHJpdi0+cGFnZUNsaWVudC5nZXQoKSk7CkBAIC04
MjMsNiArODI3LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRp
bmdzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9H
RVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJpdi0+c2V0
dGluZ3MuZ2V0KCk7Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBpbml0aWF0
ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCBhZmE0NTg0NmY1MWM4ZjBhZDM1OTZmYWY1NzU3Mjhl
MjU2NDQxMGI5Li5lMWYxOGIwYzE1ZWU3YWRmZmUyYmEwN2M3MmU0MzI5MjZlZDYzNjE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTczLDYgKzcz
LDcgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3dubG9hZF9q
b2IuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgi
CiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25z
ZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAgLTM0Nyw2ICszNDgsMTUgQEAgRUFQ
SSBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVjdCAqbyk7
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIAogLyoq
CisgKiBHZXRzIHRoZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3LgorICoKKyAqIEBwYXJhbSBv
IHRoZSB2aWV3IG9iamVjdCB0byBnZXQgRXdrX1NldHRpbmdzCisgKgorICogQHJldHVybiB0aGUg
RXdrX1NldHRpbmdzIG9mIHRoaXMgdmlldyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQ
SSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCAq
byk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50IHRvIHRoZSB2aWV3J3MgbWFpbiBm
cmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBkZWxpdmVyIHRoZSBpbnRlbnQg
dG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl9zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90
ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2OGIxNDZhZmMwZDNjODNi
NzI3ZDczMjg5MWI4ZGQ3YjdmOWU0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxz
L0VXSzJVbml0VGVzdEJhc2UuaCIKKyNpbmNsdWRlIDxFV2ViS2l0Mi5oPgorI2luY2x1ZGUgPEVp
bmEuaD4KKwordXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0VGVzdDsKKworVEVTVF9GKEVXSzJVbml0
VGVzdEJhc2UsIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0cykKK3sKKyAgICBFd2tfU2V0dGlu
Z3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBB
U1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0KHNldHRpbmdzLCBFSU5B
X1RSVUUpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfZ2V0
KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5hYmxlX3Njcmlw
dHNfc2V0KHNldHRpbmdzLCAyKSk7CisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdzX2VuYWJs
ZV9zY3JpcHRzX2dldChzZXR0aW5ncykpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdz
X2VuYWJsZV9zY3JpcHRzX3NldChzZXR0aW5ncywgRUlOQV9GQUxTRSkpOworICAgIEFTU0VSVF9G
QUxTRShld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfZ2V0KHNldHRpbmdzKSk7Cit9CisKK1RF
U1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlcykKK3sK
KyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZp
ZXcoKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19z
ZXQoc2V0dGluZ3MsIEVJTkFfVFJVRSkpOworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19h
dXRvX2xvYWRfaW1hZ2VzX2dldChzZXR0aW5ncykpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3Nl
dHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfc2V0KHNldHRpbmdzLCAyKSk7CisgICAgQVNTRVJUX1RS
VUUoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFnZXNfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBB
U1NFUlRfVFJVRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19zZXQoc2V0dGluZ3MsIEVJ
TkFfRkFMU0UpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFn
ZXNfZ2V0KHNldHRpbmdzKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKaW5kZXggNWVkYjA0Mzc5YTVm
ZDg5MTQxMDY0ZjYyMjhjMTQ0OThhNjAxYzFmMS4uN2M2ODRkMzNlMGFmOTBjNTc3YjkwOTI5M2Ez
YzBkNDg2MWMzNWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcApAQCAtMTg4LDMgKzE4OCw4IEBAIFRF
U1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdCkK
ICAgICBBU1NFUlRfVFJVRShoYW5kbGVkKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19kZWwod2ViVmlldygpLCAiZm9ybSxzdWJtaXNzaW9uLHJlcXVlc3QiLCBvbkZvcm1BYm91dFRv
QmVTdWJtaXR0ZWQpOwogfQorCitURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KQoreworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X3NldHRpbmdzX2dldCh3ZWJW
aWV3KCkpKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161895</attachid>
            <date>2012-09-03 04:10:58 -0700</date>
            <delta_ts>2012-09-03 04:16:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120903201042.patch</filename>
            <type>text/plain</type>
            <size>20048</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTEzMjc3ZDExZjA5NzJl
Yzg3ZmE5NGQ2YWEyMTM1YzRiNGQwM2RiNi4uYmZjZDUxOWE2Yzg1OGMxMWU1NmMxZDUxMWEyMzFi
ZTkyZDkzN2RlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQpOgorICAgICAgICAoZXdr
X3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfYXV0
b19sb2FkX2ltYWdlc19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFn
ZXNfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDog
QWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKF9Fd2tfU2V0dGluZ3M6
Ol9Fd2tfU2V0dGluZ3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3
X2luaXRpYWxpemUpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoVEVTVF9G
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6
CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA5LTAzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBTa2lwIEVXSzJV
bml0VGVzdEJhc2UuZXdrX2Nvb2tpZV9tYW5hZ2VyX3Blcm1hbmVudF9zdG9yYWdlIEFQSSB0ZXN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDU2Y2EwYzE5NzI0YTljMzhmY2JkYzc5NzVj
OWQyNjZmYjMzNzZmYjYuLjlmMWI5OWU1ODBjNDJjZjhkMWZmMzc2YTc0NTZjMmE5MTM3ZGQ3YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC02MCw2ICs2MCw3IEBAIExJU1QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcApAQCAtMjE0
LDYgKzIxNSw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uaCIKICAgICAiJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5oIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgiCiAgICAgIiR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaCIK
ICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVzcG9uc2UuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuaCIKQEAgLTI3OSw2ICsyODEsNyBAQCBT
RVQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRlc3RfZXdrMl9kb3dubG9hZF9qb2IKICAg
ICB0ZXN0X2V3azJfZWluYV9zaGFyZWRfc3RyaW5nCiAgICAgdGVzdF9ld2syX2ludGVudHMKKyAg
ICB0ZXN0X2V3azJfc2V0dGluZ3MKICAgICB0ZXN0X2V3azJfdmlldwogKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBmMWMwOTBlZGJjNDI2ODky
YWM0OGJlOThmOGNiYzk2MDg2NGEzMTUyLi43NTBjYjQ4NjQ5OTY5MWZmMDAzNjA0YmZmMGUwYTA1
MzgyYzI4YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQy
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJld2tfbWFpbi5oIgogI2luY2x1ZGUgImV3
a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51
X2l0ZW0uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJkYzdlMTdlMzEyOGQ2NTFmYjg5MTY3
MTVmNTQ4YjIzNGNmOTYxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKworI2luY2x1ZGUgImV3a19z
ZXR0aW5nc19wcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxl
X3NjcmlwdHNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCit7
CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzLmdldCgpLCBlbmFibGUpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHNldHRp
bmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0
b19sb2FkX2ltYWdlc19zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1dG9t
YXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0
dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQoY29uc3Qg
RXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwM2Y3YjZkNzg4MWIwNGZmMjk5NGE0Y2YwM2NkNGRmMjg3YzRhMGEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICog
QGJyaWVmICAgRGVzY3JpYmVzIHRoZSBzZXR0aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3
a19zZXR0aW5ncyBpcyBmb3Igc2V0dGluZyB0aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tf
dmlldy4KKyAqIFdlIGNhbiBnZXQgdGhlIGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5n
IGV3a192aWV3X3NldHRpbmdzX2dldCgpIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5n
c19oCisjZGVmaW5lIGV3a19zZXR0aW5nc19oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBl
IG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3Mg
RXdrX1NldHRpbmdzOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQg
ZXhlY3V0aW5nLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0
IHNjcmlwdCBleGVjdXRpbmcKKyAqIEBwYXJhbSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJs
ZSBzY3JpcHQgZXhlY3V0aW5nCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisg
KgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRz
X3NldChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisg
KiBSZXR1cm5zIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBA
cGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNh
biBiZSBleGVjdXRlZAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRz
IGNhbiBiZSBleGVjdXRlZAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBm
YWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19n
ZXQoY29uc3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNh
YmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mg
c2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBh
cmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUg
aW1hZ2VzLAorICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisg
Ki8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tf
U2V0dGluZ3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1
cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisg
KiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2Yg
dGhlIGltYWdlcworICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJl
IGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBv
ciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRf
aW1hZ2VzX2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnNldHRpbmdzKTsKKworI2lmZGVmIF9fY3Bs
dXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmM5ZGEwZDdjMzlmNmEwMjU0MzE4YTQ1YThiYzIzMGE1YmI5OTU3YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3By
aXZhdGVfaAorI2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tf
c2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
LyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3Ry
dWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tf
U2V0dGluZ3MKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBzZXR0aW5ncyBkYXRhLgorICovCitz
dHJ1Y3QgX0V3a19TZXR0aW5ncyB7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4g
cHJlZmVyZW5jZXM7CisKKyAgICBleHBsaWNpdCBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNS
ZWYgd2tQcmVmZXJlbmNlcykKKyAgICAgICAgOiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQor
ICAgIHsgfQorfTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA1NWUxM2RkNDcy
NTI4NmZmOTA3Y2VkOWI2NTczNDZhZDQyNDIwZWU1Li4yZDcwYTcwY2EwYWFiNGI0ZjhlOGM3ZTY4
YTQ0YmZmNjRiMWY1NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNp
bmNsdWRlICJXS1VSTC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQb3B1
cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRl
LmgiCkBAIC00MSw2ICs0Miw3IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbS5oIgog
I2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19w
cml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdmlld19maW5kX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9j
bGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0
ZS5oIgpAQCAtNTMsNiArNTUsNyBAQAogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWZsU2NyZWVuVXRpbGl0aWVzLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTg4LDYgKzkxLDcg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIEV2YXNfT2JqZWN0KiBjdXJz
b3JPYmplY3Q7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwog
ICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0OworICAgIE93blB0cjxF
d2tfU2V0dGluZ3M+IHNldHRpbmdzOwogCiAgICAgV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVw
TWVudVByb3h5OwogICAgIEVpbmFfTGlzdCogcG9wdXBNZW51SXRlbXM7CkBAIC02ODUsNyArNjg5
LDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZShld2tWaWV3KTsKIAotICAgIHByaXYtPnBhZ2VQcm94eSA9
IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKS0+Y3JlYXRlV2ViUGFn
ZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSk7CisgICAgaWYg
KHBhZ2VHcm91cFJlZikKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250
ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGll
bnQuZ2V0KCksIHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyAgICBlbHNlCisgICAgICAgIHByaXYt
PnBhZ2VQcm94eSA9IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKS0+
Y3JlYXRlV2ViUGFnZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCBXZWJQYWdlR3JvdXA6OmNyZWF0
ZSgpLmdldCgpKTsKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJpdi0+cGFn
ZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQodHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CkBAIC02OTQsNiArNzAx
LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRpYWxpemUoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKICAgICBwcml2LT5wYWdlUHJveHktPmluaXRp
YWxpemVXZWJQYWdlKCk7CiAKICAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBld2tfYmFja19m
b3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VQcm94eS0+YmFja0ZvcndhcmRMaXN0KCkp
KTsKKyAgICBwcml2LT5zZXR0aW5ncyA9IGFkb3B0UHRyKG5ldyBFd2tfU2V0dGluZ3MoV0tQYWdl
R3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZVBy
b3h5LmdldCgpKSkpKSk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJp
di0+dmlld3BvcnRIYW5kbGVyID0gRWZsVmlld3BvcnRIYW5kbGVyOjpjcmVhdGUoZXdrVmlldyk7
CkBAIC04NTEsNiArODU5LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0
KiBld2tWaWV3KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3
X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJp
di0+c2V0dGluZ3MuZ2V0KCk7Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBp
bml0aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCBiNmExZTQ5MzE1MjhkNjk2MGQxMGM0MTg2
ZWFlYzczODEyZjVlNjI5Li44MDIyZjk4MTM3NGJkNWQxMzY1YzJjMDA3ODBmNGE1NDFlMDM2ZWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTcz
LDYgKzczLDcgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3du
bG9hZF9qb2IuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3NldHRp
bmdzLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9y
ZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAgLTM1Niw2ICszNTcsMTUg
QEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVj
dCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsK
IAogLyoqCisgKiBHZXRzIHRoZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3LgorICoKKyAqIEBw
YXJhbSBvIHZpZXcgb2JqZWN0IHRvIGdldCBFd2tfU2V0dGluZ3MKKyAqCisgKiBAcmV0dXJuIHRo
ZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3IG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitF
QVBJIEV3a19TZXR0aW5ncyAqZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
ICpvKTsKKworLyoqCiAgKiBEZWxpdmVycyBhIFdlYiBpbnRlbnQgdG8gdGhlIHZpZXcncyBtYWlu
IGZyYW1lLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGRlbGl2ZXIgdGhlIGludGVu
dCB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY4YjE0NmFmYzBkM2M4
M2I3MjdkNzMyODkxYjhkZDdiN2Y5ZTRkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRp
bHMvRVdLMlVuaXRUZXN0QmFzZS5oIgorI2luY2x1ZGUgPEVXZWJLaXQyLmg+CisjaW5jbHVkZSA8
RWluYS5oPgorCit1c2luZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OworCitURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzKQoreworICAgIEV3a19TZXR0
aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQod2ViVmlldygpKTsKKworICAg
IEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQoc2V0dGluZ3MsIEVJ
TkFfVFJVRSkpOworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19n
ZXQoc2V0dGluZ3MpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2Ny
aXB0c19zZXQoc2V0dGluZ3MsIDIpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5h
YmxlX3NjcmlwdHNfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGlu
Z3NfZW5hYmxlX3NjcmlwdHNfc2V0KHNldHRpbmdzLCBFSU5BX0ZBTFNFKSk7CisgICAgQVNTRVJU
X0ZBTFNFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoc2V0dGluZ3MpKTsKK30KKwor
VEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzKQor
eworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQod2Vi
VmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2Vz
X3NldChzZXR0aW5ncywgRUlOQV9UUlVFKSk7CisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdz
X2F1dG9fbG9hZF9pbWFnZXNfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tf
c2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19zZXQoc2V0dGluZ3MsIDIpKTsKKyAgICBBU1NFUlRf
VFJVRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQoc2V0dGluZ3MpKTsKKworICAg
IEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChzZXR0aW5ncywg
RUlOQV9GQUxTRSkpOworICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2lt
YWdlc19nZXQoc2V0dGluZ3MpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCA0MjE3ZjcxM2Rk
ZDc0MDVkOTVjMDE2YzAwZWQ0NzU0M2ZlNDgwMTliLi4zYTg5MDg4MTNkNzQ4ZDg5YmJiMDY0ODZh
NmFlZTZiNDAwNGIzNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCkBAIC0yMzYsMyArMjM2LDEwIEBA
IFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCkKICAg
ICBFWFBFQ1RfVFJVRShld2tfdmlld19wb3B1cF9tZW51X2Nsb3NlKHdlYlZpZXcoKSkpOwogICAg
IEVYUEVDVF9GQUxTRShld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCh3ZWJWaWV3KCksIDApKTsK
IH0KKworVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdzX2dldCkKK3sK
KyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZp
ZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoc2V0dGluZ3MpOworICAgIEFTU0VSVF9FUShzZXR0aW5n
cywgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXcoKSkpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161898</attachid>
            <date>2012-09-03 04:16:16 -0700</date>
            <delta_ts>2012-09-03 06:13:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120903201559.patch</filename>
            <type>text/plain</type>
            <size>20048</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTEzMjc3ZDExZjA5NzJl
Yzg3ZmE5NGQ2YWEyMTM1YzRiNGQwM2RiNi4uYmZjZDUxOWE2Yzg1OGMxMWU1NmMxZDUxMWEyMzFi
ZTkyZDkzN2RlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQpOgorICAgICAgICAoZXdr
X3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfYXV0
b19sb2FkX2ltYWdlc19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFn
ZXNfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDog
QWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKF9Fd2tfU2V0dGluZ3M6
Ol9Fd2tfU2V0dGluZ3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3
X2luaXRpYWxpemUpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoVEVTVF9G
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6
CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA5LTAzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBTa2lwIEVXSzJV
bml0VGVzdEJhc2UuZXdrX2Nvb2tpZV9tYW5hZ2VyX3Blcm1hbmVudF9zdG9yYWdlIEFQSSB0ZXN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDU2Y2EwYzE5NzI0YTljMzhmY2JkYzc5NzVj
OWQyNjZmYjMzNzZmYjYuLjlmMWI5OWU1ODBjNDJjZjhkMWZmMzc2YTc0NTZjMmE5MTM3ZGQ3YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC02MCw2ICs2MCw3IEBAIExJU1QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcApAQCAtMjE0
LDYgKzIxNSw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uaCIKICAgICAiJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5oIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgiCiAgICAgIiR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaCIK
ICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVzcG9uc2UuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuaCIKQEAgLTI3OSw2ICsyODEsNyBAQCBT
RVQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRlc3RfZXdrMl9kb3dubG9hZF9qb2IKICAg
ICB0ZXN0X2V3azJfZWluYV9zaGFyZWRfc3RyaW5nCiAgICAgdGVzdF9ld2syX2ludGVudHMKKyAg
ICB0ZXN0X2V3azJfc2V0dGluZ3MKICAgICB0ZXN0X2V3azJfdmlldwogKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBmMWMwOTBlZGJjNDI2ODky
YWM0OGJlOThmOGNiYzk2MDg2NGEzMTUyLi43NTBjYjQ4NjQ5OTY5MWZmMDAzNjA0YmZmMGUwYTA1
MzgyYzI4YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQy
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJld2tfbWFpbi5oIgogI2luY2x1ZGUgImV3
a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51
X2l0ZW0uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJkYzdlMTdlMzEyOGQ2NTFmYjg5MTY3
MTVmNTQ4YjIzNGNmOTYxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKworI2luY2x1ZGUgImV3a19z
ZXR0aW5nc19wcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfZW5hYmxl
X3NjcmlwdHNfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpCit7
CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQoc2V0dGluZ3MtPnByZWZlcmVu
Y2VzLmdldCgpLCBlbmFibGUpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBl
d2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGlu
Z3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxz
ZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHNldHRp
bmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0
b19sb2FkX2ltYWdlc19zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGF1dG9t
YXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZh
bHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0
dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQoY29uc3Qg
RXdrX1NldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwM2Y3YjZkNzg4MWIwNGZmMjk5NGE0Y2YwM2NkNGRmMjg3YzRhMGEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3Mu
aApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfc2V0dGluZ3MuaAorICog
QGJyaWVmICAgRGVzY3JpYmVzIHRoZSBzZXR0aW5ncyBBUEkuCisgKgorICogQG5vdGUgVGhlIGV3
a19zZXR0aW5ncyBpcyBmb3Igc2V0dGluZyB0aGUgcHJlZmVyZW5jZSBvZiBzcGVjaWZpYyBld2tf
dmlldy4KKyAqIFdlIGNhbiBnZXQgdGhlIGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5n
IGV3a192aWV3X3NldHRpbmdzX2dldCgpIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19zZXR0aW5n
c19oCisjZGVmaW5lIGV3a19zZXR0aW5nc19oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBl
IG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3Mg
RXdrX1NldHRpbmdzOworCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIGphdmFzY3JpcHQg
ZXhlY3V0aW5nLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0
IHNjcmlwdCBleGVjdXRpbmcKKyAqIEBwYXJhbSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJs
ZSBzY3JpcHQgZXhlY3V0aW5nCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisg
KgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRz
X3NldChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxlKTsKKworLyoqCisg
KiBSZXR1cm5zIHRoZSBzY3JpcHRzIGNhbiBiZSBleGVjdXRhYmxlIG9yIG5vdC4KKyAqCisgKiBA
cGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBzY3JpcHRzIGNh
biBiZSBleGVjdXRlZAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBzY3JpcHRz
IGNhbiBiZSBleGVjdXRlZAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBm
YWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19n
ZXQoY29uc3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNh
YmxlcyBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mg
c2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBh
cmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUg
aW1hZ2VzLAorICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisg
Ki8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChFd2tf
U2V0dGluZ3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisgKiBSZXR1
cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4KKyAqCisg
KiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRpbmcgb2Yg
dGhlIGltYWdlcworICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFnZXMgYXJl
IGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBv
ciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19hdXRvX2xvYWRf
aW1hZ2VzX2dldChjb25zdCBFd2tfU2V0dGluZ3MgKnNldHRpbmdzKTsKKworI2lmZGVmIF9fY3Bs
dXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmM5ZGEwZDdjMzlmNmEwMjU0MzE4YTQ1YThiYzIzMGE1YmI5OTU3YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX3By
aXZhdGVfaAorI2RlZmluZSBld2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJld2tf
c2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
LyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KK3R5cGVkZWYgc3Ry
dWN0IF9Fd2tfU2V0dGluZ3MgRXdrX1NldHRpbmdzOworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tf
U2V0dGluZ3MKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBzZXR0aW5ncyBkYXRhLgorICovCitz
dHJ1Y3QgX0V3a19TZXR0aW5ncyB7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4g
cHJlZmVyZW5jZXM7CisKKyAgICBleHBsaWNpdCBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNS
ZWYgd2tQcmVmZXJlbmNlcykKKyAgICAgICAgOiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQor
ICAgIHsgfQorfTsKKworI2VuZGlmIC8vIGV3a19zZXR0aW5nc19wcml2YXRlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA1NWUxM2RkNDcy
NTI4NmZmOTA3Y2VkOWI2NTczNDZhZDQyNDIwZWU1Li4yZDcwYTcwY2EwYWFiNGI0ZjhlOGM3ZTY4
YTQ0YmZmNjRiMWY1NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNp
bmNsdWRlICJXS1VSTC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQb3B1
cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRl
LmgiCkBAIC00MSw2ICs0Miw3IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbS5oIgog
I2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19w
cml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdmlld19maW5kX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9j
bGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0
ZS5oIgpAQCAtNTMsNiArNTUsNyBAQAogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWZsU2NyZWVuVXRpbGl0aWVzLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTg4LDYgKzkxLDcg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIEV2YXNfT2JqZWN0KiBjdXJz
b3JPYmplY3Q7CiAgICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOwog
ICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0ZvcndhcmRMaXN0OworICAgIE93blB0cjxF
d2tfU2V0dGluZ3M+IHNldHRpbmdzOwogCiAgICAgV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVw
TWVudVByb3h5OwogICAgIEVpbmFfTGlzdCogcG9wdXBNZW51SXRlbXM7CkBAIC02ODUsNyArNjg5
LDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZShld2tWaWV3KTsKIAotICAgIHByaXYtPnBhZ2VQcm94eSA9
IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKS0+Y3JlYXRlV2ViUGFn
ZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSk7CisgICAgaWYg
KHBhZ2VHcm91cFJlZikKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250
ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGll
bnQuZ2V0KCksIHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyAgICBlbHNlCisgICAgICAgIHByaXYt
PnBhZ2VQcm94eSA9IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKS0+
Y3JlYXRlV2ViUGFnZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCBXZWJQYWdlR3JvdXA6OmNyZWF0
ZSgpLmdldCgpKTsKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJpdi0+cGFn
ZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQodHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CkBAIC02OTQsNiArNzAx
LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRpYWxpemUoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKICAgICBwcml2LT5wYWdlUHJveHktPmluaXRp
YWxpemVXZWJQYWdlKCk7CiAKICAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBld2tfYmFja19m
b3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VQcm94eS0+YmFja0ZvcndhcmRMaXN0KCkp
KTsKKyAgICBwcml2LT5zZXR0aW5ncyA9IGFkb3B0UHRyKG5ldyBFd2tfU2V0dGluZ3MoV0tQYWdl
R3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAodG9BUEkocHJpdi0+cGFnZVBy
b3h5LmdldCgpKSkpKSk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgcHJp
di0+dmlld3BvcnRIYW5kbGVyID0gRWZsVmlld3BvcnRIYW5kbGVyOjpjcmVhdGUoZXdrVmlldyk7
CkBAIC04NTEsNiArODU5LDE0IEBAIEVpbmFfQm9vbCBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0
KiBld2tWaWV3KQogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfU2V0dGluZ3MqIGV3a192aWV3
X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJp
di0+c2V0dGluZ3MuZ2V0KCk7Cit9CisKIC8qKgogICogQGludGVybmFsCiAgKiBMb2FkIHdhcyBp
bml0aWF0ZWQgZm9yIGEgcmVzb3VyY2UgaW4gdGhlIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCBiNmExZTQ5MzE1MjhkNjk2MGQxMGM0MTg2
ZWFlYzczODEyZjVlNjI5Li44MDIyZjk4MTM3NGJkNWQxMzY1YzJjMDA3ODBmNGE1NDFlMDM2ZWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTcz
LDYgKzczLDcgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3du
bG9hZF9qb2IuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3NldHRp
bmdzLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9y
ZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKQEAgLTM1Niw2ICszNTcsMTUg
QEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVj
dCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zdG9wKEV2YXNfT2JqZWN0ICpvKTsK
IAogLyoqCisgKiBHZXRzIHRoZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3LgorICoKKyAqIEBw
YXJhbSBvIHZpZXcgb2JqZWN0IHRvIGdldCBFd2tfU2V0dGluZ3MKKyAqCisgKiBAcmV0dXJuIHRo
ZSBFd2tfU2V0dGluZ3Mgb2YgdGhpcyB2aWV3IG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitF
QVBJIEV3a19TZXR0aW5ncyAqZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
ICpvKTsKKworLyoqCiAgKiBEZWxpdmVycyBhIFdlYiBpbnRlbnQgdG8gdGhlIHZpZXcncyBtYWlu
IGZyYW1lLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGRlbGl2ZXIgdGhlIGludGVu
dCB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY4YjE0NmFmYzBkM2M4
M2I3MjdkNzMyODkxYjhkZDdiN2Y5ZTRkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRp
bHMvRVdLMlVuaXRUZXN0QmFzZS5oIgorI2luY2x1ZGUgPEVXZWJLaXQyLmg+CisjaW5jbHVkZSA8
RWluYS5oPgorCit1c2luZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OworCitURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzKQoreworICAgIEV3a19TZXR0
aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQod2ViVmlldygpKTsKKworICAg
IEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQoc2V0dGluZ3MsIEVJ
TkFfVFJVRSkpOworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19n
ZXQoc2V0dGluZ3MpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFibGVfc2Ny
aXB0c19zZXQoc2V0dGluZ3MsIDIpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5h
YmxlX3NjcmlwdHNfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGlu
Z3NfZW5hYmxlX3NjcmlwdHNfc2V0KHNldHRpbmdzLCBFSU5BX0ZBTFNFKSk7CisgICAgQVNTRVJU
X0ZBTFNFKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQoc2V0dGluZ3MpKTsKK30KKwor
VEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzKQor
eworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQod2Vi
VmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2Vz
X3NldChzZXR0aW5ncywgRUlOQV9UUlVFKSk7CisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdz
X2F1dG9fbG9hZF9pbWFnZXNfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tf
c2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19zZXQoc2V0dGluZ3MsIDIpKTsKKyAgICBBU1NFUlRf
VFJVRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2ltYWdlc19nZXQoc2V0dGluZ3MpKTsKKworICAg
IEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2VzX3NldChzZXR0aW5ncywg
RUlOQV9GQUxTRSkpOworICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGluZ3NfYXV0b19sb2FkX2lt
YWdlc19nZXQoc2V0dGluZ3MpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCA0MjE3ZjcxM2Rk
ZDc0MDVkOTVjMDE2YzAwZWQ0NzU0M2ZlNDgwMTliLi4zYTg5MDg4MTNkNzQ4ZDg5YmJiMDY0ODZh
NmFlZTZiNDAwNGIzNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCkBAIC0yMzYsMyArMjM2LDEwIEBA
IFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCkKICAg
ICBFWFBFQ1RfVFJVRShld2tfdmlld19wb3B1cF9tZW51X2Nsb3NlKHdlYlZpZXcoKSkpOwogICAg
IEVYUEVDVF9GQUxTRShld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCh3ZWJWaWV3KCksIDApKTsK
IH0KKworVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdzX2dldCkKK3sK
KyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZp
ZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoc2V0dGluZ3MpOworICAgIEFTU0VSVF9FUShzZXR0aW5n
cywgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXcoKSkpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161913</attachid>
            <date>2012-09-03 06:13:40 -0700</date>
            <delta_ts>2012-09-03 06:17:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120903221323.patch</filename>
            <type>text/plain</type>
            <size>20219</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTEzMjc3ZDExZjA5NzJl
Yzg3ZmE5NGQ2YWEyMTM1YzRiNGQwM2RiNi4uYmZjZDUxOWE2Yzg1OGMxMWU1NmMxZDUxMWEyMzFi
ZTkyZDkzN2RlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgZXdrX3NldHRpbmdzIHdoaWNoIHdyYXBzIHRoZSBXS1ByZWZlcmVuY2Vz
UmVmLgorICAgICAgICBUaGUgZXdrX3NldHRpbmdzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgZXdr
X3ZpZXcgYW5kIGl0IHdpbGwgYmUKKyAgICAgICAgZGVzdHJveWVkIHdoZW4gdGhlIGV3a192aWV3
IGlzIGRlc3Ryb3llZC4gSSBtYWtlIGVhY2ggdmlldyB0byBoYXZlCisgICAgICAgIGl0cyBvd24g
Z3JvdXAgdG8gbWFrZSBvbmUgZXdrX3NldHRpbmdzIHNldHMgcHJlZmVyZW5jZXMgb25seSBmb3IK
KyAgICAgICAgb25lIGV3a192aWV3LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gY2FuIGdldCB0
aGUgZXdrX3NldHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcKKyAgICAgICAgZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KCkgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGV3a19zZXR0aW5nc19lbmFibGVfc2NyaXB0c19zZXQpOgorICAgICAgICAoZXdr
X3NldHRpbmdzX2VuYWJsZV9zY3JpcHRzX2dldCk6CisgICAgICAgIChld2tfc2V0dGluZ3NfYXV0
b19sb2FkX2ltYWdlc19zZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2F1dG9fbG9hZF9pbWFn
ZXNfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDog
QWRkZWQuCisgICAgICAgIChfRXdrX1NldHRpbmdzKToKKyAgICAgICAgKF9Fd2tfU2V0dGluZ3M6
Ol9Fd2tfU2V0dGluZ3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3
X2luaXRpYWxpemUpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHA6IEFkZGVkLgorICAgICAgICAoVEVTVF9G
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6
CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA5LTAzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBTa2lwIEVXSzJV
bml0VGVzdEJhc2UuZXdrX2Nvb2tpZV9tYW5hZ2VyX3Blcm1hbmVudF9zdG9yYWdlIEFQSSB0ZXN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDU2Y2EwYzE5NzI0YTljMzhmY2JkYzc5NzVj
OWQyNjZmYjMzNzZmYjYuLjlmMWI5OWU1ODBjNDJjZjhkMWZmMzc2YTc0NTZjMmE5MTM3ZGQ3YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC02MCw2ICs2MCw3IEBAIExJU1QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcApAQCAtMjE0
LDYgKzIxNSw3IEBAIFNFVCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uaCIKICAgICAiJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5oIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgiCiAgICAgIiR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaCIK
ICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVzcG9uc2UuaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuaCIKQEAgLTI3OSw2ICsyODEsNyBAQCBT
RVQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRlc3RfZXdrMl9kb3dubG9hZF9qb2IKICAg
ICB0ZXN0X2V3azJfZWluYV9zaGFyZWRfc3RyaW5nCiAgICAgdGVzdF9ld2syX2ludGVudHMKKyAg
ICB0ZXN0X2V3azJfc2V0dGluZ3MKICAgICB0ZXN0X2V3azJfdmlldwogKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBmMWMwOTBlZGJjNDI2ODky
YWM0OGJlOThmOGNiYzk2MDg2NGEzMTUyLi43NTBjYjQ4NjQ5OTY5MWZmMDAzNjA0YmZmMGUwYTA1
MzgyYzI4YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
V2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQy
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJld2tfbWFpbi5oIgogI2luY2x1ZGUgImV3
a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51
X2l0ZW0uaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9zY2hlbWVfcmVxdWVzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zZXR0aW5ncy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRlZTQ0NmQwZDY3YmIzNzU1ODczMGI2
ZmFkNDkxMjc2Mjc1MWVhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKKworI2luY2x1ZGUgImV3a19z
ZXR0aW5nc19wcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNj
cmlwdF9lbmFibGVkX3NldChFd2tfU2V0dGluZ3MqIHNldHRpbmdzLCBFaW5hX0Jvb2wgZW5hYmxl
KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2Up
OworCisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRFbmFibGVkKHNldHRpbmdzLT5wcmVm
ZXJlbmNlcy5nZXQoKSwgZW5hYmxlKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jv
b2wgZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoY29uc3QgRXdrX1NldHRpbmdz
KiBzZXR0aW5ncykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGlu
Z3MsIGZhbHNlKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJs
ZWQoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpKTsKK30KKworRWluYV9Cb29sIGV3a19zZXR0
aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5n
cywgRWluYV9Cb29sIGF1dG9tYXRpYykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoc2V0dGluZ3MtPnByZWZlcmVuY2VzLmdldCgpLCBhdXRvbWF0aWMpOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNfaW1h
Z2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyogc2V0dGluZ3MpCit7Cisg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5n
cy0+cHJlZmVyZW5jZXMuZ2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWI4ZTBmMjg3ZjFmOTQ5MTU0MDY5
ZDMyMDVjNTI3YThjYWJhMGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICog
QGZpbGUgICAgZXdrX3NldHRpbmdzLmgKKyAqIEBicmllZiAgIERlc2NyaWJlcyB0aGUgc2V0dGlu
Z3MgQVBJLgorICoKKyAqIEBub3RlIFRoZSBld2tfc2V0dGluZ3MgaXMgZm9yIHNldHRpbmcgdGhl
IHByZWZlcmVuY2Ugb2Ygc3BlY2lmaWMgZXdrX3ZpZXcuCisgKiBXZSBjYW4gZ2V0IHRoZSBld2tf
c2V0dGluZ3MgZnJvbSBld2tfdmlldyB1c2luZyBld2tfdmlld19zZXR0aW5nc19nZXQoKSBBUEku
CisgKi8KKworI2lmbmRlZiBld2tfc2V0dGluZ3NfaAorI2RlZmluZSBld2tfc2V0dGluZ3NfaAor
CisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1NldHRpbmdzICovCit0
eXBlZGVmIHN0cnVjdCBfRXdrX1NldHRpbmdzIEV3a19TZXR0aW5nczsKKworLyoqCisgKiBFbmFi
bGVzL2Rpc2FibGVzIHRoZSBqYXZhc2NyaXB0IGV4ZWN1dGluZy4KKyAqCisgKiBAcGFyYW0gc2V0
dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBqYXZhc2NyaXB0IGV4ZWN1dGluZworICogQHBh
cmFtIGVuYWJsZSBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGphdmFzY3JpcHQgZXhlY3V0aW5nCisg
KiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5B
X1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBF
aW5hX0Jvb2wgZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdz
ICpzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSk7CisKKy8qKgorICogUmV0dXJucyB0aGUgamF2
YXNjcmlwdCBjYW4gYmUgZXhlY3V0YWJsZSBvciBub3QuCisgKgorICogQHBhcmFtIHNldHRpbmdz
IHNldHRpbmdzIG9iamVjdCB0byBxdWVyeSBpZiB0aGUgamF2YXNjcmlwdCBjYW4gYmUgZXhlY3V0
ZWQKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgamF2YXNjcmlwdCBjYW4gYmUg
ZXhlY3V0ZWQKKyAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBpZiBub3Qgb3Igb24gZmFpbHVyZQor
ICovCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChj
b25zdCBFd2tfU2V0dGluZ3MgKnNldHRpbmdzKTsKKworLyoqCisgKiBFbmFibGVzL2Rpc2FibGVz
IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBzZXR0
aW5ncyBvYmplY3QgdG8gc2V0IGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2VzCisgKiBAcGFyYW0g
YXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYXV0byBsb2FkaW5nIG9mIHRoZSBpbWFn
ZXMsCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBA
YyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLwor
RUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3Nl
dChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKKworLyoqCisg
KiBSZXR1cm5zIHRoZSBpbWFnZXMgY2FuIGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IG9yIG5vdC4K
KyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIGdldCBhdXRvIGxvYWRp
bmcgb2YgdGhlIGltYWdlcworICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBpbWFn
ZXMgYXJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5LAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlm
IG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fk
c19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoY29uc3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX3NldHRpbmdz
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0
aW5nc19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0
dGluZ3NfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjOWRhMGQ3YzM5ZjZhMDI1NDMxOGE0NWE4YmMy
MzBhNWJiOTk1N2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IGV3a19zZXR0aW5nc19wcml2YXRlX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX3ByaXZhdGVfaAor
CisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVu
Y2VzLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1NldHRpbmdz
ICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX1NldHRpbmdzIEV3a19TZXR0aW5nczsKKworLyoqCisg
KiBcc3RydWN0ICBfRXdrX1NldHRpbmdzCisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgc2V0dGlu
Z3MgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfU2V0dGluZ3MgeworICAgIFdLUmV0YWluUHRyPFdL
UHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzOworCisgICAgZXhwbGljaXQgX0V3a19TZXR0aW5n
cyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMpCisgICAgICAgIDogcHJlZmVyZW5jZXMo
d2tQcmVmZXJlbmNlcykKKyAgICB7IH0KK307CisKKyNlbmRpZiAvLyBld2tfc2V0dGluZ3NfcHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
aW5kZXggNTVlMTNkZDQ3MjUyODZmZjkwN2NlZDliNjU3MzQ2YWQ0MjQyMGVlNS4uMmQ3MGE3MGNh
MGFhYjRiNGY4ZThjN2U2OGE0NGJmZjY0YjFmNTRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVtLmgiCiAj
aW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlFZmwuaCIKICNpbmNsdWRlICJld2tfYmFja19mb3J3
YXJkX2xpc3RfcHJpdmF0ZS5oIgpAQCAtNDEsNiArNDIsNyBAQAogI2luY2x1ZGUgImV3a19wb3B1
cF9tZW51X2l0ZW0uaCIKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZmluZF9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
ImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2Fk
ZXJfY2xpZW50X3ByaXZhdGUuaCIKQEAgLTUzLDYgKzU1LDcgQEAKICNpbmNsdWRlIDxFZGplLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VmbFNjcmVl
blV0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3JvdXAuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CkBAIC04OCw2ICs5MSw3IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBF
dmFzX09iamVjdCogY3Vyc29yT2JqZWN0OwogICAgIExvYWRpbmdSZXNvdXJjZXNNYXAgbG9hZGlu
Z1Jlc291cmNlc01hcDsKICAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGJhY2tGb3J3YXJkTGlz
dDsKKyAgICBPd25QdHI8RXdrX1NldHRpbmdzPiBzZXR0aW5nczsKIAogICAgIFdlYlBvcHVwTWVu
dVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eTsKICAgICBFaW5hX0xpc3QqIHBvcHVwTWVudUl0ZW1z
OwpAQCAtNjg1LDcgKzY4OSwxMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShF
dmFzX09iamVjdCogZXdrVmlldywgRXdrX0NvbnRleHQqIGNvbnRleHQsIFdLUAogCiAgICAgcHJp
di0+cGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGUoZXdrVmlldyk7CiAKLSAgICBw
cml2LT5wYWdlUHJveHkgPSB0b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0
KSktPmNyZWF0ZVdlYlBhZ2UocHJpdi0+cGFnZUNsaWVudC5nZXQoKSwgdG9JbXBsKHBhZ2VHcm91
cFJlZikpOworICAgIGlmIChwYWdlR3JvdXBSZWYpCisgICAgICAgIHByaXYtPnBhZ2VQcm94eSA9
IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKS0+Y3JlYXRlV2ViUGFn
ZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdyb3VwUmVmKSk7CisgICAgZWxz
ZQorICAgICAgICBwcml2LT5wYWdlUHJveHkgPSB0b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0
X2dldChjb250ZXh0KSktPmNyZWF0ZVdlYlBhZ2UocHJpdi0+cGFnZUNsaWVudC5nZXQoKSwgV2Vi
UGFnZUdyb3VwOjpjcmVhdGUoKS5nZXQoKSk7CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQogICAgIHByaXYtPnBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwogICAgIHByaXYtPnBhZ2VQcm94eS0+
cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUp
OwpAQCAtNjk0LDYgKzcwMSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAgICAgcHJpdi0+
cGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFnZSgpOwogCiAgICAgcHJpdi0+YmFja0ZvcndhcmRM
aXN0ID0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X25ldyh0b0FQSShwcml2LT5wYWdlUHJveHktPmJh
Y2tGb3J3YXJkTGlzdCgpKSk7CisgICAgcHJpdi0+c2V0dGluZ3MgPSBhZG9wdFB0cihuZXcgRXdr
X1NldHRpbmdzKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRv
QVBJKHByaXYtPnBhZ2VQcm94eS5nZXQoKSkpKSkpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlciA9IEVmbFZpZXdwb3J0SGFuZGxlcjo6
Y3JlYXRlKGV3a1ZpZXcpOwpAQCAtODUxLDYgKzg1OSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c3RvcChFdmFzX09iamVjdCogZXdrVmlldykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdrX1Nl
dHRpbmdzKiBld2tfdmlld19zZXR0aW5nc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
Cit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDAp
OworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwor
CisgICAgcmV0dXJuIHByaXYtPnNldHRpbmdzLmdldCgpOworfQorCiAvKioKICAqIEBpbnRlcm5h
bAogICogTG9hZCB3YXMgaW5pdGlhdGVkIGZvciBhIHJlc291cmNlIGluIHRoZSB2aWV3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggYjZhMWU0OTMx
NTI4ZDY5NjBkMTBjNDE4NmVhZWM3MzgxMmY1ZTYyOS4uODAyMmY5ODEzNzRiZDVkMTM2NWMyYzAw
NzgwZjRhNTQxZTAzNmVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5oCkBAIC03Myw2ICs3Myw3IEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNp
bmNsdWRlICJld2tfZG93bmxvYWRfam9iLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2lu
Y2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2lu
Y2x1ZGUgImV3a191cmxfcmVzcG9uc2UuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCkBA
IC0zNTYsNiArMzU3LDE1IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9ieXBhc3Nf
Y2FjaGUoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc3RvcChF
dmFzX09iamVjdCAqbyk7CiAKIC8qKgorICogR2V0cyB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMg
dmlldy4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBnZXQgRXdrX1NldHRpbmdzCisg
KgorICogQHJldHVybiB0aGUgRXdrX1NldHRpbmdzIG9mIHRoaXMgdmlldyBvciBAYyBOVUxMIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFd2tfU2V0dGluZ3MgKmV3a192aWV3X3NldHRpbmdzX2dldChj
b25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgogICogRGVsaXZlcnMgYSBXZWIgaW50ZW50IHRv
IHRoZSB2aWV3J3MgbWFpbiBmcmFtZS4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBk
ZWxpdmVyIHRoZSBpbnRlbnQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkxMTliZDE3NTkwMmZmMGQ0NDVkYjQ3ZmFjMTYwODIxNGViOGRkMDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0
dGluZ3MuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuaCIKKyNpbmNsdWRlIDxFV2ViS2l0
Mi5oPgorI2luY2x1ZGUgPEVpbmEuaD4KKwordXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0VGVzdDsK
KworVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJs
ZWQpCit7CisgICAgRXdrX1NldHRpbmdzKiBzZXR0aW5ncyA9IGV3a192aWV3X3NldHRpbmdzX2dl
dCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRf
ZW5hYmxlZF9zZXQoc2V0dGluZ3MsIEVJTkFfVFJVRSkpOworICAgIEFTU0VSVF9UUlVFKGV3a19z
ZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRf
VFJVRShld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX3NldChzZXR0aW5ncywgMikpOwor
ICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KHNldHRp
bmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVk
X3NldChzZXR0aW5ncywgRUlOQV9GQUxTRSkpOworICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGlu
Z3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChzZXR0aW5ncykpOworfQorCitURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5KQorewor
ICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQod2ViVmll
dygpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21h
dGljYWxseV9zZXQoc2V0dGluZ3MsIEVJTkFfVFJVRSkpOworICAgIEFTU0VSVF9UUlVFKGV3a19z
ZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9nZXQoc2V0dGluZ3MpKTsKKworICAg
IEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9zZXQo
c2V0dGluZ3MsIDIpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2Vz
X2F1dG9tYXRpY2FsbHlfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0
dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KHNldHRpbmdzLCBFSU5BX0ZBTFNF
KSk7CisgICAgQVNTRVJUX0ZBTFNFKGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGlj
YWxseV9nZXQoc2V0dGluZ3MpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCA0MjE3ZjcxM2Rk
ZDc0MDVkOTVjMDE2YzAwZWQ0NzU0M2ZlNDgwMTliLi4zYTg5MDg4MTNkNzQ4ZDg5YmJiMDY0ODZh
NmFlZTZiNDAwNGIzNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCkBAIC0yMzYsMyArMjM2LDEwIEBA
IFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCkKICAg
ICBFWFBFQ1RfVFJVRShld2tfdmlld19wb3B1cF9tZW51X2Nsb3NlKHdlYlZpZXcoKSkpOwogICAg
IEVYUEVDVF9GQUxTRShld2tfdmlld19wb3B1cF9tZW51X3NlbGVjdCh3ZWJWaWV3KCksIDApKTsK
IH0KKworVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdzX2dldCkKK3sK
KyAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZp
ZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoc2V0dGluZ3MpOworICAgIEFTU0VSVF9FUShzZXR0aW5n
cywgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXcoKSkpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161915</attachid>
            <date>2012-09-03 06:17:31 -0700</date>
            <delta_ts>2012-09-03 07:48:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91206-20120903221715.patch</filename>
            <type>text/plain</type>
            <size>20217</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTEzMjc3ZDExZjA5NzJl
Yzg3ZmE5NGQ2YWEyMTM1YzRiNGQwM2RiNi4uYTM2ZDAyNTVkZWU0ZTM1NmM2YTc4YzRkNDFiZDc2
Y2U3YTQxMzBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBld2tfc2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAg
ICAgICBBZGQgdGhlIGV3a19zZXR0aW5ncyB3aGljaCB3cmFwcyB0aGUgV0tQcmVmZXJlbmNlc1Jl
Zi4KKyAgICAgICAgVGhlIGV3a19zZXR0aW5ncyB3aWxsIGJlIGNyZWF0ZWQgYnkgdGhlIGV3a192
aWV3IGFuZCBpdCB3aWxsIGJlCisgICAgICAgIGRlc3Ryb3llZCB3aGVuIHRoZSBld2tfdmlldyBp
cyBkZXN0cm95ZWQuIEkgbWFrZSBlYWNoIHZpZXcgdG8gaGF2ZQorICAgICAgICBpdHMgb3duIGdy
b3VwIHRvIG1ha2Ugb25lIGV3a19zZXR0aW5ncyBzZXRzIHByZWZlcmVuY2VzIG9ubHkgZm9yCisg
ICAgICAgIG9uZSBld2tfdmlldy4KKyAgICAgICAgVGhlIGFwcGxpY2F0aW9uIGNhbiBnZXQgdGhl
IGV3a19zZXR0aW5ncyBmcm9tIGV3a192aWV3IHVzaW5nCisgICAgICAgIGV3a192aWV3X3NldHRp
bmdzX2dldCgpIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmNwcDogQWRkZWQuCisg
ICAgICAgIChld2tfc2V0dGluZ3NfZW5hYmxlX3NjcmlwdHNfc2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19lbmFibGVfc2NyaXB0c19nZXQpOgorICAgICAgICAoZXdrX3NldHRpbmdzX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19hdXRvX2xvYWRfaW1hZ2Vz
X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmg6IEFk
ZGVkLgorICAgICAgICAoX0V3a19TZXR0aW5ncyk6CisgICAgICAgIChfRXdrX1NldHRpbmdzOjpf
RXdrX1NldHRpbmdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6
CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19p
bml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdzX2dldCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwOgor
ICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0wOS0wMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gU2tpcCBFV0syVW5p
dFRlc3RCYXNlLmV3a19jb29raWVfbWFuYWdlcl9wZXJtYW5lbnRfc3RvcmFnZSBBUEkgdGVzdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA1NmNhMGMxOTcyNGE5YzM4ZmNiZGM3OTc1Yzlk
MjY2ZmIzMzc2ZmI2Li45ZjFiOTllNTgwYzQyY2Y4ZDFmZjM3NmE3NDU2YzJhOTEzN2RkN2JlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNjAsNiArNjAsNyBAQCBMSVNUKEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbWFpbi5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5jcHAKKyAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9y
ZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAgLTIxNCw2
ICsyMTUsNyBAQCBTRVQgKEVXZWJLaXQyX0hFQURFUlMKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmgiCiAgICAgIiR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lf
ZGVjaXNpb24uaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uaCIKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIgogICAgICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgiCiAg
ICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3Jlc3BvbnNlLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmgiCkBAIC0yNzksNiArMjgxLDcgQEAgU0VU
KEVXSzJVbml0VGVzdHNfQklOQVJJRVMKICAgICB0ZXN0X2V3azJfZG93bmxvYWRfam9iCiAgICAg
dGVzdF9ld2syX2VpbmFfc2hhcmVkX3N0cmluZwogICAgIHRlc3RfZXdrMl9pbnRlbnRzCisgICAg
dGVzdF9ld2syX3NldHRpbmdzCiAgICAgdGVzdF9ld2syX3ZpZXcKICkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggZjFjMDkwZWRiYzQyNjg5MmFj
NDhiZTk4ZjhjYmM5NjA4NjRhMzE1Mi4uNzUwY2I0ODY0OTk2OTFmZjAwMzYwNGJmZjBlMGEwNTM4
MmMyOGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdl
YktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5o
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiZXdrX21haW4uaCIKICNpbmNsdWRlICJld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9p
dGVtLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a191cmxf
c2NoZW1lX3JlcXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZWU0NDZkMGQ2N2JiMzc1NTg3MzBiNmZh
ZDQ5MTI3NjI3NTFlYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCisKKyNpbmNsdWRlICJld2tfc2V0
dGluZ3NfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2phdmFzY3Jp
cHRfZW5hYmxlZF9zZXQoRXdrX1NldHRpbmdzKiBzZXR0aW5ncywgRWluYV9Cb29sIGVuYWJsZSkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2V0dGluZ3MsIGZhbHNlKTsK
KworICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChzZXR0aW5ncy0+cHJlZmVy
ZW5jZXMuZ2V0KCksIGVuYWJsZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRWluYV9Cb29s
IGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyog
c2V0dGluZ3MpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdz
LCBmYWxzZSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVk
KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKK0VpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KEV3a19TZXR0aW5ncyogc2V0dGluZ3Ms
IEVpbmFfQm9vbCBhdXRvbWF0aWMpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KHNldHRpbmdzLT5wcmVmZXJlbmNlcy5nZXQoKSwgYXV0b21hdGljKTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCitFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdl
c19hdXRvbWF0aWNhbGx5X2dldChjb25zdCBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywgZmFsc2UpOworCisgICAg
cmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3Mt
PnByZWZlcmVuY2VzLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFiOGUwZjI4N2YxZjk0OTE1NDA2OWQz
MjA1YzUyN2E4Y2FiYTBkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBm
aWxlICAgIGV3a19zZXR0aW5ncy5oCisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIHNldHRpbmdz
IEFQSS4KKyAqCisgKiBAbm90ZSBUaGUgZXdrX3NldHRpbmdzIGlzIGZvciBzZXR0aW5nIHRoZSBw
cmVmZXJlbmNlIG9mIHNwZWNpZmljIGV3a192aWV3LgorICogV2UgY2FuIGdldCB0aGUgZXdrX3Nl
dHRpbmdzIGZyb20gZXdrX3ZpZXcgdXNpbmcgZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KCkgQVBJLgor
ICovCisKKyNpZm5kZWYgZXdrX3NldHRpbmdzX2gKKyNkZWZpbmUgZXdrX3NldHRpbmdzX2gKKwor
I2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNl
bmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19TZXR0aW5ncyAqLwordHlw
ZWRlZiBzdHJ1Y3QgX0V3a19TZXR0aW5ncyBFd2tfU2V0dGluZ3M7CisKKy8qKgorICogRW5hYmxl
cy9kaXNhYmxlcyB0aGUgamF2YXNjcmlwdCBleGVjdXRpbmcuCisgKgorICogQHBhcmFtIHNldHRp
bmdzIHNldHRpbmdzIG9iamVjdCB0byBzZXQgamF2YXNjcmlwdCBleGVjdXRpbmcKKyAqIEBwYXJh
bSBlbmFibGUgQGMgRUlOQV9UUlVFIHRvIGVuYWJsZSBqYXZhc2NyaXB0IGV4ZWN1dGluZworICog
ICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9U
UlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWlu
YV9Cb29sIGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2VuYWJsZWRfc2V0KEV3a19TZXR0aW5ncyAq
c2V0dGluZ3MsIEVpbmFfQm9vbCBlbmFibGUpOworCisvKioKKyAqIFJldHVybnMgdGhlIGphdmFz
Y3JpcHQgY2FuIGJlIGV4ZWN1dGFibGUgb3Igbm90LgorICoKKyAqIEBwYXJhbSBzZXR0aW5ncyBz
ZXR0aW5ncyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIGphdmFzY3JpcHQgY2FuIGJlIGV4ZWN1dGVk
CisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGphdmFzY3JpcHQgY2FuIGJlIGV4
ZWN1dGVkCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKKyAq
LworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoY29u
c3QgRXdrX1NldHRpbmdzICpzZXR0aW5ncyk7CisKKy8qKgorICogRW5hYmxlcy9kaXNhYmxlcyBh
dXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGlu
Z3Mgb2JqZWN0IHRvIHNldCBhdXRvIGxvYWRpbmcgb2YgdGhlIGltYWdlcworICogQHBhcmFtIGF1
dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGF1dG8gbG9hZGluZyBvZiB0aGUgaW1hZ2Vz
LAorICogICAgICAgIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VB
UEkgRWluYV9Cb29sIGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseV9zZXQo
RXdrX1NldHRpbmdzICpzZXR0aW5ncywgRWluYV9Cb29sIGF1dG9tYXRpYyk7CisKKy8qKgorICog
UmV0dXJucyB0aGUgaW1hZ2VzIGNhbiBiZSBsb2FkZWQgYXV0b21hdGljYWxseSBvciBub3QuCisg
KgorICogQHBhcmFtIHNldHRpbmdzIHNldHRpbmdzIG9iamVjdCB0byBnZXQgYXV0byBsb2FkaW5n
IG9mIHRoZSBpbWFnZXMKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2Vz
IGFyZSBsb2FkZWQgYXV0b21hdGljYWxseSwKKyAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBpZiBu
b3Qgb3Igb24gZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfbG9hZHNf
aW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAqc2V0dGluZ3MpOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19zZXR0aW5nc19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGlu
Z3NfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzX3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzlkYTBkN2MzOWY2YTAyNTQzMThhNDVhOGJjMjMw
YTViYjk5NTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBl
d2tfc2V0dGluZ3NfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19zZXR0aW5nc19wcml2YXRlX2gKKwor
I2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNl
cy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19TZXR0aW5ncyAq
LwordHlwZWRlZiBzdHJ1Y3QgX0V3a19TZXR0aW5ncyBFd2tfU2V0dGluZ3M7CisKKy8qKgorICog
XHN0cnVjdCAgX0V3a19TZXR0aW5ncworICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHNldHRpbmdz
IGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX1NldHRpbmdzIHsKKyAgICBXS1JldGFpblB0cjxXS1By
ZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlczsKKworICAgIGV4cGxpY2l0IF9Fd2tfU2V0dGluZ3Mo
V0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQorICAgICAgICA6IHByZWZlcmVuY2VzKHdr
UHJlZmVyZW5jZXMpCisgICAgeyB9Cit9OworCisjZW5kaWYgLy8gZXdrX3NldHRpbmdzX3ByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmlu
ZGV4IDU1ZTEzZGQ0NzI1Mjg2ZmY5MDdjZWQ5YjY1NzM0NmFkNDI0MjBlZTUuLjJkNzBhNzBjYTBh
YWI0YjRmOGU4YzdlNjhhNDRiZmY2NGIxZjU0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJX
S1N0cmluZy5oIgogI2luY2x1ZGUgIldLVVJMLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgor
I2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlBvcHVwSXRlbS5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudVByb3h5RWZsLmgiCiAjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X3ByaXZhdGUuaCIKQEAgLTQxLDYgKzQyLDcgQEAKICNpbmNsdWRlICJld2tfcG9wdXBf
bWVudV9pdGVtLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgiCiAj
aW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5o
IgogI2luY2x1ZGUgImV3a192aWV3X2ZpbmRfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdmlld19mb3JtX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfbG9hZGVy
X2NsaWVudF9wcml2YXRlLmgiCkBAIC01Myw2ICs1NSw3IEBACiAjaW5jbHVkZSA8RWRqZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZmxTY3JlZW5V
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpA
QCAtODgsNiArOTEsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgRXZh
c19PYmplY3QqIGN1cnNvck9iamVjdDsKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwIGxvYWRpbmdS
ZXNvdXJjZXNNYXA7CiAgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBiYWNrRm9yd2FyZExpc3Q7
CisgICAgT3duUHRyPEV3a19TZXR0aW5ncz4gc2V0dGluZ3M7CiAKICAgICBXZWJQb3B1cE1lbnVQ
cm94eUVmbCogcG9wdXBNZW51UHJveHk7CiAgICAgRWluYV9MaXN0KiBwb3B1cE1lbnVJdGVtczsK
QEAgLTY4NSw3ICs2ODksMTAgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRpYWxpemUoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKIAogICAgIHByaXYt
PnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKGV3a1ZpZXcpOwogCi0gICAgcHJp
di0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCkp
LT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGllbnQuZ2V0KCksIHRvSW1wbChwYWdlR3JvdXBS
ZWYpKTsKKyAgICBpZiAocGFnZUdyb3VwUmVmKQorICAgICAgICBwcml2LT5wYWdlUHJveHkgPSB0
b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSktPmNyZWF0ZVdlYlBhZ2Uo
cHJpdi0+cGFnZUNsaWVudC5nZXQoKSwgdG9JbXBsKHBhZ2VHcm91cFJlZikpOworICAgIGVsc2UK
KyAgICAgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250ZXh0X1dLQ29udGV4dF9n
ZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGllbnQuZ2V0KCksIFdlYlBh
Z2VHcm91cDo6Y3JlYXRlKCkuZ2V0KCkpOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBwcml2LT5wYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKICAgICBwcml2LT5wYWdlUHJveHktPnBh
Z2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsK
QEAgLTY5NCw2ICs3MDEsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShFdmFz
X09iamVjdCogZXdrVmlldywgRXdrX0NvbnRleHQqIGNvbnRleHQsIFdLUAogICAgIHByaXYtPnBh
Z2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAogICAgIHByaXYtPmJhY2tGb3J3YXJkTGlz
dCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uZXcodG9BUEkocHJpdi0+cGFnZVByb3h5LT5iYWNr
Rm9yd2FyZExpc3QoKSkpOworICAgIHByaXYtPnNldHRpbmdzID0gYWRvcHRQdHIobmV3IEV3a19T
ZXR0aW5ncyhXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cCh0b0FQ
SShwcml2LT5wYWdlUHJveHkuZ2V0KCkpKSkpKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXIgPSBFZmxWaWV3cG9ydEhhbmRsZXI6OmNy
ZWF0ZShld2tWaWV3KTsKQEAgLTg1MSw2ICs4NTksMTQgQEAgRWluYV9Cb29sIGV3a192aWV3X3N0
b3AoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0V3a19TZXR0
aW5ncyogZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQor
eworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsK
KyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKKwor
ICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy5nZXQoKTsKK30KKwogLyoqCiAgKiBAaW50ZXJuYWwK
ICAqIExvYWQgd2FzIGluaXRpYXRlZCBmb3IgYSByZXNvdXJjZSBpbiB0aGUgdmlldy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IGI2YTFlNDkzMTUy
OGQ2OTYwZDEwYzQxODZlYWVjNzM4MTJmNWU2MjkuLjgwMjJmOTgxMzc0YmQ1ZDEzNjVjMmMwMDc4
MGY0YTU0MWUwMzZlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuaApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5j
bHVkZSAiZXdrX2Rvd25sb2FkX2pvYi5oIgogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKKyNpbmNs
dWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3QuaCIKICNpbmNs
dWRlICJld2tfdXJsX3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAiZXdrX3dlYl9lcnJvci5oIgpAQCAt
MzU2LDYgKzM1NywxNSBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19yZWxvYWRfYnlwYXNzX2Nh
Y2hlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3N0b3AoRXZh
c19PYmplY3QgKm8pOwogCiAvKioKKyAqIEdldHMgdGhlIEV3a19TZXR0aW5ncyBvZiB0aGlzIHZp
ZXcuCisgKgorICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZ2V0IEV3a19TZXR0aW5ncworICoK
KyAqIEByZXR1cm4gdGhlIEV3a19TZXR0aW5ncyBvZiB0aGlzIHZpZXcgb3IgQGMgTlVMTCBvbiBm
YWlsdXJlCisgKi8KK0VBUEkgRXdrX1NldHRpbmdzICpld2tfdmlld19zZXR0aW5nc19nZXQoY29u
c3QgRXZhc19PYmplY3QgKm8pOworCisvKioKICAqIERlbGl2ZXJzIGEgV2ViIGludGVudCB0byB0
aGUgdmlldydzIG1haW4gZnJhbWUuCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZGVs
aXZlciB0aGUgaW50ZW50IHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NldHRpbmdzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MTE5YmQxNzU5MDJmZjBkNDQ1ZGI0N2ZhYzE2MDgyMTRlYjhkZDAzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NldHRp
bmdzLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1
bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmgiCisjaW5jbHVkZSA8RVdlYktpdDIu
aD4KKyNpbmNsdWRlIDxFaW5hLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBFV0syVW5pdFRlc3Q7CisK
K1RFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVk
KQoreworICAgIEV3a19TZXR0aW5ncyogc2V0dGluZ3MgPSBld2tfdmlld19zZXR0aW5nc19nZXQo
d2ViVmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19qYXZhc2NyaXB0X2Vu
YWJsZWRfc2V0KHNldHRpbmdzLCBFSU5BX1RSVUUpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0
dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChzZXR0aW5ncykpOworCisgICAgQVNTRVJUX1RS
VUUoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9zZXQoc2V0dGluZ3MsIDIpKTsKKyAg
ICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfamF2YXNjcmlwdF9lbmFibGVkX2dldChzZXR0aW5n
cykpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdzX2phdmFzY3JpcHRfZW5hYmxlZF9z
ZXQoc2V0dGluZ3MsIEVJTkFfRkFMU0UpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXdrX3NldHRpbmdz
X2phdmFzY3JpcHRfZW5hYmxlZF9nZXQoc2V0dGluZ3MpKTsKK30KKworVEVTVF9GKEVXSzJVbml0
VGVzdEJhc2UsIGV3a19zZXR0aW5nc19sb2Fkc19pbWFnZXNfYXV0b21hdGljYWxseSkKK3sKKyAg
ICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXco
KSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRp
Y2FsbHlfc2V0KHNldHRpbmdzLCBFSU5BX1RSVUUpKTsKKyAgICBBU1NFUlRfVFJVRShld2tfc2V0
dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfZ2V0KHNldHRpbmdzKSk7CisKKyAgICBB
U1NFUlRfVFJVRShld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2FsbHlfc2V0KHNl
dHRpbmdzLCAyKSk7CisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRpbmdzX2xvYWRzX2ltYWdlc19h
dXRvbWF0aWNhbGx5X2dldChzZXR0aW5ncykpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3NldHRp
bmdzX2xvYWRzX2ltYWdlc19hdXRvbWF0aWNhbGx5X3NldChzZXR0aW5ncywgRUlOQV9GQUxTRSkp
OworICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGluZ3NfbG9hZHNfaW1hZ2VzX2F1dG9tYXRpY2Fs
bHlfZ2V0KHNldHRpbmdzKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKaW5kZXggNDIxN2Y3MTNkZGQ3
NDA1ZDk1YzAxNmMwMGVkNDc1NDNmZTQ4MDE5Yi4uM2E4OTA4ODEzZDc0OGQ4OWJiYjA2NDg2YTZh
ZWU2YjQwMDRiMzcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcApAQCAtMjM2LDMgKzIzNiwxMCBAQCBU
RVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfcG9wdXBfbWVudV9zZWxlY3QpCiAgICAg
RVhQRUNUX1RSVUUoZXdrX3ZpZXdfcG9wdXBfbWVudV9jbG9zZSh3ZWJWaWV3KCkpKTsKICAgICBF
WFBFQ1RfRkFMU0UoZXdrX3ZpZXdfcG9wdXBfbWVudV9zZWxlY3Qod2ViVmlldygpLCAwKSk7CiB9
CisKK1RFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19zZXR0aW5nc19nZXQpCit7Cisg
ICAgRXdrX1NldHRpbmdzKiBzZXR0aW5ncyA9IGV3a192aWV3X3NldHRpbmdzX2dldCh3ZWJWaWV3
KCkpOworICAgIEFTU0VSVF9UUlVFKHNldHRpbmdzKTsKKyAgICBBU1NFUlRfRVEoc2V0dGluZ3Ms
IGV3a192aWV3X3NldHRpbmdzX2dldCh3ZWJWaWV3KCkpKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>