<?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>109165</bug_id>
          
          <creation_ts>2013-02-07 03:13:07 -0800</creation_ts>
          <short_desc>[WK2][EFL] Removal of non coordinated graphics code path from WK2 EFL</short_desc>
          <delta_ts>2013-02-07 15:23:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kalyan.kondapally</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>ostap73</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>827246</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 03:13:07 -0800</bug_when>
    <thetext>SSIA. Please refer to webkit-efl ML for details: https://lists.webkit.org/pipermail/webkit-efl/2013-February/000497.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827258</commentid>
    <comment_count>1</comment_count>
      <attachid>187044</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 03:28:00 -0800</bug_when>
    <thetext>Created attachment 187044
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827260</commentid>
    <comment_count>2</comment_count>
      <attachid>187044</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-07 03:30:45 -0800</bug_when>
    <thetext>Comment on attachment 187044
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt; -    inline Evas_GL_Context* context() const { return m_context; }
&gt; +    Evas_GL_Context* context() { return m_context; }

why unrelated changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827276</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 03:53:32 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 187044 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187044&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt; &gt; -    inline Evas_GL_Context* context() const { return m_context; }
&gt; &gt; +    Evas_GL_Context* context() { return m_context; }
&gt; 
&gt; why unrelated changed?

I just could not pass through :) but it&apos;s off course worth mentioning in change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827283</commentid>
    <comment_count>4</comment_count>
      <attachid>187050</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 04:00:07 -0800</bug_when>
    <thetext>Created attachment 187050
patch v2

updated changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827333</commentid>
    <comment_count>5</comment_count>
      <attachid>187050</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-07 04:47:22 -0800</bug_when>
    <thetext>Comment on attachment 187050
patch v2

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.h:156
&gt; +    void update(const WebCore::IntRect&amp; rect = WebCore::IntRect());

should the semantics change?? we don&apos;t care about the rect and do a full update with coordinategraphics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827340</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 05:01:07 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 187050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187050&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkView.h:156
&gt; &gt; +    void update(const WebCore::IntRect&amp; rect = WebCore::IntRect());
&gt; 
&gt; should the semantics change?? we don&apos;t care about the rect and do a full update with coordinategraphics

Yeah, thanks for the catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827343</commentid>
    <comment_count>7</comment_count>
      <attachid>187065</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 05:02:50 -0800</bug_when>
    <thetext>Created attachment 187065
patch v3

Took Kalyan&apos;s comment into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827398</commentid>
    <comment_count>8</comment_count>
      <attachid>187079</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 05:53:19 -0800</bug_when>
    <thetext>Created attachment 187079
patch v4

Also renamed EwkView::update() to EwkView::scheduleUpdateDisplay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827502</commentid>
    <comment_count>9</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-07 07:35:35 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=187079) [details]
&gt; patch v4
&gt; 
&gt; Also renamed EwkView::update() to EwkView::scheduleUpdateDisplay.

Should we name it something like scheduleSceneUpdate (to represent what we do in timer callback function).

otherwise LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827547</commentid>
    <comment_count>10</comment_count>
      <attachid>187079</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-07 08:28:02 -0800</bug_when>
    <thetext>Comment on attachment 187079
patch v4

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827609</commentid>
    <comment_count>11</comment_count>
      <attachid>187079</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-07 09:28:45 -0800</bug_when>
    <thetext>Comment on attachment 187079
patch v4

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

&gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt; +    Evas_GL_Context* context() { return m_context; }

Why do you remove const here? Also inline doesn&apos;t make any harm.

&gt; Source/WebKit2/UIProcess/API/efl/EvasGLSurface.h:56
&gt; +    Evas_GL_Surface* surface() { return m_surface; }

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827619</commentid>
    <comment_count>12</comment_count>
      <attachid>187079</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-07 09:38:13 -0800</bug_when>
    <thetext>Comment on attachment 187079
patch v4

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt;&gt; +    Evas_GL_Context* context() { return m_context; }
&gt; 
&gt; Why do you remove const here? Also inline doesn&apos;t make any harm.

It was discussed on the webkit-dev mailing list not too long ago that we should not make such methods const unless they return a const pointer. Since pointer being returned is not const, I think removing const is correct. However, I agree that keeping the inline statement does not hurt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827686</commentid>
    <comment_count>13</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-07 10:47:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 187079 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187079&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt; &gt;&gt; +    Evas_GL_Context* context() { return m_context; }
&gt; &gt; 
&gt; &gt; Why do you remove const here? Also inline doesn&apos;t make any harm.
&gt; 
&gt; It was discussed on the webkit-dev mailing list not too long ago that we should not make such methods const unless they return a const pointer. Since pointer being returned is not const, I think removing const is correct. However, I agree that keeping the inline statement does not hurt.

As I remember, there was not conclusion. At least I didn&apos;t see any updates to webkit style or anywhere else. Honestly, I didn&apos;t see any reasonable points in this discussion in any case.
Removing &quot;const&quot; hints the compiler, that object might change inside method and compiler will not optimize usage of this method.
In this case compiler has the method body, so it will inline and optimize it in any case, so I don&apos;t like this just because it is unrelated change, but in general blindly removing consts is a bad idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827771</commentid>
    <comment_count>14</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 11:57:25 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 187079 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187079&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EvasGLContext.h:48
&gt; &gt; &gt;&gt; +    Evas_GL_Context* context() { return m_context; }
&gt; &gt; &gt; 
&gt; &gt; &gt; Why do you remove const here? Also inline doesn&apos;t make any harm.
&gt; &gt; 
&gt; &gt; It was discussed on the webkit-dev mailing list not too long ago that we should not make such methods const unless they return a const pointer. Since pointer being returned is not const, I think removing const is correct. However, I agree that keeping the inline statement does not hurt.
&gt; 
&gt; As I remember, there was not conclusion. At least I didn&apos;t see any updates to webkit style or anywhere else. Honestly, I didn&apos;t see any reasonable points in this discussion in any case.
&gt; Removing &quot;const&quot; hints the compiler, that object might change inside method and compiler will not optimize usage of this method.
&gt; In this case compiler has the method body, so it will inline and optimize it in any case, so I don&apos;t like this just because it is unrelated change, but in general blindly removing consts is a bad idea.

Const methods are not used for compiler optimization but rather used to show logical constness! 

The ML discussion around this: https://lists.webkit.org/pipermail/webkit-dev/2012-October/022576.html. 

Having const in this particular case makes absolutely no sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827784</commentid>
    <comment_count>15</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-07 12:15:21 -0800</bug_when>
    <thetext>
&gt; Const methods are not used for compiler optimization but rather used to show logical constness! 

Yes, it is used.


&gt; The ML discussion around this: https://lists.webkit.org/pipermail/webkit-dev/2012-October/022576.html. 
&gt; 
&gt; Having const in this particular case makes absolutely no sense.

Yes, it is.
For example, if there is several calls to const method, compiler might optimize it to single call and keep it in temporary variable. Compiler also could reorder calls to const methods if necessary.
If the method is not const, it is not allowed because non-const method are assumed to change object state.

&gt; The ML discussion around this: https://lists.webkit.org/pipermail/webkit-dev/2012-October/022576.html. 

Yes, I know. I&apos;ve seen it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827845</commentid>
    <comment_count>16</comment_count>
      <attachid>187079</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 13:21:50 -0800</bug_when>
    <thetext>Comment on attachment 187079
patch v4

Clearing flags on attachment: 187079

Committed r142169: &lt;http://trac.webkit.org/changeset/142169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827846</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 13:21:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827928</commentid>
    <comment_count>18</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-07 15:23:21 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Const methods are not used for compiler optimization but rather used to show logical constness! 
&gt; 
&gt; Yes, it is used.
&gt; 
&gt; 
&gt; &gt; The ML discussion around this: https://lists.webkit.org/pipermail/webkit-dev/2012-October/022576.html. 
&gt; &gt; 
&gt; &gt; Having const in this particular case makes absolutely no sense.
&gt; 
&gt; Yes, it is.
&gt; For example, if there is several calls to const method, compiler might optimize it to single call and keep it in temporary variable. Compiler also could reorder calls to const methods if necessary.
&gt; If the method is not const, it is not allowed because non-const method are assumed to change object state.
&gt; 
&gt; &gt; The ML discussion around this: https://lists.webkit.org/pipermail/webkit-dev/2012-October/022576.html. 
&gt; 
&gt; Yes, I know. I&apos;ve seen it.

The definition is: 
&quot;const member function - member function declared not to modify the state of the object for which it is called.&quot; (Bjarne Stroustrup: The C++ Programming Language (Special Edition)). Nothing is written about optimization.

The fact that compiler might make optimizations for const methods does not mean that const methods should be treated as means of optimization. They should be used so that logical constness of the object is kept.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187044</attachid>
            <date>2013-02-07 03:28:00 -0800</date>
            <delta_ts>2013-02-07 04:00:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug109165</filename>
            <type>text/plain</type>
            <size>31306</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJmNjJlMDc5OWYxODRhMDE1YTI1ODU0NjcyODQ3NDViM2M3ZTFkYmMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiA3IDEzOjIwOjU0IDIwMTMgKzAyMDAKCiAgICBidWcxMDkxNjUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzM5Y2Q0My4uNDUyM2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEzLTAy
LTA3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdW0VGTF0gUmVtb3ZhbCBvZiBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3Mg
Y29kZSBwYXRoIGZyb20gV0syIEVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3MgY29kZSBwYXRo
IGZyb20gV0syIEVGTCBhcyBpdCB3YXMgbm90IHVzZWQgYnkKKyAgICAgICAgYW55b25lIGFuZCBj
YXVzZWQgYSBsb3Qgb2YgcHJlcHJvY2Vzc29yIG1hY3JvcyBpbiB0aGUgY29kZSBtYWtpbmcgaXQg
bGVzcyByZWFkYWJsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRl
eHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAg
ICAgICAgKFdlYktpdDo6RXZhc0dMQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5oOgorICAgICAgICAoV2ViS2l0OjpFdmFzR0xTdXJmYWNlOjpzdXJm
YWNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAg
KEV3a1ZpZXc6OkV3a1ZpZXcpOgorICAgICAgICAoRXdrVmlldzo6dHJhbnNmb3JtRnJvbVNjZW5l
KToKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKToKKyAgICAgICAgKEV3a1Zp
ZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSk6CisgICAgICAgIChFd2tWaWV3OjpkaXNwbGF5
VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3Ojp1cGRhdGUpOgorICAgICAgICAoRXdrVmll
dzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKEV3a1ZpZXc6Omhh
bmRsZUV2YXNPYmplY3RDYWxjdWxhdGUpOgorICAgICAgICAoRXdrVmlldzo6dGFrZVNuYXBzaG90
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1Nu
YXBzaG90SW1hZ2VHTC5jcHA6CisgICAgICAgIChnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZm
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEJh
c2U6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRCYXNlLmg6CisgICAgICAgIChQYWdlQ2xpZW50QmFzZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnVwZGF0ZVZpZXdwb3J0U2l6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnREZWZhdWx0SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBsOjpkaWRDaGFu
Z2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6
OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9Q
YWdlQ2xpZW50RGVmYXVsdEltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnREZWZhdWx0SW1wbCk6
CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjp1cGRhdGVWaWV3cG9ydFNpemUpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNT
aXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudExlZ2FjeUltcGw6OnBhZ2VUcmFuc2l0
aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVn
YWN5SW1wbC5oOgorICAgICAgICAoUGFnZUNsaWVudExlZ2FjeUltcGwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdl
TG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUxvYWRDbGllbnRFZmw6OlBhZ2VMb2FkQ2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmg6CisgICAgICAgIChQYWdlTG9hZENsaWVudEVmbCk6
CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvclByb3h5RWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5z
cGVjdG9yUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQpOgorCiAyMDEzLTAyLTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3BwCmluZGV4IDk4
YTdlNmEuLjgxOThkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V2YXNHTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V2YXNHTENvbnRleHQuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRXZhc0dMQ29udGV4dC5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRXZhc0dMQ29udGV4dDo6RXZhc0dM
Q29udGV4dChFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29udGV4dCogcGFzc0NvbnRleHQpCkBA
IC00NCw1ICs0MiwzIEBAIEV2YXNHTENvbnRleHQ6On5FdmFzR0xDb250ZXh0KCkKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0
LmgKaW5kZXggOTg5OWE4MS4uODg2MTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBF
dmFzR0xDb250ZXh0X2gKICNkZWZpbmUgRXZhc0dMQ29udGV4dF9oCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKQEAgLTQ2LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH0KICAgICB+RXZh
c0dMQ29udGV4dCgpOwogCi0gICAgaW5saW5lIEV2YXNfR0xfQ29udGV4dCogY29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIEV2YXNfR0xfQ29udGV4dCogY29udGV4dCgp
IHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgogICAgIEV2YXNHTENvbnRleHQoRXZh
c19HTCogZXZhc0dMLCBFdmFzX0dMX0NvbnRleHQqIHBhc3NDb250ZXh0KTsKQEAgLTU3LDYgKzU2
LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBFdmFzR0xDb250ZXh0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAK
aW5kZXggZDVkMTM4My4uMTYzMDFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJFdmFzR0xTdXJmYWNlLmgiCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBFdmFzR0xTdXJmYWNl
OjpFdmFzR0xTdXJmYWNlKEV2YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9TdXJmYWNlKiBwYXNzU3Vy
ZmFjZSkKQEAgLTQ0LDUgKzQyLDMgQEAgRXZhc0dMU3VyZmFjZTo6fkV2YXNHTFN1cmZhY2UoKQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V2YXNHTFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNH
TFN1cmZhY2UuaAppbmRleCA5MWJhOGYyLi5kYTc2YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
aWZuZGVmIEV2YXNHTFN1cmZhY2VfaAogI2RlZmluZSBFdmFzR0xTdXJmYWNlX2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlIDxFdmFzX0dMLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTU0
LDcgKzUzLDcgQEAgcHVibGljOgogICAgIH0KICAgICB+RXZhc0dMU3VyZmFjZSgpOwogCi0gICAg
aW5saW5lIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VyZmFj
ZTsgfQorICAgIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIHsgcmV0dXJuIG1fc3VyZmFjZTsg
fQogCiBwcml2YXRlOgogICAgIEV2YXNHTFN1cmZhY2UoRXZhc19HTCogZXZhc0dMLCBFdmFzX0dM
X1N1cmZhY2UqIHBhc3NTdXJmYWNlKTsKQEAgLTY1LDYgKzY0LDQgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNlbmRpZiAvLyBFdmFzR0xTdXJmYWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMjhkY2FhNS4uMjFmYWM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTY0LDYgKzY0LDcg
QEAKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2luY2x1
ZGUgPEVkamUuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWly
b1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KQEAgLTc4LDEwICs3OSw2IEBACiAj
aW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSA8RXZhc19HTC5oPgotI2VuZGlmCi0K
IHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMjI2LDkgKzIyMyw3IEBAIHZvaWQgRXdr
Vmlld0V2ZW50SGFuZGxlcjxFVkFTX0NBTExCQUNLX0hJREU+OjpoYW5kbGVFdmVudCh2b2lkKiBk
YXRhLCBFdmFzKiwgRXZhCiBFd2tWaWV3OjpFd2tWaWV3KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0
LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cCwgVmlld0JlaGF2aW9yIGJlaGF2aW9yKQogICAgIDogbV9ldmFzT2JqZWN0KGV2YXNPYmplY3Qp
CiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgLCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplKGZhbHNlKQotI2VuZGlmCiAgICAgLCBt
X3BhZ2VDbGllbnQoYmVoYXZpb3IgPT0gRGVmYXVsdEJlaGF2aW9yID8gUGFnZUNsaWVudERlZmF1
bHRJbXBsOjpjcmVhdGUodGhpcykgOiBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6Y3JlYXRlKHRoaXMp
KQogICAgICwgbV93ZWJWaWV3KGFkb3B0UmVmKG5ldyBXZWJWaWV3KHRvSW1wbChtX2NvbnRleHQt
PndrQ29udGV4dCgpKSwgbV9wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdyb3VwKSwgZXZh
c09iamVjdCkpKQogICAgICwgbV9wYWdlTG9hZENsaWVudChQYWdlTG9hZENsaWVudEVmbDo6Y3Jl
YXRlKHRoaXMpKQpAQCAtMjQxLDkgKzIzNiw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoRXZhc19PYmpl
Y3QqIGV2YXNPYmplY3QsIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY29udGV4dCwgV0tQYWdlCiAg
ICAgLCBtX3ZpYnJhdGlvbkNsaWVudChWaWJyYXRpb25DbGllbnRFZmw6OmNyZWF0ZSh0aGlzKSkK
ICNlbmRpZgogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoRXdrQmFja0ZvcndhcmRMaXN0OjpjcmVh
dGUoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHdrUGFnZSgpKSkpCi0jaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQotI2VuZGlmCiAgICAgLCBt
X3NldHRpbmdzKEV3a1NldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2N1cnNvcklkZW50
aWZpZXIoMCkKICAgICAsIG1fbW91c2VFdmVudHNFbmFibGVkKGZhbHNlKQpAQCAtNDUzLDEyICs0
NDYsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNv
bnN0CiB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKIAotI2lmIFVTRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQogICAgIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBib3RoIHBhZ2UgYW5kIGRl
dmljZSBzY2FsZSBmYWN0b3JzLgogICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gcGFnZVNjYWxlRmFj
dG9yKCkpOwogICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAg
ICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCksIHBhZ2VQb3NpdGlvbigp
LnkoKSk7Ci0jZW5kaWYKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRh
KCk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcueCwgLXNkLT52aWV3LnkpOwpA
QCAtNDg0LDEyICs0NzUsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybVRv
U2NyZWVuKCkgY29uc3QKICAgICBFY29yZV9FdmFzKiBlY29yZUV2YXMgPSBlY29yZV9ldmFzX2Vj
b3JlX2V2YXNfZ2V0KHNkLT5iYXNlLmV2YXMpOwogCiAgICAgRWNvcmVfWF9XaW5kb3cgd2luZG93
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB3aW5kb3cgPSBlY29yZV9l
dmFzX2dsX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CiAgICAgLy8gRmFsbGJhY2sgdG8gc29m
dHdhcmUgbW9kZSBpZiBuZWNlc3NhcnkuCiAgICAgaWYgKCF3aW5kb3cpCi0jZW5kaWYKLSAgICB3
aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7IC8v
IFJldHVybnMgMCBpZiBub25lLgorICAgICAgICB3aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJl
X3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7IC8vIFJldHVybnMgMCBpZiBub25lLgogCiAgICAg
aW50IHgsIHk7IC8vIHgsIHkgYXJlIHJlbGF0aXZlIHRvIHBhcmVudCAoaW4gYSByZXBhcmVudGlu
ZyB3aW5kb3cgbWFuYWdlcikuCiAgICAgd2hpbGUgKHdpbmRvdykgewpAQCAtNTA2LDcgKzQ5NSw2
IEBAIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjcmVlbigpIGNvbnN0CiAg
ICAgcmV0dXJuIHRyYW5zZm9ybTsKIH0KIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogRXdrVmlldzo6Y29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lKCkKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHBhZ2UoKS0+ZHJh
d2luZ0FyZWEoKTsKQEAgLTUxOSw3ICs1MDcsNiBAQCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUq
IEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpCiAKICAgICByZXR1cm4gY29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHktPmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOwogfQot
I2VuZGlmCiAKIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBFd2tWaWV3OjpzbWFydERhdGEo
KSBjb25zdAogewpAQCAtNTI4LDcgKzUxNSw2IEBAIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRh
KiBFd2tWaWV3OjpzbWFydERhdGEoKSBjb25zdAogCiB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1l
ckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKIAogICAgIGlmICht
X3BlbmRpbmdTdXJmYWNlUmVzaXplKSB7CkBAIC01NjcsMjkgKzU1MywxOSBAQCB2b2lkIEV3a1Zp
ZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKICAgICAgICAgc2NlbmUtPnBh
aW50VG9HcmFwaGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0LmdldCgpKTsKICAgICAgICAgZXZh
c19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwgdmlld3BvcnQu
d2lkdGgoKSwgdmlld3BvcnQuaGVpZ2h0KCkpOwogICAgIH0KLSNlbmRpZgogfQogCi12b2lkIEV3
a1ZpZXc6OnVwZGF0ZShjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBFd2tWaWV3Ojp1cGRhdGUo
Y29uc3QgSW50UmVjdCYpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERh
dGEoKTsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgLy8gQ29vcmRpbmF0ZWQg
Z3JhcGhpY2VzIG5lZWRzIHRvIHNjaGVkdWxlIGFuIGZ1bGwgdXBkYXRlLCBub3QKICAgICAvLyBy
ZXBhaW50aW5nIG9mIGEgcmVnaW9uLiBVcGRhdGUgaW4gdGhlIGV2ZW50IGxvb3AuCi0gICAgVU5V
U0VEX1BBUkFNKHJlY3QpOwotCisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERh
dGEoKTsKICAgICAvLyBHdWFyZCBmb3IgemVybyBzaXplZCB2aWV3cG9ydC4KICAgICBpZiAoIShz
ZC0+dmlldy53ICYmIHNkLT52aWV3LmgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1f
ZGlzcGxheVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fZGlzcGxheVRpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKLSNlbHNlCi0gICAgaWYgKCFzZC0+aW1hZ2UpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHJlY3QueCgp
LCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLSNlbmRpZgogfQogCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtNzg4LDcgKzc2NCw2IEBAIHZvaWQgRXdrVmll
dzo6aW5mb3JtSWNvbkNoYW5nZSgpCiAgICAgc21hcnRDYWxsYmFjazxJY29uQ2hhbmdlZD4oKS5j
YWxsKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIEV3a1Zp
ZXc6OmNyZWF0ZUdMU3VyZmFjZShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKIHsKICAgICBpZiAo
IW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQpAQCAtODYyLDcgKzgzNyw2IEBAIGJvb2wgRXdrVmll
dzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAvKioKQEAgLTExOTUs
MTIgKzExNjksOCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUoRXZh
c19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgICAgIGlmICh2aWV3LT5wYWdlKCktPmRyYXdpbmdB
cmVhKCkpCiAgICAgICAgICAgICB2aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUo
SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAgICAgdmlldy0+c2V0TmVlZHNTdXJmYWNlUmVzaXplKCk7Ci0j
ZW5kaWYKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAgICAgdmlldy0+cGFnZUNs
aWVudCgpLT51cGRhdGVWaWV3cG9ydFNpemUoKTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAtMTM2
NSwxNSArMTMzNSwxMiBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6dGFr
ZVNuYXBzaG90KCkKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKIAogICAgIEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQpIHsKLSNlbmRp
ZgogICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGNyZWF0ZVN1cmZh
Y2VGb3JJbWFnZShzZC0+aW1hZ2UpOwogICAgICAgICAvLyBSZXN1bWUgYWxsIGFuaW1hdGlvbnMu
CiAgICAgICAgIFdLVmlld1Jlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKHdrVmll
dygpKTsKIAogICAgICAgICByZXR1cm4gc25hcHNob3QucmVsZWFzZSgpOwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB9CiAKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBzbmFwc2hvdCA9IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcigwLCAwLCBzZC0+dmll
dy53LCBzZC0+dmlldy5oKTsKQEAgLTEzODEsNyArMTM0OCw2IEBAIFBhc3NSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBFd2tWaWV3Ojp0YWtlU25hcHNob3QoKQogICAgIFdLVmlld1Jlc3VtZUFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKHdrVmlldygpKTsKIAogICAgIHJldHVybiBzbmFwc2hv
dC5yZWxlYXNlKCk7Ci0jZW5kaWYKIH0KIAogRXZhc19TbWFydF9DbGFzcyBFd2tWaWV3OjpwYXJl
bnRTbWFydENsYXNzID0gRVZBU19TTUFSVF9DTEFTU19JTklUX05VTEw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggMzY2ZDFiZC4uYzNkNGY4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMjEsNiArMjEs
OCBAQAogI2lmbmRlZiBFd2tWaWV3X2gKICNkZWZpbmUgRXdrVmlld19oCiAKKyNpbmNsdWRlICJF
dmFzR0xDb250ZXh0LmgiCisjaW5jbHVkZSAiRXZhc0dMU3VyZmFjZS5oIgogI2luY2x1ZGUgIkV3
a1ZpZXdDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5j
bHVkZSAiUmVmUHRyRWZsLmgiCkBAIC00NSwxMCArNDcsNiBAQAogI2luY2x1ZGUgImV3a190b3Vj
aC5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVk
ZSAiRXZhc0dMQ29udGV4dC5oIgotI2luY2x1ZGUgIkV2YXNHTFN1cmZhY2UuaCIKLSNlbmRpZgog
CiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgpAQCAt
ODAsOSArNzgsNyBAQCBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBDb2xvcjsKIGNsYXNz
IEN1cnNvcjsKIGNsYXNzIEludFNpemU7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQog
Y2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwotI2VuZGlmCiB9CiAKIGNsYXNzIEV3a0Nv
bnRleHQ7CkBAIC05MywxMCArODksOCBAQCBjbGFzcyBFd2tQb3B1cE1lbnU7CiBjbGFzcyBFd2tT
ZXR0aW5nczsKIGNsYXNzIEV3a1dpbmRvd0ZlYXR1cmVzOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfQ29udGV4dCBFdmFzX0dMX0Nv
bnRleHQ7CiB0eXBlZGVmIHN0cnVjdCBfRXZhc19HTF9TdXJmYWNlIEV2YXNfR0xfU3VyZmFjZTsK
LSNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9EYXRhIEV3a19WaWV3X1Nt
YXJ0X0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9DbGFzcyBFd2tfVmlld19T
bWFydF9DbGFzczsKQEAgLTE1OSw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0SW1hZ2VEYXRh
KHZvaWQqIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSk7CiAKLSAgICB2
b2lkIHVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0ID0gV2ViQ29yZTo6SW50UmVj
dCgpKTsgICAKKyAgICB2b2lkIHVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0ID0g
V2ViQ29yZTo6SW50UmVjdCgpKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2
b2lkIGVudGVyRnVsbFNjcmVlbigpOwpAQCAtMTY5LDEyICsxNjMsMTAgQEAgcHVibGljOgogICAg
IFdLUmVjdCB3aW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogICAgIHZvaWQgc2V0V2luZG93R2VvbWV0
cnkoY29uc3QgV0tSZWN0Jik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgYm9vbCBjcmVhdGVHTFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUp
OwogICAgIGJvb2wgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIGJvb2wg
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCBzZXROZWVkc1N1cmZh
Y2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSB0cnVlOyB9Ci0jZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHZvaWQgcmVxdWVzdENvbG9yUGlja2Vy
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKQEAgLTIwNCw3ICsxOTYsNiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgaW5mb3JtRGF0YWJhc2VRdW90YVJlYWNoZWQoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50
UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2lnbmVkIGxv
bmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVk
VXNhZ2UpOwogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgV2ViS2l0OjpQYWdl
Q2xpZW50QmFzZSogcGFnZUNsaWVudCgpIHsgcmV0dXJuIG1fcGFnZUNsaWVudC5nZXQoKTsgfQog
CiAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpIHsgbV9wYWdl
U2NhbGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsgfQpAQCAtMjEyLDcgKzIwMyw2IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0UGFnZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBv
c2l0aW9uKSB7IG1fcGFnZVBvc2l0aW9uID0gcG9zaXRpb247IH0KICAgICBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50IHBhZ2VQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVBvc2l0aW9u
OyB9Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1FOiBuZWVkcyByZWZhY3RvcmluZyAoc3BsaXQgY2Fs
bGJhY2sgaW52b2tlKQogICAgIHZvaWQgaW5mb3JtVVJMQ2hhbmdlKCk7CkBAIC0yMzAsOSArMjIw
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGxheVRpbWVyRmlyZWQoV2ViQ29yZTo6VGlt
ZXI8RXdrVmlldz4qKTsKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgp
OwotI2VuZGlmCiAKICAgICB2b2lkIGluZm9ybUljb25DaGFuZ2UoKTsKIApAQCAtMjY4LDEyICsy
NTYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBOb3RlLCBpbml0aWFsaXphdGlvbiBvcmRlciBtYXR0
ZXJzLgogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7CiAgICAgUmVmUHRyPEV3a0NvbnRl
eHQ+IG1fY29udGV4dDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgT3du
UHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTENvbnRleHQ+
IG1fZXZhc0dMQ29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJmYWNlPiBtX2V2
YXNHTFN1cmZhY2U7CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwotI2VuZGlmCiAg
ICAgT3duUHRyPFdlYktpdDo6UGFnZUNsaWVudEJhc2U+IG1fcGFnZUNsaWVudDsKICAgICBSZWZQ
dHI8V2ViS2l0OjpXZWJWaWV3PiBtX3dlYlZpZXc7CiAgICAgT3duUHRyPFdlYktpdDo6UGFnZUxv
YWRDbGllbnRFZmw+IG1fcGFnZUxvYWRDbGllbnQ7CkBAIC0yODYsMTAgKzI3Miw4IEBAIHByaXZh
dGU6CiAgICAgT3duUHRyPFdlYktpdDo6VmlicmF0aW9uQ2xpZW50RWZsPiBtX3ZpYnJhdGlvbkNs
aWVudDsKICNlbmRpZgogICAgIE93blB0cjxFd2tCYWNrRm9yd2FyZExpc3Q+IG1fYmFja0Zvcndh
cmRMaXN0OwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGZsb2F0IG1fcGFnZVNj
YWxlRmFjdG9yOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9wYWdlUG9zaXRpb247Ci0jZW5k
aWYKICAgICBPd25QdHI8RXdrU2V0dGluZ3M+IG1fc2V0dGluZ3M7CiAgICAgUmVmUHRyPEV3a1dp
bmRvd0ZlYXR1cmVzPiBtX3dpbmRvd0ZlYXR1cmVzOwogICAgIGNvbnN0IHZvaWQqIG1fY3Vyc29y
SWRlbnRpZmllcjsgLy8gVGhpcyBpcyBhbiBhZGRyZXNzLCBkbyBub3QgZnJlZSBpdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3Bw
CmluZGV4IGU4ZDg3ODMuLjliNzI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNuYXBzaG90SW1hZ2VHTC5oIgogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRl
IDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KQEAgLTU3LDUgKzU2LDMg
QEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1
ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWQKICAgICBjYWlyb19zdXJmYWNlX21hcmtfZGlydHko
bmV3U3VyZmFjZS5nZXQoKSk7CiAgICAgcmV0dXJuIG5ld1N1cmZhY2U7CiB9Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFn
ZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wu
aAppbmRleCA3ZWVhODNmLi5hYmNkNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaApAQCAtMjksOCArMjksNiBAQAogI2luY2x1
ZGUgPFJlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
Z2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gU25hcHNob3RJbWFnZUdMX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBjNTNkODRk
Li5lOTBhZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiUGFnZUxvYWRDbGllbnRFZmwuaCIK
ICNpbmNsdWRlICJQYWdlUG9saWN5Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFnZVVJQ2xpZW50
RWZsLmgiCisjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIK
ICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS0ZpbmRPcHRpb25z
LmgiCkBAIC01NiwxMSArNTgsNiBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAj
ZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotI2luY2x1ZGUgIlBhZ2VWaWV3
cG9ydENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VDbGllbnRCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVu
dEJhc2UuY3BwCmluZGV4IDI2YjdlNGYuLjE5Mzg5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCkBAIC0yMzUsNyArMjM1LDYgQEAgdm9p
ZCBQYWdlQ2xpZW50QmFzZTo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0
b3I+LCBib29sLCBib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFBhZ2VDbGllbnRCYXNlOjplbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewogICAgIG1fdmll
dy0+ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwpAQCAtMjUwLDcgKzI0OSw2IEBA
IHZvaWQgUGFnZUNsaWVudEJhc2U6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFBhZ2VDbGllbnRCYXNl
OjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGJvb2wpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmgKaW5kZXggNGEwMjI3ZS4uMGY3YWQ4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaApAQCAtOTQs
MTEgKzk0LDkgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rmlu
ZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29sKTsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogICAgIHZpcnR1
YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFt
ZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21S
ZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNl
Jik7CkBAIC0xMDksMTEgKzEwNyw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZmlu
ZFN0cmluZ0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluZE9wdGlvbnMs
IHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgY291bnRTdHJpbmdNYXRjaGVzSW5DdXN0b21S
ZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywgdW5zaWduZWQpOwogCi0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpID0gMDsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6
CiAgICAgRXdrVmlldyogbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwCmluZGV4IDI2MGYxMjAuLjVhOTIyMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1
bHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRE
ZWZhdWx0SW1wbC5jcHAKQEAgLTI2LDE1ICsyNiwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUGFnZUNsaWVudERlZmF1bHRJbXBsLmgiCisjaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
ZmwuaCIKIAogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgogCi0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0jaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJv
bGxlci5oIgotI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKLSNl
bmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3
Q2FsbGJhY2tzOwogCkBAIC00NywyMSArNDQsMTcgQEAgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpQ
YWdlQ2xpZW50RGVmYXVsdEltcGwoRXdrVmlldyogdmlldykKIAogdm9pZCBQYWdlQ2xpZW50RGVm
YXVsdEltcGw6OmRpZENvbW1pdExvYWQoKQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIEFTU0VSVChtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOwogICAgIG1fcGFnZVZpZXdw
b3J0Q29udHJvbGxlci0+ZGlkQ29tbWl0TG9hZCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNs
aWVudERlZmF1bHRJbXBsOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogewotI2lmIFVTRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQogICAgIGlmICghbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50KSB7
CiAgICAgICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCA9IFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmw6OmNyZWF0ZShtX3ZpZXcpOwogICAgICAgICBtX3BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgUGFnZVZpZXdwb3J0Q29udHJvbGxlcihtX3ZpZXct
PnBhZ2UoKSwgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmdldCgpKSk7CiAgICAgfQog
ICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC0+dXBkYXRlVmlld3BvcnRTaXplKCk7
Ci0jZW5kaWYKIH0KIAogRmxvYXRSZWN0IFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6Y29udmVydFRv
RGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0JiB1c2VyUmVjdCkKQEAgLTgwLDI1ICs3MywxNyBA
QCBGbG9hdFJlY3QgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpjb252ZXJ0VG9Vc2VyU3BhY2UoY29u
c3QgRmxvYXRSZWN0JiBkZXZpY2VSZWN0KQogCiB2b2lkIFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6
ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmli
dXRlcyYgYXR0cikKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBBU1NFUlQo
bV9wYWdlVmlld3BvcnRDb250cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIt
PmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhhdHRyKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKGF0dHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpkaWRD
aGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKIHsKLSNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBBU1NFUlQobV9wYWdlVmlld3BvcnRDb250cm9s
bGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXItPmRpZENoYW5nZUNvbnRlbnRzU2l6
ZShzaXplKTsKLSNlbmRpZgotCiAgICAgbV92aWV3LT5zbWFydENhbGxiYWNrPENvbnRlbnRzU2l6
ZUNoYW5nZWQ+KCkuY2FsbChzaXplKTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogdm9pZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBBU1NFUlQobV9wYWdlVmlld3BvcnRDb250cm9s
bGVyKTsKQEAgLTExNiw2ICsxMDEsNSBAQCB2b2lkIFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6cGFn
ZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKICAgICBBU1NFUlQobV9wYWdlVmlld3BvcnRDb250
cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXItPnBhZ2VUcmFuc2l0aW9uVmll
d3BvcnRSZWFkeSgpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmgK
aW5kZXggMjFiZTY5Yy4uZTEwNTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5oCkBAIC01NCwxNCArNTQsMTIgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY292ZXJlZFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdw
b3J0UmVhZHkoKTsKIAogICAgIE93blB0cjxXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmw+IG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudDsKICAgICBPd25QdHI8V2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyPiBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXI7Ci0j
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcAppbmRleCA5NTgzMWEy
Li4yZjJkOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VD
bGllbnRMZWdhY3lJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VDbGllbnRMZWdhY3lJbXBsLmNwcApAQCAtNDksOSArNDksNyBAQCB2b2lkIFBhZ2VDbGllbnRM
ZWdhY3lJbXBsOjpkaWRDb21taXRMb2FkKCkKIAogdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6
dXBkYXRlVmlld3BvcnRTaXplKCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICBtX3ZpZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChJ
bnRSZWN0KHJvdW5kZWRJbnRQb2ludChtX3ZpZXctPnBhZ2VQb3NpdGlvbigpKSwgbV92aWV3LT5z
aXplKCkpLCBGbG9hdFBvaW50KCkpOwotI2VuZGlmCiB9CiAKIEZsb2F0UmVjdCBQYWdlQ2xpZW50
TGVnYWN5SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0JiB2aWV3UmVj
dCkKQEAgLTczLDE1ICs3MSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFu
Z2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdAogCiB2b2lkIFBh
Z2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBtX3Zp
ZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+Y29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHko
KS0+c2V0Q29udGVudHNTaXplKEZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkp
KTsKICAgICBtX3ZpZXctPnVwZGF0ZSgpOwotI2VuZGlmCiAKICAgICBtX3ZpZXctPnNtYXJ0Q2Fs
bGJhY2s8Q29udGVudHNTaXplQ2hhbmdlZD4oKS5jYWxsKHNpemUpOwogfQogCi0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpwYWdlRGlkUmVx
dWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgbV92aWV3LT5zZXRQ
YWdlUG9zaXRpb24oRmxvYXRQb2ludChwb3NpdGlvbikpOwpAQCAtOTcsNiArOTIsNSBAQCB2b2lk
IFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQogewog
ICAgIG1fdmlldy0+dXBkYXRlKCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdh
Y3lJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJ
bXBsLmgKaW5kZXggMzAxMDQ3OC4uZWZlYWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaApAQCAtNTEsMTEgKzUxLDkgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY292ZXJlZFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZp
ZXdwb3J0UmVhZHkoKTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCmlu
ZGV4IGI4ODE2NjguLmM0YmE2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCkBAIC0xMTEsNyArMTExLDYgQEAgdm9pZCBQYWdl
TG9hZENsaWVudEVmbDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdL
UGFnZVJlZiwgV0tGcmEKICAgICB2aWV3LT5zbWFydENhbGxiYWNrPFByb3Zpc2lvbmFsTG9hZEZh
aWxlZD4oKS5jYWxsKGV3a0Vycm9yLmdldCgpKTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogdm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKQEAgLTEyMCw3ICsx
MTksNiBAQCB2b2lkIFBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cAogICAgIEV3a1ZpZXcqIHZpZXcgPSB0b1Bh
Z2VMb2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CiAgICAgdmlldy0+cGFnZUNsaWVu
dCgpLT5kaWRDb21taXRMb2FkKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBQYWdlTG9hZENsaWVudEVm
bDo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CkBAIC0xNzAsOSArMTY4LDcgQEAgUGFnZUxvYWRDbGllbnRFZmw6OlBhZ2VM
b2FkQ2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgbG9hZENsaWVudC5kaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lID0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKICAg
ICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWU7CiAgICAgbG9hZENsaWVudC5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJh
bWUgPSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7Ci0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgbG9hZENsaWVudC5kaWRDb21taXRMb2FkRm9yRnJhbWUg
PSBkaWRDb21taXRMb2FkRm9yRnJhbWU7Ci0jZW5kaWYKICAgICBsb2FkQ2xpZW50LmRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdCA9IGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDsKICAgICBsb2FkQ2xp
ZW50LmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSA9IGRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUluRnJhbWUgPSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZy
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENs
aWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVm
bC5oCmluZGV4IDJiYTcwZmYuLmNhZTFmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmgKQEAgLTUzLDkgKzUzLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tFcnJvclJl
ZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwotI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tB
cnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRp
YyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudEVmbC5jcHAKaW5kZXggZDQwZGExMC4uZjFkNTk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmwuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgogCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCi0KICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eS5oIgogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9s
bGVyLmgiCkBAIC0xMTIsNSArMTEwLDMgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsOjpzZXRDb250cm9sbGVyKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIGNvbnQKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgKaW5kZXggYjg3YTBmZS4uNWMxOWMyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbF9oCiAjZGVmaW5lIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmxfaAogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0KICNpbmNs
dWRlICJFd2tWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEJhc2UuaCIKICNpbmNsdWRlICJQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmgiCkBAIC03MSw2ICs2OSw0IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYKLQogI2VuZGlmIC8vIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkluc3BlY3RvclByb3h5RWZsLmNwcAppbmRleCBhODk0ZjU1Li5mYTJlMDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvclBy
b3h5RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3Rv
clByb3h5RWZsLmNwcApAQCAtODcsNyArODcsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogewogICAgIEFTU0VSVChtX3Bh
Z2UpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkIEhBVkVf
RUNPUkVfWAorI2lmZGVmIEhBVkVfRUNPUkVfWAogICAgIGNvbnN0IGNoYXIqIGVuZ2luZSA9ICJv
cGVuZ2xfeDExIjsKICAgICBtX2luc3BlY3RvcldpbmRvdyA9IGVjb3JlX2V2YXNfbmV3KGVuZ2lu
ZSwgMCwgMCwgaW5pdGlhbFdpbmRvd1dpZHRoLCBpbml0aWFsV2luZG93SGVpZ2h0LCAwKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGM1NGFlODcuLjQ0ZWUyYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNv
bgogICAgIGlmIChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgUExBVEZPUk0oUVQpIHx8IChQTEFURk9STShFRkwpICYmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKSkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQogICAg
IGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpIHsKICAgICAgICAgLy8gVGhlIGJlbG93IG1l
dGhvZCB1cGRhdGVzIHRoZSBzaXplKCkuCiAgICAgICAgIG1fcGFnZS0+cmVzaXplVG9Db250ZW50
c0lmTmVlZGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187050</attachid>
            <date>2013-02-07 04:00:07 -0800</date>
            <delta_ts>2013-02-07 05:02:50 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>bug109165_v2</filename>
            <type>text/plain</type>
            <size>31543</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDU5YjIxNWJkY2NjZjM1NTZkYmIxYzQ4NWJkZjg4M2YzMjVkMjRhOGYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiA3IDEzOjIwOjU0IDIwMTMgKzAyMDAKCiAgICBidWcxMDkxNjUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzM5Y2Q0My4uNTc2OWRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAy
LTA3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdW0VGTF0gUmVtb3ZhbCBvZiBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3Mg
Y29kZSBwYXRoIGZyb20gV0syIEVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3MgY29kZSBwYXRo
IGZyb20gV0syIEVGTCBhcyBpdCB3YXMgbm90IHVzZWQgYnkKKyAgICAgICAgYW55b25lIGFuZCBj
YXVzZWQgYSBsb3Qgb2YgcHJlcHJvY2Vzc29yIG1hY3JvcyBpbiB0aGUgY29kZSBtYWtpbmcgaXQg
bGVzcyByZWFkYWJsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRl
eHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAg
ICAgICAgKFdlYktpdDo6RXZhc0dMQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5oOgorICAgICAgICAoV2ViS2l0OjpFdmFzR0xTdXJmYWNlOjpzdXJm
YWNlKToKKworICAgICAgICAgICAgUmVtb3ZlZCBhbHNvICdpbmxpbmUnIGFuZCAnY29uc3QnIGtl
eXdvcmRzIGZyb20gZnVuY3Rpb25zIGRlY2xhcmF0aW9uLAorICAgICAgICAgICAgYXMgYm90aCBF
dmFzR0xDb250ZXh0Ojpjb250ZXh0KCkgYW5kIEV2YXNHTFN1cmZhY2U6OnN1cmZhY2UoKQorICAg
ICAgICAgICAgYXJlIGRlZmluZWQgaW5zaWRlIHRoZWlyIGNsYXNzZXMgYW5kIHJldHVybiBtdXRh
YmxlIHBvaW50ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoK
KyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcpOgorICAgICAgICAoRXdrVmlldzo6dHJhbnNmb3Jt
RnJvbVNjZW5lKToKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKToKKyAgICAg
ICAgKEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSk6CisgICAgICAgIChFd2tWaWV3
OjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3Ojp1cGRhdGUpOgorICAgICAg
ICAoRXdrVmlldzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKEV3
a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUpOgorICAgICAgICAoRXdrVmlldzo6dGFr
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHA6CisgICAgICAgIChnZXRJbWFnZVN1cmZhY2VGcm9t
RnJhbWVCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEJhc2U6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmg6CisgICAgICAgIChQYWdlQ2xpZW50QmFz
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENvbW1pdExvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnVwZGF0ZVZpZXdwb3J0U2l6
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnREZWZhdWx0SW1wbDo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBs
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVm
YXVsdEltcGw6OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnREZWZh
dWx0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjp1cGRhdGVWaWV3cG9y
dFNpemUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdl
Q29udGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudExlZ2FjeUltcGw6OnBh
Z2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdl
Q2xpZW50TGVnYWN5SW1wbC5oOgorICAgICAgICAoUGFnZUNsaWVudExlZ2FjeUltcGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUxvYWRDbGllbnRFZmw6OlBhZ2VMb2FkQ2xpZW50RWZsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmg6CisgICAgICAgIChQYWdlTG9hZENs
aWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvclBy
b3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
Q3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorCiAyMDEzLTAyLTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3Bw
CmluZGV4IDk4YTdlNmEuLjgxOThkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZhc0dMQ29udGV4dC5oIgogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRXZhc0dMQ29udGV4
dDo6RXZhc0dMQ29udGV4dChFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29udGV4dCogcGFzc0Nv
bnRleHQpCkBAIC00NCw1ICs0MiwzIEBAIEV2YXNHTENvbnRleHQ6On5FdmFzR0xDb250ZXh0KCkK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FdmFzR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFz
R0xDb250ZXh0LmgKaW5kZXggOTg5OWE4MS4uODg2MTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMjYsNyArMjYsNiBAQAog
I2lmbmRlZiBFdmFzR0xDb250ZXh0X2gKICNkZWZpbmUgRXZhc0dMQ29udGV4dF9oCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTQ2LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH0K
ICAgICB+RXZhc0dMQ29udGV4dCgpOwogCi0gICAgaW5saW5lIEV2YXNfR0xfQ29udGV4dCogY29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIEV2YXNfR0xfQ29udGV4dCog
Y29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgogICAgIEV2YXNHTENv
bnRleHQoRXZhc19HTCogZXZhc0dMLCBFdmFzX0dMX0NvbnRleHQqIHBhc3NDb250ZXh0KTsKQEAg
LTU3LDYgKzU2LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBFdmFzR0xDb250
ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNH
TFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3Vy
ZmFjZS5jcHAKaW5kZXggZDVkMTM4My4uMTYzMDFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmFzR0xTdXJmYWNlLmgiCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBFdmFz
R0xTdXJmYWNlOjpFdmFzR0xTdXJmYWNlKEV2YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9TdXJmYWNl
KiBwYXNzU3VyZmFjZSkKQEAgLTQ0LDUgKzQyLDMgQEAgRXZhc0dMU3VyZmFjZTo6fkV2YXNHTFN1
cmZhY2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V2YXNHTFN1cmZhY2UuaAppbmRleCA5MWJhOGYyLi5kYTc2YjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0yNiw3ICsy
Niw2IEBACiAjaWZuZGVmIEV2YXNHTFN1cmZhY2VfaAogI2RlZmluZSBFdmFzR0xTdXJmYWNlX2gK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlIDxFdmFzX0dMLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KQEAgLTU0LDcgKzUzLDcgQEAgcHVibGljOgogICAgIH0KICAgICB+RXZhc0dMU3VyZmFjZSgp
OwogCi0gICAgaW5saW5lIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3VyZmFjZTsgfQorICAgIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIHsgcmV0dXJuIG1f
c3VyZmFjZTsgfQogCiBwcml2YXRlOgogICAgIEV2YXNHTFN1cmZhY2UoRXZhc19HTCogZXZhc0dM
LCBFdmFzX0dMX1N1cmZhY2UqIHBhc3NTdXJmYWNlKTsKQEAgLTY1LDYgKzY0LDQgQEAgcHJpdmF0
ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBFdmFzR0xTdXJmYWNlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMjhkY2FhNS4uMjFmYWM4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTY0
LDYgKzY0LDcgQEAKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfWC5o
PgogI2luY2x1ZGUgPEVkamUuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYWlyb1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KQEAgLTc4LDEwICs3
OSw2IEBACiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSA8RXZhc19HTC5oPgot
I2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMjI2LDkgKzIyMyw3IEBA
IHZvaWQgRXdrVmlld0V2ZW50SGFuZGxlcjxFVkFTX0NBTExCQUNLX0hJREU+OjpoYW5kbGVFdmVu
dCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhCiBFd2tWaWV3OjpFd2tWaWV3KEV2YXNfT2JqZWN0KiBl
dmFzT2JqZWN0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cCwgVmlld0JlaGF2aW9yIGJlaGF2aW9yKQogICAgIDogbV9ldmFzT2JqZWN0KGV2
YXNPYmplY3QpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgLCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplKGZhbHNlKQotI2VuZGlm
CiAgICAgLCBtX3BhZ2VDbGllbnQoYmVoYXZpb3IgPT0gRGVmYXVsdEJlaGF2aW9yID8gUGFnZUNs
aWVudERlZmF1bHRJbXBsOjpjcmVhdGUodGhpcykgOiBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6Y3Jl
YXRlKHRoaXMpKQogICAgICwgbV93ZWJWaWV3KGFkb3B0UmVmKG5ldyBXZWJWaWV3KHRvSW1wbCht
X2NvbnRleHQtPndrQ29udGV4dCgpKSwgbV9wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdy
b3VwKSwgZXZhc09iamVjdCkpKQogICAgICwgbV9wYWdlTG9hZENsaWVudChQYWdlTG9hZENsaWVu
dEVmbDo6Y3JlYXRlKHRoaXMpKQpAQCAtMjQxLDkgKzIzNiw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXco
RXZhc19PYmplY3QqIGV2YXNPYmplY3QsIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY29udGV4dCwg
V0tQYWdlCiAgICAgLCBtX3ZpYnJhdGlvbkNsaWVudChWaWJyYXRpb25DbGllbnRFZmw6OmNyZWF0
ZSh0aGlzKSkKICNlbmRpZgogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoRXdrQmFja0ZvcndhcmRM
aXN0OjpjcmVhdGUoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHdrUGFnZSgpKSkpCi0jaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQotI2VuZGlm
CiAgICAgLCBtX3NldHRpbmdzKEV3a1NldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2N1
cnNvcklkZW50aWZpZXIoMCkKICAgICAsIG1fbW91c2VFdmVudHNFbmFibGVkKGZhbHNlKQpAQCAt
NDUzLDEyICs0NDYsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21T
Y2VuZSgpIGNvbnN0CiB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKIAotI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBib3RoIHBh
Z2UgYW5kIGRldmljZSBzY2FsZSBmYWN0b3JzLgogICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gcGFn
ZVNjYWxlRmFjdG9yKCkpOwogICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCksIHBhZ2VQ
b3NpdGlvbigpLnkoKSk7Ci0jZW5kaWYKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0g
c21hcnREYXRhKCk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcueCwgLXNkLT52
aWV3LnkpOwpAQCAtNDg0LDEyICs0NzUsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRy
YW5zZm9ybVRvU2NyZWVuKCkgY29uc3QKICAgICBFY29yZV9FdmFzKiBlY29yZUV2YXMgPSBlY29y
ZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KHNkLT5iYXNlLmV2YXMpOwogCiAgICAgRWNvcmVfWF9XaW5k
b3cgd2luZG93OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB3aW5kb3cg
PSBlY29yZV9ldmFzX2dsX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CiAgICAgLy8gRmFsbGJh
Y2sgdG8gc29mdHdhcmUgbW9kZSBpZiBuZWNlc3NhcnkuCiAgICAgaWYgKCF3aW5kb3cpCi0jZW5k
aWYKLSAgICB3aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3Jl
RXZhcyk7IC8vIFJldHVybnMgMCBpZiBub25lLgorICAgICAgICB3aW5kb3cgPSBlY29yZV9ldmFz
X3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7IC8vIFJldHVybnMgMCBpZiBub25l
LgogCiAgICAgaW50IHgsIHk7IC8vIHgsIHkgYXJlIHJlbGF0aXZlIHRvIHBhcmVudCAoaW4gYSBy
ZXBhcmVudGluZyB3aW5kb3cgbWFuYWdlcikuCiAgICAgd2hpbGUgKHdpbmRvdykgewpAQCAtNTA2
LDcgKzQ5NSw2IEBAIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjcmVlbigp
IGNvbnN0CiAgICAgcmV0dXJuIHRyYW5zZm9ybTsKIH0KIAotI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogRXdrVmlldzo6Y29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lKCkKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHBh
Z2UoKS0+ZHJhd2luZ0FyZWEoKTsKQEAgLTUxOSw3ICs1MDcsNiBAQCBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmUqIEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpCiAKICAgICByZXR1
cm4gY29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHktPmNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZSgpOwogfQotI2VuZGlmCiAKIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBFd2tWaWV3Ojpz
bWFydERhdGEoKSBjb25zdAogewpAQCAtNTI4LDcgKzUxNSw2IEBAIGlubGluZSBFd2tfVmlld19T
bWFydF9EYXRhKiBFd2tWaWV3OjpzbWFydERhdGEoKSBjb25zdAogCiB2b2lkIEV3a1ZpZXc6OmRp
c3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKLSNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKIAog
ICAgIGlmIChtX3BlbmRpbmdTdXJmYWNlUmVzaXplKSB7CkBAIC01NjcsMjkgKzU1MywxOSBAQCB2
b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKICAgICAgICAg
c2NlbmUtPnBhaW50VG9HcmFwaGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0LmdldCgpKTsKICAg
ICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwg
dmlld3BvcnQud2lkdGgoKSwgdmlld3BvcnQuaGVpZ2h0KCkpOwogICAgIH0KLSNlbmRpZgogfQog
Ci12b2lkIEV3a1ZpZXc6OnVwZGF0ZShjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBFd2tWaWV3
Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2Qg
PSBzbWFydERhdGEoKTsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgLy8gQ29v
cmRpbmF0ZWQgZ3JhcGhpY2VzIG5lZWRzIHRvIHNjaGVkdWxlIGFuIGZ1bGwgdXBkYXRlLCBub3QK
ICAgICAvLyByZXBhaW50aW5nIG9mIGEgcmVnaW9uLiBVcGRhdGUgaW4gdGhlIGV2ZW50IGxvb3Au
Ci0gICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotCisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2Qg
PSBzbWFydERhdGEoKTsKICAgICAvLyBHdWFyZCBmb3IgemVybyBzaXplZCB2aWV3cG9ydC4KICAg
ICBpZiAoIShzZC0+dmlldy53ICYmIHNkLT52aWV3LmgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAoIW1fZGlzcGxheVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fZGlzcGxheVRpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKLSNlbHNlCi0gICAgaWYgKCFzZC0+aW1hZ2UpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2Us
IHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLSNlbmRp
ZgogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtNzg4LDcgKzc2NCw2IEBAIHZv
aWQgRXdrVmlldzo6aW5mb3JtSWNvbkNoYW5nZSgpCiAgICAgc21hcnRDYWxsYmFjazxJY29uQ2hh
bmdlZD4oKS5jYWxsKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBi
b29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKIHsK
ICAgICBpZiAoIW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQpAQCAtODYyLDcgKzgzNyw2IEBAIGJv
b2wgRXdrVmlldzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAvKioK
QEAgLTExOTUsMTIgKzExNjksOCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxj
dWxhdGUoRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgICAgIGlmICh2aWV3LT5wYWdlKCkt
PmRyYXdpbmdBcmVhKCkpCiAgICAgICAgICAgICB2aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkt
PnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgdmlldy0+c2V0TmVlZHNTdXJmYWNlUmVz
aXplKCk7Ci0jZW5kaWYKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAgICAgdmll
dy0+cGFnZUNsaWVudCgpLT51cGRhdGVWaWV3cG9ydFNpemUoKTsKLSNlbmRpZgogICAgIH0KIH0K
IApAQCAtMTM2NSwxNSArMTMzNSwxMiBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdr
Vmlldzo6dGFrZVNuYXBzaG90KCkKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsK
IAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQp
IHsKLSNlbmRpZgogICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGNy
ZWF0ZVN1cmZhY2VGb3JJbWFnZShzZC0+aW1hZ2UpOwogICAgICAgICAvLyBSZXN1bWUgYWxsIGFu
aW1hdGlvbnMuCiAgICAgICAgIFdLVmlld1Jlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKHdrVmlldygpKTsKIAogICAgICAgICByZXR1cm4gc25hcHNob3QucmVsZWFzZSgpOwotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB9CiAKICAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBzbmFwc2hvdCA9IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcigwLCAw
LCBzZC0+dmlldy53LCBzZC0+dmlldy5oKTsKQEAgLTEzODEsNyArMTM0OCw2IEBAIFBhc3NSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBFd2tWaWV3Ojp0YWtlU25hcHNob3QoKQogICAgIFdLVmlld1Jl
c3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKHdrVmlldygpKTsKIAogICAgIHJldHVy
biBzbmFwc2hvdC5yZWxlYXNlKCk7Ci0jZW5kaWYKIH0KIAogRXZhc19TbWFydF9DbGFzcyBFd2tW
aWV3OjpwYXJlbnRTbWFydENsYXNzID0gRVZBU19TTUFSVF9DTEFTU19JTklUX05VTEw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggMzY2ZDFiZC4uYzNk
NGY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAt
MjEsNiArMjEsOCBAQAogI2lmbmRlZiBFd2tWaWV3X2gKICNkZWZpbmUgRXdrVmlld19oCiAKKyNp
bmNsdWRlICJFdmFzR0xDb250ZXh0LmgiCisjaW5jbHVkZSAiRXZhc0dMU3VyZmFjZS5oIgogI2lu
Y2x1ZGUgIkV3a1ZpZXdDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiUmVmUHRyRWZsLmgiCkBAIC00NSwxMCArNDcsNiBAQAogI2luY2x1ZGUg
ImV3a190b3VjaC5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0jaW5jbHVkZSAiRXZhc0dMQ29udGV4dC5oIgotI2luY2x1ZGUgIkV2YXNHTFN1cmZhY2UuaCIK
LSNlbmRpZgogCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgpAQCAtODAsOSArNzgsNyBAQCBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBDb2xv
cjsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIEludFNpemU7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwotI2VuZGlmCiB9CiAKIGNs
YXNzIEV3a0NvbnRleHQ7CkBAIC05MywxMCArODksOCBAQCBjbGFzcyBFd2tQb3B1cE1lbnU7CiBj
bGFzcyBFd2tTZXR0aW5nczsKIGNsYXNzIEV3a1dpbmRvd0ZlYXR1cmVzOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfQ29udGV4dCBF
dmFzX0dMX0NvbnRleHQ7CiB0eXBlZGVmIHN0cnVjdCBfRXZhc19HTF9TdXJmYWNlIEV2YXNfR0xf
U3VyZmFjZTsKLSNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9EYXRhIEV3
a19WaWV3X1NtYXJ0X0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9DbGFzcyBF
d2tfVmlld19TbWFydF9DbGFzczsKQEAgLTE1OSw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0
SW1hZ2VEYXRhKHZvaWQqIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSk7
CiAKLSAgICB2b2lkIHVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0ID0gV2ViQ29y
ZTo6SW50UmVjdCgpKTsgICAKKyAgICB2b2lkIHVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0ID0gV2ViQ29yZTo6SW50UmVjdCgpKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICB2b2lkIGVudGVyRnVsbFNjcmVlbigpOwpAQCAtMTY5LDEyICsxNjMsMTAgQEAgcHVi
bGljOgogICAgIFdLUmVjdCB3aW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogICAgIHZvaWQgc2V0V2lu
ZG93R2VvbWV0cnkoY29uc3QgV0tSZWN0Jik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgYm9vbCBjcmVhdGVHTFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
dmlld1NpemUpOwogICAgIGJvb2wgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwog
ICAgIGJvb2wgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCBzZXRO
ZWVkc1N1cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSB0cnVlOyB9Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHZvaWQgcmVxdWVzdENv
bG9yUGlja2VyKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKTsKQEAgLTIwNCw3ICsxOTYsNiBAQCBwdWJsaWM6CiAKICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgaW5mb3JtRGF0YWJhc2VRdW90YVJlYWNoZWQoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25n
IGV4cGVjdGVkVXNhZ2UpOwogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgV2Vi
S2l0OjpQYWdlQ2xpZW50QmFzZSogcGFnZUNsaWVudCgpIHsgcmV0dXJuIG1fcGFnZUNsaWVudC5n
ZXQoKTsgfQogCiAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3Ip
IHsgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsgfQpAQCAtMjEyLDcgKzIwMyw2IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFnZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHBvc2l0aW9uKSB7IG1fcGFnZVBvc2l0aW9uID0gcG9zaXRpb247IH0KICAgICBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50IHBhZ2VQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZVBvc2l0aW9uOyB9Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1FOiBuZWVkcyByZWZhY3RvcmluZyAo
c3BsaXQgY2FsbGJhY2sgaW52b2tlKQogICAgIHZvaWQgaW5mb3JtVVJMQ2hhbmdlKCk7CkBAIC0y
MzAsOSArMjIwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGxheVRpbWVyRmlyZWQoV2Vi
Q29yZTo6VGltZXI8RXdrVmlldz4qKTsKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIGNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSgpOwotI2VuZGlmCiAKICAgICB2b2lkIGluZm9ybUljb25DaGFuZ2UoKTsKIApAQCAt
MjY4LDEyICsyNTYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBOb3RlLCBpbml0aWFsaXphdGlvbiBv
cmRlciBtYXR0ZXJzLgogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7CiAgICAgUmVmUHRy
PEV3a0NvbnRleHQ+IG1fY29udGV4dDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNH
TENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJm
YWNlPiBtX2V2YXNHTFN1cmZhY2U7CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwot
I2VuZGlmCiAgICAgT3duUHRyPFdlYktpdDo6UGFnZUNsaWVudEJhc2U+IG1fcGFnZUNsaWVudDsK
ICAgICBSZWZQdHI8V2ViS2l0OjpXZWJWaWV3PiBtX3dlYlZpZXc7CiAgICAgT3duUHRyPFdlYktp
dDo6UGFnZUxvYWRDbGllbnRFZmw+IG1fcGFnZUxvYWRDbGllbnQ7CkBAIC0yODYsMTAgKzI3Miw4
IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYktpdDo6VmlicmF0aW9uQ2xpZW50RWZsPiBtX3Zp
YnJhdGlvbkNsaWVudDsKICNlbmRpZgogICAgIE93blB0cjxFd2tCYWNrRm9yd2FyZExpc3Q+IG1f
YmFja0ZvcndhcmRMaXN0OwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGZsb2F0
IG1fcGFnZVNjYWxlRmFjdG9yOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9wYWdlUG9zaXRp
b247Ci0jZW5kaWYKICAgICBPd25QdHI8RXdrU2V0dGluZ3M+IG1fc2V0dGluZ3M7CiAgICAgUmVm
UHRyPEV3a1dpbmRvd0ZlYXR1cmVzPiBtX3dpbmRvd0ZlYXR1cmVzOwogICAgIGNvbnN0IHZvaWQq
IG1fY3Vyc29ySWRlbnRpZmllcjsgLy8gVGhpcyBpcyBhbiBhZGRyZXNzLCBkbyBub3QgZnJlZSBp
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90
SW1hZ2VHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdElt
YWdlR0wuY3BwCmluZGV4IGU4ZDg3ODMuLjliNzI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcApAQCAtMjYsNyArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNuYXBzaG90SW1hZ2VHTC5oIgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lmIFVTRShPUEVOR0xfRVNfMikK
ICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KQEAgLTU3
LDUgKzU2LDMgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGdldEltYWdlU3VyZmFjZUZy
b21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWQKICAgICBjYWlyb19zdXJmYWNlX21h
cmtfZGlydHkobmV3U3VyZmFjZS5nZXQoKSk7CiAgICAgcmV0dXJuIG5ld1N1cmZhY2U7CiB9Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25h
cHNob3RJbWFnZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hv
dEltYWdlR0wuaAppbmRleCA3ZWVhODNmLi5hYmNkNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaApAQCAtMjksOCArMjksNiBA
QAogI2luY2x1ZGUgPFJlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQYXNzUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gU25hcHNob3RJbWFnZUdM
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRl
eCBjNTNkODRkLi5lOTBhZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiUGFnZUxvYWRDbGll
bnRFZmwuaCIKICNpbmNsdWRlICJQYWdlUG9saWN5Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFn
ZVVJQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKICNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS0Zp
bmRPcHRpb25zLmgiCkBAIC01NiwxMSArNTgsNiBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclBy
b3h5LmgiCiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotI2luY2x1ZGUg
IlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UGFnZUNsaWVudEJhc2UuY3BwCmluZGV4IDI2YjdlNGYuLjE5Mzg5ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCkBAIC0yMzUsNyArMjM1
LDYgQEAgdm9pZCBQYWdlQ2xpZW50QmFzZTo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZp
bmRJbmRpY2F0b3I+LCBib29sLCBib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFBhZ2VDbGllbnRCYXNlOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewog
ICAgIG1fdmlldy0+ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwpAQCAtMjUwLDcg
KzI0OSw2IEBAIHZvaWQgUGFnZUNsaWVudEJhc2U6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFBhZ2VD
bGllbnRCYXNlOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGJvb2wpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmgKaW5kZXggNGEwMjI3ZS4uMGY3
YWQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2Uu
aApAQCAtOTQsMTEgKzk0LDkgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29s
KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFG
b3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBDb3JlSVBDOjpEYXRh
UmVmZXJlbmNlJik7CkBAIC0xMDksMTEgKzEwNyw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgZmluZFN0cmluZ0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmlu
ZE9wdGlvbnMsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgY291bnRTdHJpbmdNYXRjaGVz
SW5DdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywgdW5zaWdu
ZWQpOwogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50
c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpID0gMDsKLSNlbmRpZgogCiBw
cm90ZWN0ZWQ6CiAgICAgRXdrVmlldyogbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwCmluZGV4IDI2MGYxMjAu
LjVhOTIyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNs
aWVudERlZmF1bHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VDbGllbnREZWZhdWx0SW1wbC5jcHAKQEAgLTI2LDE1ICsyNiwxMiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudERlZmF1bHRJbXBsLmgiCisjaW5jbHVkZSAi
UGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRFZmwuaCIKIAogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJld2tfdmll
dy5oIgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0jaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
ZmwuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBFd2tWaWV3Q2FsbGJhY2tzOwogCkBAIC00NywyMSArNDQsMTcgQEAgUGFnZUNsaWVudERlZmF1
bHRJbXBsOjpQYWdlQ2xpZW50RGVmYXVsdEltcGwoRXdrVmlldyogdmlldykKIAogdm9pZCBQYWdl
Q2xpZW50RGVmYXVsdEltcGw6OmRpZENvbW1pdExvYWQoKQogewotI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIEFTU0VSVChtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOwogICAgIG1f
cGFnZVZpZXdwb3J0Q29udHJvbGxlci0+ZGlkQ29tbWl0TG9hZCgpOwotI2VuZGlmCiB9CiAKIHZv
aWQgUGFnZUNsaWVudERlZmF1bHRJbXBsOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogewotI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmICghbV9wYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50KSB7CiAgICAgICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCA9IFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OmNyZWF0ZShtX3ZpZXcpOwogICAgICAgICBtX3Bh
Z2VWaWV3cG9ydENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgUGFnZVZpZXdwb3J0Q29udHJvbGxl
cihtX3ZpZXctPnBhZ2UoKSwgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmdldCgpKSk7
CiAgICAgfQogICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC0+dXBkYXRlVmlld3Bv
cnRTaXplKCk7Ci0jZW5kaWYKIH0KIAogRmxvYXRSZWN0IFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6
Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0JiB1c2VyUmVjdCkKQEAgLTgwLDI1
ICs3MywxNyBAQCBGbG9hdFJlY3QgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpjb252ZXJ0VG9Vc2Vy
U3BhY2UoY29uc3QgRmxvYXRSZWN0JiBkZXZpY2VSZWN0KQogCiB2b2lkIFBhZ2VDbGllbnREZWZh
dWx0SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyYgYXR0cikKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICBBU1NFUlQobV9wYWdlVmlld3BvcnRDb250cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENv
bnRyb2xsZXItPmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhhdHRyKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGF0dHIpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJ
bXBsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkK
IHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBBU1NFUlQobV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXItPmRpZENoYW5nZUNv
bnRlbnRzU2l6ZShzaXplKTsKLSNlbmRpZgotCiAgICAgbV92aWV3LT5zbWFydENhbGxiYWNrPENv
bnRlbnRzU2l6ZUNoYW5nZWQ+KCkuY2FsbChzaXplKTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogdm9pZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBBU1NFUlQobV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyKTsKQEAgLTExNiw2ICsxMDEsNSBAQCB2b2lkIFBhZ2VDbGllbnREZWZhdWx0
SW1wbDo6cGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKICAgICBBU1NFUlQobV9wYWdlVmll
d3BvcnRDb250cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXItPnBhZ2VUcmFu
c2l0aW9uVmlld3BvcnRSZWFkeSgpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVm
YXVsdEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1
bHRJbXBsLmgKaW5kZXggMjFiZTY5Yy4uZTEwNTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5oCkBAIC01NCwxNCArNTQs
MTIgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
bmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNp
dGlvblZpZXdwb3J0UmVhZHkoKTsKIAogICAgIE93blB0cjxXZWJLaXQ6OlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmw+IG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudDsKICAgICBP
d25QdHI8V2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyPiBtX3BhZ2VWaWV3cG9ydENvbnRy
b2xsZXI7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcAppbmRl
eCA5NTgzMWEyLi4yZjJkOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcApAQCAtNDksOSArNDksNyBAQCB2b2lkIFBh
Z2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDb21taXRMb2FkKCkKIAogdm9pZCBQYWdlQ2xpZW50TGVn
YWN5SW1wbDo6dXBkYXRlVmlld3BvcnRTaXplKCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKICAgICBtX3ZpZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChJbnRSZWN0KHJvdW5kZWRJbnRQb2ludChtX3ZpZXctPnBhZ2VQb3NpdGlvbigpKSwg
bV92aWV3LT5zaXplKCkpLCBGbG9hdFBvaW50KCkpOwotI2VuZGlmCiB9CiAKIEZsb2F0UmVjdCBQ
YWdlQ2xpZW50TGVnYWN5SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0
JiB2aWV3UmVjdCkKQEAgLTczLDE1ICs3MSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBs
OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdAog
CiB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
ICAgICBtX3ZpZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+Y29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkoKS0+c2V0Q29udGVudHNTaXplKEZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUu
aGVpZ2h0KCkpKTsKICAgICBtX3ZpZXctPnVwZGF0ZSgpOwotI2VuZGlmCiAKICAgICBtX3ZpZXct
PnNtYXJ0Q2FsbGJhY2s8Q29udGVudHNTaXplQ2hhbmdlZD4oKS5jYWxsKHNpemUpOwogfQogCi0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpw
YWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgbV92
aWV3LT5zZXRQYWdlUG9zaXRpb24oRmxvYXRQb2ludChwb3NpdGlvbikpOwpAQCAtOTcsNiArOTIs
NSBAQCB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVh
ZHkoKQogewogICAgIG1fdmlldy0+dXBkYXRlKCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VD
bGllbnRMZWdhY3lJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGll
bnRMZWdhY3lJbXBsLmgKaW5kZXggMzAxMDQ3OC4uZWZlYWJlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaApAQCAtNTEsMTEg
KzUxLDkgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1
ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJh
bnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xp
ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRF
ZmwuY3BwCmluZGV4IGI4ODE2NjguLmM0YmE2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCkBAIC0xMTEsNyArMTExLDYgQEAg
dm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmEKICAgICB2aWV3LT5zbWFydENhbGxiYWNrPFByb3Zpc2lv
bmFsTG9hZEZhaWxlZD4oKS5jYWxsKGV3a0Vycm9yLmdldCgpKTsKIH0KIAotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQogdm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKQEAg
LTEyMCw3ICsxMTksNiBAQCB2b2lkIFBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRDb21taXRMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cAogICAgIEV3a1ZpZXcqIHZp
ZXcgPSB0b1BhZ2VMb2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CiAgICAgdmlldy0+
cGFnZUNsaWVudCgpLT5kaWRDb21taXRMb2FkKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBQYWdlTG9h
ZENsaWVudEVmbDo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CkBAIC0xNzAsOSArMTY4LDcgQEAgUGFnZUxvYWRDbGllbnRF
Zmw6OlBhZ2VMb2FkQ2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgbG9hZENsaWVudC5kaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUgPSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7Ci0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgbG9hZENsaWVudC5kaWRDb21taXRMb2Fk
Rm9yRnJhbWUgPSBkaWRDb21taXRMb2FkRm9yRnJhbWU7Ci0jZW5kaWYKICAgICBsb2FkQ2xpZW50
LmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCA9IGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDsKICAg
ICBsb2FkQ2xpZW50LmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSA9IGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUgPSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VJbkZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlTG9hZENsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9h
ZENsaWVudEVmbC5oCmluZGV4IDJiYTcwZmYuLmNhZTFmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmgKQEAgLTUzLDkgKzUzLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tFcnJvclJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwotI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVk
SXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbC5jcHAKaW5kZXggZDQwZGExMC4uZjFkNTk2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmwuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgogCi0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0KICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eS5oIgogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJQYWdlVmlld3Bv
cnRDb250cm9sbGVyLmgiCkBAIC0xMTIsNSArMTEwLDMgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50RWZsOjpzZXRDb250cm9sbGVyKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIGNv
bnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgKaW5kZXggYjg3YTBmZS4uNWMx
OWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgKQEAgLTI2LDggKzI2LDYgQEAKICNp
Zm5kZWYgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbF9oCiAjZGVmaW5lIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRFZmxfaAogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
Ci0KICNpbmNsdWRlICJFd2tWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEJhc2UuaCIKICNp
bmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmgiCkBAIC03MSw2ICs2OSw0IEBA
IHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYKLQogI2VuZGlmIC8v
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvclByb3h5RWZsLmNwcAppbmRleCBhODk0ZjU1
Li5mYTJlMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYklu
c3BlY3RvclByb3h5RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
Ykluc3BlY3RvclByb3h5RWZsLmNwcApAQCAtODcsNyArODcsNyBAQCBXZWJQYWdlUHJveHkqIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogewogICAgIEFT
U0VSVChtX3BhZ2UpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZp
bmVkIEhBVkVfRUNPUkVfWAorI2lmZGVmIEhBVkVfRUNPUkVfWAogICAgIGNvbnN0IGNoYXIqIGVu
Z2luZSA9ICJvcGVuZ2xfeDExIjsKICAgICBtX2luc3BlY3RvcldpbmRvdyA9IGVjb3JlX2V2YXNf
bmV3KGVuZ2luZSwgMCwgMCwgaW5pdGlhbFdpbmRvd1dpZHRoLCBpbml0aWFsV2luZG93SGVpZ2h0
LCAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGM1NGFlODcuLjQ0ZWUyYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbgogICAgIGlmIChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oUVQpIHx8IChQTEFURk9STShFRkwpICYm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKSkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0o
RUZMKQogICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpIHsKICAgICAgICAgLy8gVGhl
IGJlbG93IG1ldGhvZCB1cGRhdGVzIHRoZSBzaXplKCkuCiAgICAgICAgIG1fcGFnZS0+cmVzaXpl
VG9Db250ZW50c0lmTmVlZGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187065</attachid>
            <date>2013-02-07 05:02:50 -0800</date>
            <delta_ts>2013-02-07 05:53:19 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug109165_v3</filename>
            <type>text/plain</type>
            <size>31904</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGMxZjdiYWRiNTllOTVkMjJjMWI4MjE4NzU2OGM4OWQ0MWVmYWY3ZjEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiA3IDEzOjIwOjU0IDIwMTMgKzAyMDAKCiAgICBidWcxMDkxNjUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTczZTY0NC4uM2QyZjg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAy
LTA3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdW0VGTF0gUmVtb3ZhbCBvZiBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3Mg
Y29kZSBwYXRoIGZyb20gV0syIEVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3MgY29kZSBwYXRo
IGZyb20gV0syIEVGTCBhcyBpdCB3YXMgbm90IHVzZWQgYnkKKyAgICAgICAgYW55b25lIGFuZCBj
YXVzZWQgYSBsb3Qgb2YgcHJlcHJvY2Vzc29yIG1hY3JvcyBpbiB0aGUgY29kZSBtYWtpbmcgaXQg
bGVzcyByZWFkYWJsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRl
eHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAg
ICAgICAgKFdlYktpdDo6RXZhc0dMQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5oOgorICAgICAgICAoV2ViS2l0OjpFdmFzR0xTdXJmYWNlOjpzdXJm
YWNlKToKKworICAgICAgICAgICAgUmVtb3ZlZCBhbHNvICdpbmxpbmUnIGFuZCAnY29uc3QnIGtl
eXdvcmRzIGZyb20gZnVuY3Rpb25zIGRlY2xhcmF0aW9uLAorICAgICAgICAgICAgYXMgYm90aCBF
dmFzR0xDb250ZXh0Ojpjb250ZXh0KCkgYW5kIEV2YXNHTFN1cmZhY2U6OnN1cmZhY2UoKQorICAg
ICAgICAgICAgYXJlIGRlZmluZWQgaW5zaWRlIHRoZWlyIGNsYXNzZXMgYW5kIHJldHVybiBtdXRh
YmxlIHBvaW50ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoK
KyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcpOgorICAgICAgICAoRXdrVmlldzo6dHJhbnNmb3Jt
RnJvbVNjZW5lKToKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKToKKyAgICAg
ICAgKEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSk6CisgICAgICAgIChFd2tWaWV3
OjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3Ojp1cGRhdGUpOgorICAgICAg
ICAoRXdrVmlldzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKEV3
a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUpOgorICAgICAgICAoRXdrVmlldzo6dGFr
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHA6CisgICAgICAgIChnZXRJbWFnZVN1cmZhY2VGcm9t
RnJhbWVCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEJhc2U6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmg6CisgICAgICAgIChQYWdlQ2xpZW50QmFz
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENvbW1pdExvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnVwZGF0ZVZpZXdwb3J0U2l6
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnREZWZhdWx0SW1wbDo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBs
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVm
YXVsdEltcGw6OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnREZWZh
dWx0SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjp1cGRhdGVWaWV3cG9y
dFNpemUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdl
Q29udGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudExlZ2FjeUltcGw6OnBh
Z2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdl
Q2xpZW50TGVnYWN5SW1wbC5oOgorICAgICAgICAoUGFnZUNsaWVudExlZ2FjeUltcGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUxvYWRDbGllbnRFZmw6OlBhZ2VMb2FkQ2xpZW50RWZsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmg6CisgICAgICAgIChQYWdlTG9hZENs
aWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvclBy
b3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
Q3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorCiAyMDEzLTAyLTA3ICBNaWNoYWVsIEJyw7xuaW5nICA8
bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gRm9sZCBRdFdl
YlBhZ2VMb2FkQ2xpZW50IGludG8gUVF1aWNrV2ViVmlld1ByaXZhdGUgYW5kIG1vdmUgdG8gQyBB
UEkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRl
eHQuY3BwCmluZGV4IDk4YTdlNmEuLjgxOThkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZhc0dMQ29udGV4dC5oIgogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRXZhc0dM
Q29udGV4dDo6RXZhc0dMQ29udGV4dChFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29udGV4dCog
cGFzc0NvbnRleHQpCkBAIC00NCw1ICs0MiwzIEBAIEV2YXNHTENvbnRleHQ6On5FdmFzR0xDb250
ZXh0KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9FdmFzR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FdmFzR0xDb250ZXh0LmgKaW5kZXggOTg5OWE4MS4uODg2MTU5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMjYsNyArMjYs
NiBAQAogI2lmbmRlZiBFdmFzR0xDb250ZXh0X2gKICNkZWZpbmUgRXZhc0dMQ29udGV4dF9oCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTQ2LDcgKzQ1LDcgQEAgcHVibGljOgog
ICAgIH0KICAgICB+RXZhc0dMQ29udGV4dCgpOwogCi0gICAgaW5saW5lIEV2YXNfR0xfQ29udGV4
dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIEV2YXNfR0xfQ29u
dGV4dCogY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgogICAgIEV2
YXNHTENvbnRleHQoRXZhc19HTCogZXZhc0dMLCBFdmFzX0dMX0NvbnRleHQqIHBhc3NDb250ZXh0
KTsKQEAgLTU3LDYgKzU2LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBFdmFz
R0xDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V2YXNHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZh
c0dMU3VyZmFjZS5jcHAKaW5kZXggZDVkMTM4My4uMTYzMDFjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKQEAgLTI2LDggKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmFzR0xTdXJmYWNlLmgiCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBFdmFzR0xTdXJmYWNlOjpFdmFzR0xTdXJmYWNlKEV2YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9T
dXJmYWNlKiBwYXNzU3VyZmFjZSkKQEAgLTQ0LDUgKzQyLDMgQEAgRXZhc0dMU3VyZmFjZTo6fkV2
YXNHTFN1cmZhY2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaAppbmRleCA5MWJhOGYyLi5kYTc2YjFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0y
Niw3ICsyNiw2IEBACiAjaWZuZGVmIEV2YXNHTFN1cmZhY2VfaAogI2RlZmluZSBFdmFzR0xTdXJm
YWNlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlIDxFdmFz
X0dMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KQEAgLTU0LDcgKzUzLDcgQEAgcHVibGljOgogICAgIH0KICAgICB+RXZhc0dMU3Vy
ZmFjZSgpOwogCi0gICAgaW5saW5lIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3VyZmFjZTsgfQorICAgIEV2YXNfR0xfU3VyZmFjZSogc3VyZmFjZSgpIHsgcmV0
dXJuIG1fc3VyZmFjZTsgfQogCiBwcml2YXRlOgogICAgIEV2YXNHTFN1cmZhY2UoRXZhc19HTCog
ZXZhc0dMLCBFdmFzX0dMX1N1cmZhY2UqIHBhc3NTdXJmYWNlKTsKQEAgLTY1LDYgKzY0LDQgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBFdmFzR0xTdXJmYWNlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMjhkY2FhNS4uZDM0
YjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAK
QEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNv
cmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KQEAgLTc4
LDEwICs3OSw2IEBACiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2Vu
ZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSA8RXZhc19H
TC5oPgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMjI2LDkgKzIy
Myw3IEBAIHZvaWQgRXdrVmlld0V2ZW50SGFuZGxlcjxFVkFTX0NBTExCQUNLX0hJREU+OjpoYW5k
bGVFdmVudCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhCiBFd2tWaWV3OjpFd2tWaWV3KEV2YXNfT2Jq
ZWN0KiBldmFzT2JqZWN0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFdLUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cCwgVmlld0JlaGF2aW9yIGJlaGF2aW9yKQogICAgIDogbV9ldmFzT2Jq
ZWN0KGV2YXNPYmplY3QpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplKGZhbHNlKQot
I2VuZGlmCiAgICAgLCBtX3BhZ2VDbGllbnQoYmVoYXZpb3IgPT0gRGVmYXVsdEJlaGF2aW9yID8g
UGFnZUNsaWVudERlZmF1bHRJbXBsOjpjcmVhdGUodGhpcykgOiBQYWdlQ2xpZW50TGVnYWN5SW1w
bDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV93ZWJWaWV3KGFkb3B0UmVmKG5ldyBXZWJWaWV3KHRv
SW1wbChtX2NvbnRleHQtPndrQ29udGV4dCgpKSwgbV9wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwo
cGFnZUdyb3VwKSwgZXZhc09iamVjdCkpKQogICAgICwgbV9wYWdlTG9hZENsaWVudChQYWdlTG9h
ZENsaWVudEVmbDo6Y3JlYXRlKHRoaXMpKQpAQCAtMjQxLDkgKzIzNiw3IEBAIEV3a1ZpZXc6OkV3
a1ZpZXcoRXZhc19PYmplY3QqIGV2YXNPYmplY3QsIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY29u
dGV4dCwgV0tQYWdlCiAgICAgLCBtX3ZpYnJhdGlvbkNsaWVudChWaWJyYXRpb25DbGllbnRFZmw6
OmNyZWF0ZSh0aGlzKSkKICNlbmRpZgogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoRXdrQmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHdrUGFnZSgpKSkpCi0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQot
I2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKEV3a1NldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAg
LCBtX2N1cnNvcklkZW50aWZpZXIoMCkKICAgICAsIG1fbW91c2VFdmVudHNFbmFibGVkKGZhbHNl
KQpAQCAtNDUzLDEyICs0NDYsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9y
bUZyb21TY2VuZSgpIGNvbnN0CiB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKIAot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBi
b3RoIHBhZ2UgYW5kIGRldmljZSBzY2FsZSBmYWN0b3JzLgogICAgIHRyYW5zZm9ybS5zY2FsZSgx
IC8gcGFnZVNjYWxlRmFjdG9yKCkpOwogICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gZGV2aWNlU2Nh
bGVGYWN0b3IoKSk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCks
IHBhZ2VQb3NpdGlvbigpLnkoKSk7Ci0jZW5kaWYKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkID0gc21hcnREYXRhKCk7CiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcueCwg
LXNkLT52aWV3LnkpOwpAQCAtNDg0LDEyICs0NzUsMTAgQEAgQWZmaW5lVHJhbnNmb3JtIEV3a1Zp
ZXc6OnRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3QKICAgICBFY29yZV9FdmFzKiBlY29yZUV2YXMg
PSBlY29yZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KHNkLT5iYXNlLmV2YXMpOwogCiAgICAgRWNvcmVf
WF9XaW5kb3cgd2luZG93OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB3
aW5kb3cgPSBlY29yZV9ldmFzX2dsX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CiAgICAgLy8g
RmFsbGJhY2sgdG8gc29mdHdhcmUgbW9kZSBpZiBuZWNlc3NhcnkuCiAgICAgaWYgKCF3aW5kb3cp
Ci0jZW5kaWYKLSAgICB3aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0
KGVjb3JlRXZhcyk7IC8vIFJldHVybnMgMCBpZiBub25lLgorICAgICAgICB3aW5kb3cgPSBlY29y
ZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7IC8vIFJldHVybnMgMCBp
ZiBub25lLgogCiAgICAgaW50IHgsIHk7IC8vIHgsIHkgYXJlIHJlbGF0aXZlIHRvIHBhcmVudCAo
aW4gYSByZXBhcmVudGluZyB3aW5kb3cgbWFuYWdlcikuCiAgICAgd2hpbGUgKHdpbmRvdykgewpA
QCAtNTA2LDcgKzQ5NSw2IEBAIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1Nj
cmVlbigpIGNvbnN0CiAgICAgcmV0dXJuIHRyYW5zZm9ybTsKIH0KIAotI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogRXdrVmlldzo6Y29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lKCkKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJl
YSA9IHBhZ2UoKS0+ZHJhd2luZ0FyZWEoKTsKQEAgLTUxOSw3ICs1MDcsNiBAQCBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUqIEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpCiAKICAg
ICByZXR1cm4gY29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHktPmNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSgpOwogfQotI2VuZGlmCiAKIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBFd2tW
aWV3OjpzbWFydERhdGEoKSBjb25zdAogewpAQCAtNTI4LDcgKzUxNSw2IEBAIGlubGluZSBFd2tf
Vmlld19TbWFydF9EYXRhKiBFd2tWaWV3OjpzbWFydERhdGEoKSBjb25zdAogCiB2b2lkIEV3a1Zp
ZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKLSNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEo
KTsKIAogICAgIGlmIChtX3BlbmRpbmdTdXJmYWNlUmVzaXplKSB7CkBAIC01NjcsMjkgKzU1Mywx
OSBAQCB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKICAg
ICAgICAgc2NlbmUtPnBhaW50VG9HcmFwaGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0LmdldCgp
KTsKICAgICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwg
MCwgMCwgdmlld3BvcnQud2lkdGgoKSwgdmlld3BvcnQuaGVpZ2h0KCkpOwogICAgIH0KLSNlbmRp
ZgogfQogCi12b2lkIEV3a1ZpZXc6OnVwZGF0ZShjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBF
d2tWaWV3Ojp1cGRhdGUoKQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnRE
YXRhKCk7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIC8vIENvb3JkaW5hdGVk
IGdyYXBoaWNlcyBuZWVkcyB0byBzY2hlZHVsZSBhbiBmdWxsIHVwZGF0ZSwgbm90CiAgICAgLy8g
cmVwYWludGluZyBvZiBhIHJlZ2lvbi4gVXBkYXRlIGluIHRoZSBldmVudCBsb29wLgotICAgIFVO
VVNFRF9QQVJBTShyZWN0KTsKLQorICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnRE
YXRhKCk7CiAgICAgLy8gR3VhcmQgZm9yIHplcm8gc2l6ZWQgdmlld3BvcnQuCiAgICAgaWYgKCEo
c2QtPnZpZXcudyAmJiBzZC0+dmlldy5oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFt
X2Rpc3BsYXlUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2Rpc3BsYXlUaW1lci5zdGFydE9u
ZVNob3QoMCk7Ci0jZWxzZQotICAgIGlmICghc2QtPmltYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCByZWN0Lngo
KSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0jZW5kaWYKIH0KIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAgLTc4OCw3ICs3NjQsNiBAQCB2b2lkIEV3a1Zp
ZXc6OmluZm9ybUljb25DaGFuZ2UoKQogICAgIHNtYXJ0Q2FsbGJhY2s8SWNvbkNoYW5nZWQ+KCku
Y2FsbCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBFd2tW
aWV3OjpjcmVhdGVHTFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCiB7CiAgICAgaWYg
KCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkKQEAgLTg2Miw3ICs4MzcsNiBAQCBib29sIEV3a1Zp
ZXc6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiB7CiAgICAgcmV0dXJuIHRydWU7
CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogLyoqCkBAIC0xMTk1
LDEyICsxMTY5LDggQEAgdm9pZCBFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2
YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgICAgICBpZiAodmlldy0+cGFnZSgpLT5kcmF3aW5n
QXJlYSgpKQogICAgICAgICAgICAgdmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXpl
KEludFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUoKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZpZXctPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwot
I2VuZGlmCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgIHZpZXctPnBhZ2VD
bGllbnQoKS0+dXBkYXRlVmlld3BvcnRTaXplKCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAgLTEz
NjUsMTUgKzEzMzUsMTIgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6OnRh
a2VTbmFwc2hvdCgpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiAKICAgICBF
d2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoIW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKSB7Ci0jZW5k
aWYKICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25hcHNob3QgPSBjcmVhdGVTdXJm
YWNlRm9ySW1hZ2Uoc2QtPmltYWdlKTsKICAgICAgICAgLy8gUmVzdW1lIGFsbCBhbmltYXRpb25z
LgogICAgICAgICBXS1ZpZXdSZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyh3a1Zp
ZXcoKSk7CiAKICAgICAgICAgcmV0dXJuIHNuYXBzaG90LnJlbGVhc2UoKTsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgfQogCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4gc25hcHNob3QgPSBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoMCwgMCwgc2QtPnZp
ZXcudywgc2QtPnZpZXcuaCk7CkBAIC0xMzgxLDcgKzEzNDgsNiBAQCBQYXNzUmVmUHRyPGNhaXJv
X3N1cmZhY2VfdD4gRXdrVmlldzo6dGFrZVNuYXBzaG90KCkKICAgICBXS1ZpZXdSZXN1bWVBY3Rp
dmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyh3a1ZpZXcoKSk7CiAKICAgICByZXR1cm4gc25hcHNo
b3QucmVsZWFzZSgpOwotI2VuZGlmCiB9CiAKIEV2YXNfU21hcnRfQ2xhc3MgRXdrVmlldzo6cGFy
ZW50U21hcnRDbGFzcyA9IEVWQVNfU01BUlRfQ0xBU1NfSU5JVF9OVUxMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCmluZGV4IDM2NmQxYmQuLjE2NTk4MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTIxLDYgKzIx
LDggQEAKICNpZm5kZWYgRXdrVmlld19oCiAjZGVmaW5lIEV3a1ZpZXdfaAogCisjaW5jbHVkZSAi
RXZhc0dMQ29udGV4dC5oIgorI2luY2x1ZGUgIkV2YXNHTFN1cmZhY2UuaCIKICNpbmNsdWRlICJF
d2tWaWV3Q2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgogI2lu
Y2x1ZGUgIlJlZlB0ckVmbC5oIgpAQCAtNDUsMTAgKzQ3LDYgQEAKICNpbmNsdWRlICJld2tfdG91
Y2guaCIKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1
ZGUgIkV2YXNHTENvbnRleHQuaCIKLSNpbmNsdWRlICJFdmFzR0xTdXJmYWNlLmgiCi0jZW5kaWYK
IAogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAg
LTgwLDkgKzc4LDcgQEAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQ29sb3I7CiBjbGFz
cyBDdXJzb3I7CiBjbGFzcyBJbnRTaXplOwotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
IGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTsKLSNlbmRpZgogfQogCiBjbGFzcyBFd2tD
b250ZXh0OwpAQCAtOTMsMTAgKzg5LDggQEAgY2xhc3MgRXdrUG9wdXBNZW51OwogY2xhc3MgRXdr
U2V0dGluZ3M7CiBjbGFzcyBFd2tXaW5kb3dGZWF0dXJlczsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHR5cGVkZWYgc3RydWN0IF9FdmFzX0dMX0NvbnRleHQgRXZhc19HTF9D
b250ZXh0OwogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfU3VyZmFjZSBFdmFzX0dMX1N1cmZhY2U7
Ci0jZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgRXdrX1ZpZXdfU21hcnRfRGF0YSBFd2tfVmlld19T
bWFydF9EYXRhOwogdHlwZWRlZiBzdHJ1Y3QgRXdrX1ZpZXdfU21hcnRfQ2xhc3MgRXdrX1ZpZXdf
U21hcnRfQ2xhc3M7CkBAIC0xNTksNyArMTUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Vy
c29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKTsKICAgICB2b2lkIHNldEltYWdlRGF0
YSh2b2lkKiBpbWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOwogCi0gICAg
dm9pZCB1cGRhdGUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCA9IFdlYkNvcmU6OkludFJl
Y3QoKSk7ICAgCisgICAgdm9pZCB1cGRhdGUoKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICB2b2lkIGVudGVyRnVsbFNjcmVlbigpOwpAQCAtMTY5LDEyICsxNjMsMTAgQEAgcHVi
bGljOgogICAgIFdLUmVjdCB3aW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogICAgIHZvaWQgc2V0V2lu
ZG93R2VvbWV0cnkoY29uc3QgV0tSZWN0Jik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgYm9vbCBjcmVhdGVHTFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
dmlld1NpemUpOwogICAgIGJvb2wgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwog
ICAgIGJvb2wgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCBzZXRO
ZWVkc1N1cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSB0cnVlOyB9Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHZvaWQgcmVxdWVzdENv
bG9yUGlja2VyKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKTsKQEAgLTIwNCw3ICsxOTYsNiBAQCBwdWJsaWM6CiAKICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgaW5mb3JtRGF0YWJhc2VRdW90YVJlYWNoZWQoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25n
IGV4cGVjdGVkVXNhZ2UpOwogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgV2Vi
S2l0OjpQYWdlQ2xpZW50QmFzZSogcGFnZUNsaWVudCgpIHsgcmV0dXJuIG1fcGFnZUNsaWVudC5n
ZXQoKTsgfQogCiAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3Ip
IHsgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsgfQpAQCAtMjEyLDcgKzIwMyw2IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFnZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHBvc2l0aW9uKSB7IG1fcGFnZVBvc2l0aW9uID0gcG9zaXRpb247IH0KICAgICBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50IHBhZ2VQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZVBvc2l0aW9uOyB9Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1FOiBuZWVkcyByZWZhY3RvcmluZyAo
c3BsaXQgY2FsbGJhY2sgaW52b2tlKQogICAgIHZvaWQgaW5mb3JtVVJMQ2hhbmdlKCk7CkBAIC0y
MzAsOSArMjIwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGxheVRpbWVyRmlyZWQoV2Vi
Q29yZTo6VGltZXI8RXdrVmlldz4qKTsKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIGNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSgpOwotI2VuZGlmCiAKICAgICB2b2lkIGluZm9ybUljb25DaGFuZ2UoKTsKIApAQCAt
MjY4LDEyICsyNTYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBOb3RlLCBpbml0aWFsaXphdGlvbiBv
cmRlciBtYXR0ZXJzLgogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7CiAgICAgUmVmUHRy
PEV3a0NvbnRleHQ+IG1fY29udGV4dDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNH
TENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJm
YWNlPiBtX2V2YXNHTFN1cmZhY2U7CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwot
I2VuZGlmCiAgICAgT3duUHRyPFdlYktpdDo6UGFnZUNsaWVudEJhc2U+IG1fcGFnZUNsaWVudDsK
ICAgICBSZWZQdHI8V2ViS2l0OjpXZWJWaWV3PiBtX3dlYlZpZXc7CiAgICAgT3duUHRyPFdlYktp
dDo6UGFnZUxvYWRDbGllbnRFZmw+IG1fcGFnZUxvYWRDbGllbnQ7CkBAIC0yODYsMTAgKzI3Miw4
IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYktpdDo6VmlicmF0aW9uQ2xpZW50RWZsPiBtX3Zp
YnJhdGlvbkNsaWVudDsKICNlbmRpZgogICAgIE93blB0cjxFd2tCYWNrRm9yd2FyZExpc3Q+IG1f
YmFja0ZvcndhcmRMaXN0OwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGZsb2F0
IG1fcGFnZVNjYWxlRmFjdG9yOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9wYWdlUG9zaXRp
b247Ci0jZW5kaWYKICAgICBPd25QdHI8RXdrU2V0dGluZ3M+IG1fc2V0dGluZ3M7CiAgICAgUmVm
UHRyPEV3a1dpbmRvd0ZlYXR1cmVzPiBtX3dpbmRvd0ZlYXR1cmVzOwogICAgIGNvbnN0IHZvaWQq
IG1fY3Vyc29ySWRlbnRpZmllcjsgLy8gVGhpcyBpcyBhbiBhZGRyZXNzLCBkbyBub3QgZnJlZSBp
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90
SW1hZ2VHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdElt
YWdlR0wuY3BwCmluZGV4IGU4ZDg3ODMuLjliNzI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcApAQCAtMjYsNyArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNuYXBzaG90SW1hZ2VHTC5oIgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lmIFVTRShPUEVOR0xfRVNfMikK
ICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KQEAgLTU3
LDUgKzU2LDMgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGdldEltYWdlU3VyZmFjZUZy
b21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWQKICAgICBjYWlyb19zdXJmYWNlX21h
cmtfZGlydHkobmV3U3VyZmFjZS5nZXQoKSk7CiAgICAgcmV0dXJuIG5ld1N1cmZhY2U7CiB9Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25h
cHNob3RJbWFnZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hv
dEltYWdlR0wuaAppbmRleCA3ZWVhODNmLi5hYmNkNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaApAQCAtMjksOCArMjksNiBA
QAogI2luY2x1ZGUgPFJlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQYXNzUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gU25hcHNob3RJbWFnZUdM
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRl
eCBjNTNkODRkLi5lOTBhZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiUGFnZUxvYWRDbGll
bnRFZmwuaCIKICNpbmNsdWRlICJQYWdlUG9saWN5Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFn
ZVVJQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKICNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS0Zp
bmRPcHRpb25zLmgiCkBAIC01NiwxMSArNTgsNiBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclBy
b3h5LmgiCiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotI2luY2x1ZGUg
IlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UGFnZUNsaWVudEJhc2UuY3BwCmluZGV4IDI2YjdlNGYuLmVlMTNjNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCkBAIC03Myw5ICs3Myw5
IEBAIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEJhc2U6OmNyZWF0ZURy
YXdpbmdBcmVhUHJveHkoKQogICAgIHJldHVybiBkcmF3aW5nQXJlYS5yZWxlYXNlKCk7CiB9CiAK
LXZvaWQgUGFnZUNsaWVudEJhc2U6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkKK3ZvaWQgUGFnZUNsaWVudEJhc2U6OnNldFZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpCiB7Ci0gICAgbV92aWV3LT51cGRhdGUocmVjdCk7Cisg
ICAgbV92aWV3LT51cGRhdGUoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50QmFzZTo6ZGlzcGxheVZp
ZXcoKQpAQCAtMjM1LDcgKzIzNSw2IEBAIHZvaWQgUGFnZUNsaWVudEJhc2U6OnNldEZpbmRJbmRp
Y2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCwgYm9vbCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBQ
YWdlQ2xpZW50QmFzZTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXll
clRyZWVDb250ZXh0JikKIHsKICAgICBtX3ZpZXctPmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoKTsKQEAgLTI1MCw3ICsyNDksNiBAQCB2b2lkIFBhZ2VDbGllbnRCYXNlOjp1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKIAogdm9pZCBQYWdlQ2xpZW50QmFzZTo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShi
b29sKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xp
ZW50QmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5o
CmluZGV4IDRhMDIyN2UuLjBmN2FkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VDbGllbnRCYXNlLmgKQEAgLTk0LDExICs5NCw5IEBAIHByb3RlY3RlZDoKICNlbmRp
ZgogCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5k
aWNhdG9yPiwgYm9vbCwgYm9vbCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwg
Y29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpOwpAQCAtMTA5LDExICsxMDcsOSBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGZpbmRTdHJpbmdJbkN1c3RvbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lk
IGNvdW50U3RyaW5nTWF0Y2hlc0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwg
RmluZE9wdGlvbnMsIHVuc2lnbmVkKTsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVk
UmVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHko
KSA9IDA7Ci0jZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIEV3a1ZpZXcqIG1fdmlldzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBs
LmNwcAppbmRleCAyNjBmMTIwLi41YTkyMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdEltcGwuY3BwCkBAIC0yNiwxNSArMjYs
MTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnREZWZhdWx0
SW1wbC5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCiAKICNpbmNsdWRlICJFd2tWaWV3Lmgi
CiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQot
I2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIApAQCAtNDcsMjEgKzQ0LDE3
IEBAIFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6UGFnZUNsaWVudERlZmF1bHRJbXBsKEV3a1ZpZXcq
IHZpZXcpCiAKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpkaWRDb21taXRMb2FkKCkKIHsK
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBBU1NFUlQobV9wYWdlVmlld3BvcnRD
b250cm9sbGVyKTsKICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXItPmRpZENvbW1pdExvYWQo
KTsKLSNlbmRpZgogfQogCiB2b2lkIFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6dXBkYXRlVmlld3Bv
cnRTaXplKCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAoIW1fcGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCkgewogICAgICAgICBtX3BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnQgPSBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpjcmVhdGUobV92
aWV3KTsKICAgICAgICAgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXIobV92aWV3LT5wYWdlKCksIG1fcGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudC5nZXQoKSkpOwogICAgIH0KICAgICBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnQtPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwotI2VuZGlmCiB9CiAKIEZsb2F0UmVjdCBQYWdl
Q2xpZW50RGVmYXVsdEltcGw6OmNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYg
dXNlclJlY3QpCkBAIC04MCwyNSArNzMsMTcgQEAgRmxvYXRSZWN0IFBhZ2VDbGllbnREZWZhdWx0
SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IEZsb2F0UmVjdCYgZGV2aWNlUmVjdCkKIAog
dm9pZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCiB7Ci0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAgICAgQVNTRVJUKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcik7CiAg
ICAgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyLT5kaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMo
YXR0cik7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShhdHRyKTsKLSNlbmRpZgogfQogCiB2b2lk
IFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpCiB7Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
QVNTRVJUKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcik7CiAgICAgbV9wYWdlVmlld3BvcnRDb250
cm9sbGVyLT5kaWRDaGFuZ2VDb250ZW50c1NpemUoc2l6ZSk7Ci0jZW5kaWYKLQogICAgIG1fdmll
dy0+c21hcnRDYWxsYmFjazxDb250ZW50c1NpemVDaGFuZ2VkPigpLmNhbGwoc2l6ZSk7CiB9CiAK
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJbXBs
OjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAg
QVNTRVJUKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcik7CkBAIC0xMTYsNiArMTAxLDUgQEAgdm9p
ZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCiAg
ICAgQVNTRVJUKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcik7CiAgICAgbV9wYWdlVmlld3BvcnRD
b250cm9sbGVyLT5wYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKIH0KLSNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5oCmluZGV4IDIxYmU2OWMuLmUxMDU3ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdElt
cGwuaApAQCAtNTQsMTQgKzU0LDEyIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpOwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwg
dm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250
ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7CiAKICAgICBPd25QdHI8V2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsPiBtX3BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnQ7CiAgICAgT3duUHRyPFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcj4g
bV9wYWdlVmlld3BvcnRDb250cm9sbGVyOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVu
dExlZ2FjeUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50
TGVnYWN5SW1wbC5jcHAKaW5kZXggOTU4MzFhMi4uMmYyZDk2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAKQEAgLTQ5
LDkgKzQ5LDcgQEAgdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ29tbWl0TG9hZCgpCiAK
IHZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiB7Ci0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgbV92aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVh
KCktPnNldFZpc2libGVDb250ZW50c1JlY3QoSW50UmVjdChyb3VuZGVkSW50UG9pbnQobV92aWV3
LT5wYWdlUG9zaXRpb24oKSksIG1fdmlldy0+c2l6ZSgpKSwgRmxvYXRQb2ludCgpKTsKLSNlbmRp
ZgogfQogCiBGbG9hdFJlY3QgUGFnZUNsaWVudExlZ2FjeUltcGw6OmNvbnZlcnRUb0RldmljZVNw
YWNlKGNvbnN0IEZsb2F0UmVjdCYgdmlld1JlY3QpCkBAIC03MywxNSArNzEsMTIgQEAgdm9pZCBQ
YWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdl
YkNvcmU6OlZpZXdwb3J0QXQKIAogdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdl
Q29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCiB7Ci0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgbV92aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPmNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KCktPnNldENvbnRlbnRzU2l6ZShGbG9hdFNpemUo
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiAgICAgbV92aWV3LT51cGRhdGUoKTsKLSNl
bmRpZgogCiAgICAgbV92aWV3LT5zbWFydENhbGxiYWNrPENvbnRlbnRzU2l6ZUNoYW5nZWQ+KCku
Y2FsbChzaXplKTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBQYWdl
Q2xpZW50TGVnYWN5SW1wbDo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uKQogewogICAgIG1fdmlldy0+c2V0UGFnZVBvc2l0aW9uKEZsb2F0UG9pbnQocG9zaXRp
b24pKTsKQEAgLTk3LDYgKzkyLDUgQEAgdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6cGFnZVRy
YW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKIHsKICAgICBtX3ZpZXctPnVwZGF0ZSgpOwogfQotI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5oCmluZGV4IDMwMTA0NzguLmVmZWFiZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2Fj
eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdh
Y3lJbXBsLmgKQEAgLTUxLDExICs1MSw5IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmli
dXRlcyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1
YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBj
b250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7Ci0jZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAppbmRleCBiODgxNjY4Li5jNGJhNjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcApA
QCAtMTExLDcgKzExMSw2IEBAIHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhCiAgICAgdmlldy0+c21h
cnRDYWxsYmFjazxQcm92aXNpb25hbExvYWRGYWlsZWQ+KCkuY2FsbChld2tFcnJvci5nZXQoKSk7
CiB9CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgUGFnZUxvYWRDbGllbnRF
Zmw6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01h
aW5GcmFtZShmcmFtZSkpCkBAIC0xMjAsNyArMTE5LDYgQEAgdm9pZCBQYWdlTG9hZENsaWVudEVm
bDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tU
eXAKICAgICBFd2tWaWV3KiB2aWV3ID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+
dmlldygpOwogICAgIHZpZXctPnBhZ2VDbGllbnQoKS0+ZGlkQ29tbWl0TG9hZCgpOwogfQotI2Vu
ZGlmCiAKIHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChX
S1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYg
cmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMTcwLDkgKzE2OCw3
IEBAIFBhZ2VMb2FkQ2xpZW50RWZsOjpQYWdlTG9hZENsaWVudEVmbChFd2tWaWV3KiB2aWV3KQog
ICAgIGxvYWRDbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOwogICAgIGxvYWRDbGllbnQuZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lID0gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lOwotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGxvYWRD
bGllbnQuZGlkQ29tbWl0TG9hZEZvckZyYW1lID0gZGlkQ29tbWl0TG9hZEZvckZyYW1lOwotI2Vu
ZGlmCiAgICAgbG9hZENsaWVudC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QgPSBkaWRDaGFuZ2VC
YWNrRm9yd2FyZExpc3Q7CiAgICAgbG9hZENsaWVudC5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUgPSBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU7CiAgICAgbG9hZENs
aWVudC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lID0gZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuaAppbmRleCAyYmE3MGZmLi5jYWUxZjg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5o
CkBAIC01Myw5ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAg
IHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgc3Rh
dGljIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSNlbmRpZgogICAgIHN0
YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCmluZGV4IGQ0MGRhMTAuLmYx
ZDU5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcApAQCAtMjYsOCArMjYsNiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmwuaCIKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCiAjaW5jbHVkZSAi
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCIKICNpbmNsdWRlICJFd2tWaWV3LmgiCiAj
aW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIgpAQCAtMTEyLDUgKzExMCwzIEBAIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6c2V0Q29udHJvbGxlcihQYWdlVmll
d3BvcnRDb250cm9sbGVyKiBjb250CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotI2VuZGlm
IC8vIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5o
CmluZGV4IGI4N2EwZmUuLjVjMTljMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCkBA
IC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmxf
aAogI2RlZmluZSBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsX2gKIAotI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQotCiAjaW5jbHVkZSAiRXdrVmlldy5oIgogI2luY2x1ZGUgIlBh
Z2VDbGllbnRCYXNlLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5o
IgpAQCAtNzEsNiArNjksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAot
I2VuZGlmCi0KICNlbmRpZiAvLyBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yUHJveHlF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVm
bC5jcHAKaW5kZXggYTg5NGY1NS4uZmEyZTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKQEAgLTg3LDcgKzg3LDcg
QEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0
b3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgZGVmaW5lZCBIQVZFX0VDT1JFX1gKKyNpZmRlZiBIQVZFX0VDT1JFX1gK
ICAgICBjb25zdCBjaGFyKiBlbmdpbmUgPSAib3BlbmdsX3gxMSI7CiAgICAgbV9pbnNwZWN0b3JX
aW5kb3cgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIGluaXRpYWxXaW5kb3dXaWR0aCwg
aW5pdGlhbFdpbmRvd0hlaWdodCwgMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBj
NTRhZTg3Li40NGVlMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NDYsNyArNDQ2
LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICBpZiAoZnJhbWUtPnBhZ2UoKS0+bWFp
bkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKFFUKSB8
fCAoUExBVEZPUk0oRUZMKSAmJiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkpCisjaWYgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKICAgICBpZiAobV9wYWdlLT51c2VGaXhlZExheW91dCgp
KSB7CiAgICAgICAgIC8vIFRoZSBiZWxvdyBtZXRob2QgdXBkYXRlcyB0aGUgc2l6ZSgpLgogICAg
ICAgICBtX3BhZ2UtPnJlc2l6ZVRvQ29udGVudHNJZk5lZWRlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187079</attachid>
            <date>2013-02-07 05:53:19 -0800</date>
            <delta_ts>2013-02-07 13:21:50 -0800</delta_ts>
            <desc>patch v4</desc>
            <filename>bug109165_v4</filename>
            <type>text/plain</type>
            <size>33737</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDM4ODgzOGFkYTVmOTQxZjNmMzVhNWU0M2M5MDlhYWMyNWM2NzAyYzUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiA3IDEzOjIwOjU0IDIwMTMgKzAyMDAKCiAgICBidWcxMDkxNjUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTczZTY0NC4uNTcyN2VkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEzLTAy
LTA3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdW0VGTF0gUmVtb3ZhbCBvZiBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3Mg
Y29kZSBwYXRoIGZyb20gV0syIEVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBub24gY29vcmRpbmF0ZWQgZ3JhcGhpY3MgY29kZSBwYXRo
IGZyb20gV0syIEVGTCBhcyBpdCB3YXMgbm90IHVzZWQgYnkKKyAgICAgICAgYW55b25lIGFuZCBj
YXVzZWQgYSBsb3Qgb2YgcHJlcHJvY2Vzc29yIG1hY3JvcyBpbiB0aGUgY29kZSBtYWtpbmcgaXQg
bGVzcyByZWFkYWJsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRl
eHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAg
ICAgICAgKFdlYktpdDo6RXZhc0dMQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5oOgorICAgICAgICAoV2ViS2l0OjpFdmFzR0xTdXJmYWNlOjpzdXJm
YWNlKToKKworICAgICAgICAgICAgUmVtb3ZlZCBhbHNvICdpbmxpbmUnIGFuZCAnY29uc3QnIGtl
eXdvcmRzIGZyb20gZnVuY3Rpb25zIGRlY2xhcmF0aW9uLAorICAgICAgICAgICAgYXMgYm90aCBF
dmFzR0xDb250ZXh0Ojpjb250ZXh0KCkgYW5kIEV2YXNHTFN1cmZhY2U6OnN1cmZhY2UoKQorICAg
ICAgICAgICAgYXJlIGRlZmluZWQgaW5zaWRlIHRoZWlyIGNsYXNzZXMgYW5kIHJldHVybiBtdXRh
YmxlIHBvaW50ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoK
KyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcpOgorICAgICAgICAoRXdrVmlldzo6dHJhbnNmb3Jt
RnJvbVNjZW5lKToKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKToKKyAgICAg
ICAgKEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSk6CisgICAgICAgIChFd2tWaWV3
OjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3OjpzY2hlZHVsZVVwZGF0ZURp
c3BsYXkpOiBSZW5hbWVkIGZyb20gRXdrVmlldzo6dXBkYXRlKCkuCisgICAgICAgIChFd2tWaWV3
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoRXdrVmlldzo6aGFu
ZGxlRXZhc09iamVjdENhbGN1bGF0ZSk6CisgICAgICAgIChFd2tWaWV3Ojp0YWtlU25hcHNob3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoRXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvU25h
cHNob3RJbWFnZUdMLmNwcDoKKyAgICAgICAgKGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZl
cik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50QmFz
ZTo6c2V0Vmlld05lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRCYXNl
Ojp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNz
L2VmbC9QYWdlQ2xpZW50QmFzZS5oOgorICAgICAgICAoUGFnZUNsaWVudEJhc2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBsOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBsOjp1cGRhdGVWaWV3cG9ydFNpemUpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVy
dGllcyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnREZWZhdWx0SW1wbDo6ZGlkQ2hhbmdl
Q29udGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudERlZmF1bHRJbXBsOjpw
YWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFn
ZUNsaWVudERlZmF1bHRJbXBsLmg6CisgICAgICAgIChQYWdlQ2xpZW50RGVmYXVsdEltcGwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjp1cGRhdGVWaWV3cG9ydFNpemUpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZENoYW5n
ZUNvbnRlbnRzU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjpw
YWdlRGlkUmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJ
bXBsOjpkaWRSZW5kZXJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRMZWdhY3lJ
bXBsOjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnRMZWdhY3lJbXBs
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUxvYWRDbGllbnRFZmw6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpQYWdlTG9hZENsaWVudEVmbCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5oOgorICAgICAgICAoUGFn
ZUxvYWRDbGllbnRFZmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OmRpZENoYW5nZVZpc2libGVDb250ZW50
cyk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsLmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3Bl
Y3RvclBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1Np
emVDaGFuZ2VkKToKKwogMjAxMy0wMi0wNyAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1
bmluZ0BkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEZvbGQgUXRXZWJQYWdlTG9hZENs
aWVudCBpbnRvIFFRdWlja1dlYlZpZXdQcml2YXRlIGFuZCBtb3ZlIHRvIEMgQVBJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcAppbmRl
eCA5OGE3ZTZhLi44MTk4ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkV2YXNHTENvbnRleHQuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIEV2YXNHTENvbnRleHQ6OkV2
YXNHTENvbnRleHQoRXZhc19HTCogZXZhc0dMLCBFdmFzX0dMX0NvbnRleHQqIHBhc3NDb250ZXh0
KQpAQCAtNDQsNSArNDIsMyBAQCBFdmFzR0xDb250ZXh0Ojp+RXZhc0dMQ29udGV4dCgpCiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZh
c0dMQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29u
dGV4dC5oCmluZGV4IDk4OTlhODEuLjg4NjE1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5k
ZWYgRXZhc0dMQ29udGV4dF9oCiAjZGVmaW5lIEV2YXNHTENvbnRleHRfaAogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgPEV2YXNfR0wuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCkBAIC00Niw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
fkV2YXNHTENvbnRleHQoKTsKIAotICAgIGlubGluZSBFdmFzX0dMX0NvbnRleHQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KKyAgICBFdmFzX0dMX0NvbnRleHQqIGNvbnRl
eHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogcHJpdmF0ZToKICAgICBFdmFzR0xDb250ZXh0
KEV2YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9Db250ZXh0KiBwYXNzQ29udGV4dCk7CkBAIC01Nyw2
ICs1Niw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gRXZhc0dMQ29udGV4dF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2Uu
Y3BwCmluZGV4IGQ1ZDEzODMuLjE2MzAxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZhc0dMU3VyZmFjZS5oIgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRXZhc0dMU3Vy
ZmFjZTo6RXZhc0dMU3VyZmFjZShFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfU3VyZmFjZSogcGFz
c1N1cmZhY2UpCkBAIC00NCw1ICs0MiwzIEBAIEV2YXNHTFN1cmZhY2U6On5FdmFzR0xTdXJmYWNl
KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9FdmFzR0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
dmFzR0xTdXJmYWNlLmgKaW5kZXggOTFiYThmMi4uZGE3NmIxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaApAQCAtMjYsNyArMjYsNiBA
QAogI2lmbmRlZiBFdmFzR0xTdXJmYWNlX2gKICNkZWZpbmUgRXZhc0dMU3VyZmFjZV9oCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBA
IC01NCw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfkV2YXNHTFN1cmZhY2UoKTsKIAot
ICAgIGlubGluZSBFdmFzX0dMX1N1cmZhY2UqIHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1
cmZhY2U7IH0KKyAgICBFdmFzX0dMX1N1cmZhY2UqIHN1cmZhY2UoKSB7IHJldHVybiBtX3N1cmZh
Y2U7IH0KIAogcHJpdmF0ZToKICAgICBFdmFzR0xTdXJmYWNlKEV2YXNfR0wqIGV2YXNHTCwgRXZh
c19HTF9TdXJmYWNlKiBwYXNzU3VyZmFjZSk7CkBAIC02NSw2ICs2NCw0IEBAIHByaXZhdGU6CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotCiAjZW5kaWYgLy8gRXZhc0dMU3VyZmFjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDI4ZGNhYTUuLjVhYjliOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC02NCw2ICs2
NCw3IEBACiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNp
bmNsdWRlIDxFZGplLmg+CisjaW5jbHVkZSA8RXZhc19HTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q2Fpcm9VdGlsaXRpZXNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CkBAIC03OCwxMCArNzksNiBA
QAogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgPEV2YXNfR0wuaD4KLSNlbmRp
ZgotCiB1c2luZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTIyNiw5ICsyMjMsNyBAQCB2b2lk
IEV3a1ZpZXdFdmVudEhhbmRsZXI8RVZBU19DQUxMQkFDS19ISURFPjo6aGFuZGxlRXZlbnQodm9p
ZCogZGF0YSwgRXZhcyosIEV2YQogRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09i
amVjdCwgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXAsIFZpZXdCZWhhdmlvciBiZWhhdmlvcikKICAgICA6IG1fZXZhc09iamVjdChldmFzT2Jq
ZWN0KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgICwgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZShmYWxzZSkKLSNlbmRpZgogICAg
ICwgbV9wYWdlQ2xpZW50KGJlaGF2aW9yID09IERlZmF1bHRCZWhhdmlvciA/IFBhZ2VDbGllbnRE
ZWZhdWx0SW1wbDo6Y3JlYXRlKHRoaXMpIDogUGFnZUNsaWVudExlZ2FjeUltcGw6OmNyZWF0ZSh0
aGlzKSkKICAgICAsIG1fd2ViVmlldyhhZG9wdFJlZihuZXcgV2ViVmlldyh0b0ltcGwobV9jb250
ZXh0LT53a0NvbnRleHQoKSksIG1fcGFnZUNsaWVudC5nZXQoKSwgdG9JbXBsKHBhZ2VHcm91cCks
IGV2YXNPYmplY3QpKSkKICAgICAsIG1fcGFnZUxvYWRDbGllbnQoUGFnZUxvYWRDbGllbnRFZmw6
OmNyZWF0ZSh0aGlzKSkKQEAgLTI0MSw5ICsyMzYsNyBAQCBFd2tWaWV3OjpFd2tWaWV3KEV2YXNf
T2JqZWN0KiBldmFzT2JqZWN0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFdLUGFn
ZQogICAgICwgbV92aWJyYXRpb25DbGllbnQoVmlicmF0aW9uQ2xpZW50RWZsOjpjcmVhdGUodGhp
cykpCiAjZW5kaWYKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KEV3a0JhY2tGb3J3YXJkTGlzdDo6
Y3JlYXRlKFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdCh3a1BhZ2UoKSkpKQotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKLSNlbmRpZgogICAg
ICwgbV9zZXR0aW5ncyhFd2tTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9jdXJzb3JJ
ZGVudGlmaWVyKDApCiAgICAgLCBtX21vdXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKQEAgLTQ1Mywx
MiArNDQ2LDEwIEBAIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Gcm9tU2NlbmUo
KSBjb25zdAogewogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CiAKLSNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKICAgICAvLyBOb3RlIHRoYXQgd2UgYXBwbHkgYm90aCBwYWdlIGFu
ZCBkZXZpY2Ugc2NhbGUgZmFjdG9ycy4KICAgICB0cmFuc2Zvcm0uc2NhbGUoMSAvIHBhZ2VTY2Fs
ZUZhY3RvcigpKTsKICAgICB0cmFuc2Zvcm0uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKCkp
OwogICAgIHRyYW5zZm9ybS50cmFuc2xhdGUocGFnZVBvc2l0aW9uKCkueCgpLCBwYWdlUG9zaXRp
b24oKS55KCkpOwotI2VuZGlmCiAKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0
RGF0YSgpOwogICAgIHRyYW5zZm9ybS50cmFuc2xhdGUoLXNkLT52aWV3LngsIC1zZC0+dmlldy55
KTsKQEAgLTQ4NCwxMiArNDc1LDEwIEBAIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zv
cm1Ub1NjcmVlbigpIGNvbnN0CiAgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZh
c19lY29yZV9ldmFzX2dldChzZC0+YmFzZS5ldmFzKTsKIAogICAgIEVjb3JlX1hfV2luZG93IHdp
bmRvdzsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgd2luZG93ID0gZWNv
cmVfZXZhc19nbF94MTFfd2luZG93X2dldChlY29yZUV2YXMpOwogICAgIC8vIEZhbGxiYWNrIHRv
IHNvZnR3YXJlIG1vZGUgaWYgbmVjZXNzYXJ5LgogICAgIGlmICghd2luZG93KQotI2VuZGlmCi0g
ICAgd2luZG93ID0gZWNvcmVfZXZhc19zb2Z0d2FyZV94MTFfd2luZG93X2dldChlY29yZUV2YXMp
OyAvLyBSZXR1cm5zIDAgaWYgbm9uZS4KKyAgICAgICAgd2luZG93ID0gZWNvcmVfZXZhc19zb2Z0
d2FyZV94MTFfd2luZG93X2dldChlY29yZUV2YXMpOyAvLyBSZXR1cm5zIDAgaWYgbm9uZS4KIAog
ICAgIGludCB4LCB5OyAvLyB4LCB5IGFyZSByZWxhdGl2ZSB0byBwYXJlbnQgKGluIGEgcmVwYXJl
bnRpbmcgd2luZG93IG1hbmFnZXIpLgogICAgIHdoaWxlICh3aW5kb3cpIHsKQEAgLTUwNiw3ICs0
OTUsNiBAQCBBZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6dHJhbnNmb3JtVG9TY3JlZW4oKSBjb25z
dAogICAgIHJldHVybiB0cmFuc2Zvcm07CiB9CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIEV3a1ZpZXc6OmNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSgpCiB7CiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdlKCkt
PmRyYXdpbmdBcmVhKCk7CkBAIC01MTksNyArNTA3LDYgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lKiBFd2tWaWV3Ojpjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKQogCiAgICAgcmV0dXJuIGNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LT5jb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsK
IH0KLSNlbmRpZgogCiBpbmxpbmUgRXdrX1ZpZXdfU21hcnRfRGF0YSogRXdrVmlldzo6c21hcnRE
YXRhKCkgY29uc3QKIHsKQEAgLTUyOCw3ICs1MTUsNiBAQCBpbmxpbmUgRXdrX1ZpZXdfU21hcnRf
RGF0YSogRXdrVmlldzo6c21hcnREYXRhKCkgY29uc3QKIAogdm9pZCBFd2tWaWV3OjpkaXNwbGF5
VGltZXJGaXJlZChUaW1lcjxFd2tWaWV3PiopCiB7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAKICAgICBp
ZiAobV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkgewpAQCAtNTY3LDI5ICs1NTMsMTkgQEAgdm9pZCBF
d2tWaWV3OjpkaXNwbGF5VGltZXJGaXJlZChUaW1lcjxFd2tWaWV3PiopCiAgICAgICAgIHNjZW5l
LT5wYWludFRvR3JhcGhpY3NDb250ZXh0KGdyYXBoaWNzQ29udGV4dC5nZXQoKSk7CiAgICAgICAg
IGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHZpZXdw
b3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKICAgICB9Ci0jZW5kaWYKIH0KIAotdm9p
ZCBFd2tWaWV3Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgRXdrVmlldzo6c2No
ZWR1bGVVcGRhdGVEaXNwbGF5KCkKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNt
YXJ0RGF0YSgpOwotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICAvLyBDb29yZGlu
YXRlZCBncmFwaGljZXMgbmVlZHMgdG8gc2NoZWR1bGUgYW4gZnVsbCB1cGRhdGUsIG5vdAogICAg
IC8vIHJlcGFpbnRpbmcgb2YgYSByZWdpb24uIFVwZGF0ZSBpbiB0aGUgZXZlbnQgbG9vcC4KLSAg
ICBVTlVTRURfUEFSQU0ocmVjdCk7Ci0KKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNt
YXJ0RGF0YSgpOwogICAgIC8vIEd1YXJkIGZvciB6ZXJvIHNpemVkIHZpZXdwb3J0LgogICAgIGlm
ICghKHNkLT52aWV3LncgJiYgc2QtPnZpZXcuaCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghbV9kaXNwbGF5VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9kaXNwbGF5VGltZXIuc3Rh
cnRPbmVTaG90KDApOwotI2Vsc2UKLSAgICBpZiAoIXNkLT5pbWFnZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgcmVj
dC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwotI2VuZGlmCiB9
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC03ODgsNyArNzY0LDYgQEAgdm9pZCBF
d2tWaWV3OjppbmZvcm1JY29uQ2hhbmdlKCkKICAgICBzbWFydENhbGxiYWNrPEljb25DaGFuZ2Vk
PigpLmNhbGwoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wg
RXdrVmlldzo6Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogewogICAg
IGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQpCkBAIC04NjIsNyArODM3LDYgQEAgYm9vbCBF
d2tWaWV3OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewogICAgIHJldHVybiB0
cnVlOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIC8qKgpAQCAt
MTE5NSwxMiArMTE2OSw4IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0
ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAgICAgaWYgKHZpZXctPnBhZ2UoKS0+ZHJh
d2luZ0FyZWEoKSkKICAgICAgICAgICAgIHZpZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0
U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB2aWV3LT5zZXROZWVkc1N1cmZhY2VSZXNpemUo
KTsKLSNlbmRpZgotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB2aWV3LT5w
YWdlQ2xpZW50KCktPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwotI2VuZGlmCiAgICAgfQogfQogCkBA
IC0xMzY1LDE1ICsxMzM1LDEyIEBAIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBFd2tWaWV3
Ojp0YWtlU25hcHNob3QoKQogICAgICAgICBlY29yZV9tYWluX2xvb3BfaXRlcmF0ZSgpOwogCiAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkgewot
I2VuZGlmCiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHNuYXBzaG90ID0gY3JlYXRl
U3VyZmFjZUZvckltYWdlKHNkLT5pbWFnZSk7CiAgICAgICAgIC8vIFJlc3VtZSBhbGwgYW5pbWF0
aW9ucy4KICAgICAgICAgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMo
d2tWaWV3KCkpOwogCiAgICAgICAgIHJldHVybiBzbmFwc2hvdC5yZWxlYXNlKCk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIH0KIAogICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IHNuYXBzaG90ID0gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKDAsIDAsIHNk
LT52aWV3LncsIHNkLT52aWV3LmgpOwpAQCAtMTM4MSw3ICsxMzQ4LDYgQEAgUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6OnRha2VTbmFwc2hvdCgpCiAgICAgV0tWaWV3UmVzdW1l
QWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMod2tWaWV3KCkpOwogCiAgICAgcmV0dXJuIHNu
YXBzaG90LnJlbGVhc2UoKTsKLSNlbmRpZgogfQogCiBFdmFzX1NtYXJ0X0NsYXNzIEV3a1ZpZXc6
OnBhcmVudFNtYXJ0Q2xhc3MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCAzNjZkMWJkLi41M2EwZGUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0yMSw2
ICsyMSw4IEBACiAjaWZuZGVmIEV3a1ZpZXdfaAogI2RlZmluZSBFd2tWaWV3X2gKIAorI2luY2x1
ZGUgIkV2YXNHTENvbnRleHQuaCIKKyNpbmNsdWRlICJFdmFzR0xTdXJmYWNlLmgiCiAjaW5jbHVk
ZSAiRXdrVmlld0NhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJSZWZQdHJFZmwuaCIKQEAgLTQ1LDEwICs0Nyw2IEBACiAjaW5jbHVkZSAiZXdr
X3RvdWNoLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNp
bmNsdWRlICJFdmFzR0xDb250ZXh0LmgiCi0jaW5jbHVkZSAiRXZhc0dMU3VyZmFjZS5oIgotI2Vu
ZGlmCiAKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgi
CkBAIC04MCw5ICs3OCw3IEBAIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIENvbG9yOwog
Y2xhc3MgQ3Vyc29yOwogY2xhc3MgSW50U2l6ZTsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU7Ci0jZW5kaWYKIH0KIAogY2xhc3Mg
RXdrQ29udGV4dDsKQEAgLTkzLDEwICs4OSw4IEBAIGNsYXNzIEV3a1BvcHVwTWVudTsKIGNsYXNz
IEV3a1NldHRpbmdzOwogY2xhc3MgRXdrV2luZG93RmVhdHVyZXM7CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiB0eXBlZGVmIHN0cnVjdCBfRXZhc19HTF9Db250ZXh0IEV2YXNf
R0xfQ29udGV4dDsKIHR5cGVkZWYgc3RydWN0IF9FdmFzX0dMX1N1cmZhY2UgRXZhc19HTF9TdXJm
YWNlOwotI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IEV3a19WaWV3X1NtYXJ0X0RhdGEgRXdrX1Zp
ZXdfU21hcnRfRGF0YTsKIHR5cGVkZWYgc3RydWN0IEV3a19WaWV3X1NtYXJ0X0NsYXNzIEV3a19W
aWV3X1NtYXJ0X0NsYXNzOwpAQCAtMTU5LDcgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcik7CiAgICAgdm9pZCBzZXRJbWFn
ZURhdGEodm9pZCogaW1hZ2VEYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKTsKIAot
ICAgIHZvaWQgdXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QgPSBXZWJDb3JlOjpJ
bnRSZWN0KCkpOyAgIAorICAgIHZvaWQgc2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oKTsKQEAgLTE2
OSwxMiArMTYzLDEwIEBAIHB1YmxpYzoKICAgICBXS1JlY3Qgd2luZG93R2VvbWV0cnkoKSBjb25z
dDsKICAgICB2b2lkIHNldFdpbmRvd0dlb21ldHJ5KGNvbnN0IFdLUmVjdCYpOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgY3JlYXRlR0xTdXJmYWNlKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplKTsKICAgICBib29sIGVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoKTsKICAgICBib29sIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpOwogICAgIHZvaWQgc2V0TmVlZHNTdXJmYWNlUmVzaXplKCkgeyBtX3BlbmRpbmdTdXJmYWNl
UmVzaXplID0gdHJ1ZTsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
ICAgICB2b2lkIHJlcXVlc3RDb2xvclBpY2tlcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CkBAIC0yMDQsNyArMTk2LDYgQEAg
cHVibGljOgogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGluZm9ybURhdGFiYXNlUXVvdGFSZWFj
aGVkKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3Vy
cmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlKTsKIAotI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIFdlYktpdDo6UGFnZUNsaWVudEJhc2UqIHBhZ2VDbGllbnQoKSB7IHJl
dHVybiBtX3BhZ2VDbGllbnQuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9y
KGZsb2F0IHNjYWxlRmFjdG9yKSB7IG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGVGYWN0b3I7IH0K
QEAgLTIxMiw3ICsyMDMsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBhZ2VQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbikgeyBtX3BhZ2VQb3NpdGlvbiA9IHBv
c2l0aW9uOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCBwYWdlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3BhZ2VQb3NpdGlvbjsgfQotI2VuZGlmCiAKICAgICAvLyBGSVhNRTog
bmVlZHMgcmVmYWN0b3JpbmcgKHNwbGl0IGNhbGxiYWNrIGludm9rZSkKICAgICB2b2lkIGluZm9y
bVVSTENoYW5nZSgpOwpAQCAtMjMwLDkgKzIyMCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRp
c3BsYXlUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPEV3a1ZpZXc+Kik7CiAKLSNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCiAgICAgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
KiBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBpbmZvcm1J
Y29uQ2hhbmdlKCk7CiAKQEAgLTI2OCwxMiArMjU2LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gTm90
ZSwgaW5pdGlhbGl6YXRpb24gb3JkZXIgbWF0dGVycy4KICAgICBFdmFzX09iamVjdCogbV9ldmFz
T2JqZWN0OwogICAgIFJlZlB0cjxFd2tDb250ZXh0PiBtX2NvbnRleHQ7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxFdmFzX0dMPiBtX2V2YXNHTDsKICAgICBP
d25QdHI8V2ViS2l0OjpFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7CiAgICAgT3duUHRy
PFdlYktpdDo6RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNlOwogICAgIGJvb2wgbV9wZW5k
aW5nU3VyZmFjZVJlc2l6ZTsKLSNlbmRpZgogICAgIE93blB0cjxXZWJLaXQ6OlBhZ2VDbGllbnRC
YXNlPiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmUHRyPFdlYktpdDo6V2ViVmlldz4gbV93ZWJWaWV3
OwogICAgIE93blB0cjxXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsPiBtX3BhZ2VMb2FkQ2xpZW50
OwpAQCAtMjg2LDEwICsyNzIsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxXZWJLaXQ6OlZpYnJh
dGlvbkNsaWVudEVmbD4gbV92aWJyYXRpb25DbGllbnQ7CiAjZW5kaWYKICAgICBPd25QdHI8RXdr
QmFja0ZvcndhcmRMaXN0PiBtX2JhY2tGb3J3YXJkTGlzdDsKLSNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IG1fcGFnZVBvc2l0aW9uOwotI2VuZGlmCiAgICAgT3duUHRyPEV3a1NldHRpbmdzPiBt
X3NldHRpbmdzOwogICAgIFJlZlB0cjxFd2tXaW5kb3dGZWF0dXJlcz4gbV93aW5kb3dGZWF0dXJl
czsKICAgICBjb25zdCB2b2lkKiBtX2N1cnNvcklkZW50aWZpZXI7IC8vIFRoaXMgaXMgYW4gYWRk
cmVzcywgZG8gbm90IGZyZWUgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcAppbmRleCBlOGQ4NzgzLi45YjcyNmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJT
bmFwc2hvdEltYWdlR0wuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNp
ZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CiAjaW5jbHVkZSA8R0xF
UzIvZ2wyZXh0Lmg+CkBAIC01Nyw1ICs1NiwzIEBAIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGludCB5LCBpbnQgd2lkCiAg
ICAgY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5KG5ld1N1cmZhY2UuZ2V0KCkpOwogICAgIHJldHVy
biBuZXdTdXJmYWNlOwogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmgKaW5kZXggN2VlYTgzZi4uYWJjZDc4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdM
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdM
LmgKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlIDxSZWZQdHJDYWlyby5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25BcnJheVB0ci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
UGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZl
cihpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7Ci0jZW5kaWYKIAogI2VuZGlm
IC8vIFNuYXBzaG90SW1hZ2VHTF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAKaW5kZXggYzUzZDg0ZC4uZTkwYWQ0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgIlBhZ2VMb2FkQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFnZVBvbGljeUNsaWVudEVm
bC5oIgogI2luY2x1ZGUgIlBhZ2VVSUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV0tGaW5kT3B0aW9ucy5oIgpAQCAtNTYsMTEgKzU4LDYgQEAKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcAppbmRleCAyNmI3ZTRmLi40ZGZm
NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNl
LmNwcApAQCAtNzMsOSArNzMsOSBAQCBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VD
bGllbnRCYXNlOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKICAgICByZXR1cm4gZHJhd2luZ0Fy
ZWEucmVsZWFzZSgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRCYXNlOjpzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit2b2lkIFBhZ2VDbGllbnRCYXNlOjpz
ZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQogewotICAgIG1fdmll
dy0+dXBkYXRlKHJlY3QpOworICAgIG1fdmlldy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEJhc2U6OmRpc3BsYXlWaWV3KCkKQEAgLTIzNSw3ICsyMzUsNiBA
QCB2b2lkIFBhZ2VDbGllbnRCYXNlOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZElu
ZGljYXRvcj4sIGJvb2wsIGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUGFnZUNsaWVudEJhc2U6OmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCiB7CiAgICAg
bV92aWV3LT5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CkBAIC0yNTAsNyArMjQ5
LDYgQEAgdm9pZCBQYWdlQ2xpZW50QmFzZTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgUGFnZUNsaWVu
dEJhc2U6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoYm9vbCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuaAppbmRleCA0YTAyMjdlLi4wZjdhZDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5oCkBA
IC05NCwxMSArOTQsOSBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wsIGJvb2wpOwot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAgICAg
dmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0Jik7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFp
bkZyYW1lKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKQEAgLTEwOSwxMSArMTA3LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBmaW5kU3RyaW5nSW5DdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBGaW5kT3B0
aW9ucywgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBjb3VudFN0cmluZ01hdGNoZXNJbkN1
c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCk7
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURp
ZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkgPSAwOwotI2VuZGlmCiAKIHByb3Rl
Y3RlZDoKICAgICBFd2tWaWV3KiBtX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5jcHAKaW5kZXggMjYwZjEyMC4uNWE5
MjIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50
RGVmYXVsdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNs
aWVudERlZmF1bHRJbXBsLmNwcApAQCAtMjYsMTUgKzI2LDEyIEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50RGVmYXVsdEltcGwuaCIKKyNpbmNsdWRlICJQYWdl
Vmlld3BvcnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudEVmbC5oIgogCiAjaW5jbHVkZSAiRXdrVmlldy5oIgogI2luY2x1ZGUgImV3a192aWV3Lmgi
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRD
b250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5o
IgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEV3
a1ZpZXdDYWxsYmFja3M7CiAKQEAgLTQ3LDIxICs0NCwxNyBAQCBQYWdlQ2xpZW50RGVmYXVsdElt
cGw6OlBhZ2VDbGllbnREZWZhdWx0SW1wbChFd2tWaWV3KiB2aWV3KQogCiB2b2lkIFBhZ2VDbGll
bnREZWZhdWx0SW1wbDo6ZGlkQ29tbWl0TG9hZCgpCiB7Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiAgICAgQVNTRVJUKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcik7CiAgICAgbV9wYWdl
Vmlld3BvcnRDb250cm9sbGVyLT5kaWRDb21taXRMb2FkKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQ
YWdlQ2xpZW50RGVmYXVsdEltcGw6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiB7Ci0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKCFtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnQpIHsKICAgICAgICAgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50ID0gUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudEVmbDo6Y3JlYXRlKG1fdmlldyk7CiAgICAgICAgIG1fcGFnZVZp
ZXdwb3J0Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBQYWdlVmlld3BvcnRDb250cm9sbGVyKG1f
dmlldy0+cGFnZSgpLCBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuZ2V0KCkpKTsKICAg
ICB9CiAgICAgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LT51cGRhdGVWaWV3cG9ydFNp
emUoKTsKLSNlbmRpZgogfQogCiBGbG9hdFJlY3QgUGFnZUNsaWVudERlZmF1bHRJbXBsOjpjb252
ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHVzZXJSZWN0KQpAQCAtODAsMjUgKzcz
LDE3IEBAIEZsb2F0UmVjdCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6OmNvbnZlcnRUb1VzZXJTcGFj
ZShjb25zdCBGbG9hdFJlY3QmIGRldmljZVJlY3QpCiAKIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJ
bXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzJiBhdHRyKQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIEFT
U0VSVChtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOwogICAgIG1fcGFnZVZpZXdwb3J0Q29udHJv
bGxlci0+ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKGF0dHIpOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0oYXR0cik7Ci0jZW5kaWYKIH0KIAogdm9pZCBQYWdlQ2xpZW50RGVmYXVsdEltcGw6
OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIEFTU0VSVChtX3BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIpOwogICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci0+ZGlkQ2hhbmdlQ29udGVu
dHNTaXplKHNpemUpOwotI2VuZGlmCi0KICAgICBtX3ZpZXctPnNtYXJ0Q2FsbGJhY2s8Q29udGVu
dHNTaXplQ2hhbmdlZD4oKS5jYWxsKHNpemUpOwogfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiB2b2lkIFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6cGFnZURpZFJlcXVlc3RTY3JvbGwo
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChtX3BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIpOwpAQCAtMTE2LDYgKzEwMSw1IEBAIHZvaWQgUGFnZUNsaWVudERlZmF1bHRJbXBs
OjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQogICAgIEFTU0VSVChtX3BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIpOwogICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci0+cGFnZVRyYW5zaXRp
b25WaWV3cG9ydFJlYWR5KCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0
SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50RGVmYXVsdElt
cGwuaAppbmRleCAyMWJlNjljLi5lMTA1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VDbGllbnREZWZhdWx0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudERlZmF1bHRJbXBsLmgKQEAgLTU0LDE0ICs1NCwxMiBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVuZGVy
RnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0aW9u
Vmlld3BvcnRSZWFkeSgpOwogCiAgICAgT3duUHRyPFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudEVmbD4gbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50OwogICAgIE93blB0
cjxXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI+IG1fcGFnZVZpZXdwb3J0Q29udHJvbGxl
cjsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwCmluZGV4IDk1
ODMxYTIuLjdhOGE5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UGFnZUNsaWVudExlZ2FjeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwCkBAIC00NCwxNCArNDQsMTIgQEAgUGFnZUNsaWVu
dExlZ2FjeUltcGw6OlBhZ2VDbGllbnRMZWdhY3lJbXBsKEV3a1ZpZXcqIHZpZXcpCiAKIHZvaWQg
UGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZENvbW1pdExvYWQoKQogewotICAgIG1fdmlldy0+dXBk
YXRlKCk7CisgICAgbV92aWV3LT5zY2hlZHVsZVVwZGF0ZURpc3BsYXkoKTsKIH0KIAogdm9pZCBQ
YWdlQ2xpZW50TGVnYWN5SW1wbDo6dXBkYXRlVmlld3BvcnRTaXplKCkKIHsKLSNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKICAgICBtX3ZpZXctPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0
VmlzaWJsZUNvbnRlbnRzUmVjdChJbnRSZWN0KHJvdW5kZWRJbnRQb2ludChtX3ZpZXctPnBhZ2VQ
b3NpdGlvbigpKSwgbV92aWV3LT5zaXplKCkpLCBGbG9hdFBvaW50KCkpOwotI2VuZGlmCiB9CiAK
IEZsb2F0UmVjdCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29u
c3QgRmxvYXRSZWN0JiB2aWV3UmVjdCkKQEAgLTY4LDM1ICs2NiwzMSBAQCBGbG9hdFJlY3QgUGFn
ZUNsaWVudExlZ2FjeUltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBGbG9hdFJlY3QmIHZp
ZXdSZWN0KQogCiB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikKIHsKLSAgICBtX3Zp
ZXctPnVwZGF0ZSgpOworICAgIG1fdmlldy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiB9CiAK
IHZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIG1fdmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5jb29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eSgpLT5zZXRDb250ZW50c1NpemUoRmxvYXRTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSkpOwotICAgIG1fdmlldy0+dXBkYXRlKCk7Ci0jZW5kaWYKKyAgICBtX3ZpZXctPnNj
aGVkdWxlVXBkYXRlRGlzcGxheSgpOwogCiAgICAgbV92aWV3LT5zbWFydENhbGxiYWNrPENvbnRl
bnRzU2l6ZUNoYW5nZWQ+KCkuY2FsbChzaXplKTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6cGFnZURpZFJlcXVlc3RTY3JvbGwo
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogewogICAgIG1fdmlldy0+c2V0UGFnZVBvc2l0aW9u
KEZsb2F0UG9pbnQocG9zaXRpb24pKTsKLSAgICBtX3ZpZXctPnVwZGF0ZSgpOworICAgIG1fdmll
dy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudExlZ2FjeUlt
cGw6OmRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikKIHsKLSAgICBtX3ZpZXctPnVwZGF0ZSgpOworICAgIG1fdmlldy0+c2NoZWR1
bGVVcGRhdGVEaXNwbGF5KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6OnBhZ2VU
cmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCiB7Ci0gICAgbV92aWV3LT51cGRhdGUoKTsKKyAgICBt
X3ZpZXctPnNjaGVkdWxlVXBkYXRlRGlzcGxheSgpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdl
Q2xpZW50TGVnYWN5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xp
ZW50TGVnYWN5SW1wbC5oCmluZGV4IDMwMTA0NzguLmVmZWFiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmgKQEAgLTUxLDEx
ICs1MSw5IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQ
cm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVx
dWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZVRy
YW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50
RWZsLmNwcAppbmRleCBiODgxNjY4Li5jNGJhNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcApAQCAtMTExLDcgKzExMSw2IEBA
IHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhCiAgICAgdmlldy0+c21hcnRDYWxsYmFjazxQcm92aXNp
b25hbExvYWRGYWlsZWQ+KCkuY2FsbChld2tFcnJvci5nZXQoKSk7CiB9CiAKLSNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKIHZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZENvbW1pdExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCkBA
IC0xMjAsNyArMTE5LDYgQEAgdm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXAKICAgICBFd2tWaWV3KiB2
aWV3ID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmlldygpOwogICAgIHZpZXct
PnBhZ2VDbGllbnQoKS0+ZGlkQ29tbWl0TG9hZCgpOwogfQotI2VuZGlmCiAKIHZvaWQgUGFnZUxv
YWRDbGllbnRFZmw6OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMTcwLDkgKzE2OCw3IEBAIFBhZ2VMb2FkQ2xpZW50
RWZsOjpQYWdlTG9hZENsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogICAgIGxvYWRDbGllbnQuZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZSA9IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lOwogICAgIGxvYWRDbGllbnQuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhF
cnJvckZvckZyYW1lID0gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lOwot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGxvYWRDbGllbnQuZGlkQ29tbWl0TG9h
ZEZvckZyYW1lID0gZGlkQ29tbWl0TG9hZEZvckZyYW1lOwotI2VuZGlmCiAgICAgbG9hZENsaWVu
dC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QgPSBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q7CiAg
ICAgbG9hZENsaWVudC5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUgPSBkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lID0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlSW5GcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UGFnZUxvYWRDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxv
YWRDbGllbnRFZmwuaAppbmRleCAyYmE3MGZmLi5jYWUxZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5oCkBAIC01Myw5ICs1Myw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLRXJyb3JSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSNlbmRpZgogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRl
ZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
ICAgICBzdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmwuY3BwCmluZGV4IGQ0MGRhMTAuLjFmZjZjNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKIAotI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkuaCIKICNpbmNsdWRlICJFd2tWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIgpAQCAtNzEsNyArNjksNyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmw6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBjb250ZW50c1NpemUpCiB7CiAgICAgZHJhd2luZ0FyZWEoKS0+Y29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHkoKS0+c2V0Q29udGVudHNTaXplKGNvbnRlbnRzU2l6ZSk7Ci0gICAg
bV92aWV3LT51cGRhdGUoKTsKKyAgICBtX3ZpZXctPnNjaGVkdWxlVXBkYXRlRGlzcGxheSgpOwog
fQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OnNldFZpZXdwb3J0UG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudHNQb2ludCkKQEAgLTk5LDcg
Kzk3LDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpkaWRSZXN1bWVD
b250ZW50KCkKIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpkaWRDaGFu
Z2VWaXNpYmxlQ29udGVudHMoKQogewotICAgIG1fdmlldy0+dXBkYXRlKCk7CisgICAgbV92aWV3
LT5zY2hlZHVsZVVwZGF0ZURpc3BsYXkoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoKQpAQCAtMTEyLDUgKzEx
MCwzIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6c2V0Q29udHJvbGxl
cihQYWdlVmlld3BvcnRDb250cm9sbGVyKiBjb250CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAotI2VuZGlmIC8vIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudEVmbC5oCmluZGV4IGI4N2EwZmUuLjVjMTljMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmxfaAogI2RlZmluZSBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsX2gKIAot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCiAjaW5jbHVkZSAiRXdrVmlldy5oIgogI2lu
Y2x1ZGUgIlBhZ2VDbGllbnRCYXNlLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudC5oIgpAQCAtNzEsNiArNjksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAotI2VuZGlmCi0KICNlbmRpZiAvLyBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVj
dG9yUHJveHlFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0
b3JQcm94eUVmbC5jcHAKaW5kZXggYTg5NGY1NS4uZmEyZTA4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0b3JQcm94eUVmbC5jcHAKQEAgLTg3
LDcgKzg3LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVh
dGVJbnNwZWN0b3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZCBIQVZFX0VDT1JFX1gKKyNpZmRlZiBIQVZF
X0VDT1JFX1gKICAgICBjb25zdCBjaGFyKiBlbmdpbmUgPSAib3BlbmdsX3gxMSI7CiAgICAgbV9p
bnNwZWN0b3JXaW5kb3cgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIGluaXRpYWxXaW5k
b3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCwgMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCBjNTRhZTg3Li40NGVlMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00
NDYsNyArNDQ2LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICBpZiAoZnJhbWUtPnBh
Z2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRG
T1JNKFFUKSB8fCAoUExBVEZPUk0oRUZMKSAmJiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkpCisj
aWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKICAgICBpZiAobV9wYWdlLT51c2VGaXhl
ZExheW91dCgpKSB7CiAgICAgICAgIC8vIFRoZSBiZWxvdyBtZXRob2QgdXBkYXRlcyB0aGUgc2l6
ZSgpLgogICAgICAgICBtX3BhZ2UtPnJlc2l6ZVRvQ29udGVudHNJZk5lZWRlZCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>