<?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>119120</bug_id>
          
          <creation_ts>2013-07-25 19:30:20 -0700</creation_ts>
          <short_desc>[EFL][WK2] Move and make WKColorPickerResultListener to EFL specific interface</short_desc>
          <delta_ts>2014-02-18 05:32:48 -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>
          
          <blocked>126960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>abecsi</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>menard</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>mpakulavelrutka</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>ruthiecftg</cc>
    
    <cc>santosh.ma</cc>
    
    <cc>sergio</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>911841</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-07-25 19:30:20 -0700</bug_when>
    <thetext>As 61276 and 119030 addressed, WK2 ports implement color picker as two way.
1. inherit WebColorPicker
2. register PageUIClient Callback

Only EFL port implements it as second way.
Second way might be good for some ports to expose UIClient as WK API.
But I think that it just make confusion.

I will refactor EFL port to use first way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911843</commentid>
    <comment_count>1</comment_count>
      <attachid>207502</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-07-25 19:39:45 -0700</bug_when>
    <thetext>Created attachment 207502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913587</commentid>
    <comment_count>2</comment_count>
      <attachid>207892</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-07-31 18:35:31 -0700</bug_when>
    <thetext>Created attachment 207892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913603</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-31 19:03:10 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; As 61276 and 119030 addressed, WK2 ports implement color picker as two way.
&gt; 1. inherit WebColorPicker
&gt; 2. register PageUIClient Callback
&gt; 
&gt; Only EFL port implements it as second way.
&gt; Second way might be good for some ports to expose UIClient as WK API.
&gt; But I think that it just make confusion.
&gt; 
&gt; I will refactor EFL port to use first way.

As far as I know, we have tried to use C API instead of inheriting WK2 internal class. This may violate a layer rule on EFL ewk implementation. Why not we use second way ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913634</commentid>
    <comment_count>4</comment_count>
      <attachid>207892</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-31 22:40:49 -0700</bug_when>
    <thetext>Comment on attachment 207892
Patch

We are using the C API on purpose. Using internal wk2 types from our API layer is a layering violation. Therefore, I believe this patch is a step in the wrong direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914514</commentid>
    <comment_count>5</comment_count>
      <attachid>208110</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 01:28:16 -0700</bug_when>
    <thetext>Created attachment 208110
another suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914515</commentid>
    <comment_count>6</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 01:34:33 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 207892 [details])
&gt; We are using the C API on purpose. Using internal wk2 types from our API layer is a layering violation. Therefore, I believe this patch is a step in the wrong direction.

OK, but previous logic looks confusing because there were two paths in WebPageProxy and m_uiClient.showColorPicker was only for EFL (at least now)

Instead, I added Efl specific WK API to isolate color picker callbacks only for EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914516</commentid>
    <comment_count>7</comment_count>
      <attachid>208110</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-05 01:39:53 -0700</bug_when>
    <thetext>Comment on attachment 208110
another suggestion

Attachment 208110 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1357023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914520</commentid>
    <comment_count>8</comment_count>
      <attachid>208110</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-05 01:53:40 -0700</bug_when>
    <thetext>Comment on attachment 208110
another suggestion

Attachment 208110 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1377054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914523</commentid>
    <comment_count>9</comment_count>
      <attachid>208110</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-05 02:07:38 -0700</bug_when>
    <thetext>Comment on attachment 208110
another suggestion

Attachment 208110 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1378051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914527</commentid>
    <comment_count>10</comment_count>
      <attachid>208113</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 02:39:32 -0700</bug_when>
    <thetext>Created attachment 208113
another suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914528</commentid>
    <comment_count>11</comment_count>
      <attachid>208113</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-05 02:45:39 -0700</bug_when>
    <thetext>Comment on attachment 208113
another suggestion

Attachment 208113 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1380071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914530</commentid>
    <comment_count>12</comment_count>
      <attachid>208114</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 02:57:51 -0700</bug_when>
    <thetext>Created attachment 208114
another suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914532</commentid>
    <comment_count>13</comment_count>
      <attachid>208114</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-05 03:04:23 -0700</bug_when>
    <thetext>Comment on attachment 208114
another suggestion

Attachment 208114 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1375063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914533</commentid>
    <comment_count>14</comment_count>
      <attachid>208115</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 03:15:24 -0700</bug_when>
    <thetext>Created attachment 208115
another suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914535</commentid>
    <comment_count>15</comment_count>
      <attachid>208115</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-05 03:40:17 -0700</bug_when>
    <thetext>Comment on attachment 208115
another suggestion

Attachment 208115 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1376096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914538</commentid>
    <comment_count>16</comment_count>
      <attachid>208114</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-05 03:44:52 -0700</bug_when>
    <thetext>Comment on attachment 208114
another suggestion

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

r- because qt-wk2 ews is failed.

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [EFL][WK2] Refactor color picker implementation

I&apos;m not sure if we can use [EFL] prefix in title. Because this patch influences on QT and GTK ports. How about changing with &quot;[WK2] Refactor color picker implementation for EFL port.&quot; ? It looks you need to get approval of WK2 owner.

&gt; Source/WebKit2/ChangeLog:12
&gt; +        So, this patch introduce WKColorPickerClient which is new WK interface

introduces ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914540</commentid>
    <comment_count>17</comment_count>
      <attachid>208116</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 03:50:43 -0700</bug_when>
    <thetext>Created attachment 208116
another suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914543</commentid>
    <comment_count>18</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-05 04:04:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 208114 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208114&amp;action=review
&gt; 
&gt; r- because qt-wk2 ews is failed.
&gt; 

Sorry for noise, I hope that last patch be fine for all wk2 bot.

&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        [EFL][WK2] Refactor color picker implementation
&gt; 
&gt; I&apos;m not sure if we can use [EFL] prefix in title. Because this patch influences on QT and GTK ports. How about changing with &quot;[WK2] Refactor color picker implementation for EFL port.&quot; ? It looks you need to get approval of WK2 owner.
&gt; 

I agree with you, so I wanted to separate patches about it because I think that this is for EFL.

If this approach is acceptable, I can move ColorPickerResultListener related files in another bug before landing this.
Or just removing &quot;[EFL]&quot; is acceptable, I will do it.

&gt; &gt; Source/WebKit2/ChangeLog:12
&gt; &gt; +        So, this patch introduce WKColorPickerClient which is new WK interface
&gt; 
&gt; introduces ?

OK, I will fix it in next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915747</commentid>
    <comment_count>19</comment_count>
      <attachid>208116</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-09 03:22:20 -0700</bug_when>
    <thetext>Comment on attachment 208116
another suggestion

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

It is really not clear to me why this patch improves the current situation and the Changelog does not clarify things. It seems this patch mostly move generic WK2 code and makes it EFL-specific (thus preventing other ports from using it).

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Since r153541, WK2 port removed a way to register PageUIClient Callbacks,

I don&apos;t understand this sentence.

&gt; Source/WebKit2/ChangeLog:19
&gt; +        * UIProcess/API/C/efl/WKColorPickerResultListener.cpp: Renamed from Source/WebKit2/UIProcess/API/C/WKColorPickerResultListener.cpp.

I&apos;m not sure we want to move this one to efl/. iirc, the file was put there in the first place because other ports showed interest in using  it as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920206</commentid>
    <comment_count>20</comment_count>
    <who name="Santosh Mahto">santosh.ma</who>
    <bug_when>2013-08-23 06:23:00 -0700</bug_when>
    <thetext>Hi ryuan

Crash is happening while clicking to launch color picker.
It looks to me efl need your colorful this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962955</commentid>
    <comment_count>21</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-12-25 21:04:27 -0800</bug_when>
    <thetext>Any update ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963670</commentid>
    <comment_count>22</comment_count>
      <attachid>208116</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-01 20:51:14 -0800</bug_when>
    <thetext>Comment on attachment 208116
another suggestion

Clearing flags. At least, this patch should be rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976649</commentid>
    <comment_count>23</comment_count>
      <attachid>223207</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-04 21:19:29 -0800</bug_when>
    <thetext>Created attachment 223207
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976650</commentid>
    <comment_count>24</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-04 21:27:04 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 208116 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208116&amp;action=review
&gt; 
&gt; It is really not clear to me why this patch improves the current situation and the Changelog does not clarify things. It seems this patch mostly move generic WK2 code and makes it EFL-specific (thus preventing other ports from using it).
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Since r153541, WK2 port removed a way to register PageUIClient Callbacks,
&gt; 
&gt; I don&apos;t understand this sentence.
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:19
&gt; &gt; +        * UIProcess/API/C/efl/WKColorPickerResultListener.cpp: Renamed from Source/WebKit2/UIProcess/API/C/WKColorPickerResultListener.cpp.
&gt; 
&gt; I&apos;m not sure we want to move this one to efl/. iirc, the file was put there in the first place because other ports showed interest in using  it as well.

I updated bug title and change log little bit.

Since I made this patch, EFL port has a crash when accessed color input.
I don&apos;t know who want to use WKColorPickerResultListener but I believe that EFL port will only use it until new port are appeared.

So, I want to move them out of the common code until someone raise their needs once more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976655</commentid>
    <comment_count>25</comment_count>
      <attachid>223207</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-02-04 21:42:12 -0800</bug_when>
    <thetext>Comment on attachment 223207
rebased

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

&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.h:56
&gt; +#if ENABLE(TOUCH_EVENTS)

INPUT_TYPE_COLOR?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976657</commentid>
    <comment_count>26</comment_count>
      <attachid>223207</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-04 21:45:46 -0800</bug_when>
    <thetext>Comment on attachment 223207
rebased

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

&gt;&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.h:56
&gt;&gt; +#if ENABLE(TOUCH_EVENTS)
&gt; 
&gt; INPUT_TYPE_COLOR?

Unbelievable. I will fix it.

Thank you so much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976658</commentid>
    <comment_count>27</comment_count>
      <attachid>223209</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-04 21:48:26 -0800</bug_when>
    <thetext>Created attachment 223209
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976659</commentid>
    <comment_count>28</comment_count>
      <attachid>223210</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-04 21:50:27 -0800</bug_when>
    <thetext>Created attachment 223210
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981700</commentid>
    <comment_count>29</comment_count>
      <attachid>223210</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-02-17 16:14:08 -0800</bug_when>
    <thetext>Comment on attachment 223210
rebased

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        Indeed, it does not work since refactored common logic for ColorPicker in WebPageProxy.

Are you sure if Mac or GTK won&apos;t use this logic in future ?

&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.cpp:199
&gt; +#if ENABLE(INPUT_TYPE_COLOR)

Why can&apos;t we initialize colorPickerClient when color picker needs to be shown ?

&gt; Source/WebKit2/UIProcess/efl/WebColorPickerEfl.h:48
&gt; +    void didChooseColor(const WebCore::Color&amp;);

Add a new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981737</commentid>
    <comment_count>30</comment_count>
      <attachid>223210</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-17 17:54:03 -0800</bug_when>
    <thetext>Comment on attachment 223210
rebased

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

&gt;&gt; Source/WebKit2/ChangeLog:9
&gt;&gt; +        Indeed, it does not work since refactored common logic for ColorPicker in WebPageProxy.
&gt; 
&gt; Are you sure if Mac or GTK won&apos;t use this logic in future ?

Absolutely.
Mac implemented color picker using another way and GTK port does not use WK interface(And GTK also use color picker like Mac port, IIRC)
They don&apos;t need to use interface because they can implement picker in the platform.

But in EFL side, we can&apos;t implement complex UI components in ewebkit because we don&apos;t use elm.

&gt;&gt; Source/WebKit2/UIProcess/efl/ViewClientEfl.cpp:199
&gt;&gt; +#if ENABLE(INPUT_TYPE_COLOR)
&gt; 
&gt; Why can&apos;t we initialize colorPickerClient when color picker needs to be shown ?

It is to receive callback which notify when color picker needs to be shown.

&gt;&gt; Source/WebKit2/UIProcess/efl/WebColorPickerEfl.h:48
&gt;&gt; +    void didChooseColor(const WebCore::Color&amp;);
&gt; 
&gt; Add a new line.

OK, I will add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981757</commentid>
    <comment_count>31</comment_count>
      <attachid>224459</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-17 19:22:05 -0800</bug_when>
    <thetext>Created attachment 224459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981773</commentid>
    <comment_count>32</comment_count>
      <attachid>224459</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-02-17 20:54:21 -0800</bug_when>
    <thetext>Comment on attachment 224459
Patch

This patch was created a very long time ago. I think now is time to move this to EFL specific place. However, if any port will want to use this concept in future, we need to roll this change back. Looks fine for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981776</commentid>
    <comment_count>33</comment_count>
      <attachid>224459</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-17 21:08:11 -0800</bug_when>
    <thetext>Comment on attachment 224459
Patch

Clearing flags on attachment: 224459

Committed r164271: &lt;http://trac.webkit.org/changeset/164271&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981777</commentid>
    <comment_count>34</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-02-17 21:08:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981900</commentid>
    <comment_count>35</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-02-18 05:32:48 -0800</bug_when>
    <thetext>*** Bug 126067 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207502</attachid>
            <date>2013-07-25 19:39:45 -0700</date>
            <delta_ts>2013-07-31 18:35:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119120-20130726113943.patch</filename>
            <type>text/plain</type>
            <size>16678</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTlhYWVmMTk1MjYwNGE5
NTY1MmRkM2VmOWUzNTBiOTFjZDg2YzFiZC4uNmQzZmVhMjYwZDBkY2I4YmM4M2NmMmRlY2Q5ZjA1
MmI2ZGY2ODc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTA3LTI1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0syIHBvcnRzIGltcGxlbWVudCBjb2xvciBwaWNr
ZXIgYXMgdHdvIHdheS4KKyAgICAgICAgLSBpbmhlcml0IFdlYkNvbG9yUGlja2VyCisgICAgICAg
IC0gcmVnaXN0ZXIgUGFnZVVJQ2xpZW50IENhbGxiYWNrCisKKyAgICAgICAgTm93IEVGTCBwb3J0
IG9ubHkgaW1wbGVtZW50cyBjb2xvciBwaWNrZXIgYXMgc2Vjb25kIHdheS4KKyAgICAgICAgU2Vj
b25kIHdheSBtaWdodCBiZSBnb29kIGZvciBzb21lIHBvcnRzIHRvIGV4cG9zZSBVSUNsaWVudCBh
cyBXSyBBUEkuCisgICAgICAgIEJ1dCBpdCBhbHNvIG1ha2UgY29uZnVzaW9uLgorCisgICAgICAg
IEFzIGEgZmlyc3Qgc3RlcCwgdGhpcyBwYXRjaCByZWZhY3RvcnMgRUZMIHBvcnQgdG8gaW5oZXJp
dCBXZWJDb2xvclBpY2tlci4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGRlZCBX
ZWJDb2xvclBpY2tlckVmbC5jcHAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OnJlcXVlc3RDb2xvclBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb2xvcl9waWNrZXIuY3BwOgorICAgICAgICAoRXdrQ29sb3JQaWNrZXI6OkV3a0NvbG9y
UGlja2VyKToKKyAgICAgICAgKEV3a0NvbG9yUGlja2VyOjpzZXRDb2xvcik6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlcl9wcml2YXRlLmg6CisgICAgICAgIChF
d2tDb2xvclBpY2tlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNs
aWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xp
ZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwOiBJbmhlcml0ZWQgV2Vi
Q29sb3JQaWNrZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xv
clBpY2tlckVmbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjplbmRDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29s
b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3Ip
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaDogSW5oZXJpdGVk
IFdlYkNvbG9yUGlja2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6On5XZWJDb2xvclBpY2tl
ckVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvV2ViVmlld0VmbC5oOgorCiAyMDEzLTA3LTI1ICBLd2FuZyBZdWwgU2VvICA8c2t5
dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1dLMl1bU291cF0gQWRkIHByaXZhdGUgYnJv
d3Npbmcgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYmI3NjZiYWYyMmUx
NDY1ODFlMjgzMzcwZWIzMjVmMTAwYTYzMWFjLi40OWI4M2RmNTcyZGYzNzk2MTU2MjVhMzM3NDUx
MDU1YzkyYmRkZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTIxLDYgKzEyMSw3
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0
aW9uQ2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKICAg
ICBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xv
clBpY2tlckVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCiAgICAg
VUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0TWVudVByb3h5RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9l
ZmwvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNDU3Yzg2MTYzZmNmNGYwZDUyODI5MWQx
MmQ1NjhlZTQ2MzVlMzAzOS4uMWZhNjg4YzRmMjhiYmRlMTkzMWMyYTBkY2VjYjUyZjRjMTljNmY1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAg
LTg0MCw3ICs4NDAsNyBAQCBib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZSgpCiAgKiBAaW50
ZXJuYWwKICAqIFJlcXVlc3RzIHRvIHNob3cgZXh0ZXJuYWwgY29sb3IgcGlja2VyLgogICovCi12
b2lkIEV3a1ZpZXc6OnJlcXVlc3RDb2xvclBpY2tlcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3ZvaWQgRXdrVmll
dzo6cmVxdWVzdENvbG9yUGlja2VyKFdlYkNvbG9yUGlja2VyRWZsKiBwaWNrZXIsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiBjb2xvcikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNt
YXJ0RGF0YSgpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkLT5hcGktPmlucHV0
X3BpY2tlcl9jb2xvcl9yZXF1ZXN0KTsKQEAgLTg1MSw3ICs4NTEsNyBAQCB2b2lkIEV3a1ZpZXc6
OnJlcXVlc3RDb2xvclBpY2tlcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVu
ZXIsIGNvbnN0CiAgICAgaWYgKG1fY29sb3JQaWNrZXIpCiAgICAgICAgIGRpc21pc3NDb2xvclBp
Y2tlcigpOwogCi0gICAgbV9jb2xvclBpY2tlciA9IEV3a0NvbG9yUGlja2VyOjpjcmVhdGUobGlz
dGVuZXIsIGNvbG9yKTsKKyAgICBtX2NvbG9yUGlja2VyID0gRXdrQ29sb3JQaWNrZXI6OmNyZWF0
ZShwaWNrZXIsIGNvbG9yKTsKIAogICAgIHNkLT5hcGktPmlucHV0X3BpY2tlcl9jb2xvcl9yZXF1
ZXN0KHNkLCBtX2NvbG9yUGlja2VyLmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCBhOWYwMTE3MTZiYjQ1ODM5ZjQ2NmY4NTI0YjUyMDNm
ZWMxM2Q5YzliLi43ODkxOTM3OGQxZWFlMTRhMWFiZDI4ZjdiOTQ5MWMxNzc5NWNjNDU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC02NSw2ICs2NSw5
IEBAIGNsYXNzIFZpZXdDbGllbnRFZmw7CiBjbGFzcyBQYWdlVmlld3BvcnRDb250cm9sbGVyOwog
Y2xhc3MgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDsKICNlbmRpZgorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmw7CisjZW5kaWYKIGNs
YXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIApAQCAtMTY2LDcgKzE2OSw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAg
dm9pZCByZXF1ZXN0Q29sb3JQaWNrZXIoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxp
c3RlbmVyLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZvaWQgcmVxdWVzdENvbG9yUGlj
a2VyKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmwqIHBpY2tlciwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImKTsKICAgICB2b2lkIGRpc21pc3NDb2xvclBpY2tlcigpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlci5jcHAK
aW5kZXggMTE0MTM5NGNiYWQ3ZGRlNzEwOGRmNjhjYTI5YmUxMzZkZjJhYmNjZi4uZDM5ZDBkNTBk
MjdhZDI5MDE2ZmUzNGQwYWY5YjQ1M2E5NTQyMGVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlci5jcHAKQEAgLTI4LDE4ICsy
OCwxOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKLUV3a0NvbG9yUGlja2VyOjpFd2tDb2xvclBpY2tlcihXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJSZWYgY29sb3JQaWNrZXJMaXN0ZW5lciwgY29uc3QgQ29sb3ImIGluaXRp
YWxDb2xvcikKLSAgICA6IG1fY29sb3JQaWNrZXJMaXN0ZW5lcihjb2xvclBpY2tlckxpc3RlbmVy
KQorRXdrQ29sb3JQaWNrZXI6OkV3a0NvbG9yUGlja2VyKFdlYkNvbG9yUGlja2VyRWZsKiBwaWNr
ZXIsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisgICAgOiBtX2NvbG9yUGlja2VyKHBpY2tl
cikKICAgICAsIG1fY29sb3IoaW5pdGlhbENvbG9yKQogewogfQogCiB2b2lkIEV3a0NvbG9yUGlj
a2VyOjpzZXRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGNvbG9yU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGNvbG9yLnNlcmlhbGl6ZWQoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgV0tDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyU2V0Q29sb3IobV9jb2xvclBpY2tlckxpc3RlbmVyLmdldCgpLCBjb2xv
clN0cmluZy5nZXQoKSk7CisgICAgbV9jb2xvclBpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoY29sb3Ip
OwogfQogCiBjb25zdCBDb2xvciYgRXdrQ29sb3JQaWNrZXI6OmNvbG9yKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXJf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3Bp
Y2tlcl9wcml2YXRlLmgKaW5kZXggMjlkMDM2MDc5ZTk4Mjg3NTcwM2MyNDUxNTQzYzRlOTE5Zjcx
MjVkYi4uNmJjMmY5NWNmMDU3OTYzZDU5ZmRlZGRlYjI4Mjc2Yzg1ZjE3MTA3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlcl9wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3Bp
Y2tlcl9wcml2YXRlLmgKQEAgLTI0LDIzICsyNCwyNCBAQAogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQogCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBp
Y2tlckVmbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiBjbGFzcyBFd2tDb2xvclBpY2tlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8RXdrQ29sb3JQaWNrZXI+IGNyZWF0ZShXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJSZWYgY29sb3JQaWNrZXJMaXN0ZW5lciwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRp
YWxDb2xvcikKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tDb2xvclBpY2tlcj4gY3JlYXRlKFdl
YktpdDo6V2ViQ29sb3JQaWNrZXJFZmwqIHBpY2tlciwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGlu
aXRpYWxDb2xvcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrQ29sb3JQ
aWNrZXIoY29sb3JQaWNrZXJMaXN0ZW5lciwgaW5pdGlhbENvbG9yKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRXdrQ29sb3JQaWNrZXIocGlja2VyLCBpbml0aWFsQ29sb3IpKTsKICAg
ICB9CiAKICAgICBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IoKSBjb25zdDsKICAgICB2b2lk
IHNldENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAKIHByaXZhdGU6Ci0gICAgRXdrQ29s
b3JQaWNrZXIoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGNvbG9yUGlja2VyTGlzdGVu
ZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIEV3a0NvbG9yUGlj
a2VyKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmwqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5p
dGlhbENvbG9yKTsKIAotICAgIFdLUmV0YWluUHRyPFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clJlZj4gbV9jb2xvclBpY2tlckxpc3RlbmVyOworICAgIFdlYktpdDo6V2ViQ29sb3JQaWNrZXJF
ZmwqIG1fY29sb3JQaWNrZXI7CiAgICAgV2ViQ29yZTo6Q29sb3IgbV9jb2xvcjsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAppbmRl
eCA1NDg4ZWExMzY0NDVhNzA2YTZiOWU5ZjBlMWM4ZWRlMGMyNDk1NmZhLi40ZWRmYTBhMWJiYjRl
MTc5OWQ3MzM0NjAzMWJkNTlkY2E0MjMxZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCkBAIC03OSwxMCArNzksNiBAQCBQYWdlVUlD
bGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAgICAgdWlD
bGllbnQucnVuT3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50LmNyZWF0ZU5l
d1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAg
IHVpQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKLSAgICB1aUNsaWVu
dC5oaWRlQ29sb3JQaWNrZXIgPSBoaWRlQ29sb3JQaWNrZXI7Ci0jZW5kaWYKIAogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAmdWlDbGllbnQpOwogCkBAIC0yMjYsMjEgKzIyMiw2
IEBAIFdLUGFnZVJlZiBQYWdlVUlDbGllbnRFZmw6OmNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBX
S1VSTFJlcXVlc3RSZWYgd2tSZXF1ZXN0LCBXCiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xpZW50RWZs
KGNsaWVudEluZm8pLT5tX3ZpZXctPmNyZWF0ZU5ld1BhZ2UocmVxdWVzdCwgd2tXaW5kb3dGZWF0
dXJlcyk7CiB9CiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXZvaWQgUGFnZVVJQ2xp
ZW50RWZsOjpzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0aWFsQ29s
b3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNsaWVudCA9IHRvUGFn
ZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pOwotICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yID0gV2Vi
Q29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhpbml0aWFsQ29sb3IpKTsKLSAgICBwYWdl
VUlDbGllbnQtPm1fdmlldy0+cmVxdWVzdENvbG9yUGlja2VyKGxpc3RlbmVyLCBjb2xvcik7Ci19
Ci0KLXZvaWQgUGFnZVVJQ2xpZW50RWZsOjpoaWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBhZ2VVSUNsaWVudEVmbCogcGFnZVVJQ2xpZW50
ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0gICAgcGFnZVVJQ2xpZW50LT5tX3Zp
ZXctPmRpc21pc3NDb2xvclBpY2tlcigpOwotfQotI2VuZGlmCi0KIHZvaWQgUGFnZVVJQ2xpZW50
RWZsOjpzaG93UG9wdXBNZW51KFdLUGFnZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiBtZW51
TGlzdGVuZXJSZWYsIFdLUmVjdCByZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24gdGV4dERp
cmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtc1JlZiwgaW50
MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHJldHVy
biB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LT5yZXF1ZXN0UG9wdXBNZW51
KG1lbnVMaXN0ZW5lclJlZiwgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBp
dGVtc1JlZiwgc2VsZWN0ZWRJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVUlDbGllbnRFZmwuaAppbmRleCBkZjQ3Yjk3MTY3YjQ4MDFhNTliYjFjYzM3YzJkMmEw
MTkxNzEzNDMxLi5lMTRhYmNkNDEyMDJlMTY2MTU2ZDViY2Y3Y2NhNWEwZjllMWZhN2Q2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKQEAgLTY5
LDEwICs2OSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBydW5PcGVuUGFu
ZWwoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgV0tQYWdl
UmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFy
eVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKik7
Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RhdGljIHZvaWQgc2hvd0NvbG9y
UGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBoaWRlQ29s
b3JQaWNrZXIoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyB2
b2lkIHNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVmLCBXS1Jl
Y3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tB
cnJheVJlZiBpdGVtc1JlZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBoaWRlUG9wdXBNZW51KFdLUGFnZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMGQ3NjQ4NDlmODNmNTFlNjUwMWQw
NDYyYWYwMWE1Yzk4MTAyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyRWZsLmgiCisKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJFd2tWaWV3LmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVm
bChFd2tWaWV3KiBld2tWaWV3LCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCisgICAgOiBXZWJDb2xvclBpY2tlcihjbGll
bnQpCisgICAgLCBtX2V3a1ZpZXcoZXdrVmlldykKK3sKKyAgICBBU1NFUlQobV9ld2tWaWV3KTsK
KworICAgIG1fZXdrVmlldy0+cmVxdWVzdENvbG9yUGlja2VyKHRoaXMsIGluaXRpYWxDb2xvcik7
Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OmVuZENob29zZXIoKQoreworICAgIG1fZXdr
Vmlldy0+ZGlzbWlzc0NvbG9yUGlja2VyKCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6
OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OmRpZENob29zZUNvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworCisgICAg
Ly8gRklYTUU6IFdlIGRvbid0IG5lZWQgdG8gZGlzbWlzcyBwaWNrZXIKKyAgICBtX2V3a1ZpZXct
PmRpc21pc3NDb2xvclBpY2tlcigpOworCisgICAgbV9jbGllbnQtPmRpZEVuZENvbG9yQ2hvb3Nl
cigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMDNk
OWVlNTU1ZDc0NzZlZTQ1NGY1OGU2ODRhM2RiMWM0ZjJhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmgKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJFZmxfaAorI2RlZmluZSBXZWJDb2xvclBp
Y2tlckVmbF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJD
b2xvclBpY2tlci5oIgorCitjbGFzcyBFd2tWaWV3OworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViQ29sb3JQaWNrZXJFZmwgOiBwdWJsaWMgV2ViQ29sb3JQaWNrZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyRWZsPiBjcmVhdGUoRXdrVmll
dyogZXdrVmlldywgV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJDb2xvclBpY2tlckVmbChld2tWaWV3LCBjbGllbnQsIGluaXRpYWxDb2xvcikpOworICAg
IH0KKyAgICB+V2ViQ29sb3JQaWNrZXJFZmwoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmRD
aG9vc2VyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29u
c3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsKKworICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKK3ByaXZhdGU6CisgICAgV2ViQ29sb3JQaWNrZXJFZmwo
RXdrVmlldyosIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYp
OworCisgICAgRXdrVmlldyogbV9ld2tWaWV3OworfTsKKworfQorI2VuZGlmCisKKyNlbmRpZiAv
LyBXZWJDb2xvclBpY2tlckVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJW
aWV3RWZsLmNwcAppbmRleCA1NjYwYmUxMTFjNDJkMGQyNWM2MWE4ODcwNmExNzZiN2JhOGU5YzVi
Li4zMDFmYzFlYzY4NzBiZTY3MzM0ZDdlNjAwMzI0MjY5NjMxNzYxMTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKQEAgLTQzLDYgKzQzLDEwIEBACiAj
aW5jbHVkZSAiRXdrVG91Y2hFdmVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2VuZGlmCisKIHVzaW5n
IG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTEyNCw0ICsxMjgsMTEgQEAgdm9pZCBXZWJWaWV3RWZsOjpzZW5kVG91Y2hFdmVudChFd2tU
b3VjaEV2ZW50KiB0b3VjaEV2ZW50KQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKK1Bhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFdlYlZpZXdFZmw6OmNyZWF0ZUNv
bG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9y
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKK3sKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJF
Zmw6OmNyZWF0ZShtX2V3a1ZpZXcsIHBhZ2UsIGNvbG9yKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgK
aW5kZXggZDcxNzIzNGM2Yjc4ZDdmYWRlMTBlOGE1YjY1YTE2NDVhY2I2MjVkZC4uYmUwNmJiZmVl
NjkzNjE5YTI2NzFkNjNmM2RlZTQ1ZDA5MGM5MDZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJWaWV3RWZsLmgKQEAgLTQ4LDYgKzQ4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlbmRUb3VjaEV2ZW50KEV3a1RvdWNoRXZlbnQqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBj
cmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlZpZXdF
ZmwoV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207892</attachid>
            <date>2013-07-31 18:35:31 -0700</date>
            <delta_ts>2013-08-05 01:28:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119120-20130801103529.patch</filename>
            <type>text/plain</type>
            <size>16782</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTMwOTI5ZjYwOTEwNTk4
MmI0ZjAxY2MwZjY2Y2ZjMjVhYTI4ZmZlZS4uNmU0MjdkNTk4ZTViMjZjMjNmNzUzNjcyMzJkYjcx
NzQwMTI3ZWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTA3LTMxICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0syIHJlZmFjdG9yZWQgY29sb3IgcGlja2VyIGlt
cGxlbWVudGF0aW9uIG5vdCB0byB1c2UgUGFnZVVJQ2xpZW50LgorICAgICAgICBFRkwgcG9ydCBv
bmx5IGltcGxlbWVudGVkIGNvbG9yIHBpY2tlciB1c2luZyBQYWdlVUlDbGllbnQgY2FsbGJhY2su
CisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZhY3RvcmVkIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRh
dGlvbiB0byBpbmhlcml0IFdlYkNvbG9yUGlja2VyLgorCisgICAgICAgICogUGxhdGZvcm1FZmwu
Y21ha2U6IEFkZGVkIENvbG9yUGlja2VyRWZsLmNwcAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoRXdrVmlldzo6cmVxdWVzdENvbG9yUGlja2VyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2NvbG9yX3BpY2tlci5jcHA6CisgICAgICAgIChFd2tDb2xvclBpY2tl
cjo6RXdrQ29sb3JQaWNrZXIpOgorICAgICAgICAoRXdrQ29sb3JQaWNrZXI6OnNldENvbG9yKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaDoK
KyAgICAgICAgKEV3a0NvbG9yUGlja2VyOjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvUGFnZVVJQ2xpZW50RWZsLmNwcDogTW92ZWQgY29sb3IgcGlja2VyIGltcGVsbWVudGF0aW9u
IHRvIFdlYkNvbG9yUGlja2VyRWZsLgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6
OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRF
ZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcDogSW5o
ZXJpdGVkIFdlYkNvbG9yUGlja2VyIGFuZCBtb3ZlZCBjb2RlcyBmcm9tIFBhZ2VVSUNsaWVudEVm
bC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9yUGlja2VyRWZs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmVuZFBpY2tlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRDaG9vc2VDb2xvcik6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oOiBJbmhlcml0ZWQgV2ViQ29sb3JQaWNr
ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6fldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJW
aWV3RWZsLmg6CisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggZGJiNzY2YmFmMjJlMTQ2NTgxZTI4MzM3MGViMzI1ZjEwMGE2
MzFhYy4uNDliODNkZjU3MmRmMzc5NjE1NjI1YTMzNzQ1MTA1NWM5MmJkZGVmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTEyMSw2ICsxMjEsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZsL1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAKICAgICBV
SVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3
RWZsLmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwCiAgICAgVUlQ
cm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4
dE1lbnVQcm94eUVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCmluZGV4IDQ1N2M4NjE2M2ZjZjRmMGQ1MjgyOTFkMTJkNTY4ZWU0NjM1ZTMwMzkuLjFmYTY4
OGM0ZjI4YmJkZTE5MzFjMmEwZGNlY2I1MmY0YzE5YzZmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC04NDAsNyArODQwLDcgQEAgYm9vbCBF
d2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UoKQogICogQGludGVybmFsCiAgKiBSZXF1ZXN0cyB0byBz
aG93IGV4dGVybmFsIGNvbG9yIHBpY2tlci4KICAqLwotdm9pZCBFd2tWaWV3OjpyZXF1ZXN0Q29s
b3JQaWNrZXIoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYgY29sb3IpCit2b2lkIEV3a1ZpZXc6OnJlcXVlc3RDb2xvclBpY2tlcihX
ZWJDb2xvclBpY2tlckVmbCogcGlja2VyLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7
CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihzZC0+YXBpLT5pbnB1dF9waWNrZXJfY29sb3JfcmVxdWVzdCk7
CkBAIC04NTEsNyArODUxLDcgQEAgdm9pZCBFd2tWaWV3OjpyZXF1ZXN0Q29sb3JQaWNrZXIoV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdAogICAgIGlmIChtX2Nv
bG9yUGlja2VyKQogICAgICAgICBkaXNtaXNzQ29sb3JQaWNrZXIoKTsKIAotICAgIG1fY29sb3JQ
aWNrZXIgPSBFd2tDb2xvclBpY2tlcjo6Y3JlYXRlKGxpc3RlbmVyLCBjb2xvcik7CisgICAgbV9j
b2xvclBpY2tlciA9IEV3a0NvbG9yUGlja2VyOjpjcmVhdGUocGlja2VyLCBjb2xvcik7CiAKICAg
ICBzZC0+YXBpLT5pbnB1dF9waWNrZXJfY29sb3JfcmVxdWVzdChzZCwgbV9jb2xvclBpY2tlci5n
ZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5k
ZXggYTlmMDExNzE2YmI0NTgzOWY0NjZmODUyNGI1MjAzZmVjMTNkOWM5Yi4uNzg5MTkzNzhkMWVh
ZTE0YTFhYmQyOGY3Yjk0OTFjMTc3OTVjYzQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtNjUsNiArNjUsOSBAQCBjbGFzcyBWaWV3Q2xpZW50RWZs
OwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjsKIGNsYXNzIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRFZmw7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK2Ns
YXNzIFdlYkNvbG9yUGlja2VyRWZsOworI2VuZGlmCiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFz
cyBXZWJQYWdlUHJveHk7CiAKQEAgLTE2Niw3ICsxNjksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZvaWQgcmVxdWVzdENvbG9yUGlja2Vy
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKKyAgICB2b2lkIHJlcXVlc3RDb2xvclBpY2tlcihXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyRWZsKiBwaWNrZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAgICAgdm9pZCBkaXNtaXNz
Q29sb3JQaWNrZXIoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29sb3JfcGlja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXIuY3BwCmluZGV4IDExNDEzOTRjYmFkN2RkZTcx
MDhkZjY4Y2EyOWJlMTM2ZGYyYWJjY2YuLmQzOWQwZDUwZDI3YWQyOTAxNmZlMzRkMGFmOWI0NTNh
OTU0MjBlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb2xvcl9waWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb2xvcl9waWNrZXIuY3BwCkBAIC0yOCwxOCArMjgsMTggQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1Fd2tDb2xvclBp
Y2tlcjo6RXdrQ29sb3JQaWNrZXIoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGNvbG9y
UGlja2VyTGlzdGVuZXIsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCi0gICAgOiBtX2NvbG9y
UGlja2VyTGlzdGVuZXIoY29sb3JQaWNrZXJMaXN0ZW5lcikKK0V3a0NvbG9yUGlja2VyOjpFd2tD
b2xvclBpY2tlcihXZWJDb2xvclBpY2tlckVmbCogcGlja2VyLCBjb25zdCBDb2xvciYgaW5pdGlh
bENvbG9yKQorICAgIDogbV9jb2xvclBpY2tlcihwaWNrZXIpCiAgICAgLCBtX2NvbG9yKGluaXRp
YWxDb2xvcikKIHsKIH0KIAogdm9pZCBFd2tDb2xvclBpY2tlcjo6c2V0Q29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBjb2xvclN0cmluZyhB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb2xvci5zZXJpYWxpemVkKCku
dXRmOCgpLmRhdGEoKSkpOwotICAgIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9y
KG1fY29sb3JQaWNrZXJMaXN0ZW5lci5nZXQoKSwgY29sb3JTdHJpbmcuZ2V0KCkpOworICAgIG1f
Y29sb3JQaWNrZXItPmRpZENob29zZUNvbG9yKGNvbG9yKTsKIH0KIAogY29uc3QgQ29sb3ImIEV3
a0NvbG9yUGlja2VyOjpjb2xvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXJfcHJpdmF0ZS5oCmluZGV4IDI5
ZDAzNjA3OWU5ODI4NzU3MDNjMjQ1MTU0M2M0ZTkxOWY3MTI1ZGIuLjZiYzJmOTVjZjA1Nzk2M2Q1
OWZkZWRkZWIyODI3NmM4NWYxNzEwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXJfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb2xvcl9waWNrZXJfcHJpdmF0ZS5oCkBAIC0yNCwy
MyArMjQsMjQgQEAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIAogI2luY2x1ZGUgIldL
UmV0YWluUHRyLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogY2xhc3MgRXdr
Q29sb3JQaWNrZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a0NvbG9yUGlj
a2VyPiBjcmVhdGUoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGNvbG9yUGlja2VyTGlz
dGVuZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCisgICAgc3RhdGljIFBh
c3NPd25QdHI8RXdrQ29sb3JQaWNrZXI+IGNyZWF0ZShXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZs
KiBwaWNrZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a0NvbG9yUGlja2VyKGNvbG9yUGlja2VyTGlzdGVu
ZXIsIGluaXRpYWxDb2xvcikpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a0NvbG9y
UGlja2VyKHBpY2tlciwgaW5pdGlhbENvbG9yKSk7CiAgICAgfQogCiAgICAgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb2xvcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYpOwogCiBwcml2YXRlOgotICAgIEV3a0NvbG9yUGlja2VyKFdLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclJlZiBjb2xvclBpY2tlckxpc3RlbmVyLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYgaW5pdGlhbENvbG9yKTsKKyAgICBFd2tDb2xvclBpY2tlcihXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyRWZsKiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcik7CiAKLSAgICBXS1Jl
dGFpblB0cjxXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWY+IG1fY29sb3JQaWNrZXJMaXN0
ZW5lcjsKKyAgICBXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsKiBtX2NvbG9yUGlja2VyOwogICAg
IFdlYkNvcmU6OkNvbG9yIG1fY29sb3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKaW5kZXggNTQ4OGVhMTM2NDQ1YTcwNmE2Yjll
OWYwZTFjOGVkZTBjMjQ5NTZmYS4uNGVkZmEwYTFiYmI0ZTE3OTlkNzMzNDYwMzFiZDU5ZGNhNDIz
MWRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGll
bnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50
RWZsLmNwcApAQCAtNzksMTAgKzc5LDYgQEAgUGFnZVVJQ2xpZW50RWZsOjpQYWdlVUlDbGllbnRF
ZmwoRXdrVmlldyogdmlldykKICNlbmRpZgogICAgIHVpQ2xpZW50LnJ1bk9wZW5QYW5lbCA9IHJ1
bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5jcmVhdGVOZXdQYWdlID0gY3JlYXRlTmV3UGFnZTsK
LSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICB1aUNsaWVudC5zaG93Q29sb3JQaWNr
ZXIgPSBzaG93Q29sb3JQaWNrZXI7Ci0gICAgdWlDbGllbnQuaGlkZUNvbG9yUGlja2VyID0gaGlk
ZUNvbG9yUGlja2VyOwotI2VuZGlmCiAKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJl
ZiwgJnVpQ2xpZW50KTsKIApAQCAtMjI2LDIxICsyMjIsNiBAQCBXS1BhZ2VSZWYgUGFnZVVJQ2xp
ZW50RWZsOjpjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVz
dCwgVwogICAgIHJldHVybiB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LT5j
cmVhdGVOZXdQYWdlKHJlcXVlc3QsIHdrV2luZG93RmVhdHVyZXMpOwogfQogCi0jaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCi12b2lkIFBhZ2VVSUNsaWVudEVmbDo6c2hvd0NvbG9yUGlja2Vy
KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgUGFn
ZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZv
KTsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9X
VEZTdHJpbmcoaW5pdGlhbENvbG9yKSk7Ci0gICAgcGFnZVVJQ2xpZW50LT5tX3ZpZXctPnJlcXVl
c3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3IpOwotfQotCi12b2lkIFBhZ2VVSUNsaWVudEVm
bDo6aGlkZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNsaWVudCA9IHRvUGFnZVVJQ2xpZW50RWZsKGNs
aWVudEluZm8pOwotICAgIHBhZ2VVSUNsaWVudC0+bV92aWV3LT5kaXNtaXNzQ29sb3JQaWNrZXIo
KTsKLX0KLSNlbmRpZgotCiB2b2lkIFBhZ2VVSUNsaWVudEVmbDo6c2hvd1BvcHVwTWVudShXS1Bh
Z2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgbWVudUxpc3RlbmVyUmVmLCBXS1JlY3QgcmVj
dCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2Nh
bGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gdG9QYWdlVUlDbGllbnRFZmwoY2xp
ZW50SW5mbyktPm1fdmlldy0+cmVxdWVzdFBvcHVwTWVudShtZW51TGlzdGVuZXJSZWYsIHJlY3Qs
IHRleHREaXJlY3Rpb24sIHBhZ2VTY2FsZUZhY3RvciwgaXRlbXNSZWYsIHNlbGVjdGVkSW5kZXgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKaW5k
ZXggZGY0N2I5NzE2N2I0ODAxYTU5YmIxY2MzN2MyZDJhMDE5MTcxMzQzMS4uZTE0YWJjZDQxMjAy
ZTE2NjE1NmQ1YmNmN2NjYTVhMGY5ZTFmYTdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCkBAIC02OSwxMCArNjksNiBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgc3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVm
LCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdlKFdLUGFn
ZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopOwotI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQotICAgIHN0YXRpYyB2b2lkIHNob3dDb2xvclBpY2tlcihXS1BhZ2VSZWYsIFdLU3Ry
aW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmLCBjb25z
dCB2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgaGlkZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwgY29u
c3Qgdm9pZCopOwotI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBzaG93UG9wdXBNZW51KFdLUGFn
ZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiwgV0tSZWN0LCBXS1BvcHVwSXRlbVRleHREaXJl
Y3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYsIGludDMy
X3Qgc2VsZWN0ZWRJbmRleCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgaGlkZVBvcHVwTWVudShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZmMxOGVkZWJjNTYxMTAzODY1NzIwYTM3NDk3MTcyZjcwNThiZTQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
ckVmbC5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlckVmbC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisj
aW5jbHVkZSAiRXdrVmlldy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiZXdrX2NvbG9yX3BpY2tlcl9wcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJDb2xvclBpY2tlckVmbDo6V2ViQ29sb3JQaWNrZXJFZmwoRXdrVmlldyogZXdrVmlldywgV2Vi
Q29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpCisgICAg
OiBXZWJDb2xvclBpY2tlcihjbGllbnQpCisgICAgLCBtX2V3a1ZpZXcoZXdrVmlldykKK3sKKyAg
ICBBU1NFUlQobV9ld2tWaWV3KTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6ZW5kUGlj
a2VyKCkKK3sKKyAgICBtX2V3a1ZpZXctPmRpc21pc3NDb2xvclBpY2tlcigpOworfQorCit2b2lk
IFdlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGNvbG9yKQoreworICAgIG1fZXdrVmlldy0+cmVxdWVzdENvbG9yUGlja2VyKHRoaXMsIGNvbG9y
KTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJD
b2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9y
KQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50
LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CisKKyAgICAvLyBGSVhNRTogV2UgZG9uJ3QgbmVlZCB0
byBkaXNtaXNzIHBpY2tlcgorICAgIG1fZXdrVmlldy0+ZGlzbWlzc0NvbG9yUGlja2VyKCk7CisK
KyAgICBtX2NsaWVudC0+ZGlkRW5kQ29sb3JQaWNrZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWY4NTk3MGRjZGY2ZTVmMDljOTVlMjVlOGQ3ZjZl
NTJiNDE0MGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJDb2xvclBpY2tlckVmbC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9y
UGlja2VyRWZsX2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJFZmxfaAorCisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIuaCIKKworY2xhc3MgRXdr
VmlldzsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyRWZsIDog
cHVibGljIFdlYkNvbG9yUGlja2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJDb2xvclBpY2tlckVmbD4gY3JlYXRlKEV3a1ZpZXcqIGV3a1ZpZXcsIFdlYkNvbG9yUGlja2Vy
OjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJFZmwoZXdrVmll
dywgY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKKyAgICB9CisgICAgfldlYkNvbG9yUGlja2VyRWZs
KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikgT1ZFUlJJREU7CisKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7Citwcml2YXRlOgorICAgIFdlYkNvbG9yUGlja2VyRWZsKEV3a1ZpZXcqLCBXZWJDb2xv
clBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKworICAgIEV3a1ZpZXcq
IG1fZXdrVmlldzsKK307CisKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV2ViQ29sb3JQaWNrZXJF
ZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKaW5kZXgg
NTY2MGJlMTExYzQyZDBkMjVjNjFhODg3MDZhMTc2YjdiYThlOWM1Yi4uY2ZjZGZmZDZhMmVlNDli
NTNmMTE4MWE3ZDhkZWYzZGMyZGFkNzVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXdFZmwuY3BwCkBAIC00Myw2ICs0MywxMCBAQAogI2luY2x1ZGUgIkV3a1RvdWNo
RXZlbnQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVk
ZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgRXdrVmll
d0NhbGxiYWNrczsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjQsNCArMTI4LDEw
IEBAIHZvaWQgV2ViVmlld0VmbDo6c2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCogdG91Y2hF
dmVudCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCitQYXNzUmVm
UHRyPFdlYkNvbG9yUGlja2VyPiBXZWJWaWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdl
UHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpCit7CisgICAgcmV0dXJuIFdlYkNvbG9yUGlja2VyRWZsOjpjcmVhdGUobV9ld2tW
aWV3LCBwYWdlLCBjb2xvcik7Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaAppbmRleCBkNzE3MjM0YzZiNzhk
N2ZhZGUxMGU4YTViNjVhMTY0NWFjYjYyNWRkLi4zOGIwOWMxZDczNzg1NWU3YjE3NDBkZTZjM2Nl
NDg4YWY3MDQzYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlZpZXdFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwu
aApAQCAtNDgsNiArNDgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZFRvdWNoRXZlbnQoRXdr
VG91Y2hFdmVudCopOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IGNyZWF0ZUNvbG9yUGlja2VyKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpIE9WRVJSSURFOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViVmlld0VmbChXZWJDb250
ZXh0KiwgV2ViUGFnZUdyb3VwKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208110</attachid>
            <date>2013-08-05 01:28:16 -0700</date>
            <delta_ts>2013-08-05 02:39:20 -0700</delta_ts>
            <desc>another suggestion</desc>
            <filename>bug-119120-20130805172814.patch</filename>
            <type>text/plain</type>
            <size>27062</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDMzY2M5ZDViODc2YTZh
Nzc3MTZlOGM2Y2U2M2Q0NWUyMjdiODg2ZS4uYzYxMmEzNjVhYTg5NjUwYTJiMGMwYWJkNDgxZmQ4
NTZmOTU2NjhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgcjE1MzU0MSwgV0syIHBvcnQgcmVtb3Zl
ZCBhIHdheSB0byByZWdpc3RlciBQYWdlVUlDbGllbnQgQ2FsbGJhY2tzLAorICAgICAgICB3aGlj
aCBpcyBvbmx5IGZvciBFRkwgcG9ydC4KKyAgICAgICAgQnV0LCBFZmwgcG9ydCBzaG91bGQgZXhw
b3NlIHRoZW0gdG8gY2FsbGJhY2sgaW50ZXJmYWNlIGFzIFdLIEFQSS4KKworICAgICAgICBTbywg
dGhpcyBwYXRjaCBpbnRyb2R1Y2UgV0tDb2xvclBpY2tlckNsaWVudCB3aGljaCBpcyBuZXcgV0sg
aW50ZXJmYWNlCisgICAgICAgIG9ubHkgZm9yIEVmbCBwb3J0LgorCisgICAgICAgICogUGxhdGZv
cm1FZmwuY21ha2U6IEFkZGVkIFdlYkNvbG9yUGlja2VyQ2xpZW50LmNwcCBhbmQgV2ViQ29sb3JQ
aWNlckVmbC5jcHAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHA6
IEludHJvZHVjZWQgV0tDb2xvclBpY2tlckNsaWVudCBhbmQgc2V0dGVyLgorICAgICAgICAoV0tW
aWV3U2V0Q29sb3JQaWNrZXJDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3RWZsLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuY3BwOiBSZWZhY3RvcmVkIHRvIHVzZSBXZWJDb2xvclBpY2tlci4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OnNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkuaAorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkgb2JqZWN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcDog
UmVtb3ZlZCBjb2xvciBwaWNrZXIgY2FsbGJhY2tzIG9mIFBhZ2VVSUNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpQYWdlVUlDbGllbnRFZmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvVmlld0NsaWVudEVmbC5jcHA6IFJlZ2lzdGVyZWQgY2FsbGJhY2tzIG9mIFdLQ29sb3JQ
aWNrZXJDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OnNob3dDb2xvclBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbCk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBp
Y2tlckNsaWVudDo6ZW5kUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQ
aWNrZXJFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6
OldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6
OmVuZFBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29s
b3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0
ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRDaG9vc2VD
b2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjp+V2ViQ29sb3JQaWNrZXJFZmwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdFZmw6OmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdFZmw6OmNyZWF0ZUNvbG9yUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dl
YlZpZXdFZmwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0VmbDo6Y29sb3JQaWNrZXJDbGll
bnQpOgorCiAyMDEzLTA4LTAzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGFuZCBzdHlsZSBmaXggZm9yIHIxNTM2OTMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGRiYjc2NmJhZjIyZTE0NjU4MWUyODMzNzBl
YjMyNWYxMDBhNjMxYWMuLjEyMmEwODdlYzJmY2MzOTRhMWRkM2QxOGY5YmM1MGI2YzUxOTk5YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xMjEsNiArMTIxLDggQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9WaWJyYXRpb25DbGllbnRFZmwu
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9l
ZmwvV2ViVmlld0VmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50
LmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwCiAgICAgVUlQcm9j
ZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dE1l
bnVQcm94eUVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlld0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
d0VmbC5jcHAKaW5kZXggY2VmYTJkMzU4NzAxYzcyZGU5NTVlMDE0MDMxYmUzOGM4YjQ5NDQzMS4u
MmJlMGFhMjAwZWM0MzhjYTBlZTAxYzkzZjk1MGY2NDY4ZWU2NDc5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcApAQCAtMzMsNiArMzMs
MTYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAordm9pZCBXS1ZpZXdTZXRDb2xvclBp
Y2tlckNsaWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tDb2xvclBpY2tlckNsaWVudCog
d2tDbGllbnQpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgc3RhdGljX2Nh
c3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSktPmluaXRpYWxpemVDb2xvclBpY2tlckNs
aWVudCh3a0NsaWVudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2aWV3UmVmKTsKKyAgICBV
TlVTRURfUEFSQU0od2tDbGllbnQpOworI2VuZGlmCit9CisKIHZvaWQgV0tWaWV3UGFpbnRUb0Nh
aXJvU3VyZmFjZShXS1ZpZXdSZWYgdmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQog
ewogICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1JlZikpLT5wYWludFRv
Q2Fpcm9TdXJmYWNlKHN1cmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tWaWV3RWZsLmgKaW5kZXggZDhhZmRjNDMyOGFiMTlmNjQ4ZWFmYmVhMTU5OGMwM2Ex
ODNhMjZhZS4uZDgyYmVkYjQ5MTQ1NzM2OWIzNjllMDUzNDFlNzg2NDY2OWFjNzEzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oCkBAIC0zNCw2
ICszNCwyMSBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7
CiBleHRlcm4gIkMiIHsKICNlbmRpZgogCit0eXBlZGVmIHZvaWQgKCpXS1Nob3dDb2xvclBpY2tl
ckNhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwordHlwZWRlZiB2b2lkICgqV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjaykoV0tWaWV3UmVm
IHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tDb2xvclBpY2tlckNs
aWVudCB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpZW50SW5mbzsKKyAgICBXS1Nob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS0hpZGVDb2xvclBpY2tlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgIGVuZENvbG9yUGlja2VyOworfTsKK3R5cGVkZWYgc3Ry
dWN0IFdLQ29sb3JQaWNrZXJDbGllbnQgV0tDb2xvclBpY2tlckNsaWVudDsKKworZW51bSB7IGtX
S0NvbG9yUGlja2VyQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCB2b2lk
IFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KFdLVmlld1JlZiBwYWdlLCBjb25zdCBXS0NvbG9y
UGlja2VyQ2xpZW50KiBjbGllbnQpOworCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdQYWludFRvQ2Fp
cm9TdXJmYWNlKFdLVmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90Kik7CiAKIFdLX0VYUE9SVCBXS0lt
YWdlUmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuY3BwCmluZGV4IGMwYzJjMjIyMTI4NTc2NzAzNDE0MzlmNjRhZjk3YWZmNTAxZjJiOTgu
LmVkNWIxOTFmZDVmNGZmMGQ1ODNlMTdmNmJmN2UxZmM4YzFiMTY3YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkuY3BwCkBAIC0yNywzMiArMjcsMjQgQEAKICNpbmNsdWRlICJXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJF
ZmwuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKK1dl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5KFdlYkNvbG9yUGlja2VyRWZsKiBjb2xvclBpY2tlcikKKyAgICA6IG1fY29sb3JQ
aWNrZXIoY29sb3JQaWNrZXIpCiB7CisgICAgQVNTRVJUKG1fY29sb3JQaWNrZXIpOwogfQogCiBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkoKQogewogfQogCi12b2lkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wYWdlID0gMDsKLX0KLQogdm9pZCBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OnNldENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3Ip
CiB7Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS0+c2V0
Q29sb3JQaWNrZXJDb2xvcihXZWJDb3JlOjpDb2xvcihjb2xvcikpOwotICAgIG1fcGFnZS0+ZW5k
Q29sb3JQaWNrZXIoKTsKKyAgICBtX2NvbG9yUGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3Jl
OjpDb2xvcihjb2xvcikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkuaAppbmRleCBkMjhlYjhhYTk1YzJkOGRiMDZkMjFiYjc0NjAxZGE5ZGNlZTFhNDdk
Li40MGZiMWYwNDk5NGJkZmJkMWU1YjdmYWViMzM3NzYxZGNlOTMyN2E0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eS5oCkBAIC0zNSwyOCArMzUsMjcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LWNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdlYkNvbG9yUGlja2VyRWZsOwogCiBjbGFzcyBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXI7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBjcmVhdGUoV2ViQ29s
b3JQaWNrZXJFZmwqIGNvbG9yUGlja2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkocGFnZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShjb2xv
clBpY2tlcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eSgpOwogCi0gICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCBzZXRDb2xv
cihjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkoV2ViUGFnZVByb3h5Kik7CisgICAgZXhwbGljaXQgV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYkNvbG9yUGlja2VyRWZsKik7CiAKICAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAotICAgIFJlZlB0
cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKKyAgICBXZWJDb2xvclBpY2tlckVmbCogbV9jb2xvclBp
Y2tlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkNzVkNDZiNTY2NWIwMTI5OGI0OTFiNzMyYjBkZmZj
ZWNlMTU4NmVmLi44MTJmMTk5MWZiMjg3ODFkYjVkZDJiYzIwNmI5ZjU1Y2MyOTE0YzYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTMsNyArNTMsNiBA
QAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGExODJhMDljZGY0NzdjNDRkOGE0ZDg2MjJhM2QyMGI2YmQ2OTgzZmIuLmQ4
NWNmYTAxM2YwMTY5YWE1ZTllODBkMDU2MTc5YzQ5MWMyZmY2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMDUsNyArMTIwNSw2IEBAIHByaXZhdGU6CiAj
ZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBSZWZQdHI8V2ViQ29sb3JQ
aWNrZXI+IG1fY29sb3JQaWNrZXI7Ci0gICAgUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwogI2VuZGlmCiAKICAgICB1
aW50NjRfdCBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVVJQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZVVJQ2xpZW50RWZsLmNwcAppbmRleCA1NDg4ZWExMzY0NDVhNzA2YTZiOWU5ZjBlMWM4ZWRlMGMy
NDk1NmZhLi40ZWRmYTBhMWJiYjRlMTc5OWQ3MzM0NjAzMWJkNTlkY2E0MjMxZGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCkBAIC03
OSwxMCArNzksNiBAQCBQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbChFd2tWaWV3KiB2
aWV3KQogI2VuZGlmCiAgICAgdWlDbGllbnQucnVuT3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwog
ICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwotI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQotICAgIHVpQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xv
clBpY2tlcjsKLSAgICB1aUNsaWVudC5oaWRlQ29sb3JQaWNrZXIgPSBoaWRlQ29sb3JQaWNrZXI7
Ci0jZW5kaWYKIAogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAmdWlDbGllbnQp
OwogCkBAIC0yMjYsMjEgKzIyMiw2IEBAIFdLUGFnZVJlZiBQYWdlVUlDbGllbnRFZmw6OmNyZWF0
ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYgd2tSZXF1ZXN0LCBXCiAgICAgcmV0
dXJuIHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXctPmNyZWF0ZU5ld1BhZ2Uo
cmVxdWVzdCwgd2tXaW5kb3dGZWF0dXJlcyk7CiB9CiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLXZvaWQgUGFnZVVJQ2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBX
S1N0cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwq
IHBhZ2VVSUNsaWVudCA9IHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pOwotICAgIFdlYkNv
cmU6OkNvbG9yIGNvbG9yID0gV2ViQ29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhpbml0
aWFsQ29sb3IpKTsKLSAgICBwYWdlVUlDbGllbnQtPm1fdmlldy0+cmVxdWVzdENvbG9yUGlja2Vy
KGxpc3RlbmVyLCBjb2xvcik7Ci19Ci0KLXZvaWQgUGFnZVVJQ2xpZW50RWZsOjpoaWRlQ29sb3JQ
aWNrZXIoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBhZ2VVSUNs
aWVudEVmbCogcGFnZVVJQ2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0g
ICAgcGFnZVVJQ2xpZW50LT5tX3ZpZXctPmRpc21pc3NDb2xvclBpY2tlcigpOwotfQotI2VuZGlm
Ci0KIHZvaWQgUGFnZVVJQ2xpZW50RWZsOjpzaG93UG9wdXBNZW51KFdLUGFnZVJlZiwgV0tQb3B1
cE1lbnVMaXN0ZW5lclJlZiBtZW51TGlzdGVuZXJSZWYsIFdLUmVjdCByZWN0LCBXS1BvcHVwSXRl
bVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tB
cnJheVJlZiBpdGVtc1JlZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIHJldHVybiB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92
aWV3LT5yZXF1ZXN0UG9wdXBNZW51KG1lbnVMaXN0ZW5lclJlZiwgcmVjdCwgdGV4dERpcmVjdGlv
biwgcGFnZVNjYWxlRmFjdG9yLCBpdGVtc1JlZiwgc2VsZWN0ZWRJbmRleCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaAppbmRleCBkZjQ3Yjk3MTY3
YjQ4MDFhNTliYjFjYzM3YzJkMmEwMTkxNzEzNDMxLi5lMTRhYmNkNDEyMDJlMTY2MTU2ZDViY2Y3
Y2NhNWEwZjllMWZhN2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1BhZ2VVSUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZVVJQ2xpZW50RWZsLmgKQEAgLTY5LDEwICs2OSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBz
dGF0aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS09wZW5QYW5l
bFBhcmFtZXRlcnNSZWYsIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQq
KTsKICAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJl
cXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkKik7Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAg
c3RhdGljIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlh
bENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKLSAg
ICBzdGF0aWMgdm9pZCBoaWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7Ci0j
ZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVw
TWVudUxpc3RlbmVyUmVmLCBXS1JlY3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiwgZG91Ymxl
IHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtc1JlZiwgaW50MzJfdCBzZWxlY3RlZElu
ZGV4LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBoaWRlUG9wdXBN
ZW51KFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAppbmRleCBlMTQyMTRmYTQ5Y2MzY2Q3
Yjc4ZGQ0YzJlZTViYmEzZTQ0MTNjMWU2Li4zNjE0YzgzMjU5OGFiY2Q0ZGM4NjEwY2IwNWQ4NWM0
OWExOTEwMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdD
bGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVu
dEVmbC5jcHAKQEAgLTE2Niw2ICsxNjYsMTkgQEAgdm9pZCBWaWV3Q2xpZW50RWZsOjpkb25lV2l0
aFRvdWNoRXZlbnQoV0tWaWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYgZXZlbnQsIGJvb2wgd2EKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFZpZXdDbGllbnRF
Zmw6OnNob3dDb2xvclBpY2tlcihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmIGNvbG9yU3RyaW5nLCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJL
aXQ6OnRvV1RGU3RyaW5nKGNvbG9yU3RyaW5nKSk7CisgICAgdG9Fd2tWaWV3KGNsaWVudEluZm8p
LT5yZXF1ZXN0Q29sb3JQaWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKK30KKwordm9pZCBWaWV3Q2xp
ZW50RWZsOjplbmRDb2xvclBpY2tlcihXS1ZpZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Cit7CisgICAgdG9Fd2tWaWV3KGNsaWVudEluZm8pLT5kaXNtaXNzQ29sb3JQaWNrZXIoKTsKK30K
KyNlbmRpZgorCiBWaWV3Q2xpZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAg
ICAgOiBtX3ZpZXcodmlldykKIHsKQEAgLTE5MCwxMSArMjAzLDI1IEBAIFZpZXdDbGllbnRFZmw6
OlZpZXdDbGllbnRFZmwoRXdrVmlldyogdmlldykKICNlbmRpZgogCiAgICAgV0tWaWV3U2V0Vmll
d0NsaWVudChtX3ZpZXctPndrVmlldygpLCAmdmlld0NsaWVudCk7CisKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKKyAgICBXS0NvbG9yUGlja2VyQ2xpZW50IGNvbG9yUGlja2VyQ2xpZW50
OworICAgIG1lbXNldCgmY29sb3JQaWNrZXJDbGllbnQsIDAsIHNpemVvZihXS0NvbG9yUGlja2Vy
Q2xpZW50KSk7CisgICAgY29sb3JQaWNrZXJDbGllbnQudmVyc2lvbiA9IGtXS0NvbG9yUGlja2Vy
Q2xpZW50Q3VycmVudFZlcnNpb247CisgICAgY29sb3JQaWNrZXJDbGllbnQuY2xpZW50SW5mbyA9
IHRoaXM7CisgICAgY29sb3JQaWNrZXJDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9y
UGlja2VyOworICAgIGNvbG9yUGlja2VyQ2xpZW50LmVuZENvbG9yUGlja2VyID0gZW5kQ29sb3JQ
aWNrZXI7CisgICAgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwg
JmNvbG9yUGlja2VyQ2xpZW50KTsKKyNlbmRpZgogfQogCiBWaWV3Q2xpZW50RWZsOjp+Vmlld0Ns
aWVudEVmbCgpCiB7CiAgICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXctPndrVmlldygpLCAw
KTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdLVmlld1NldENvbG9yUGlj
a2VyQ2xpZW50KG1fdmlldy0+d2tWaWV3KCksIDApOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3
Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwu
aAppbmRleCBhMzg0Y2Y1OTdkNGE5ZDBmYjJlOWVlMGZmZWI1ZmEwMWEzYTg0ZDY0Li4wN2Q3MTAw
YzViZmU1ODJjZGI1NmVjNTkxOTZiZmY3MGEzMWU0OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaApAQCAtNjAsNiArNjAsMTAgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0YXRpYyB2b2lkIGRvbmVXaXRoVG91Y2hF
dmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZiwgYm9vbCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHN0YXRpYyB2b2lk
IHNob3dDb2xvclBpY2tlcihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmLCBXS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lk
IGVuZENvbG9yUGlja2VyKFdLVmlld1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisjZW5k
aWYKIAogICAgIEV3a1ZpZXcqIG1fdmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZDgx
ZmNhMzM5NGYzODdmZDNjMmM2ZTE5YTI3ZmFmZDk3ZDEyYWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJDbGllbnQ6
OnNob3dDb2xvclBpY2tlcihXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBTdHJpbmcmIGNvbG9yLCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIpCit7CisgICAgaWYgKCFtX2Ns
aWVudC5zaG93Q29sb3JQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnNo
b3dDb2xvclBpY2tlcih0b0FQSSh3ZWJWaWV3KSwgdG9BUEkoY29sb3IuaW1wbCgpKSwgbGlzdGVu
ZXIsIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyQ2xpZW50
OjplbmRQaWNrZXIoV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIW1fY2xpZW50LmVuZENv
bG9yUGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5lbmRDb2xvclBpY2tl
cih0b0FQSSh3ZWJWaWV3KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30KKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE5YzdiZGQ3ZTEyMGVmMTExODVkZjgxZjEzMThlMTA1ZjQ3OWVkMzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJDb2xvclBpY2tlckNsaWVudF9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyQ2xpZW50
X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIkFQSUNsaWVudC5o
IgorI2luY2x1ZGUgIldLVmlld0VmbC5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyQ2xpZW50OiBwdWJsaWMgQVBJQ2xp
ZW50PFdLQ29sb3JQaWNrZXJDbGllbnQsIGtXS0NvbG9yUGlja2VyQ2xpZW50Q3VycmVudFZlcnNp
b24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNob3dDb2xvclBpY2tlcihXZWJWaWV3KiwgY29uc3Qg
U3RyaW5nJiwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmKTsKKyAgICB2b2lkIGVuZFBp
Y2tlcihXZWJWaWV3Kik7Cit9OworCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdlYkNvbG9yUGlj
a2VyQ2xpZW50X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJD
b2xvclBpY2tlckVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkMTZkZDQ3MDU3ZjZjYTY4MTI2YWFjM2Rk
N2UxOTVhZmNiZGY3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVm
bC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbChXZWJW
aWV3RWZsKiB3ZWJWaWV3LCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikKKyAgICA6IFdlYkNvbG9yUGlja2VyKGNsaWVudCkKKyAgICAsIG1fd2Vi
Vmlldyh3ZWJWaWV3KQoreworICAgIEFTU0VSVChtX3dlYlZpZXcpOworICAgIG1fY29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lciA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIoKQorewor
ICAgIG1fd2ViVmlldy0+Y29sb3JQaWNrZXJDbGllbnQoKS5lbmRQaWNrZXIobV93ZWJWaWV3KTsK
K30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBtX3dlYlZpZXctPmNvbG9yUGlja2VyQ2xpZW50KCku
c2hvd0NvbG9yUGlja2VyKG1fd2ViVmlldywgY29sb3Iuc2VyaWFsaXplZCgpLCB0b0FQSShtX2Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuZ2V0KCkpKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tl
ckVmbDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Cisg
ICAgbV9jbGllbnQtPmRpZEVuZENvbG9yUGlja2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJkZTc4NzRhMmFmZTRjYWY4YzFmMjc1NjgwNDYyZmJm
OWVmYzgwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJFZmwuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYkNvbG9yUGlja2VyRWZsX2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJFZmxf
aAorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNr
ZXIuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKKyNp
bmNsdWRlICJXZWJWaWV3RWZsLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJD
b2xvclBpY2tlckVmbCA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJFZmw+IGNyZWF0ZShXZWJWaWV3RWZsKiB3ZWJW
aWV3LCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9y
JiBpbml0aWFsQ29sb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNv
bG9yUGlja2VyRWZsKHdlYlZpZXcsIGNsaWVudCwgaW5pdGlhbENvbG9yKSk7CisgICAgfQorICAg
IH5XZWJDb2xvclBpY2tlckVmbCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb2xvclBpY2tlcihj
b25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOworCisgICAgdm9pZCBkaWRDaG9vc2VDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworcHJpdmF0ZToKKyAgICBXZWJDb2xvclBpY2tlckVm
bChXZWJWaWV3RWZsKiwgV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisKKyAgICBXZWJWaWV3RWZsKiBtX3dlYlZpZXc7CisgICAgUmVmUHRyPFdlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwor
fTsKKworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXZWJDb2xvclBpY2tlckVmbF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAppbmRleCA1NjYwYmUxMTFjNDJk
MGQyNWM2MWE4ODcwNmExNzZiN2JhOGU5YzViLi44NDI3ZmRiMDczMWRmYzIzNWE3ODA2NTA0Zjcw
NTE4MDc3MmM0ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0Vm
bC5jcHAKQEAgLTQzLDYgKzQzLDEwIEBACiAjaW5jbHVkZSAiRXdrVG91Y2hFdmVudC5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBp
Y2tlckVmbC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyNCw0ICsxMjgsMTYgQEAgdm9pZCBXZWJW
aWV3RWZsOjpzZW5kVG91Y2hFdmVudChFd2tUb3VjaEV2ZW50KiB0b3VjaEV2ZW50KQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViVmlld0VmbDo6aW5p
dGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnQqIGNsaWVu
dCkKK3sKKyAgICBtX2NvbG9yUGlja2VyQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwor
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gV2ViVmlld0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIo
V2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKQoreworICAgIHJldHVybiBXZWJDb2xvclBpY2tlckVmbDo6Y3JlYXRl
KHRoaXMsIHBhZ2UsIGNvbG9yKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKaW5kZXggZDcxNzIzNGM2
Yjc4ZDdmYWRlMTBlOGE1YjY1YTE2NDVhY2I2MjVkZC4uM2E0NWY3YmYwMmQ0NjIzODE0NTEzNGZi
YzAwMmRiODNhZWZkMzAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3
RWZsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViVmlld0VmbF9oCiAjZGVmaW5lIFdl
YlZpZXdFZmxfaAogCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJWaWV3LmgiCiAKIGNsYXNzIEV3a1ZpZXc7CkBAIC00OCw2ICs0OSwxMyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZW5kVG91Y2hFdmVudChFd2tUb3VjaEV2ZW50Kik7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQgaW5pdGlhbGl6ZUNvbG9yUGlja2Vy
Q2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnQqKTsKKworICAgIFdlYkNvbG9yUGlja2Vy
Q2xpZW50JiBjb2xvclBpY2tlckNsaWVudCgpIHsgcmV0dXJuIG1fY29sb3JQaWNrZXJDbGllbnQ7
IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IGNyZWF0ZUNvbG9yUGlj
a2VyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIE9WRVJSSURFOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViVmlld0VmbChX
ZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKik7CiAKQEAgLTYwLDYgKzY4LDEwIEBAIHByaXZhdGU6
CiBwcml2YXRlOgogICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKIAorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorICAgIFdlYkNvbG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7
CisjZW5kaWYKKwogICAgIGZyaWVuZCBjbGFzcyBXZWJWaWV3OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208113</attachid>
            <date>2013-08-05 02:39:32 -0700</date>
            <delta_ts>2013-08-05 02:57:43 -0700</delta_ts>
            <desc>another suggestion</desc>
            <filename>bug-119120-20130805183926.patch</filename>
            <type>text/plain</type>
            <size>42447</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDMzY2M5ZDViODc2YTZh
Nzc3MTZlOGM2Y2U2M2Q0NWUyMjdiODg2ZS4uNThiMzY2OTJmZjAwMTUwNDdhMTBiODhiNTk2MTlh
Y2MwNWU0MmNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgcjE1MzU0MSwgV0syIHBvcnQgcmVtb3Zl
ZCBhIHdheSB0byByZWdpc3RlciBQYWdlVUlDbGllbnQgQ2FsbGJhY2tzLAorICAgICAgICB3aGlj
aCBpcyBvbmx5IGZvciBFRkwgcG9ydC4KKyAgICAgICAgQnV0LCBFZmwgcG9ydCBzaG91bGQgZXhw
b3NlIHRoZW0gdG8gY2FsbGJhY2sgaW50ZXJmYWNlIGFzIFdLIEFQSS4KKworICAgICAgICBTbywg
dGhpcyBwYXRjaCBpbnRyb2R1Y2UgV0tDb2xvclBpY2tlckNsaWVudCB3aGljaCBpcyBuZXcgV0sg
aW50ZXJmYWNlCisgICAgICAgIG9ubHkgZm9yIEVmbCBwb3J0LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IE1vdmVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgdG8g
UGxhdGZvcm1FZmwuY21ha2UuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3Zl
ZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZmlsZXMgd2hpY2ggaXMgb25seSBm
b3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFk
ZGVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAsIFdlYkNvbG9yUGlja2Vy
Q2xpZW50LmNwcCBhbmQgV2ViQ29sb3JQaWNlckVmbC5jcHAuCisgICAgICAgICogVGFyZ2V0LnBy
aTogUmVtb3ZlZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZmlsZXMgd2hpY2gg
aXMgb25seSBmb3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXdFZmwuY3BwOiBJbnRyb2R1Y2VkIFdLQ29sb3JQaWNrZXJDbGllbnQgYW5k
IHNldHRlci4KKyAgICAgICAgKFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6IFJlbW92ZWQgdW5uZWNlc3NhcnkgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
IG9iamVjdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHA6IFJl
bW92ZWQgY29sb3IgcGlja2VyIGNhbGxiYWNrcyBvZiBQYWdlVUlDbGllbnQuCisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmll
d0NsaWVudEVmbC5jcHA6IFJlZ2lzdGVyZWQgY2FsbGJhY2tzIG9mIFdLQ29sb3JQaWNrZXJDbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OnNob3dDb2xvclBpY2tlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKToKKyAgICAgICAg
KFdlYktpdDo6Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6
OlZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1ZpZXdDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
Q2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyQ2xpZW50
OjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckNsaWVu
dDo6ZW5kUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9y
UGlja2VyRWZsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmVuZFBpY2tl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNrZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcik6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRDaG9vc2VDb2xvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyRWZsOjp+V2ViQ29sb3JQaWNrZXJFZmwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmguCisgICAgICAg
IChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp0eXBlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3RWZsOjppbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNz
L2VmbC9XZWJWaWV3RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdFZmw6OmNvbG9yUGlj
a2VyQ2xpZW50KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IFJlbW92ZWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IGZpbGVzIHdoaWNoIGlz
IG9ubHkgZm9yIEVmbCBmcm9tIHNvdXJjZSBsaXN0LgorCiAyMDEzLTA4LTAzICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxk
IGFuZCBzdHlsZSBmaXggZm9yIHIxNTM2OTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1Njc1
MTZiYTg1NGYyYmU4MjBmYTE3OTg3YWQ5NTAxNzIxMTUzNjguLmVlNjg5MmIyNjEyNDg0YmE2M2Ey
ZDg2Y2RkYmY1MWMxNDkwYTRiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0yNjYsNyArMjY2
LDYgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQ
cm9jZXNzL1dlYkNvbG9yUGlja2VyLmNwcAotICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkYzkz
M2M0MmM5YTUxMzgyMGNkMzk2OWQ2OWYwOTE1MDllZjI4OTJmLi4wOTBjODUzNmZhYmUzOWNiNDdh
ODEzMGM2Y2YyODUwMjIxZjcxOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTUxLDcgKzUxLDYgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tC
YXR0ZXJ5U3RhdHVzLmggXAotCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaCBcCkBAIC01NzMs
OCArNTcyLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQmF0dGVyeVN0YXR1cy5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0UHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZGJiNzY2
YmFmMjJlMTQ2NTgxZTI4MzM3MGViMzI1ZjEwMGE2MzFhYy4uZThiM2FhYTcxNjZiZGVmM2JiMjVm
MjU3ZDgzZjVlMzFjMWZhNmRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEyMSw2
ICsxMjEsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZs
L1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwu
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAorICAgIFVJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
ckVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eS5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCiAgICAgVUlQcm9j
ZXNzL2VmbC9XZWJDb250ZXh0TWVudVByb3h5RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGUxNTM4Yjc4Yzcx
ZjE0NzI4NDE5Y2I1MzdhOGExNzNjNjIxOTQ3MGUuLmI2MDE4YjVmOGY3YmM5YWM0ZTkyM2QyNmM1
MjQ5MmM1M2I1ZTZjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTU5LDcgKzE1OSw2IEBAIEhFQURFUlMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeVN0YXR1cy5oIFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQ3JlZGVudGlhbC5oIFwKQEAgLTUyNCw3ICs1MjMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0
ZXJ5U3RhdHVzLmNwcCBcCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
RGF0YWJhc2VNYW5hZ2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlld0VmbC5jcHAKaW5kZXggY2VmYTJkMzU4NzAxYzcyZGU5NTVlMDE0MDMxYmUz
OGM4YjQ5NDQzMS4uMmJlMGFhMjAwZWM0MzhjYTBlZTAxYzkzZjk1MGY2NDY4ZWU2NDc5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcApA
QCAtMzMsNiArMzMsMTYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAordm9pZCBXS1Zp
ZXdTZXRDb2xvclBpY2tlckNsaWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tDb2xvclBp
Y2tlckNsaWVudCogd2tDbGllbnQpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSktPmluaXRpYWxpemVD
b2xvclBpY2tlckNsaWVudCh3a0NsaWVudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2aWV3
UmVmKTsKKyAgICBVTlVTRURfUEFSQU0od2tDbGllbnQpOworI2VuZGlmCit9CisKIHZvaWQgV0tW
aWV3UGFpbnRUb0NhaXJvU3VyZmFjZShXS1ZpZXdSZWYgdmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90
KiBzdXJmYWNlKQogewogICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1Jl
ZikpLT5wYWludFRvQ2Fpcm9TdXJmYWNlKHN1cmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmgKaW5kZXggZDhhZmRjNDMyOGFiMTlmNjQ4ZWFm
YmVhMTU5OGMwM2ExODNhMjZhZS4uZDgyYmVkYjQ5MTQ1NzM2OWIzNjllMDUzNDFlNzg2NDY2OWFj
NzEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1Zp
ZXdFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0Vm
bC5oCkBAIC0zNCw2ICszNCwyMSBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWly
b19zdXJmYWNlX3Q7CiBleHRlcm4gIkMiIHsKICNlbmRpZgogCit0eXBlZGVmIHZvaWQgKCpXS1No
b3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tTdHJpbmdSZWYgaW5pdGlh
bENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFj
aykoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tD
b2xvclBpY2tlckNsaWVudCB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS1Nob3dDb2xvclBpY2tlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS0hpZGVDb2xv
clBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGVuZENvbG9yUGlja2VyOworfTsK
K3R5cGVkZWYgc3RydWN0IFdLQ29sb3JQaWNrZXJDbGllbnQgV0tDb2xvclBpY2tlckNsaWVudDsK
KworZW51bSB7IGtXS0NvbG9yUGlja2VyQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07CisKK1dL
X0VYUE9SVCB2b2lkIFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KFdLVmlld1JlZiBwYWdlLCBj
b25zdCBXS0NvbG9yUGlja2VyQ2xpZW50KiBjbGllbnQpOworCiBXS19FWFBPUlQgdm9pZCBXS1Zp
ZXdQYWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90Kik7CiAKIFdL
X0VYUE9SVCBXS0ltYWdlUmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGMy
YzIyMjEyODU3NjcwMzQxNDM5ZjY0YWY5N2FmZjUwMWYyYjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgotCi0jaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCi0KLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6V2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKLSAgICA6IG1fcGFn
ZShwYWdlKQotewotfQotCi1XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKQotewotfQotCi12b2lkIFdlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wYWdlID0gMDsK
LX0KLQotdm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OnNldENvbG9yKGNv
bnN0IFN0cmluZyYgY29sb3IpCi17Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcGFnZS0+c2V0Q29sb3JQaWNrZXJDb2xvcihXZWJDb3JlOjpDb2xvcihjb2xvcikp
OwotICAgIG1fcGFnZS0+ZW5kQ29sb3JQaWNrZXIoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI4ZWI4YWE5NWMyZDhkYjA2
ZDIxYmI3NDYwMWRhOWRjZWUxYTQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9o
Ci0jZGVmaW5lIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCi0KLSNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFn
ZVByb3h5OwotCi1jbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqIHBh
Z2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJQcm94eShwYWdlKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+V2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAg
ICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqKTsKLQotICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCi0gICAgUmVm
UHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLQotI2VuZGlmIC8vIFdlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGQ3NWQ0NmI1NjY1YjAxMjk4YjQ5MWI3MzJiMGRmZmNlY2UxNTg2
ZWYuLjgxMmYxOTkxZmIyODc4MWRiNWRkMmJjMjA2YjlmNTVjYzI5MTRjNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5j
bHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0
SXRlbS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
ICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVz
ZXJNZXNzYWdlQ29kZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggYTE4MmEwOWNkZjQ3N2M0NGQ4YTRkODYyMmEzZDIwYjZiZDY5ODNmYi4uZDg1Y2ZhMDEz
ZjAxNjlhYTVlOWU4MGQwNTYxNzljNDkxYzJmZjY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTIwNSw3ICsxMjA1LDYgQEAgcHJpdmF0ZToKICNlbmRpZgog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4g
bV9jb2xvclBpY2tlcjsKLSAgICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5PiBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7CiAjZW5kaWYKIAogICAgIHVpbnQ2NF90
IG1fcGFnZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdl
VUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGll
bnRFZmwuY3BwCmluZGV4IDU0ODhlYTEzNjQ0NWE3MDZhNmI5ZTlmMGUxYzhlZGUwYzI0OTU2ZmEu
LjRlZGZhMGExYmJiNGUxNzk5ZDczMzQ2MDMxYmQ1OWRjYTQyMzFkZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKQEAgLTc5LDEwICs3
OSw2IEBAIFBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAj
ZW5kaWYKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBydW5PcGVuUGFuZWw7CiAgICAgdWlD
bGllbnQuY3JlYXRlTmV3UGFnZSA9IGNyZWF0ZU5ld1BhZ2U7Ci0jaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi0gICAgdWlDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9yUGlja2Vy
OwotICAgIHVpQ2xpZW50LmhpZGVDb2xvclBpY2tlciA9IGhpZGVDb2xvclBpY2tlcjsKLSNlbmRp
ZgogCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVudCk7CiAKQEAg
LTIyNiwyMSArMjIyLDYgQEAgV0tQYWdlUmVmIFBhZ2VVSUNsaWVudEVmbDo6Y3JlYXRlTmV3UGFn
ZShXS1BhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFcKICAgICByZXR1cm4gdG9Q
YWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldy0+Y3JlYXRlTmV3UGFnZShyZXF1ZXN0
LCB3a1dpbmRvd0ZlYXR1cmVzKTsKIH0KIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQot
dm9pZCBQYWdlVUlDbGllbnRFZmw6OnNob3dDb2xvclBpY2tlcihXS1BhZ2VSZWYsIFdLU3RyaW5n
UmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBhZ2VVSUNsaWVudEVmbCogcGFnZVVJ
Q2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0gICAgV2ViQ29yZTo6Q29s
b3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRvV1RGU3RyaW5nKGluaXRpYWxDb2xv
cikpOwotICAgIHBhZ2VVSUNsaWVudC0+bV92aWV3LT5yZXF1ZXN0Q29sb3JQaWNrZXIobGlzdGVu
ZXIsIGNvbG9yKTsKLX0KLQotdm9pZCBQYWdlVUlDbGllbnRFZmw6OmhpZGVDb2xvclBpY2tlcihX
S1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgUGFnZVVJQ2xpZW50RWZs
KiBwYWdlVUlDbGllbnQgPSB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKTsKLSAgICBwYWdl
VUlDbGllbnQtPm1fdmlldy0+ZGlzbWlzc0NvbG9yUGlja2VyKCk7Ci19Ci0jZW5kaWYKLQogdm9p
ZCBQYWdlVUlDbGllbnRFZmw6OnNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVwTWVudUxp
c3RlbmVyUmVmIG1lbnVMaXN0ZW5lclJlZiwgV0tSZWN0IHJlY3QsIFdLUG9wdXBJdGVtVGV4dERp
cmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBXS0FycmF5UmVm
IGl0ZW1zUmVmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7CiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXctPnJl
cXVlc3RQb3B1cE1lbnUobWVudUxpc3RlbmVyUmVmLCByZWN0LCB0ZXh0RGlyZWN0aW9uLCBwYWdl
U2NhbGVGYWN0b3IsIGl0ZW1zUmVmLCBzZWxlY3RlZEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCmluZGV4IGRmNDdiOTcxNjdiNDgwMWE1
OWJiMWNjMzdjMmQyYTAxOTE3MTM0MzEuLmUxNGFiY2Q0MTIwMmUxNjYxNTZkNWJjZjdjY2E1YTBm
OWUxZmE3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJ
Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGll
bnRFZmwuaApAQCAtNjksMTAgKzY5LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHN0YXRpYyB2
b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLT3BlblBhbmVsUGFyYW1l
dGVyc1JlZiwgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCopOwogICAg
IHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLVVJMUmVxdWVzdFJl
ZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24s
IGNvbnN0IHZvaWQqKTsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGF0aWMg
dm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0aWFsQ29sb3Is
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCopOwotICAgIHN0YXRp
YyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKLSNlbmRpZgog
CiAgICAgc3RhdGljIHZvaWQgc2hvd1BvcHVwTWVudShXS1BhZ2VSZWYsIFdLUG9wdXBNZW51TGlz
dGVuZXJSZWYsIFdLUmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNj
YWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGhpZGVQb3B1cE1lbnUoV0tQ
YWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCmluZGV4IGUxNDIxNGZhNDljYzNjZDdiNzhkZDRj
MmVlNWJiYTNlNDQxM2MxZTYuLjM2MTRjODMyNTk4YWJjZDRkYzg2MTBjYjA1ZDg1YzQ5YTE5MTAz
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNw
cApAQCAtMTY2LDYgKzE2NiwxOSBAQCB2b2lkIFZpZXdDbGllbnRFZmw6OmRvbmVXaXRoVG91Y2hF
dmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZiBldmVudCwgYm9vbCB3YQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgVmlld0NsaWVudEVmbDo6c2hv
d0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYgY29sb3JTdHJpbmcsIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9X
VEZTdHJpbmcoY29sb3JTdHJpbmcpKTsKKyAgICB0b0V3a1ZpZXcoY2xpZW50SW5mbyktPnJlcXVl
c3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3IpOworfQorCit2b2lkIFZpZXdDbGllbnRFZmw6
OmVuZENvbG9yUGlja2VyKFdLVmlld1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICB0b0V3a1ZpZXcoY2xpZW50SW5mbyktPmRpc21pc3NDb2xvclBpY2tlcigpOworfQorI2VuZGlm
CisKIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwoRXdrVmlldyogdmlldykKICAgICA6IG1f
dmlldyh2aWV3KQogewpAQCAtMTkwLDExICsyMDMsMjUgQEAgVmlld0NsaWVudEVmbDo6Vmlld0Ns
aWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAKICAgICBXS1ZpZXdTZXRWaWV3Q2xpZW50
KG1fdmlldy0+d2tWaWV3KCksICZ2aWV3Q2xpZW50KTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorICAgIFdLQ29sb3JQaWNrZXJDbGllbnQgY29sb3JQaWNrZXJDbGllbnQ7CisgICAg
bWVtc2V0KCZjb2xvclBpY2tlckNsaWVudCwgMCwgc2l6ZW9mKFdLQ29sb3JQaWNrZXJDbGllbnQp
KTsKKyAgICBjb2xvclBpY2tlckNsaWVudC52ZXJzaW9uID0ga1dLQ29sb3JQaWNrZXJDbGllbnRD
dXJyZW50VmVyc2lvbjsKKyAgICBjb2xvclBpY2tlckNsaWVudC5jbGllbnRJbmZvID0gdGhpczsK
KyAgICBjb2xvclBpY2tlckNsaWVudC5zaG93Q29sb3JQaWNrZXIgPSBzaG93Q29sb3JQaWNrZXI7
CisgICAgY29sb3JQaWNrZXJDbGllbnQuZW5kQ29sb3JQaWNrZXIgPSBlbmRDb2xvclBpY2tlcjsK
KyAgICBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChtX3ZpZXctPndrVmlldygpLCAmY29sb3JQ
aWNrZXJDbGllbnQpOworI2VuZGlmCiB9CiAKIFZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZs
KCkKIHsKICAgICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmlldy0+d2tWaWV3KCksIDApOworCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGll
bnQobV92aWV3LT53a1ZpZXcoKSwgMCk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCmluZGV4
IGEzODRjZjU5N2Q0YTlkMGZiMmU5ZWUwZmZlYjVmYTAxYTNhODRkNjQuLjA3ZDcxMDBjNWJmZTU4
MmNkYjU2ZWM1OTE5NmJmZjcwYTMxZTQ5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvVmlld0NsaWVudEVmbC5oCkBAIC02MCw2ICs2MCwxMCBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RhdGljIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KFdL
Vmlld1JlZiwgV0tUb3VjaEV2ZW50UmVmLCBib29sLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
ICNlbmRpZgorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgc3RhdGljIHZvaWQgc2hvd0Nv
bG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZW5kQ29s
b3JQaWNrZXIoV0tWaWV3UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyNlbmRpZgogCiAg
ICAgRXdrVmlldyogbV92aWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNkODFmY2EzMzk0
ZjM4N2ZkM2MyYzZlMTlhMjdmYWZkOTdkMTJhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb2xvclBpY2tlckNsaWVudDo6c2hvd0Nv
bG9yUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgY29sb3IsIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNo
b3dDb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc2hvd0NvbG9y
UGlja2VyKHRvQVBJKHdlYlZpZXcpLCB0b0FQSShjb2xvci5pbXBsKCkpLCBsaXN0ZW5lciwgbV9j
bGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJDbGllbnQ6OmVuZFBp
Y2tlcihXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGlmICghbV9jbGllbnQuZW5kQ29sb3JQaWNr
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmVuZENvbG9yUGlja2VyKHRvQVBJ
KHdlYlZpZXcpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTljN2JkZDdlMTIwZWYxMTE4NWRmODFmMTMxOGUxMDVmNDc5ZWQzOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJD
bGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1
bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkNvbG9yUGlja2VyQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJDbGllbnRfaAorCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5j
bHVkZSAiV0tWaWV3RWZsLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJDbGllbnQ6IHB1YmxpYyBBUElDbGllbnQ8V0tD
b2xvclBpY2tlckNsaWVudCwga1dLQ29sb3JQaWNrZXJDbGllbnRDdXJyZW50VmVyc2lvbj4gewor
cHVibGljOgorICAgIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdlYlZpZXcqLCBjb25zdCBTdHJpbmcm
LCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYpOworICAgIHZvaWQgZW5kUGlja2VyKFdl
YlZpZXcqKTsKK307CisKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV2ViQ29sb3JQaWNrZXJDbGll
bnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xv
clBpY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlj
a2VyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWQxNmRkNDcwNTdmNmNhNjgxMjZhYWMzZGQ3ZTE5NWFm
Y2JkZjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJDb2xvclBpY2tlckVmbC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyRWZsLmgiCisK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgImV3a19jb2xvcl9waWNrZXJfcHJpdmF0ZS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKFdlYlZpZXdFZmwq
IHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKQorICAgIDogV2ViQ29sb3JQaWNrZXIoY2xpZW50KQorICAgICwgbV93ZWJWaWV3KHdl
YlZpZXcpCit7CisgICAgQVNTRVJUKG1fd2ViVmlldyk7CisgICAgbV9jb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhp
cyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OmVuZFBpY2tlcigpCit7CisgICAgbV93
ZWJWaWV3LT5jb2xvclBpY2tlckNsaWVudCgpLmVuZFBpY2tlcihtX3dlYlZpZXcpOworfQorCit2
b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29s
b3ImIGNvbG9yKQoreworICAgIG1fd2ViVmlldy0+Y29sb3JQaWNrZXJDbGllbnQoKS5zaG93Q29s
b3JQaWNrZXIobV93ZWJWaWV3LCBjb2xvci5zZXJpYWxpemVkKCksIHRvQVBJKG1fY29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lci5nZXQoKSkpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpz
ZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpkaWRDaG9vc2VDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9yKGNvbG9yKTsKKyAgICBtX2Ns
aWVudC0+ZGlkRW5kQ29sb3JQaWNrZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQ
aWNrZXJFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJF
ZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMmRlNzg3NGEyYWZlNGNhZjhjMWYyNzU2ODA0NjJmYmY5ZWZjODAx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xv
clBpY2tlckVmbC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViQ29sb3JQaWNrZXJFZmxfaAorI2RlZmluZSBXZWJDb2xvclBpY2tlckVmbF9oCisKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlci5oIgor
I2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorI2luY2x1ZGUg
IldlYlZpZXdFZmwuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yUGlj
a2VyRWZsIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJDb2xvclBpY2tlckVmbD4gY3JlYXRlKFdlYlZpZXdFZmwqIHdlYlZpZXcsIFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRp
YWxDb2xvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNr
ZXJFZmwod2ViVmlldywgY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKKyAgICB9CisgICAgfldlYkNv
bG9yUGlja2VyRWZsKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29s
b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2VyKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJik7Citwcml2YXRlOgorICAgIFdlYkNvbG9yUGlja2VyRWZsKFdlYlZp
ZXdFZmwqLCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
KworICAgIFdlYlZpZXdFZmwqIG1fd2ViVmlldzsKKyAgICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5PiBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7Cit9OworCit9
CisjZW5kaWYKKworI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyRWZsX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDViMTkxZmQ1ZjRmZjBkNTgzZTE3ZjZi
ZjdlMWZjOGMxYjE2N2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwCkBAIC0wLDAgKzEs
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyRWZsLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2Vi
Q29sb3JQaWNrZXJFZmwqIGNvbG9yUGlja2VyKQorICAgIDogbV9jb2xvclBpY2tlcihjb2xvclBp
Y2tlcikKK3sKKyAgICBBU1NFUlQobV9jb2xvclBpY2tlcik7Cit9CisKK1dlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgp
Cit7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpzZXRDb2xv
cihjb25zdCBTdHJpbmcmIGNvbG9yKQoreworICAgIG1fY29sb3JQaWNrZXItPmRpZENob29zZUNv
bG9yKFdlYkNvcmU6OkNvbG9yKGNvbG9yKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGZiMWYwNDk5NGJkZmJkMWU1YjdmYWViMzM3NzYxZGNl
OTMyN2E0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eV9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCisKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
Q29sb3JQaWNrZXJFZmw7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsKKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eT4gY3JlYXRlKFdlYkNvbG9y
UGlja2VyRWZsKiBjb2xvclBpY2tlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KGNvbG9yUGlja2VyKSk7CisgICAg
fQorCisgICAgdmlydHVhbCB+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7CisK
KyAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJDb2xvclBpY2tlckVmbCop
OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisK
KyAgICBXZWJDb2xvclBpY2tlckVmbCogbV9jb2xvclBpY2tlcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNlbmRp
ZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKaW5kZXggNTY2MGJlMTExYzQyZDBkMjVjNjFh
ODg3MDZhMTc2YjdiYThlOWM1Yi4uODQyN2ZkYjA3MzFkZmMyMzVhNzgwNjUwNGY3MDUxODA3NzJj
NGZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCkBA
IC00Myw2ICs0MywxMCBAQAogI2luY2x1ZGUgIkV3a1RvdWNoRXZlbnQuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwu
aCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjQsNCArMTI4LDE2IEBAIHZvaWQgV2ViVmlld0VmbDo6
c2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCogdG91Y2hFdmVudCkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdlYlZpZXdFZmw6OmluaXRpYWxpemVD
b2xvclBpY2tlckNsaWVudChjb25zdCBXS0NvbG9yUGlja2VyQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgbV9jb2xvclBpY2tlckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK1Bhc3NSZWZQ
dHI8V2ViQ29sb3JQaWNrZXI+IFdlYlZpZXdFZmw6OmNyZWF0ZUNvbG9yUGlja2VyKFdlYlBhZ2VQ
cm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikKK3sKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSh0aGlzLCBw
YWdlLCBjb2xvcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCmluZGV4IGQ3MTcyMzRjNmI3OGQ3ZmFk
ZTEwZThhNWI2NWExNjQ1YWNiNjI1ZGQuLjNhNDVmN2JmMDJkNDYyMzgxNDUxMzRmYmMwMDJkYjgz
YWVmZDMwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
d0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYlZpZXdFZmxfaAogI2RlZmluZSBXZWJWaWV3RWZs
X2gKIAorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmll
dy5oIgogCiBjbGFzcyBFd2tWaWV3OwpAQCAtNDgsNiArNDksMTMgQEAgcHVibGljOgogICAgIHZv
aWQgc2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCopOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIGluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudChj
b25zdCBXS0NvbG9yUGlja2VyQ2xpZW50Kik7CisKKyAgICBXZWJDb2xvclBpY2tlckNsaWVudCYg
Y29sb3JQaWNrZXJDbGllbnQoKSB7IHJldHVybiBtX2NvbG9yUGlja2VyQ2xpZW50OyB9CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQ
YWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBPVkVSUklERTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlZpZXdFZmwoV2ViQ29udGV4
dCosIFdlYlBhZ2VHcm91cCopOwogCkBAIC02MCw2ICs2OCwxMCBAQCBwcml2YXRlOgogcHJpdmF0
ZToKICAgICBFd2tWaWV3KiBtX2V3a1ZpZXc7CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKKyAgICBXZWJDb2xvclBpY2tlckNsaWVudCBtX2NvbG9yUGlja2VyQ2xpZW50OworI2VuZGlm
CisKICAgICBmcmllbmQgY2xhc3MgV2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YzM4M2UxNThmMzBhYzNj
N2Y2ZjhmNjkyMjIzNDM3ZDg3Yjk0NzM2Li5jYTdlMWZlZWE1MGFmYmNkZWMyYjU1MDg1NjE5OWM3
YTVlYzFiZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMTk4LDcgKzExOTgsNiBAQAogCQlGMDM2OTc4NTE1RjRCRTZCMDBD
M0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5NzgzMTVGNEJFNkIwMEMzQTgwRSAv
KiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwICovOyB9OwogCQlGMDM2OTc4NjE1RjRC
RTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4NDE1RjRCRTZCMDBDM0E4
MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggKi87IH07CiAJCUYwMzY5Nzg4MTVG
NEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2Vi
Q29sb3JQaWNrZXIuY3BwICovOyB9OwotCQlGMDM2OTc4QjE1RjRCRjEzMDBDM0E4MEUgLyogV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovOyB9OwogCQlGNjExM0UyNTEyNkNF
MTgyMDA1N0QwQTcgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcg
LyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4MTI2Q0UxOUIw
MDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1N0QwQTcgLyog
V0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovOyB9OwogCQlGNjExM0UyOTEyNkNFMTlCMDA1
N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yNzI2LDggKzI3MjUsNiBAQAogCQlGMDM2OTc4MzE1RjRCRTZCMDBD
M0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg0MTVGNEJFNkIwMEMzQTgwRSAvKiBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAv
KiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3OEExNUY0QkYxMzAwQzNBODBF
IC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIFdl
YlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5
QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MDQ5LDggKzQwNDYsNiBAQAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcw
MDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJCQlGMDM2OTc4NzE1RjRCRjA1
MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovLAogCQkJCTNGODdCOUJGMTU4OTQwRDgw
MDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovLAotCQkJCUYwMzY5Nzg5MTVGNEJGMTMwMEMz
QTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAotCQkJCUYw
MzY5NzhBMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaCAqLywKIAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAg
LyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC02ODE2LDcgKzY4MTEsNiBAQAogCQkJCUJDMTExQTVB
MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJM0Y4N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGMDM2OTc4ODE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjAzNjk3OEIxNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzRB
NjI4RjE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzRBNjI5MTE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQTFGRUMxQzE2MjdCNDU3MDA3MDBGNkQgLyogV2ViQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208114</attachid>
            <date>2013-08-05 02:57:51 -0700</date>
            <delta_ts>2013-08-05 03:50:24 -0700</delta_ts>
            <desc>another suggestion</desc>
            <filename>bug-119120-20130805185748.patch</filename>
            <type>text/plain</type>
            <size>44774</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDMzY2M5ZDViODc2YTZh
Nzc3MTZlOGM2Y2U2M2Q0NWUyMjdiODg2ZS4uYzBjMWM3ZTM1ZTVlNGI3YjhkZTQ1Y2RjMzEyZTgx
MzUyODU3NTRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgcjE1MzU0MSwgV0syIHBvcnQgcmVtb3Zl
ZCBhIHdheSB0byByZWdpc3RlciBQYWdlVUlDbGllbnQgQ2FsbGJhY2tzLAorICAgICAgICB3aGlj
aCBpcyBvbmx5IGZvciBFRkwgcG9ydC4KKyAgICAgICAgQnV0LCBFZmwgcG9ydCBzaG91bGQgZXhw
b3NlIHRoZW0gdG8gY2FsbGJhY2sgaW50ZXJmYWNlIGFzIFdLIEFQSS4KKworICAgICAgICBTbywg
dGhpcyBwYXRjaCBpbnRyb2R1Y2UgV0tDb2xvclBpY2tlckNsaWVudCB3aGljaCBpcyBuZXcgV0sg
aW50ZXJmYWNlCisgICAgICAgIG9ubHkgZm9yIEVmbCBwb3J0LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IE1vdmVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgdG8g
UGxhdGZvcm1FZmwuY21ha2UuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3Zl
ZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZmlsZXMgd2hpY2ggaXMgb25seSBm
b3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFk
ZGVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAsIFdlYkNvbG9yUGlja2Vy
Q2xpZW50LmNwcCBhbmQgV2ViQ29sb3JQaWNlckVmbC5jcHAuCisgICAgICAgICogVGFyZ2V0LnBy
aTogUmVtb3ZlZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZmlsZXMgd2hpY2gg
aXMgb25seSBmb3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXdFZmwuY3BwOiBJbnRyb2R1Y2VkIFdLQ29sb3JQaWNrZXJDbGllbnQgYW5k
IHNldHRlci4KKyAgICAgICAgKFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkgZGVwZW5kZW5jeS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHA6
IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHA6IFJlbW92ZWQgY29sb3IgcGlj
a2VyIGNhbGxiYWNrcyBvZiBQYWdlVUlDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNs
aWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VV
SUNsaWVudEVmbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6
IFJlZ2lzdGVyZWQgY2FsbGJhY2tzIG9mIFdLQ29sb3JQaWNrZXJDbGllbnQuCisgICAgICAgIChX
ZWJLaXQ6OlZpZXdDbGllbnRFZmw6OnNob3dDb2xvclBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OlZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0Ns
aWVudEVmbDo6Vmlld0NsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6
On5WaWV3Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyQ2xpZW50OjpzaG93Q29sb3JQaWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmVuZFBpY2tlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRDaG9vc2VDb2xvcik6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JQaWNrZXJFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2Vy
RWZsOjp+V2ViQ29sb3JQaWNrZXJFZmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6
c2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmguCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpp
bml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZs
OjpjcmVhdGVDb2xvclBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdFZmw6OmNvbG9yUGlja2VyQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlbW92ZWQgV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IGZpbGVzIHdoaWNoIGlzIG9ubHkgZm9yIEVmbCBm
cm9tIHNvdXJjZSBsaXN0LgorCiAyMDEzLTA4LTAzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGFuZCBzdHlsZSBmaXgg
Zm9yIHIxNTM2OTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1Njc1MTZiYTg1NGYyYmU4MjBm
YTE3OTg3YWQ5NTAxNzIxMTUzNjguLmVlNjg5MmIyNjEyNDg0YmE2M2EyZDg2Y2RkYmY1MWMxNDkw
YTRiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0yNjYsNyArMjY2LDYgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyLmNwcAotICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiAgICAg
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkYzkzM2M0MmM5YTUxMzgyMGNk
Mzk2OWQ2OWYwOTE1MDllZjI4OTJmLi4wOTBjODUzNmZhYmUzOWNiNDdhODEzMGM2Y2YyODUwMjIx
ZjcxOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUxLDcgKzUxLDYgQEAg
d2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3RJdGVtLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1h
bmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmgg
XAotCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBcCiAJJChXZWJL
aXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKIAkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaCBcCkBAIC01NzMsOCArNTcyLDYgQEAgd2Vi
a2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0
ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5
U3RhdHVzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0
YXR1cy5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyLmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZGJiNzY2YmFmMjJlMTQ2NTgxZTI4
MzM3MGViMzI1ZjEwMGE2MzFhYy4uZThiM2FhYTcxNjZiZGVmM2JiMjVmMjU3ZDgzZjVlMzFjMWZh
NmRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEyMSw2ICsxMjEsOSBAQCBsaXN0
KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZsL1ZpYnJhdGlvbkNsaWVu
dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9j
ZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJD
bGllbnQuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAKKyAgICBV
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJDb250
ZXh0TWVudVByb3h5RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGUxNTM4Yjc4YzcxZjE0NzI4NDE5Y2I1Mzdh
OGExNzNjNjIxOTQ3MGUuLmI2MDE4YjVmOGY3YmM5YWM0ZTkyM2QyNmM1MjQ5MmM1M2I1ZTZjY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaQpAQCAtMTU5LDcgKzE1OSw2IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0YXR1
cy5oIFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dFByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5o
IFwKQEAgLTUyNCw3ICs1MjMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVy
eU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmNwcCBc
Ci0gICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tDcmVkZW50aWFsLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRGF0YWJhc2VNYW5hZ2Vy
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlld0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0Vm
bC5jcHAKaW5kZXggY2VmYTJkMzU4NzAxYzcyZGU5NTVlMDE0MDMxYmUzOGM4YjQ5NDQzMS4uMmJl
MGFhMjAwZWM0MzhjYTBlZTAxYzkzZjk1MGY2NDY4ZWU2NDc5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcApAQCAtMzMsNiArMzMsMTYg
QEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAordm9pZCBXS1ZpZXdTZXRDb2xvclBpY2tl
ckNsaWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tDb2xvclBpY2tlckNsaWVudCogd2tD
bGllbnQpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgc3RhdGljX2Nhc3Q8
V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSktPmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVu
dCh3a0NsaWVudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2aWV3UmVmKTsKKyAgICBVTlVT
RURfUEFSQU0od2tDbGllbnQpOworI2VuZGlmCit9CisKIHZvaWQgV0tWaWV3UGFpbnRUb0NhaXJv
U3VyZmFjZShXS1ZpZXdSZWYgdmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogewog
ICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1JlZikpLT5wYWludFRvQ2Fp
cm9TdXJmYWNlKHN1cmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXdFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tWaWV3RWZsLmgKaW5kZXggZDhhZmRjNDMyOGFiMTlmNjQ4ZWFmYmVhMTU5OGMwM2ExODNh
MjZhZS4uZDgyYmVkYjQ5MTQ1NzM2OWIzNjllMDUzNDFlNzg2NDY2OWFjNzEzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oCkBAIC0zNCw2ICsz
NCwyMSBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CiBl
eHRlcm4gIkMiIHsKICNlbmRpZgogCit0eXBlZGVmIHZvaWQgKCpXS1Nob3dDb2xvclBpY2tlckNh
bGxiYWNrKShXS1ZpZXdSZWYgdmlldywgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwordHlwZWRlZiB2b2lkICgqV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjaykoV0tWaWV3UmVmIHZp
ZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tDb2xvclBpY2tlckNsaWVu
dCB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50SW5mbzsKKyAgICBXS1Nob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS0hpZGVDb2xvclBpY2tlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgIGVuZENvbG9yUGlja2VyOworfTsKK3R5cGVkZWYgc3RydWN0
IFdLQ29sb3JQaWNrZXJDbGllbnQgV0tDb2xvclBpY2tlckNsaWVudDsKKworZW51bSB7IGtXS0Nv
bG9yUGlja2VyQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCB2b2lkIFdL
Vmlld1NldENvbG9yUGlja2VyQ2xpZW50KFdLVmlld1JlZiBwYWdlLCBjb25zdCBXS0NvbG9yUGlj
a2VyQ2xpZW50KiBjbGllbnQpOworCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdQYWludFRvQ2Fpcm9T
dXJmYWNlKFdLVmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90Kik7CiAKIFdLX0VYUE9SVCBXS0ltYWdl
UmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGMyYzIyMjEyODU3NjcwMzQx
NDM5ZjY0YWY5N2FmZjUwMWYyYjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Ci0KLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotewotfQot
Ci1XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkoKQotewotfQotCi12b2lkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wYWdlID0gMDsKLX0KLQotdm9pZCBXZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OnNldENvbG9yKGNvbnN0IFN0cmluZyYgY29s
b3IpCi17Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS0+
c2V0Q29sb3JQaWNrZXJDb2xvcihXZWJDb3JlOjpDb2xvcihjb2xvcikpOwotICAgIG1fcGFnZS0+
ZW5kQ29sb3JQaWNrZXIoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI4ZWI4YWE5NWMyZDhkYjA2ZDIxYmI3NDYwMWRhOWRj
ZWUxYTQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCi0jZGVmaW5lIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFnZVByb3h5OwotCi1jbGFz
cyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXI7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eShwYWdlKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5KCk7Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICB2b2lkIHNldENvbG9y
KGNvbnN0IFN0cmluZyYpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqKTsKLQotICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCi0gICAgUmVmUHRyPFdlYlBhZ2VQcm94
eT4gbV9wYWdlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKLQotI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGQ3NWQ0NmI1NjY1YjAxMjk4YjQ5MWI3MzJiMGRmZmNlY2UxNTg2ZWYuLjgxMmYxOTkxZmIy
ODc4MWRiNWRkMmJjMjA2YjlmNTVjYzI5MTRjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1
ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJz
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTE4MmEwOWNk
ZjQ3N2M0NGQ4YTRkODYyMmEzZDIwYjZiZDY5ODNmYi4uZDg1Y2ZhMDEzZjAxNjlhYTVlOWU4MGQw
NTYxNzljNDkxYzJmZjY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTIwNSw3ICsxMjA1LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsK
LSAgICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBtX2NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXI7CiAjZW5kaWYKIAogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggYmZhNGQ4ZTQzZTdlYjRm
ZjY3NTNhY2IzZWJmYzdjMzgxZmIyNDExYy4uMDhiMmZmZDQ3MzNmMjk0MzQ5NWI5MTViMTVlMjRm
ZWY5NDdiNGNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBA
IC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCIKICNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2luY2x1
ZGUgIldlYk51bWJlci5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTQzNCwyNCArNDMzLDQgQEAgYm9v
bCBXZWJVSUNsaWVudDo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdChXZWJQYWdlUHJveHkqIHBh
Z2UpCiAgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZEludGVycnVwdEphdmFTY3JpcHQodG9BUEko
cGFnZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCi1ib29sIFdlYlVJQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBw
YWdlLCBjb25zdCBTdHJpbmcmIGluaXRpYWxDb2xvciwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5KiBsaXN0ZW5lcikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tl
cikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2Vy
KHRvQVBJKHBhZ2UpLCB0b0FQSShpbml0aWFsQ29sb3IuaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIp
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXZWJV
SUNsaWVudDo6aGlkZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSkKLXsKLSAgICBpZiAo
IW1fY2xpZW50LmhpZGVDb2xvclBpY2tlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
bV9jbGllbnQuaGlkZUNvbG9yUGlja2VyKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggOTgxM2Y1NzU0YzgxM2Jm
MTY5YzZiM2M5MjhiOGU1YWE1ZmJhNDNiNy4uNzgzM2EyMGNlNGQ2YWI0MzM2OWExZjRlZjdlMWFi
Zjg2MzllM2I0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ5
LDcgKzQ5LDYgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7Ci1jbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk7CiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKQEAgLTExNywxMSArMTE2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZURhdGFU
b0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdp
bmF0aW5nVVJMU3RyaW5nLCBXZWJEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVycnVwdEph
dmFTY3JpcHQoV2ViUGFnZVByb3h5Kik7Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
LSAgICBib29sIHNob3dDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmLCBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqKTsKLSAgICBib29sIGhpZGVDb2xvclBp
Y2tlcihXZWJQYWdlUHJveHkqKTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAK
aW5kZXggNTQ4OGVhMTM2NDQ1YTcwNmE2YjllOWYwZTFjOGVkZTBjMjQ5NTZmYS4uNGVkZmEwYTFi
YmI0ZTE3OTlkNzMzNDYwMzFiZDU5ZGNhNDIzMWRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcApAQCAtNzksMTAgKzc5LDYgQEAgUGFn
ZVVJQ2xpZW50RWZsOjpQYWdlVUlDbGllbnRFZmwoRXdrVmlldyogdmlldykKICNlbmRpZgogICAg
IHVpQ2xpZW50LnJ1bk9wZW5QYW5lbCA9IHJ1bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5jcmVh
dGVOZXdQYWdlID0gY3JlYXRlTmV3UGFnZTsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
LSAgICB1aUNsaWVudC5zaG93Q29sb3JQaWNrZXIgPSBzaG93Q29sb3JQaWNrZXI7Ci0gICAgdWlD
bGllbnQuaGlkZUNvbG9yUGlja2VyID0gaGlkZUNvbG9yUGlja2VyOwotI2VuZGlmCiAKICAgICBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZiwgJnVpQ2xpZW50KTsKIApAQCAtMjI2LDIxICsy
MjIsNiBAQCBXS1BhZ2VSZWYgUGFnZVVJQ2xpZW50RWZsOjpjcmVhdGVOZXdQYWdlKFdLUGFnZVJl
ZiwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgVwogICAgIHJldHVybiB0b1BhZ2VVSUNsaWVu
dEVmbChjbGllbnRJbmZvKS0+bV92aWV3LT5jcmVhdGVOZXdQYWdlKHJlcXVlc3QsIHdrV2luZG93
RmVhdHVyZXMpOwogfQogCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi12b2lkIFBhZ2VV
SUNsaWVudEVmbDo6c2hvd0NvbG9yUGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlh
bENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCi17Ci0gICAgUGFnZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0
b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKTsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9
IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoaW5pdGlhbENvbG9yKSk7Ci0gICAg
cGFnZVVJQ2xpZW50LT5tX3ZpZXctPnJlcXVlc3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3Ip
OwotfQotCi12b2lkIFBhZ2VVSUNsaWVudEVmbDo6aGlkZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNs
aWVudCA9IHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pOwotICAgIHBhZ2VVSUNsaWVudC0+
bV92aWV3LT5kaXNtaXNzQ29sb3JQaWNrZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFBhZ2VVSUNs
aWVudEVmbDo6c2hvd1BvcHVwTWVudShXS1BhZ2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYg
bWVudUxpc3RlbmVyUmVmLCBXS1JlY3QgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRl
eHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYs
IGludDMyX3Qgc2VsZWN0ZWRJbmRleCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBy
ZXR1cm4gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldy0+cmVxdWVzdFBvcHVw
TWVudShtZW51TGlzdGVuZXJSZWYsIHJlY3QsIHRleHREaXJlY3Rpb24sIHBhZ2VTY2FsZUZhY3Rv
ciwgaXRlbXNSZWYsIHNlbGVjdGVkSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKaW5kZXggZGY0N2I5NzE2N2I0ODAxYTU5YmIxY2MzN2My
ZDJhMDE5MTcxMzQzMS4uZTE0YWJjZDQxMjAyZTE2NjE1NmQ1YmNmN2NjYTVhMGY5ZTFmYTdkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCkBA
IC02OSwxMCArNjksNiBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgcnVuT3Bl
blBhbmVsKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIFdL
UGFnZVJlZiBjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rp
b25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9p
ZCopOwotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0YXRpYyB2b2lkIHNob3dD
b2xvclBpY2tlcihXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUmVmLCBjb25zdCB2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgaGlk
ZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOwotI2VuZGlmCiAKICAgICBzdGF0
aWMgdm9pZCBzaG93UG9wdXBNZW51KFdLUGFnZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiwg
V0tSZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3Is
IFdLQXJyYXlSZWYgaXRlbXNSZWYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgaGlkZVBvcHVwTWVudShXS1BhZ2VSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
Vmlld0NsaWVudEVmbC5jcHAKaW5kZXggZTE0MjE0ZmE0OWNjM2NkN2I3OGRkNGMyZWU1YmJhM2U0
NDEzYzFlNi4uMzYxNGM4MzI1OThhYmNkNGRjODYxMGNiMDVkODVjNDlhMTkxMDMyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCkBAIC0xNjYs
NiArMTY2LDE5IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KFdLVmll
d1JlZiwgV0tUb3VjaEV2ZW50UmVmIGV2ZW50LCBib29sIHdhCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQordm9pZCBWaWV3Q2xpZW50RWZsOjpzaG93Q29sb3JQaWNr
ZXIoV0tWaWV3UmVmLCBXS1N0cmluZ1JlZiBjb2xvclN0cmluZywgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFdl
YkNvcmU6OkNvbG9yIGNvbG9yID0gV2ViQ29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhj
b2xvclN0cmluZykpOworICAgIHRvRXdrVmlldyhjbGllbnRJbmZvKS0+cmVxdWVzdENvbG9yUGlj
a2VyKGxpc3RlbmVyLCBjb2xvcik7Cit9CisKK3ZvaWQgVmlld0NsaWVudEVmbDo6ZW5kQ29sb3JQ
aWNrZXIoV0tWaWV3UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRvRXdrVmll
dyhjbGllbnRJbmZvKS0+ZGlzbWlzc0NvbG9yUGlja2VyKCk7Cit9CisjZW5kaWYKKwogVmlld0Ns
aWVudEVmbDo6Vmlld0NsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcp
CiB7CkBAIC0xOTAsMTEgKzIwMywyNSBAQCBWaWV3Q2xpZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3
a1ZpZXcqIHZpZXcpCiAjZW5kaWYKIAogICAgIFdLVmlld1NldFZpZXdDbGllbnQobV92aWV3LT53
a1ZpZXcoKSwgJnZpZXdDbGllbnQpOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgV0tDb2xvclBpY2tlckNsaWVudCBjb2xvclBpY2tlckNsaWVudDsKKyAgICBtZW1zZXQoJmNv
bG9yUGlja2VyQ2xpZW50LCAwLCBzaXplb2YoV0tDb2xvclBpY2tlckNsaWVudCkpOworICAgIGNv
bG9yUGlja2VyQ2xpZW50LnZlcnNpb24gPSBrV0tDb2xvclBpY2tlckNsaWVudEN1cnJlbnRWZXJz
aW9uOworICAgIGNvbG9yUGlja2VyQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOworICAgIGNvbG9y
UGlja2VyQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKKyAgICBjb2xv
clBpY2tlckNsaWVudC5lbmRDb2xvclBpY2tlciA9IGVuZENvbG9yUGlja2VyOworICAgIFdLVmll
d1NldENvbG9yUGlja2VyQ2xpZW50KG1fdmlldy0+d2tWaWV3KCksICZjb2xvclBpY2tlckNsaWVu
dCk7CisjZW5kaWYKIH0KIAogVmlld0NsaWVudEVmbDo6flZpZXdDbGllbnRFZmwoKQogewogICAg
IFdLVmlld1NldFZpZXdDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgMCk7CisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyAgICBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChtX3ZpZXct
PndrVmlldygpLCAwKTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgKaW5kZXggYTM4NGNmNTk3
ZDRhOWQwZmIyZTllZTBmZmViNWZhMDFhM2E4NGQ2NC4uMDdkNzEwMGM1YmZlNTgyY2RiNTZlYzU5
MTk2YmZmNzBhMzFlNDliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3
Q2xpZW50RWZsLmgKQEAgLTYwLDYgKzYwLDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICAgICBzdGF0aWMgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoV0tWaWV3UmVmLCBX
S1RvdWNoRXZlbnRSZWYsIGJvb2wsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogI2VuZGlmCisj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIo
V0tWaWV3UmVmLCBXS1N0cmluZ1JlZiwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDb2xvclBpY2tlcihX
S1ZpZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworI2VuZGlmCiAKICAgICBFd2tWaWV3
KiBtX3ZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJDb2xvclBpY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2Q4MWZjYTMzOTRmMzg3ZmQzYzJj
NmUxOWEyN2ZhZmQ5N2QxMmFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9y
UGlja2VyQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIFdlYkNvbG9yUGlja2VyQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIo
V2ViVmlldyogd2ViVmlldywgY29uc3QgU3RyaW5nJiBjb2xvciwgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUmVmIGxpc3RlbmVyKQoreworICAgIGlmICghbV9jbGllbnQuc2hvd0NvbG9yUGlj
a2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIodG9B
UEkod2ViVmlldyksIHRvQVBJKGNvbG9yLmltcGwoKSksIGxpc3RlbmVyLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKFdlYlZp
ZXcqIHdlYlZpZXcpCit7CisgICAgaWYgKCFtX2NsaWVudC5lbmRDb2xvclBpY2tlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuZW5kQ29sb3JQaWNrZXIodG9BUEkod2ViVmlldyks
IG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OWM3YmRkN2UxMjBlZjExMTg1ZGY4MWYxMzE4ZTEwNWY0NzllZDM4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNr
ZXJDbGllbnRfaAorI2RlZmluZSBXZWJDb2xvclBpY2tlckNsaWVudF9oCisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS1Zp
ZXdFZmwuaCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJDb2xvclBpY2tlckNsaWVudDogcHVibGljIEFQSUNsaWVudDxXS0NvbG9yUGlja2Vy
Q2xpZW50LCBrV0tDb2xvclBpY2tlckNsaWVudEN1cnJlbnRWZXJzaW9uPiB7CitwdWJsaWM6Cisg
ICAgdm9pZCBzaG93Q29sb3JQaWNrZXIoV2ViVmlldyosIGNvbnN0IFN0cmluZyYsIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclJlZik7CisgICAgdm9pZCBlbmRQaWNrZXIoV2ViVmlldyopOwor
fTsKKworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXZWJDb2xvclBpY2tlckNsaWVudF9oICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1ZDE2ZGQ0NzA1N2Y2Y2E2ODEyNmFhYzNkZDdlMTk1YWZjYmRmNzIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlj
a2VyRWZsLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKworI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiZXdrX2NvbG9yX3BpY2tlcl9wcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJDb2xvclBpY2tlckVmbDo6V2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCogd2ViVmlldywg
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpCisg
ICAgOiBXZWJDb2xvclBpY2tlcihjbGllbnQpCisgICAgLCBtX3dlYlZpZXcod2ViVmlldykKK3sK
KyAgICBBU1NFUlQobV93ZWJWaWV3KTsKKyAgICBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIg
PSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKK30KKwor
dm9pZCBXZWJDb2xvclBpY2tlckVmbDo6ZW5kUGlja2VyKCkKK3sKKyAgICBtX3dlYlZpZXctPmNv
bG9yUGlja2VyQ2xpZW50KCkuZW5kUGlja2VyKG1fd2ViVmlldyk7Cit9CisKK3ZvaWQgV2ViQ29s
b3JQaWNrZXJFZmw6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3Ip
Cit7CisgICAgbV93ZWJWaWV3LT5jb2xvclBpY2tlckNsaWVudCgpLnNob3dDb2xvclBpY2tlciht
X3dlYlZpZXcsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgdG9BUEkobV9jb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyLmdldCgpKSk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVk
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBjb2xvcikKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworICAgIG1fY2xpZW50LT5kaWRF
bmRDb2xvclBpY2tlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYyZGU3ODc0YTJhZmU0Y2FmOGMxZjI3NTY4MDQ2MmZiZjllZmM4MDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZs
LmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVs
ZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xv
clBpY2tlckVmbF9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyRWZsX2gKKworI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCisjaW5jbHVkZSAi
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViVmlld0Vm
bC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmwgOiBw
dWJsaWMgV2ViQ29sb3JQaWNrZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkNvbG9yUGlja2VyRWZsPiBjcmVhdGUoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQaWNr
ZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlckVmbCh3ZWJW
aWV3LCBjbGllbnQsIGluaXRpYWxDb2xvcikpOworICAgIH0KKyAgICB+V2ViQ29sb3JQaWNrZXJF
ZmwoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29s
b3ImKSBPVkVSUklERTsKKworICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKK3ByaXZhdGU6CisgICAgV2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCosIFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworCisgICAgV2Vi
Vmlld0VmbCogbV93ZWJWaWV3OworICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHk+IG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsKK307CisKK30KKyNlbmRpZgor
CisjZW5kaWYgLy8gV2ViQ29sb3JQaWNrZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNWIxOTFmZDVmNGZmMGQ1ODNlMTdmNmJmN2UxZmM4YzFi
MTY3YzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJDb2xvclBpY2tl
ckVmbCogY29sb3JQaWNrZXIpCisgICAgOiBtX2NvbG9yUGlja2VyKGNvbG9yUGlja2VyKQorewor
ICAgIEFTU0VSVChtX2NvbG9yUGlja2VyKTsKK30KKworV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCkKK3sKK30KKwor
dm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OnNldENvbG9yKGNvbnN0IFN0
cmluZyYgY29sb3IpCit7CisgICAgbV9jb2xvclBpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29y
ZTo6Q29sb3IoY29sb3IpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQwZmIxZjA0OTk0YmRmYmQxZTViN2ZhZWIzMzc3NjFkY2U5MzI3YTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKKyNkZWZp
bmUgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKKworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBpY2tl
ckVmbDsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IDogcHVibGlj
IEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBjcmVhdGUoV2ViQ29sb3JQaWNrZXJFZmwq
IGNvbG9yUGlja2VyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoY29sb3JQaWNrZXIpKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIH5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKTsKKworICAgIHZvaWQg
c2V0Q29sb3IoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYkNvbG9yUGlja2VyRWZsKik7CisKKyAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIFdlYkNv
bG9yUGlja2VyRWZsKiBtX2NvbG9yUGlja2VyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJWaWV3RWZsLmNwcAppbmRleCA1NjYwYmUxMTFjNDJkMGQyNWM2MWE4ODcwNmExNzZi
N2JhOGU5YzViLi44NDI3ZmRiMDczMWRmYzIzNWE3ODA2NTA0ZjcwNTE4MDc3MmM0ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKQEAgLTQzLDYgKzQz
LDEwIEBACiAjaW5jbHVkZSAiRXdrVG91Y2hFdmVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2VuZGlm
CisKIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTEyNCw0ICsxMjgsMTYgQEAgdm9pZCBXZWJWaWV3RWZsOjpzZW5kVG91Y2hF
dmVudChFd2tUb3VjaEV2ZW50KiB0b3VjaEV2ZW50KQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViVmlld0VmbDo6aW5pdGlhbGl6ZUNvbG9yUGlja2Vy
Q2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBtX2NvbG9y
UGlja2VyQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKworUGFzc1JlZlB0cjxXZWJDb2xv
clBpY2tlcj4gV2ViVmlld0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdl
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQor
eworICAgIHJldHVybiBXZWJDb2xvclBpY2tlckVmbDo6Y3JlYXRlKHRoaXMsIHBhZ2UsIGNvbG9y
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKaW5kZXggZDcxNzIzNGM2Yjc4ZDdmYWRlMTBlOGE1YjY1
YTE2NDVhY2I2MjVkZC4uM2E0NWY3YmYwMmQ0NjIzODE0NTEzNGZiYzAwMmRiODNhZWZkMzAxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgV2ViVmlld0VmbF9oCiAjZGVmaW5lIFdlYlZpZXdFZmxfaAogCisjaW5j
bHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAKIGNs
YXNzIEV3a1ZpZXc7CkBAIC00OCw2ICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kVG91
Y2hFdmVudChFd2tUb3VjaEV2ZW50Kik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorICAgIHZvaWQgaW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KGNvbnN0IFdLQ29s
b3JQaWNrZXJDbGllbnQqKTsKKworICAgIFdlYkNvbG9yUGlja2VyQ2xpZW50JiBjb2xvclBpY2tl
ckNsaWVudCgpIHsgcmV0dXJuIG1fY29sb3JQaWNrZXJDbGllbnQ7IH0KKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IGNyZWF0ZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURF
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViVmlld0VmbChXZWJDb250ZXh0KiwgV2ViUGFn
ZUdyb3VwKik7CiAKQEAgLTYwLDYgKzY4LDEwIEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIEV3
a1ZpZXcqIG1fZXdrVmlldzsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdl
YkNvbG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7CisjZW5kaWYKKwogICAgIGZy
aWVuZCBjbGFzcyBXZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDljMzgzZTE1OGYzMGFjM2M3ZjZmOGY2OTIy
MjM0MzdkODdiOTQ3MzYuLmNhN2UxZmVlYTUwYWZiY2RlYzJiNTUwODU2MTk5YzdhNWVjMWJmMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTExOTgsNyArMTE5OCw2IEBACiAJCUYwMzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODMxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgKi87IH07CiAJCUYwMzY5Nzg2MTVGNEJFNkIwMEMzQTgw
RSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg0MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLzsgfTsKIAkJRjAzNjk3ODgxNUY0QkYwNTAwQzNB
ODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tl
ci5jcHAgKi87IH07Ci0JCUYwMzY5NzhCMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjAzNjk3ODkxNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi87IH07CiAJCUY2MTEzRTI1MTI2Q0UxODIwMDU3RDBB
NyAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKIAkJRjYxMTNFMjgxMjZDRTE5QjAwNTdEMEE3IC8q
IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250
ZW50VVJMUGF0dGVybi5jcHAgKi87IH07CiAJCUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTI3MjYsOCArMjcyNSw2IEBACiAJCUYwMzY5NzgzMTVGNEJFNkIwMEMzQTgwRSAvKiBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjAzNjk3ODQxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3ODkxNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGMDM2OTc4QTE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogV2ViVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0Uy
NjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcg
LyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQwNDksOCArNDA0Niw2IEBACiAJCQkJQkM3MkJBMUMxMUU2NDkwNzAwMUVCNEVBIC8q
IFdlYkJhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAv
KiBXZWJDb2xvclBpY2tlci5jcHAgKi8sCiAJCQkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8q
IFdlYkNvbG9yUGlja2VyLmggKi8sCi0JCQkJRjAzNjk3ODkxNUY0QkYxMzAwQzNBODBFIC8qIFdl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8sCi0JCQkJRjAzNjk3OEExNUY0
QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oICovLAog
CQkJCUJDNEE2MkE1MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCAqLywKIAkJCQlCQzRBNjJBNjE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oICovLAogCQkJCUJDQjlFMjQyMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250
ZXh0LmNwcCAqLywKQEAgLTY4MTYsNyArNjgxMSw2IEBACiAJCQkJQkMxMTFBNUExMTJGNEZCQjAw
MzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRjg3QjlC
RDE1ODk0MDEyMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUYwMzY5Nzg4MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlGMDM2OTc4QjE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MjhGMTQ3MzEy
QkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2
MjkxMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208115</attachid>
            <date>2013-08-05 03:15:24 -0700</date>
            <delta_ts>2013-08-05 03:50:35 -0700</delta_ts>
            <desc>another suggestion</desc>
            <filename>bug-119120-20130805191521.patch</filename>
            <type>text/plain</type>
            <size>55806</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDMzY2M5ZDViODc2YTZh
Nzc3MTZlOGM2Y2U2M2Q0NWUyMjdiODg2ZS4uNzVhOTE5ODk4ODQ4N2Y0N2FiZmM5ZWE0NjYyNGQ3
NDZhZjBjZjgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgcjE1MzU0MSwgV0syIHBvcnQgcmVtb3Zl
ZCBhIHdheSB0byByZWdpc3RlciBQYWdlVUlDbGllbnQgQ2FsbGJhY2tzLAorICAgICAgICB3aGlj
aCBpcyBvbmx5IGZvciBFRkwgcG9ydC4KKyAgICAgICAgQnV0LCBFZmwgcG9ydCBzaG91bGQgZXhw
b3NlIHRoZW0gdG8gY2FsbGJhY2sgaW50ZXJmYWNlIGFzIFdLIEFQSS4KKworICAgICAgICBTbywg
dGhpcyBwYXRjaCBpbnRyb2R1Y2UgV0tDb2xvclBpY2tlckNsaWVudCB3aGljaCBpcyBuZXcgV0sg
aW50ZXJmYWNlCisgICAgICAgIG9ubHkgZm9yIEVmbCBwb3J0LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IE1vdmVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgdG8g
UGxhdGZvcm1FZmwuY21ha2UuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3Zl
ZCBDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHJlbGF0ZWQgZmlsZXMgd2hpY2ggYXJlIG9ubHkg
Zm9yIEVmbCBmcm9tIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBB
ZGRlZCBDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgcmVsYXRlZCBmaWxlcyBhbmQgbmV3
bHkgYWRkZWQgZmlsZXMgaW50byBzb3VyY2UgbGlzdC4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBS
ZW1vdmVkIENvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUg
b25seSBmb3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAu
CisgICAgICAgIChXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQpOgorICAgICAg
ICAoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwOiBJbnRy
b2R1Y2VkIFdLQ29sb3JQaWNrZXJDbGllbnQgYW5kIHNldHRlci4KKyAgICAgICAgKFdLVmlld1Nl
dENvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
d0VmbC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVt
b3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZGVwZW5k
ZW5jeS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNs
aWVudEVmbC5jcHA6IFJlbW92ZWQgY29sb3IgcGlja2VyIGNhbGxiYWNrcyBvZiBQYWdlVUlDbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6IFJlZ2lzdGVyZWQgY2FsbGJhY2tzIG9mIFdL
Q29sb3JQaWNrZXJDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OnNob3dD
b2xvclBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlj
a2VyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29sb3JQaWNrZXJFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJFZmw6OmVuZFBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpz
aG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0
U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRD
aG9vc2VDb2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjp+V2ViQ29sb3JQaWNrZXJFZmwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5LmguCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjppbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdFZmw6OmNvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IFJlbW92ZWQgQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciByZWxhdGVk
IGZpbGVzIHdoaWNoIGFyZSBvbmx5IGZvciBFZmwgZnJvbSBzb3VyY2UgbGlzdC4KKwogMjAxMy0w
OC0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBidWlsZCBhbmQgc3R5bGUgZml4IGZvciByMTUzNjkzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCA5NTY3NTE2YmE4NTRmMmJlODIwZmExNzk4N2FkOTUwMTcyMTE1MzY4Li5iODE4
YmU4ZDYzYmRkNzkzNDIwMjZkYjZmN2UzNDZmNWY4NjRiMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMjY2LDcgKzI2Niw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3Zp
ZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKLSAgICBVSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtMzIyLDcgKzMyMSw2IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dL
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGRjOTMzYzQyYzlhNTEzODIwY2QzOTY5ZDY5ZjA5MTUwOWVmMjg5MmYuLjUwOGE0MGQx
NThhNjM2YzRiMDJmMmVkOTdmOGQ5OTZkMTdiNjUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtNTEsNyArNTEsNiBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vz
cy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuaCBcCi0JJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQ
cml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
IFwKQEAgLTU3Myw4ICs1NzIsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIFwKLQlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXApAQCAtODg4LDggKzg4NSw2IEBAIHdlYmtp
dDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92
aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuaCBcCi0JU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAot
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYmI3NjZiYWYyMmUxNDY1ODFlMjgzMzcwZWIzMjVm
MTAwYTYzMWFjLi5mM2U4YTg4NDI0YzA0YjFhOTNlN2UzZDhkZTEwOTg0MzM4OGFkYzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDksNiArNDksNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkvQy9Db29yZGluYXRlZEdyYXBoaWNzL1dL
Vmlldy5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tFdmVudEVmbC5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLUGFnZUVmbC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLUG9wdXBJdGVtLmNwcApAQCAtMTIxLDYgKzEyMiw5IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0aW9uQ2xpZW50RWZsLmNwcAogICAgIFVJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYlZpZXdF
ZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKKyAgICBV
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29udGV4dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRNZW51UHJveHlFZmwu
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKaW5kZXggZTE1MzhiNzhjNzFmMTQ3Mjg0MTljYjUzN2E4YTE3M2M2MjE5NDcwZS4u
ZDI2YjdmNWFmMmQyMjdhNTZmYWU5Y2I2MzgyZDlkYWRiMjQ3ZGFkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBA
IC0xNTksNyArMTU5LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdl
ci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmggXAotICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmggXApAQCAtMjQzLDcgKzI0
Miw2IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNz
L1dlYkNvbG9yUGlja2VyLmggXAotICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRl
eHRDbGllbnQuaCBcCkBAIC01MjQsNyArNTIyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0
YXR1cy5jcHAgXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGFi
YXNlTWFuYWdlci5jcHAgXApAQCAtNjAxLDcgKzU5OCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAgXAot
ICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRlNTUzOWRlMTg0ZjBhMzg2YjY5MTYzMDBmMDBiZTQ3MDRkOTliZGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgiCi0KLSNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyR2V0VHlwZUlEKCkKLXsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICByZXR1cm4gdG9BUEkoV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpBUElUeXBl
KTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotdm9pZCBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJTZXRDb2xvcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlz
dGVuZXJSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIGNvbG9yKQotewotI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQotICAgIHRvSW1wbChsaXN0ZW5lclJlZiktPnNldENvbG9yKHRvV1RGU3RyaW5n
KGNvbG9yKSk7Ci0jZW5kaWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmZkNDczMmM5MTUyZGI4NjVlM2RmNzFmN2VjZGU5ZmY3Y2EyM2Rh
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCi0jZGVmaW5lIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lcl9oCi0KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotCi0jaWZkZWYgX19j
cGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcik7Ci0KLSNpZmRlZiBf
X2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRlNTUzOWRlMTg0ZjBhMzg2YjY5MTYzMDBmMDBiZTQ3MDRkOTliZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lckdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisgICAgcmV0dXJuIHRvQVBJKFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisK
K3ZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcikKK3sK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB0b0ltcGwobGlzdGVuZXJSZWYpLT5z
ZXRDb2xvcih0b1dURlN0cmluZyhjb2xvcikpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlm
ZjdjYTIzZGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9o
CisjZGVmaW5lIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlm
CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBl
SUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29s
b3IoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0
cmluZ1JlZiBjb2xvcik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRp
ZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCmluZGV4IGNlZmEyZDM1ODcwMWM3
MmRlOTU1ZTAxNDAzMWJlMzhjOGI0OTQ0MzEuLjJiZTBhYTIwMGVjNDM4Y2EwZWUwMWM5M2Y5NTBm
NjQ2OGVlNjQ3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tWaWV3RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlld0VmbC5jcHAKQEAgLTMzLDYgKzMzLDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKK3ZvaWQgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYs
IGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnQqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1Jl
ZikpLT5pbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQod2tDbGllbnQpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odmlld1JlZik7CisgICAgVU5VU0VEX1BBUkFNKHdrQ2xpZW50KTsKKyNlbmRp
ZgorfQorCiB2b2lkIFdLVmlld1BhaW50VG9DYWlyb1N1cmZhY2UoV0tWaWV3UmVmIHZpZXdSZWYs
IGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZs
Kj4odG9JbXBsKHZpZXdSZWYpKS0+cGFpbnRUb0NhaXJvU3VyZmFjZShzdXJmYWNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oCmluZGV4IGQ4YWZk
YzQzMjhhYjE5ZjY0OGVhZmJlYTE1OThjMDNhMTgzYTI2YWUuLmQ4MmJlZGI0OTE0NTczNjliMzY5
ZTA1MzQxZTc4NjQ2NjlhYzcxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXdFZmwuaApAQCAtMzQsNiArMzQsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nh
aXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAordHlw
ZWRlZiB2b2lkICgqV0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tWaWV3UmVmIHZpZXcsIFdL
U3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxp
c3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLSGlkZUNv
bG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKKworc3RydWN0IFdLQ29sb3JQaWNrZXJDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tTaG93
Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7
CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBlbmRD
b2xvclBpY2tlcjsKK307Cit0eXBlZGVmIHN0cnVjdCBXS0NvbG9yUGlja2VyQ2xpZW50IFdLQ29s
b3JQaWNrZXJDbGllbnQ7CisKK2VudW0geyBrV0tDb2xvclBpY2tlckNsaWVudEN1cnJlbnRWZXJz
aW9uID0gMCB9OworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChX
S1ZpZXdSZWYgcGFnZSwgY29uc3QgV0tDb2xvclBpY2tlckNsaWVudCogY2xpZW50KTsKKwogV0tf
RVhQT1JUIHZvaWQgV0tWaWV3UGFpbnRUb0NhaXJvU3VyZmFjZShXS1ZpZXdSZWYsIGNhaXJvX3N1
cmZhY2VfdCopOwogCiBXS19FWFBPUlQgV0tJbWFnZVJlZiBXS1ZpZXdDcmVhdGVTbmFwc2hvdChX
S1ZpZXdSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzBjMmMyMjIxMjg1NzY3MDM0MTQzOWY2NGFmOTdhZmY1MDFmMmI5OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIK
LQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqIHBh
Z2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLXsKLX0KLQotV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCkKLXsKLX0KLQot
dm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQotewot
ICAgIG1fcGFnZSA9IDA7Ci19Ci0KLXZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQotewotICAgIGlmICghbV9wYWdlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPnNldENvbG9yUGlja2VyQ29sb3IoV2ViQ29y
ZTo6Q29sb3IoY29sb3IpKTsKLSAgICBtX3BhZ2UtPmVuZENvbG9yUGlja2VyKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
OGViOGFhOTVjMmQ4ZGIwNmQyMWJiNzQ2MDFkYTlkY2VlMWE0N2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHlfaAotI2RlZmluZSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHlfaAotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYlBhZ2VQcm94eTsKLQotY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IFR5cGUgQVBJVHlwZSA9IFR5cGVDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwotCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5KiBwYWdlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkocGFnZSkpOwotICAgIH0KLQotICAgIHZp
cnR1YWwgfldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgpOwotCi0gICAgdm9pZCBp
bnZhbGlkYXRlKCk7Ci0gICAgdm9pZCBzZXRDb2xvcihjb25zdCBTdHJpbmcmKTsKLQotcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2ViUGFn
ZVByb3h5Kik7Ci0KLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5
cGU7IH0KLQotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNl
bmRpZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkNzVkNDZiNTY2NWIwMTI5OGI0OTFi
NzMyYjBkZmZjZWNlMTU4NmVmLi44MTJmMTk5MWZiMjg3ODFkYjVkZDJiYzIwNmI5ZjU1Y2MyOTE0
YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTMs
NyArNTMsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIK
LSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGExODJhMDljZGY0NzdjNDRkOGE0ZDg2MjJhM2QyMGI2YmQ2
OTgzZmIuLmQ4NWNmYTAxM2YwMTY5YWE1ZTllODBkMDU2MTc5YzQ5MWMyZmY2N2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMDUsNyArMTIwNSw2IEBAIHBy
aXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBSZWZQdHI8
V2ViQ29sb3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7Ci0gICAgUmVmUHRyPFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwogI2VuZGlm
CiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlD
bGllbnQuY3BwCmluZGV4IGJmYTRkOGU0M2U3ZWI0ZmY2NzUzYWNiM2ViZmM3YzM4MWZiMjQxMWMu
LjA4YjJmZmQ0NzMzZjI5NDM0OTViOTE1YjE1ZTI0ZmVmOTQ3YjRjYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3Jt
YXRpb24uaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNsdWRl
ICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCkBAIC00MzQsMjQgKzQzMyw0IEBAIGJvb2wgV2ViVUlDbGllbnQ6OnNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVybiBtX2NsaWVudC5z
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKIH0KIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotYm9vbCBXZWJVSUNsaWVudDo6
c2hvd0NvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBpbml0aWFs
Q29sb3IsIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSogbGlzdGVuZXIpCi17Ci0g
ICAgaWYgKCFtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIG1fY2xpZW50LnNob3dDb2xvclBpY2tlcih0b0FQSShwYWdlKSwgdG9BUEkoaW5pdGlh
bENvbG9yLmltcGwoKSksIHRvQVBJKGxpc3RlbmVyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVUlDbGllbnQ6OmhpZGVDb2xvclBpY2tlcihX
ZWJQYWdlUHJveHkqIHBhZ2UpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5oaWRlQ29sb3JQaWNrZXIp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fY2xpZW50LmhpZGVDb2xvclBpY2tlcih0
b0FQSShwYWdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0j
ZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oCmluZGV4IDk4MTNmNTc1NGM4MTNiZjE2OWM2YjNjOTI4YjhlNWFhNWZiYTQzYjcu
Ljc4MzNhMjBjZTRkNmFiNDMzNjlhMWY0ZWY3ZTFhYmY4NjM5ZTNiNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC00OSw3ICs0OSw2IEBAIGNsYXNzIEltbXV0YWJs
ZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZl
V2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotY2xh
c3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRGF0YTsKIGNs
YXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC0xMTcsMTEgKzExNiw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgV2ViRGF0YSop
OwogCiAgICAgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KFdlYlBhZ2VQcm94eSopOwot
Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgYm9vbCBzaG93Q29sb3JQaWNrZXIo
V2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5Kik7Ci0gICAgYm9vbCBoaWRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kik7Ci0jZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCmluZGV4IDU0ODhlYTEzNjQ0NWE3MDZhNmI5
ZTlmMGUxYzhlZGUwYzI0OTU2ZmEuLjRlZGZhMGExYmJiNGUxNzk5ZDczMzQ2MDMxYmQ1OWRjYTQy
MzFkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xp
ZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVu
dEVmbC5jcHAKQEAgLTc5LDEwICs3OSw2IEBAIFBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50
RWZsKEV3a1ZpZXcqIHZpZXcpCiAjZW5kaWYKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBy
dW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQuY3JlYXRlTmV3UGFnZSA9IGNyZWF0ZU5ld1BhZ2U7
Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdWlDbGllbnQuc2hvd0NvbG9yUGlj
a2VyID0gc2hvd0NvbG9yUGlja2VyOwotICAgIHVpQ2xpZW50LmhpZGVDb2xvclBpY2tlciA9IGhp
ZGVDb2xvclBpY2tlcjsKLSNlbmRpZgogCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VS
ZWYsICZ1aUNsaWVudCk7CiAKQEAgLTIyNiwyMSArMjIyLDYgQEAgV0tQYWdlUmVmIFBhZ2VVSUNs
aWVudEVmbDo6Y3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVl
c3QsIFcKICAgICByZXR1cm4gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldy0+
Y3JlYXRlTmV3UGFnZShyZXF1ZXN0LCB3a1dpbmRvd0ZlYXR1cmVzKTsKIH0KIAotI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQotdm9pZCBQYWdlVUlDbGllbnRFZmw6OnNob3dDb2xvclBpY2tl
cihXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBh
Z2VVSUNsaWVudEVmbCogcGFnZVVJQ2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5m
byk7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRv
V1RGU3RyaW5nKGluaXRpYWxDb2xvcikpOwotICAgIHBhZ2VVSUNsaWVudC0+bV92aWV3LT5yZXF1
ZXN0Q29sb3JQaWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKLX0KLQotdm9pZCBQYWdlVUlDbGllbnRF
Zmw6OmhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgUGFnZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0b1BhZ2VVSUNsaWVudEVmbChj
bGllbnRJbmZvKTsKLSAgICBwYWdlVUlDbGllbnQtPm1fdmlldy0+ZGlzbWlzc0NvbG9yUGlja2Vy
KCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBQYWdlVUlDbGllbnRFZmw6OnNob3dQb3B1cE1lbnUoV0tQ
YWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVmIG1lbnVMaXN0ZW5lclJlZiwgV0tSZWN0IHJl
Y3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNj
YWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xpZW50RWZsKGNs
aWVudEluZm8pLT5tX3ZpZXctPnJlcXVlc3RQb3B1cE1lbnUobWVudUxpc3RlbmVyUmVmLCByZWN0
LCB0ZXh0RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IsIGl0ZW1zUmVmLCBzZWxlY3RlZEluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCmlu
ZGV4IGRmNDdiOTcxNjdiNDgwMWE1OWJiMWNjMzdjMmQyYTAxOTE3MTM0MzEuLmUxNGFiY2Q0MTIw
MmUxNjYxNTZkNWJjZjdjY2E1YTBmOWUxZmE3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaApAQCAtNjksMTAgKzY5LDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJl
ZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShXS1Bh
Z2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKLSAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0
cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29u
c3Qgdm9pZCopOwotICAgIHN0YXRpYyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNv
bnN0IHZvaWQqKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgc2hvd1BvcHVwTWVudShXS1Bh
Z2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYsIFdLUmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGly
ZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQz
Ml90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIGhpZGVQb3B1cE1lbnUoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCmluZGV4IGUx
NDIxNGZhNDljYzNjZDdiNzhkZDRjMmVlNWJiYTNlNDQxM2MxZTYuLjM2MTRjODMyNTk4YWJjZDRk
Yzg2MTBjYjA1ZDg1YzQ5YTE5MTAzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9WaWV3Q2xpZW50RWZsLmNwcApAQCAtMTY2LDYgKzE2NiwxOSBAQCB2b2lkIFZpZXdDbGll
bnRFZmw6OmRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZiBldmVu
dCwgYm9vbCB3YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3Zv
aWQgVmlld0NsaWVudEVmbDo6c2hvd0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYg
Y29sb3JTdHJpbmcsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNv
cmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoY29sb3JTdHJpbmcpKTsKKyAgICB0b0V3a1Zp
ZXcoY2xpZW50SW5mbyktPnJlcXVlc3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3IpOworfQor
Cit2b2lkIFZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKFdLVmlld1JlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICB0b0V3a1ZpZXcoY2xpZW50SW5mbyktPmRpc21pc3NDb2xv
clBpY2tlcigpOworfQorI2VuZGlmCisKIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwoRXdr
VmlldyogdmlldykKICAgICA6IG1fdmlldyh2aWV3KQogewpAQCAtMTkwLDExICsyMDMsMjUgQEAg
Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAKICAg
ICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmlldy0+d2tWaWV3KCksICZ2aWV3Q2xpZW50KTsKKwor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdLQ29sb3JQaWNrZXJDbGllbnQgY29s
b3JQaWNrZXJDbGllbnQ7CisgICAgbWVtc2V0KCZjb2xvclBpY2tlckNsaWVudCwgMCwgc2l6ZW9m
KFdLQ29sb3JQaWNrZXJDbGllbnQpKTsKKyAgICBjb2xvclBpY2tlckNsaWVudC52ZXJzaW9uID0g
a1dLQ29sb3JQaWNrZXJDbGllbnRDdXJyZW50VmVyc2lvbjsKKyAgICBjb2xvclBpY2tlckNsaWVu
dC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBjb2xvclBpY2tlckNsaWVudC5zaG93Q29sb3JQaWNr
ZXIgPSBzaG93Q29sb3JQaWNrZXI7CisgICAgY29sb3JQaWNrZXJDbGllbnQuZW5kQ29sb3JQaWNr
ZXIgPSBlbmRDb2xvclBpY2tlcjsKKyAgICBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChtX3Zp
ZXctPndrVmlldygpLCAmY29sb3JQaWNrZXJDbGllbnQpOworI2VuZGlmCiB9CiAKIFZpZXdDbGll
bnRFZmw6On5WaWV3Q2xpZW50RWZsKCkKIHsKICAgICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmll
dy0+d2tWaWV3KCksIDApOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV0tW
aWV3U2V0Q29sb3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgMCk7CisjZW5kaWYKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
Vmlld0NsaWVudEVmbC5oCmluZGV4IGEzODRjZjU5N2Q0YTlkMGZiMmU5ZWUwZmZlYjVmYTAxYTNh
ODRkNjQuLjA3ZDcxMDBjNWJmZTU4MmNkYjU2ZWM1OTE5NmJmZjcwYTMxZTQ5YmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCkBAIC02MCw2ICs2MCwx
MCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RhdGljIHZvaWQg
ZG9uZVdpdGhUb3VjaEV2ZW50KFdLVmlld1JlZiwgV0tUb3VjaEV2ZW50UmVmLCBib29sLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKICNlbmRpZgorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisg
ICAgc3RhdGljIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYsIFdL
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cisg
ICAgc3RhdGljIHZvaWQgZW5kQ29sb3JQaWNrZXIoV0tWaWV3UmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKKyNlbmRpZgogCiAgICAgRXdrVmlldyogbV92aWV3OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmNkODFmY2EzMzk0ZjM4N2ZkM2MyYzZlMTlhMjdmYWZkOTdkMTJhZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJD
bGllbnQuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgorCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb2xv
clBpY2tlckNsaWVudDo6c2hvd0NvbG9yUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFN0
cmluZyYgY29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lcikKK3sK
KyAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKHRvQVBJKHdlYlZpZXcpLCB0b0FQSShjb2xvci5p
bXBsKCkpLCBsaXN0ZW5lciwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViQ29s
b3JQaWNrZXJDbGllbnQ6OmVuZFBpY2tlcihXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGlmICgh
bV9jbGllbnQuZW5kQ29sb3JQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50
LmVuZENvbG9yUGlja2VyKHRvQVBJKHdlYlZpZXcpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30K
KworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTljN2JkZDdlMTIwZWYxMTE4NWRmODFmMTMx
OGUxMDVmNDc5ZWQzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yUGlja2VyQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29s
b3JQaWNrZXJDbGllbnRfaAorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVk
ZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tWaWV3RWZsLmgiCisjaW5jbHVkZSAiV2ViVmll
dy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJDbGllbnQ6
IHB1YmxpYyBBUElDbGllbnQ8V0tDb2xvclBpY2tlckNsaWVudCwga1dLQ29sb3JQaWNrZXJDbGll
bnRDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdl
YlZpZXcqLCBjb25zdCBTdHJpbmcmLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYpOwor
ICAgIHZvaWQgZW5kUGlja2VyKFdlYlZpZXcqKTsKK307CisKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV2ViQ29sb3JQaWNrZXJDbGllbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWQxNmRkNDcwNTdm
NmNhNjgxMjZhYWMzZGQ3ZTE5NWFmY2JkZjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAKQEAgLTAsMCArMSw2OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkNvbG9yUGlja2VyRWZsLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb2xvcl9waWNrZXJfcHJpdmF0
ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9y
UGlja2VyRWZsKFdlYlZpZXdFZmwqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNs
aWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKQorICAgIDogV2ViQ29sb3JQaWNrZXIoY2xpZW50
KQorICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCit7CisgICAgQVNTRVJUKG1fd2ViVmlldyk7Cisg
ICAgbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OmVu
ZFBpY2tlcigpCit7CisgICAgbV93ZWJWaWV3LT5jb2xvclBpY2tlckNsaWVudCgpLmVuZFBpY2tl
cihtX3dlYlZpZXcpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQaWNr
ZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fd2ViVmlldy0+Y29sb3JQ
aWNrZXJDbGllbnQoKS5zaG93Q29sb3JQaWNrZXIobV93ZWJWaWV3LCBjb2xvci5zZXJpYWxpemVk
KCksIHRvQVBJKG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5nZXQoKSkpOworfQorCit2b2lk
IFdlYkNvbG9yUGlja2VyRWZsOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZs
OjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYg
KCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQtPmRpZENob29zZUNv
bG9yKGNvbG9yKTsKKyAgICBtX2NsaWVudC0+ZGlkRW5kQ29sb3JQaWNrZXIoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmRlNzg3NGEyYWZlNGNhZjhj
MWYyNzU2ODA0NjJmYmY5ZWZjODAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJFZmxfaAorI2RlZmluZSBXZWJD
b2xvclBpY2tlckVmbF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlci5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZXdFZmwuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyRWZsIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckVmbD4gY3JlYXRlKFdl
YlZpZXdFZmwqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViQ29sb3JQaWNrZXJFZmwod2ViVmlldywgY2xpZW50LCBpbml0aWFsQ29sb3Ip
KTsKKyAgICB9CisgICAgfldlYkNvbG9yUGlja2VyRWZsKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZW5kUGlja2VyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
d0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisKKyAgICB2b2lk
IGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7Citwcml2YXRlOgorICAgIFdl
YkNvbG9yUGlja2VyRWZsKFdlYlZpZXdFZmwqLCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKKworICAgIFdlYlZpZXdFZmwqIG1fd2ViVmlldzsKKyAgICBS
ZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBtX2NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXI7Cit9OworCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdlYkNvbG9yUGlja2Vy
RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDVi
MTkxZmQ1ZjRmZjBkNTgzZTE3ZjZiZjdlMWZjOGMxYjE2N2M1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
aCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlj
a2VyRWZsLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkoV2ViQ29sb3JQaWNrZXJFZmwqIGNvbG9yUGlja2VyKQorICAgIDog
bV9jb2xvclBpY2tlcihjb2xvclBpY2tlcikKK3sKKyAgICBBU1NFUlQobV9jb2xvclBpY2tlcik7
Cit9CisKK1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQoreworICAgIG1fY29s
b3JQaWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yKGNvbG9yKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGZiMWYwNDk5NGJk
ZmJkMWU1YjdmYWViMzM3NzYxZGNlOTMyN2E0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmw7CisKK2NsYXNzIFdlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
cjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eT4gY3JlYXRlKFdlYkNvbG9yUGlja2VyRWZsKiBjb2xvclBpY2tlcikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
KGNvbG9yUGlja2VyKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5KCk7CisKKyAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eShXZWJDb2xvclBpY2tlckVmbCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBXZWJDb2xvclBpY2tlckVmbCogbV9jb2xvclBpY2tl
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKaW5kZXgg
NTY2MGJlMTExYzQyZDBkMjVjNjFhODg3MDZhMTc2YjdiYThlOWM1Yi4uODQyN2ZkYjA3MzFkZmMy
MzVhNzgwNjUwNGY3MDUxODA3NzJjNGZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXdFZmwuY3BwCkBAIC00Myw2ICs0MywxMCBAQAogI2luY2x1ZGUgIkV3a1RvdWNo
RXZlbnQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVk
ZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgRXdrVmll
d0NhbGxiYWNrczsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjQsNCArMTI4LDE2
IEBAIHZvaWQgV2ViVmlld0VmbDo6c2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCogdG91Y2hF
dmVudCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFdl
YlZpZXdFZmw6OmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudChjb25zdCBXS0NvbG9yUGlja2Vy
Q2xpZW50KiBjbGllbnQpCit7CisgICAgbV9jb2xvclBpY2tlckNsaWVudC5pbml0aWFsaXplKGNs
aWVudCk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFdlYlZpZXdFZmw6OmNyZWF0
ZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNv
bG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKK3sKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNr
ZXJFZmw6OmNyZWF0ZSh0aGlzLCBwYWdlLCBjb2xvcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlZpZXdFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCmlu
ZGV4IGQ3MTcyMzRjNmI3OGQ3ZmFkZTEwZThhNWI2NWExNjQ1YWNiNjI1ZGQuLjNhNDVmN2JmMDJk
NDYyMzgxNDUxMzRmYmMwMDJkYjgzYWVmZDMwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlld0VmbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYlZpZXdFZmxf
aAogI2RlZmluZSBXZWJWaWV3RWZsX2gKIAorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogCiBjbGFzcyBFd2tWaWV3OwpAQCAtNDgsNiArNDks
MTMgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCopOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIGluaXRpYWxp
emVDb2xvclBpY2tlckNsaWVudChjb25zdCBXS0NvbG9yUGlja2VyQ2xpZW50Kik7CisKKyAgICBX
ZWJDb2xvclBpY2tlckNsaWVudCYgY29sb3JQaWNrZXJDbGllbnQoKSB7IHJldHVybiBtX2NvbG9y
UGlja2VyQ2xpZW50OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBj
cmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlZpZXdFZmwoV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogCkBAIC02MCw2ICs2OCwx
MCBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICBFd2tWaWV3KiBtX2V3a1ZpZXc7CiAKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvclBpY2tlckNsaWVudCBtX2NvbG9y
UGlja2VyQ2xpZW50OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV2ViVmlldzsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5YzM4M2UxNThmMzBhYzNjN2Y2ZjhmNjkyMjIzNDM3ZDg3Yjk0NzM2Li5jYTdlMWZlZWE1
MGFmYmNkZWMyYjU1MDg1NjE5OWM3YTVlYzFiZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTk4LDcgKzExOTgsNiBAQAog
CQlGMDM2OTc4NTE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5
NzgzMTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwICov
OyB9OwogCQlGMDM2OTc4NjE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
MDM2OTc4NDE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgg
Ki87IH07CiAJCUYwMzY5Nzg4MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4NzE1
RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovOyB9OwotCQlGMDM2OTc4QjE1
RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg5MTVG
NEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICov
OyB9OwogCQlGNjExM0UyNTEyNkNFMTgyMDA1N0QwQTcgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjEx
M0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IH07
CiAJCUY2MTEzRTI4MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0Uy
NjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovOyB9Owog
CQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2
Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNzI2LDggKzI3MjUsNiBAQAog
CQlGMDM2OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg0
MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAv
KiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5
Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAz
Njk3OEExNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjQx
MjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDQ5LDggKzQwNDYsNiBAQAog
CQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywK
IAkJCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovLAog
CQkJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovLAotCQkJ
CUYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuY3BwICovLAotCQkJCUYwMzY5NzhBMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKIAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4
MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYxNDc0
NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQlCQ0I5
RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC02ODE2LDcgKzY4
MTEsNiBAQAogCQkJCUJDMTExQTVBMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y4N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNv
bG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMDM2OTc4ODE1RjRCRjA1MDBDM0E4
MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjAzNjk3OEIxNUY0
QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzRBNjI4RjE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5MTE0NzMxMkJFMDA2QzY4MUEgLyogV2Vi
Q29ubmVjdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTFGRUMxQzE2MjdCNDU3
MDA3MDBGNkQgLyogV2ViQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208116</attachid>
            <date>2013-08-05 03:50:43 -0700</date>
            <delta_ts>2014-02-04 21:19:20 -0800</delta_ts>
            <desc>another suggestion</desc>
            <filename>bug-119120-20130805195041.patch</filename>
            <type>text/plain</type>
            <size>58715</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDMzY2M5ZDViODc2YTZh
Nzc3MTZlOGM2Y2U2M2Q0NWUyMjdiODg2ZS4uNzVhOTE5ODk4ODQ4N2Y0N2FiZmM5ZWE0NjYyNGQ3
NDZhZjBjZjgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
ZmFjdG9yIGNvbG9yIHBpY2tlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgcjE1MzU0MSwgV0syIHBvcnQgcmVtb3Zl
ZCBhIHdheSB0byByZWdpc3RlciBQYWdlVUlDbGllbnQgQ2FsbGJhY2tzLAorICAgICAgICB3aGlj
aCBpcyBvbmx5IGZvciBFRkwgcG9ydC4KKyAgICAgICAgQnV0LCBFZmwgcG9ydCBzaG91bGQgZXhw
b3NlIHRoZW0gdG8gY2FsbGJhY2sgaW50ZXJmYWNlIGFzIFdLIEFQSS4KKworICAgICAgICBTbywg
dGhpcyBwYXRjaCBpbnRyb2R1Y2UgV0tDb2xvclBpY2tlckNsaWVudCB3aGljaCBpcyBuZXcgV0sg
aW50ZXJmYWNlCisgICAgICAgIG9ubHkgZm9yIEVmbCBwb3J0LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IE1vdmVkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgdG8g
UGxhdGZvcm1FZmwuY21ha2UuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3Zl
ZCBDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHJlbGF0ZWQgZmlsZXMgd2hpY2ggYXJlIG9ubHkg
Zm9yIEVmbCBmcm9tIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBB
ZGRlZCBDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgcmVsYXRlZCBmaWxlcyBhbmQgbmV3
bHkgYWRkZWQgZmlsZXMgaW50byBzb3VyY2UgbGlzdC4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBS
ZW1vdmVkIENvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUg
b25seSBmb3IgRWZsIGZyb20gc291cmNlIGxpc3QuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAu
CisgICAgICAgIChXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQpOgorICAgICAg
ICAoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwOiBJbnRy
b2R1Y2VkIFdLQ29sb3JQaWNrZXJDbGllbnQgYW5kIHNldHRlci4KKyAgICAgICAgKFdLVmlld1Nl
dENvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
d0VmbC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVt
b3ZlZCB1bm5lY2Vzc2FyeSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZGVwZW5k
ZW5jeS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNs
aWVudEVmbC5jcHA6IFJlbW92ZWQgY29sb3IgcGlja2VyIGNhbGxiYWNrcyBvZiBQYWdlVUlDbGll
bnQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6IFJlZ2lzdGVyZWQgY2FsbGJhY2tzIG9mIFdL
Q29sb3JQaWNrZXJDbGllbnQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OnNob3dD
b2xvclBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlj
a2VyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dl
YkNvbG9yUGlja2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29sb3JQaWNrZXJFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJFZmw6OmVuZFBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpz
aG93Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2V0
U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpkaWRD
aG9vc2VDb2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjp+V2ViQ29sb3JQaWNrZXJFZmwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5LmguCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjppbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdFZmw6OmNvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IFJlbW92ZWQgQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciByZWxhdGVk
IGZpbGVzIHdoaWNoIGFyZSBvbmx5IGZvciBFZmwgZnJvbSBzb3VyY2UgbGlzdC4KKwogMjAxMy0w
OC0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBidWlsZCBhbmQgc3R5bGUgZml4IGZvciByMTUzNjkzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCA5NTY3NTE2YmE4NTRmMmJlODIwZmExNzk4N2FkOTUwMTcyMTE1MzY4Li5iODE4
YmU4ZDYzYmRkNzkzNDIwMjZkYjZmN2UzNDZmNWY4NjRiMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMjY2LDcgKzI2Niw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3Zp
ZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKLSAgICBVSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtMzIyLDcgKzMyMSw2IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dL
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGRjOTMzYzQyYzlhNTEzODIwY2QzOTY5ZDY5ZjA5MTUwOWVmMjg5MmYuLjUwOGE0MGQx
NThhNjM2YzRiMDJmMmVkOTdmOGQ5OTZkMTdiNjUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtNTEsNyArNTEsNiBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vz
cy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuaCBcCi0JJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQ
cml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
IFwKQEAgLTU3Myw4ICs1NzIsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIFwKLQlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXApAQCAtODg4LDggKzg4NSw2IEBAIHdlYmtp
dDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92
aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuaCBcCi0JU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAot
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYmI3NjZiYWYyMmUxNDY1ODFlMjgzMzcwZWIzMjVm
MTAwYTYzMWFjLi5mM2U4YTg4NDI0YzA0YjFhOTNlN2UzZDhkZTEwOTg0MzM4OGFkYzY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDksNiArNDksNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkvQy9Db29yZGluYXRlZEdyYXBoaWNzL1dL
Vmlldy5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tFdmVudEVmbC5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLUGFnZUVmbC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLUG9wdXBJdGVtLmNwcApAQCAtMTIxLDYgKzEyMiw5IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0aW9uQ2xpZW50RWZsLmNwcAogICAgIFVJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYlZpZXdF
ZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKKyAgICBV
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29udGV4dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRNZW51UHJveHlFZmwu
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5RWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKaW5kZXggZTE1MzhiNzhjNzFmMTQ3Mjg0MTljYjUzN2E4YTE3M2M2MjE5NDcwZS4u
ZDI2YjdmNWFmMmQyMjdhNTZmYWU5Y2I2MzgyZDlkYWRiMjQ3ZGFkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBA
IC0xNTksNyArMTU5LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdl
ci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmggXAotICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmggXApAQCAtMjQzLDcgKzI0
Miw2IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNz
L1dlYkNvbG9yUGlja2VyLmggXAotICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRl
eHRDbGllbnQuaCBcCkBAIC01MjQsNyArNTIyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0
YXR1cy5jcHAgXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGFi
YXNlTWFuYWdlci5jcHAgXApAQCAtNjAxLDcgKzU5OCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAgXAot
ICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRlNTUzOWRlMTg0ZjBhMzg2YjY5MTYzMDBmMDBiZTQ3MDRkOTliZGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgiCi0KLSNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyR2V0VHlwZUlEKCkKLXsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICByZXR1cm4gdG9BUEkoV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpBUElUeXBl
KTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotdm9pZCBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJTZXRDb2xvcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlz
dGVuZXJSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIGNvbG9yKQotewotI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQotICAgIHRvSW1wbChsaXN0ZW5lclJlZiktPnNldENvbG9yKHRvV1RGU3RyaW5n
KGNvbG9yKSk7Ci0jZW5kaWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmZkNDczMmM5MTUyZGI4NjVlM2RmNzFmN2VjZGU5ZmY3Y2EyM2Rh
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCi0jZGVmaW5lIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lcl9oCi0KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotCi0jaWZkZWYgX19j
cGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcik7Ci0KLSNpZmRlZiBf
X2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRlNTUzOWRlMTg0ZjBhMzg2YjY5MTYzMDBmMDBiZTQ3MDRkOTliZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lckdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisgICAgcmV0dXJuIHRvQVBJKFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisK
K3ZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcikKK3sK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB0b0ltcGwobGlzdGVuZXJSZWYpLT5z
ZXRDb2xvcih0b1dURlN0cmluZyhjb2xvcikpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlm
ZjdjYTIzZGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9o
CisjZGVmaW5lIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlm
CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBl
SUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29s
b3IoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0
cmluZ1JlZiBjb2xvcik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRp
ZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCmluZGV4IGNlZmEyZDM1ODcwMWM3
MmRlOTU1ZTAxNDAzMWJlMzhjOGI0OTQ0MzEuLjJiZTBhYTIwMGVjNDM4Y2EwZWUwMWM5M2Y5NTBm
NjQ2OGVlNjQ3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tWaWV3RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlld0VmbC5jcHAKQEAgLTMzLDYgKzMzLDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKK3ZvaWQgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYs
IGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnQqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQorICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1Jl
ZikpLT5pbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQod2tDbGllbnQpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odmlld1JlZik7CisgICAgVU5VU0VEX1BBUkFNKHdrQ2xpZW50KTsKKyNlbmRp
ZgorfQorCiB2b2lkIFdLVmlld1BhaW50VG9DYWlyb1N1cmZhY2UoV0tWaWV3UmVmIHZpZXdSZWYs
IGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZs
Kj4odG9JbXBsKHZpZXdSZWYpKS0+cGFpbnRUb0NhaXJvU3VyZmFjZShzdXJmYWNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oCmluZGV4IGQ4YWZk
YzQzMjhhYjE5ZjY0OGVhZmJlYTE1OThjMDNhMTgzYTI2YWUuLmQ4MmJlZGI0OTE0NTczNjliMzY5
ZTA1MzQxZTc4NjQ2NjlhYzcxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXdFZmwuaApAQCAtMzQsNiArMzQsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nh
aXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAordHlw
ZWRlZiB2b2lkICgqV0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tWaWV3UmVmIHZpZXcsIFdL
U3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxp
c3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLSGlkZUNv
bG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKKworc3RydWN0IFdLQ29sb3JQaWNrZXJDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tTaG93
Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7
CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBlbmRD
b2xvclBpY2tlcjsKK307Cit0eXBlZGVmIHN0cnVjdCBXS0NvbG9yUGlja2VyQ2xpZW50IFdLQ29s
b3JQaWNrZXJDbGllbnQ7CisKK2VudW0geyBrV0tDb2xvclBpY2tlckNsaWVudEN1cnJlbnRWZXJz
aW9uID0gMCB9OworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChX
S1ZpZXdSZWYgcGFnZSwgY29uc3QgV0tDb2xvclBpY2tlckNsaWVudCogY2xpZW50KTsKKwogV0tf
RVhQT1JUIHZvaWQgV0tWaWV3UGFpbnRUb0NhaXJvU3VyZmFjZShXS1ZpZXdSZWYsIGNhaXJvX3N1
cmZhY2VfdCopOwogCiBXS19FWFBPUlQgV0tJbWFnZVJlZiBXS1ZpZXdDcmVhdGVTbmFwc2hvdChX
S1ZpZXdSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzBjMmMyMjIxMjg1NzY3MDM0MTQzOWY2NGFmOTdhZmY1MDFmMmI5OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIK
LQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqIHBh
Z2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLXsKLX0KLQotV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCkKLXsKLX0KLQot
dm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQotewot
ICAgIG1fcGFnZSA9IDA7Ci19Ci0KLXZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQotewotICAgIGlmICghbV9wYWdlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPnNldENvbG9yUGlja2VyQ29sb3IoV2ViQ29y
ZTo6Q29sb3IoY29sb3IpKTsKLSAgICBtX3BhZ2UtPmVuZENvbG9yUGlja2VyKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
OGViOGFhOTVjMmQ4ZGIwNmQyMWJiNzQ2MDFkYTlkY2VlMWE0N2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHlfaAotI2RlZmluZSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHlfaAotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYlBhZ2VQcm94eTsKLQotY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IFR5cGUgQVBJVHlwZSA9IFR5cGVDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwotCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5KiBwYWdlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkocGFnZSkpOwotICAgIH0KLQotICAgIHZp
cnR1YWwgfldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgpOwotCi0gICAgdm9pZCBp
bnZhbGlkYXRlKCk7Ci0gICAgdm9pZCBzZXRDb2xvcihjb25zdCBTdHJpbmcmKTsKLQotcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2ViUGFn
ZVByb3h5Kik7Ci0KLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5
cGU7IH0KLQotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNl
bmRpZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkNzVkNDZiNTY2NWIwMTI5OGI0OTFi
NzMyYjBkZmZjZWNlMTU4NmVmLi44MTJmMTk5MWZiMjg3ODFkYjVkZDJiYzIwNmI5ZjU1Y2MyOTE0
YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTMs
NyArNTMsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIK
LSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGExODJhMDljZGY0NzdjNDRkOGE0ZDg2MjJhM2QyMGI2YmQ2
OTgzZmIuLmQ4NWNmYTAxM2YwMTY5YWE1ZTllODBkMDU2MTc5YzQ5MWMyZmY2N2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMDUsNyArMTIwNSw2IEBAIHBy
aXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBSZWZQdHI8
V2ViQ29sb3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7Ci0gICAgUmVmUHRyPFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwogI2VuZGlm
CiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlD
bGllbnQuY3BwCmluZGV4IGJmYTRkOGU0M2U3ZWI0ZmY2NzUzYWNiM2ViZmM3YzM4MWZiMjQxMWMu
LjA4YjJmZmQ0NzMzZjI5NDM0OTViOTE1YjE1ZTI0ZmVmOTQ3YjRjYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3Jt
YXRpb24uaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNsdWRl
ICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCkBAIC00MzQsMjQgKzQzMyw0IEBAIGJvb2wgV2ViVUlDbGllbnQ6OnNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVybiBtX2NsaWVudC5z
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKIH0KIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotYm9vbCBXZWJVSUNsaWVudDo6
c2hvd0NvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBpbml0aWFs
Q29sb3IsIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSogbGlzdGVuZXIpCi17Ci0g
ICAgaWYgKCFtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIG1fY2xpZW50LnNob3dDb2xvclBpY2tlcih0b0FQSShwYWdlKSwgdG9BUEkoaW5pdGlh
bENvbG9yLmltcGwoKSksIHRvQVBJKGxpc3RlbmVyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVUlDbGllbnQ6OmhpZGVDb2xvclBpY2tlcihX
ZWJQYWdlUHJveHkqIHBhZ2UpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5oaWRlQ29sb3JQaWNrZXIp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fY2xpZW50LmhpZGVDb2xvclBpY2tlcih0
b0FQSShwYWdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0j
ZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oCmluZGV4IDk4MTNmNTc1NGM4MTNiZjE2OWM2YjNjOTI4YjhlNWFhNWZiYTQzYjcu
Ljc4MzNhMjBjZTRkNmFiNDMzNjlhMWY0ZWY3ZTFhYmY4NjM5ZTNiNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC00OSw3ICs0OSw2IEBAIGNsYXNzIEltbXV0YWJs
ZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZl
V2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotY2xh
c3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRGF0YTsKIGNs
YXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC0xMTcsMTEgKzExNiw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgV2ViRGF0YSop
OwogCiAgICAgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KFdlYlBhZ2VQcm94eSopOwot
Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgYm9vbCBzaG93Q29sb3JQaWNrZXIo
V2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5Kik7Ci0gICAgYm9vbCBoaWRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kik7Ci0jZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCmluZGV4IDU0ODhlYTEzNjQ0NWE3MDZhNmI5
ZTlmMGUxYzhlZGUwYzI0OTU2ZmEuLjcwNzljZjE0ZmQyNTc4Y2NjMDdiOGQzYjMwZmU0YzY1NWU5
MmU3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xp
ZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVu
dEVmbC5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJld2tfZmlsZV9jaG9vc2VyX3Jl
cXVlc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5o
IgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogCkBAIC03OSwxMCArNzgsNiBAQCBQ
YWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAg
ICAgdWlDbGllbnQucnVuT3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50LmNy
ZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotICAgIHVpQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKLSAgICB1
aUNsaWVudC5oaWRlQ29sb3JQaWNrZXIgPSBoaWRlQ29sb3JQaWNrZXI7Ci0jZW5kaWYKIAogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAmdWlDbGllbnQpOwogCkBAIC0yMjYsMjEg
KzIyMSw2IEBAIFdLUGFnZVJlZiBQYWdlVUlDbGllbnRFZmw6OmNyZWF0ZU5ld1BhZ2UoV0tQYWdl
UmVmLCBXS1VSTFJlcXVlc3RSZWYgd2tSZXF1ZXN0LCBXCiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xp
ZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXctPmNyZWF0ZU5ld1BhZ2UocmVxdWVzdCwgd2tXaW5k
b3dGZWF0dXJlcyk7CiB9CiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXZvaWQgUGFn
ZVVJQ2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0
aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNsaWVudCA9
IHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pOwotICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9y
ID0gV2ViQ29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhpbml0aWFsQ29sb3IpKTsKLSAg
ICBwYWdlVUlDbGllbnQtPm1fdmlldy0+cmVxdWVzdENvbG9yUGlja2VyKGxpc3RlbmVyLCBjb2xv
cik7Ci19Ci0KLXZvaWQgUGFnZVVJQ2xpZW50RWZsOjpoaWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBhZ2VVSUNsaWVudEVmbCogcGFnZVVJ
Q2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0gICAgcGFnZVVJQ2xpZW50
LT5tX3ZpZXctPmRpc21pc3NDb2xvclBpY2tlcigpOwotfQotI2VuZGlmCi0KIHZvaWQgUGFnZVVJ
Q2xpZW50RWZsOjpzaG93UG9wdXBNZW51KFdLUGFnZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJl
ZiBtZW51TGlzdGVuZXJSZWYsIFdLUmVjdCByZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24g
dGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtc1Jl
ZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IHJldHVybiB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LT5yZXF1ZXN0UG9w
dXBNZW51KG1lbnVMaXN0ZW5lclJlZiwgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFj
dG9yLCBpdGVtc1JlZiwgc2VsZWN0ZWRJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaAppbmRleCBkZjQ3Yjk3MTY3YjQ4MDFhNTliYjFjYzM3
YzJkMmEwMTkxNzEzNDMxLi5lMTRhYmNkNDEyMDJlMTY2MTU2ZDViY2Y3Y2NhNWEwZjllMWZhN2Q2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgK
QEAgLTY5LDEwICs2OSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBydW5P
cGVuUGFuZWwoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYs
IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMg
V0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGlj
dGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2
b2lkKik7Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RhdGljIHZvaWQgc2hv
d0NvbG9yUGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBo
aWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7Ci0jZW5kaWYKIAogICAgIHN0
YXRpYyB2b2lkIHNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVm
LCBXS1JlY3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3Rv
ciwgV0tBcnJheVJlZiBpdGVtc1JlZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBoaWRlUG9wdXBNZW51KFdLUGFnZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmNwcAppbmRleCBlMTQyMTRmYTQ5Y2MzY2Q3Yjc4ZGQ0YzJlZTViYmEz
ZTQ0MTNjMWU2Li4zNjE0YzgzMjU5OGFiY2Q0ZGM4NjEwY2IwNWQ4NWM0OWExOTEwMzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKQEAgLTE2
Niw2ICsxNjYsMTkgQEAgdm9pZCBWaWV3Q2xpZW50RWZsOjpkb25lV2l0aFRvdWNoRXZlbnQoV0tW
aWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYgZXZlbnQsIGJvb2wgd2EKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFZpZXdDbGllbnRFZmw6OnNob3dDb2xvclBp
Y2tlcihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmIGNvbG9yU3RyaW5nLCBXS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAg
V2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRvV1RGU3RyaW5n
KGNvbG9yU3RyaW5nKSk7CisgICAgdG9Fd2tWaWV3KGNsaWVudEluZm8pLT5yZXF1ZXN0Q29sb3JQ
aWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKK30KKwordm9pZCBWaWV3Q2xpZW50RWZsOjplbmRDb2xv
clBpY2tlcihXS1ZpZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9Fd2tW
aWV3KGNsaWVudEluZm8pLT5kaXNtaXNzQ29sb3JQaWNrZXIoKTsKK30KKyNlbmRpZgorCiBWaWV3
Q2xpZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgOiBtX3ZpZXcodmll
dykKIHsKQEAgLTE5MCwxMSArMjAzLDI1IEBAIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwo
RXdrVmlldyogdmlldykKICNlbmRpZgogCiAgICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXct
PndrVmlldygpLCAmdmlld0NsaWVudCk7CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
KyAgICBXS0NvbG9yUGlja2VyQ2xpZW50IGNvbG9yUGlja2VyQ2xpZW50OworICAgIG1lbXNldCgm
Y29sb3JQaWNrZXJDbGllbnQsIDAsIHNpemVvZihXS0NvbG9yUGlja2VyQ2xpZW50KSk7CisgICAg
Y29sb3JQaWNrZXJDbGllbnQudmVyc2lvbiA9IGtXS0NvbG9yUGlja2VyQ2xpZW50Q3VycmVudFZl
cnNpb247CisgICAgY29sb3JQaWNrZXJDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgY29s
b3JQaWNrZXJDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9yUGlja2VyOworICAgIGNv
bG9yUGlja2VyQ2xpZW50LmVuZENvbG9yUGlja2VyID0gZW5kQ29sb3JQaWNrZXI7CisgICAgV0tW
aWV3U2V0Q29sb3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgJmNvbG9yUGlja2VyQ2xp
ZW50KTsKKyNlbmRpZgogfQogCiBWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCgpCiB7CiAg
ICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXctPndrVmlldygpLCAwKTsKKworI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KG1fdmll
dy0+d2tWaWV3KCksIDApOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaAppbmRleCBhMzg0Y2Y1
OTdkNGE5ZDBmYjJlOWVlMGZmZWI1ZmEwMWEzYTg0ZDY0Li4wN2Q3MTAwYzViZmU1ODJjZGI1NmVj
NTkxOTZiZmY3MGEzMWU0OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1ZpZXdDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Zp
ZXdDbGllbnRFZmwuaApAQCAtNjAsNiArNjAsMTAgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogICAgIHN0YXRpYyB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYs
IFdLVG91Y2hFdmVudFJlZiwgYm9vbCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHN0YXRpYyB2b2lkIHNob3dDb2xvclBpY2tl
cihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGVuZENvbG9yUGlja2Vy
KFdLVmlld1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisjZW5kaWYKIAogICAgIEV3a1Zp
ZXcqIG1fdmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZDgxZmNhMzM5NGYzODdmZDNj
MmM2ZTE5YTI3ZmFmZDk3ZDEyYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29s
b3JQaWNrZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJDbGllbnQ6OnNob3dDb2xvclBpY2tl
cihXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBTdHJpbmcmIGNvbG9yLCBXS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5zaG93Q29sb3JQ
aWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnNob3dDb2xvclBpY2tlcih0
b0FQSSh3ZWJWaWV3KSwgdG9BUEkoY29sb3IuaW1wbCgpKSwgbGlzdGVuZXIsIG1fY2xpZW50LmNs
aWVudEluZm8pOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyQ2xpZW50OjplbmRQaWNrZXIoV2Vi
Vmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIW1fY2xpZW50LmVuZENvbG9yUGlja2VyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5lbmRDb2xvclBpY2tlcih0b0FQSSh3ZWJWaWV3
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE5YzdiZGQ3ZTEyMGVmMTExODVkZjgxZjEzMThlMTA1ZjQ3OWVkMzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmgK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBp
Y2tlckNsaWVudF9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyQ2xpZW50X2gKKworI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldL
Vmlld0VmbC5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYkNvbG9yUGlja2VyQ2xpZW50OiBwdWJsaWMgQVBJQ2xpZW50PFdLQ29sb3JQaWNr
ZXJDbGllbnQsIGtXS0NvbG9yUGlja2VyQ2xpZW50Q3VycmVudFZlcnNpb24+IHsKK3B1YmxpYzoK
KyAgICB2b2lkIHNob3dDb2xvclBpY2tlcihXZWJWaWV3KiwgY29uc3QgU3RyaW5nJiwgV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUmVmKTsKKyAgICB2b2lkIGVuZFBpY2tlcihXZWJWaWV3Kik7
Cit9OworCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdlYkNvbG9yUGlja2VyQ2xpZW50X2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDVkMTZkZDQ3MDU3ZjZjYTY4MTI2YWFjM2RkN2UxOTVhZmNiZGY3Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQ
aWNrZXJFZmwuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNs
dWRlICJld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbChXZWJWaWV3RWZsKiB3ZWJWaWV3
LCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikK
KyAgICA6IFdlYkNvbG9yUGlja2VyKGNsaWVudCkKKyAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQor
eworICAgIEFTU0VSVChtX3dlYlZpZXcpOworICAgIG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ciA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3JlYXRlKHRoaXMpOworfQor
Cit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIoKQoreworICAgIG1fd2ViVmlldy0+
Y29sb3JQaWNrZXJDbGllbnQoKS5lbmRQaWNrZXIobV93ZWJWaWV3KTsKK30KKwordm9pZCBXZWJD
b2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikKK3sKKyAgICBtX3dlYlZpZXctPmNvbG9yUGlja2VyQ2xpZW50KCkuc2hvd0NvbG9yUGlja2Vy
KG1fd2ViVmlldywgY29sb3Iuc2VyaWFsaXplZCgpLCB0b0FQSShtX2NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXIuZ2V0KCkpKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6c2V0U2VsZWN0
ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CisgICAgbV9jbGllbnQtPmRp
ZEVuZENvbG9yUGlja2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZs
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjJkZTc4NzRhMmFmZTRjYWY4YzFmMjc1NjgwNDYyZmJmOWVmYzgwMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJF
ZmwuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNv
bG9yUGlja2VyRWZsX2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJFZmxfaAorCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIuaCIKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJWaWV3
RWZsLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBpY2tlckVmbCA6
IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViQ29sb3JQaWNrZXJFZmw+IGNyZWF0ZShXZWJWaWV3RWZsKiB3ZWJWaWV3LCBXZWJDb2xvclBp
Y2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3Ip
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyRWZsKHdl
YlZpZXcsIGNsaWVudCwgaW5pdGlhbENvbG9yKSk7CisgICAgfQorICAgIH5XZWJDb2xvclBpY2tl
ckVmbCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpD
b2xvciYpIE9WRVJSSURFOworCisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYpOworcHJpdmF0ZToKKyAgICBXZWJDb2xvclBpY2tlckVmbChXZWJWaWV3RWZsKiwg
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisKKyAgICBX
ZWJWaWV3RWZsKiBtX3dlYlZpZXc7CisgICAgUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOworfTsKKworfQorI2VuZGlm
CisKKyNlbmRpZiAvLyBXZWJDb2xvclBpY2tlckVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ1YjE5MWZkNWY0ZmYwZDU4M2UxN2Y2YmY3ZTFmYzhj
MWIxNjdjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Q29sb3IuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eTo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYkNvbG9yUGlj
a2VyRWZsKiBjb2xvclBpY2tlcikKKyAgICA6IG1fY29sb3JQaWNrZXIoY29sb3JQaWNrZXIpCit7
CisgICAgQVNTRVJUKG1fY29sb3JQaWNrZXIpOworfQorCitXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKQoreworfQor
Cit2b2lkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IoY29uc3Qg
U3RyaW5nJiBjb2xvcikKK3sKKyAgICBtX2NvbG9yUGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJD
b3JlOjpDb2xvcihjb2xvcikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDBmYjFmMDQ5OTRiZGZiZDFlNWI3ZmFlYjMzNzc2MWRjZTkzMjdhNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaAorI2Rl
ZmluZSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaAorCisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yUGlj
a2VyRWZsOworCitjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJDb2xvclBpY2tlckVm
bCogY29sb3JQaWNrZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShjb2xvclBpY2tlcikpOworICAgIH0KKworICAg
IHZpcnR1YWwgfldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgpOworCisgICAgdm9p
ZCBzZXRDb2xvcihjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2ViQ29sb3JQaWNrZXJFZmwqKTsKKworICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgV2Vi
Q29sb3JQaWNrZXJFZmwqIG1fY29sb3JQaWNrZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjZW5kaWYgLy8gV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlZpZXdFZmwuY3BwCmluZGV4IDU2NjBiZTExMWM0MmQwZDI1YzYxYTg4NzA2YTE3
NmI3YmE4ZTljNWIuLjg0MjdmZGIwNzMxZGZjMjM1YTc4MDY1MDRmNzA1MTgwNzcyYzRmYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcApAQCAtNDMsNiAr
NDMsMTAgQEAKICNpbmNsdWRlICJFd2tUb3VjaEV2ZW50LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyRWZsLmgiCisjZW5k
aWYKKwogdXNpbmcgbmFtZXNwYWNlIEV3a1ZpZXdDYWxsYmFja3M7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApAQCAtMTI0LDQgKzEyOCwxNiBAQCB2b2lkIFdlYlZpZXdFZmw6OnNlbmRUb3Vj
aEV2ZW50KEV3a1RvdWNoRXZlbnQqIHRvdWNoRXZlbnQpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQordm9pZCBXZWJWaWV3RWZsOjppbml0aWFsaXplQ29sb3JQaWNr
ZXJDbGllbnQoY29uc3QgV0tDb2xvclBpY2tlckNsaWVudCogY2xpZW50KQoreworICAgIG1fY29s
b3JQaWNrZXJDbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorCitQYXNzUmVmUHRyPFdlYkNv
bG9yUGlja2VyPiBXZWJWaWV3RWZsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBh
Z2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
Cit7CisgICAgcmV0dXJuIFdlYkNvbG9yUGlja2VyRWZsOjpjcmVhdGUodGhpcywgcGFnZSwgY29s
b3IpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaAppbmRleCBkNzE3MjM0YzZiNzhkN2ZhZGUxMGU4YTVi
NjVhMTY0NWFjYjYyNWRkLi4zYTQ1ZjdiZjAyZDQ2MjM4MTQ1MTM0ZmJjMDAyZGI4M2FlZmQzMDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBXZWJWaWV3RWZsX2gKICNkZWZpbmUgV2ViVmlld0VmbF9oCiAKKyNp
bmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKIAog
Y2xhc3MgRXdrVmlldzsKQEAgLTQ4LDYgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRU
b3VjaEV2ZW50KEV3a1RvdWNoRXZlbnQqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCisgICAgdm9pZCBpbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgV0tD
b2xvclBpY2tlckNsaWVudCopOworCisgICAgV2ViQ29sb3JQaWNrZXJDbGllbnQmIGNvbG9yUGlj
a2VyQ2xpZW50KCkgeyByZXR1cm4gbV9jb2xvclBpY2tlckNsaWVudDsgfQorICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5
KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJ
REU7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3RWZsKFdlYkNvbnRleHQqLCBXZWJQ
YWdlR3JvdXAqKTsKIApAQCAtNjAsNiArNjgsMTAgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAg
RXdrVmlldyogbV9ld2tWaWV3OwogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAg
V2ViQ29sb3JQaWNrZXJDbGllbnQgbV9jb2xvclBpY2tlckNsaWVudDsKKyNlbmRpZgorCiAgICAg
ZnJpZW5kIGNsYXNzIFdlYlZpZXc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMzODNlMTU4ZjMwYWMzYzdmNmY4ZjY5
MjIyMzQzN2Q4N2I5NDczNi4uYzQyZjJhZTA0ZWZiZDg4YWFmNGI2YzRjMDI1Mjg4NmM0Y2YxNDlh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTE5NSwxMCArMTE5NSw3IEBACiAJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVFNCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi87IH07CiAJCUVEODJBN0YyMTI4QzZG
QUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tC
dW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUVEQ0E3MUI3MTI4RERBOEMwMDIwMUIyNiAvKiBXS0J1bmRsZVBhZ2VPdmVy
bGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
MjJGMTAwMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCAqLzsgfTsK
LQkJRjAzNjk3ODUxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2
OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAq
LzsgfTsKLQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjAzNjk3ODQxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5o
ICovOyB9OwogCQlGMDM2OTc4ODE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODcx
NUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLzsgfTsKLQkJRjAzNjk3OEIx
NUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4OTE1
RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAq
LzsgfTsKIAkJRjYxMTNFMjUxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYx
MTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9
OwogCQlGNjExM0UyODEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNF
MjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLzsgfTsK
IAkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNzEy
NkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjcyMywxMSArMjcyMCw3IEBA
CiAJCUUxRURGRTE0MTYyOEREN0EwMDM5RUNEQSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4
Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0
IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMDM2OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyog
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5Nzg0MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3OEExNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250
ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNF
MjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3
IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00MDQ5LDggKzQwNDIsNiBAQAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAv
KiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUg
LyogV2ViQ29sb3JQaWNrZXIuY3BwICovLAogCQkJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAv
KiBXZWJDb2xvclBpY2tlci5oICovLAotCQkJCUYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAotCQkJCUYwMzY5NzhBMTVG
NEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywK
IAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29u
dGV4dC5jcHAgKi8sCkBAIC00MTc0LDggKzQxNjUsNiBAQAogCQkJCUJDNjQ2QzE3MTFERDM5OUYw
MDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUJDNjQ2QzE4MTFERDM5OUYw
MDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAogCQkJCUJDNjQ2QzE5MTFE
RDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLywKLQkJCQlGMDM2OTc4
MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAqLywK
LQkJCQlGMDM2OTc4NDE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmggKi8sCiAJCQkJQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAg
Ki8sCiAJCQkJQkNCOUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5oICovLAogCQkJ
CUJDQzkzOEUwMTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2YXRlLmggKi8sCkBAIC01
NzI2LDcgKzU3MTUsNiBAQAogCQkJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRs
ZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYy
MEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjI3MTI0
RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjg0RDcxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1IC8q
IFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0NzMx
M0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTY4MTYs
NyArNjgwNCw2IEBACiAJCQkJQkMxMTFBNUExMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyog
V2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYwMzY5Nzg4MTVGNEJGMDUw
MEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMDM2OTc4
QjE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MjhGMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MjkxMTQ3MzEyQkUwMDZDNjgxQSAv
KiBXZWJDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMUZFQzFDMTYy
N0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtNzAwNyw3ICs2OTk0LDYgQEAKIAkJCQlCQzE0REY5RTEyMEI2MzVGMDA4MjZD
MEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVG
NTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJRjAzNjk3ODUxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EyODRENjE0OTJG
MkM3MDAxRjkwNDIgLyogV0tDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYy
OTYxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0I5RTI0QzExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCBpbiBTb3VyY2Vz
ICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223207</attachid>
            <date>2014-02-04 21:19:29 -0800</date>
            <delta_ts>2014-02-04 21:48:17 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-119120-20140205141927.patch</filename>
            <type>text/plain</type>
            <size>58034</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzg1NGZmNDcyMGNmOGMw
ODZmYWNhYzA4M2M3NGZlZmMxMTkzYWZlMy4uY2VjNTUwOWNiZmMyYTY0YTdkMDk2ODI1ZTgyOTdm
OGRkM2EzYTFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAyLTA0ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1v
dmUgYW5kIG1ha2UgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHRvIEVGTCBzcGVjaWZpYyBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTEyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciBhbmQgcmVsYXRlZCBmaWxlcyBhcmUgb25seSB1
c2VkIGluIEVGTCBzaW5jZSBhZGRlZC4KKyAgICAgICAgSW5kZWVkLCBpdCBkb2VzIG5vdCB3b3Jr
IHNpbmNlIHJlZmFjdG9yZWQgY29tbW9uIGxvZ2ljIGZvciBDb2xvclBpY2tlciBpbiBXZWJQYWdl
UHJveHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlZCB0aGVtIHRvIEVGTCBzcGVjZmljIGFu
ZCByZWZhY3RvciB0byB3b3JrIHdlbGwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogTW92
ZWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCB0byBQbGF0Zm9ybUVmbC5j
bWFrZS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIENvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3IgRWZsIGZyb20g
c291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eSByZWxhdGVkIGZpbGVzIGFuZCBuZXdseSBhZGRlZCBmaWxl
cyBpbnRvIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwLgorICAgICAgICAo
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcDogSW50cm9kdWNlZCBXS0Nv
bG9yUGlja2VyQ2xpZW50IGFuZCBzZXR0ZXIuCisgICAgICAgIChXS1ZpZXdTZXRDb2xvclBpY2tl
ckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29sb3JfcGlja2VyLmNw
cDogRW5hYmxlZCB0ZXN0IGNhc2UgZm9yIGNvbG9yIHBpY2tlci4KKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6IFJlbW92ZWQgdW5uZWNlc3Nh
cnkgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IGRlcGVuZGVuY3kuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQu
aDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwOiBS
ZW1vdmVkIGNvbG9yIHBpY2tlciBjYWxsYmFja3Mgb2YgUGFnZVVJQ2xpZW50LgorICAgICAgICAo
V2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Zp
ZXdDbGllbnRFZmwuY3BwOiBSZWdpc3RlcmVkIGNhbGxiYWNrcyBvZiBXS0NvbG9yUGlja2VyQ2xp
ZW50LgorICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjplbmRDb2xvclBpY2tlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwpOgorICAgICAgICAoV2ViS2l0
OjpWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
ckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmll
d0NsaWVudEVmbC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckNsaWVudDo6c2hv
d0NvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJDbGllbnQ6OmVu
ZFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmguCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyRWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVm
bDo6fldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OnNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0Vm
bDo6aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmll
d0VmbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpjb2xvclBpY2tlckNsaWVudCk6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmVkIENv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3Ig
RWZsIGZyb20gc291cmNlIGxpc3QuCisKIDIwMTQtMDItMDQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIElEQjogaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNl
LWZhaWx1cmUuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA2NzE4MWM4NGZmYjE2
MTUzZjZjM2U0ODk4NWYwOTNlZWI0ODVhZThjLi5jZTVjYzZkMDkwZGM3ZWJlYjFjZTU1OWIzNmE0
MmZlNWY5MTFlOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMzExLDcgKzMxMSw2IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5j
cHAKICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJDb2xvclBpY2tlci5jcHAKLSAgICBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmNwcApAQCAtMzY1LDcgKzM2NCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRl
cnlTdGF0dXMuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVu
dGlhbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU0N2EyOGI0MWQwNDhi
OTBmYWI3NjNlZWYwYTc4MjY2MzU2YWM4Y2QuLmNkNDc1M2RiNzQzMWIzZWMyMjAxZTkyMTAxYzlj
MGEzZTVmY2M3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTM3LDggKzUz
Nyw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeVN0YXR1cy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0JhdHRlcnlTdGF0dXMuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaCBcCkBAIC04OTUsOCArODkzLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCi0JU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDA3MjhiNTUzNWU3ZTQ5ODhhMjVlMTRmNDJjMzFmYTE5ZDYzZjBhMDQuLmNhZTU5
NzE0ZjBjYTZjY2Q1ZGIxOTY4MTkyNGEwMWIxMDAyNmI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC01Nyw2ICs1Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCiAKKyAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLRXZlbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS1BhZ2VFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwSXRlbS5jcHAK
QEAgLTE0NCw2ICsxNDUsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVBy
b2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0aW9u
Q2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKyAgICBV
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcAorICAgIFVJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJFZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNw
cAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dE1lbnVQcm94eUVmbC5jcHAKICAgICBVSVBy
b2Nlc3MvZWZsL1dlYkluc3BlY3RvclByb3h5RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdiZmUzYzllNTk2ODQ0MGJiYzcx
MjdhM2VhMzI2MTU0M2U2YzI2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwotCi1XS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKQot
ewotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHJldHVybiB0b0FQSShXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OkFQSVR5cGUpOwotI2Vsc2UKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgotfQotCi12b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9y
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJp
bmdSZWYgY29sb3IpCi17Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdG9JbXBs
KGxpc3RlbmVyUmVmKS0+c2V0Q29sb3IodG9XVEZTdHJpbmcoY29sb3IpKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGxpc3RlbmVyUmVmKTsKLSAgICBVTlVTRURfUEFSQU0oY29sb3IpOwotI2Vu
ZGlmCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGJmZDQ3MzJjOTE1MmRiODY1ZTNkZjcxZjdlY2RlOWZmN2NhMjNkYWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJfaAotI2RlZmluZSBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaAot
Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyR2V0VHlwZUlEKCk7Ci0KLVdLX0VYUE9SVCB2b2lkIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5l
clJlZiwgY29uc3QgV0tTdHJpbmdSZWYgY29sb3IpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0K
LSNlbmRpZgotCi0jZW5kaWYgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyX2ggKi8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JmZTNjOWU1OTY4
NDQwYmJjNzEyN2EzZWEzMjYxNTQzZTZjMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3Bw
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQorICAgIHJldHVybiB0b0FQSShXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OkFQ
SVR5cGUpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJl
ZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJpbmdSZWYgY29sb3IpCit7CisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisgICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0Q29sb3IodG9XVEZT
dHJpbmcoY29sb3IpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxpc3RlbmVyUmVmKTsKKyAg
ICBVTlVTRURfUEFSQU0oY29sb3IpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlmZjdjYTIz
ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisjZGVm
aW5lIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dL
X0VYUE9SVCBXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsK
KworV0tfRVhQT1JUIHZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1Jl
ZiBjb2xvcik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCmluZGV4IDViYmQ5OWU5OTY5ZWYzNzZkZDJi
ZGU5MTRlMmJiMWJjM2NhMGNmNTQuLjYzMWU5ZTMzM2UwMzQ5NTY5NTRmZjk2MDgxYmU1MGQyYWE4
MThlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
d0VmbC5jcHAKQEAgLTM0LDYgKzM0LDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
K3ZvaWQgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0
IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKiB3a0NsaWVudCkKK3sKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKKyAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYp
KS0+aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHZpZXdSZWYpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYK
K30KKwogdm9pZCBXS1ZpZXdQYWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiB2aWV3UmVmLCBj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UpCiB7CiAgICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+
KHRvSW1wbCh2aWV3UmVmKSktPnBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAppbmRleCBmZWYxOTM3
YmM0MGUwNzYwMzlkMGQ1OTA3NGIzNjM5YWQ5OGQ0Y2ZjLi44NmZjMWY0NTlhOWU5MWUxZTNmODdj
MjM0M2Q4ZTZhYjIwM2MxY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLVmlld0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tWaWV3RWZsLmgKQEAgLTM3LDYgKzM3LDI0IEBAIHR5cGVkZWYgc3RydWN0IF9jYWly
b19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK3R5cGVk
ZWYgdm9pZCAoKldLU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBXS1N0
cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0hpZGVDb2xv
clBpY2tlckNhbGxiYWNrKShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CisKK3R5cGVkZWYgc3RydWN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlIHsKKyAgICBpbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29u
c3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwor
fSBXS0NvbG9yUGlja2VyQ2xpZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tDb2xvclBpY2tl
ckNsaWVudFYwIHsKKyAgICBXS0NvbG9yUGlja2VyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAg
ICAgICAgIGJhc2U7CisgICAgV0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICBlbmRDb2xvclBpY2tlcjsKK30gV0tDb2xvclBpY2tlckNsaWVu
dFYwOworCitlbnVtIHsga1dLQ29sb3JQaWNrZXJDbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsK
KworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHBh
Z2UsIGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKiBjbGllbnQpOworCiBXS19FWFBPUlQg
dm9pZCBXS1ZpZXdQYWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90
Kik7CiAKIFdLX0VYUE9SVCBXS0ltYWdlUmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1Jl
Zik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90
ZXN0X2V3azJfY29sb3JfcGlja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb2xvcl9waWNrZXIuY3BwCmluZGV4IDNlNzI5NGUyMWI5YWE5
YTA0NGYwMDM3YzhjZGZlNDc3NzYwMzE3ZDYuLjNiODk4MzUwMTM5N2Q0NDEwNGNjZDAyZDlkYmNj
ZWI0Njc1ZjE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9jb2xvcl9waWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb2xvcl9waWNrZXIuY3BwCkBAIC0xMjQs
NyArMTI0LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLVRFU1RfRihFV0syQ29sb3JQaWNr
ZXJUZXN0LCBESVNBQkxFRF9ld2tfY29sb3JfcGlja2VyX2NvbG9yX3NldCkKK1RFU1RfRihFV0sy
Q29sb3JQaWNrZXJUZXN0LCBld2tfY29sb3JfcGlja2VyX2NvbG9yX3NldCkKIHsKICAgICBFd2tf
Vmlld19TbWFydF9DbGFzcyogYXBpID0gZXdrVmlld0NsYXNzKCk7CiAgICAgYXBpLT5pbnB1dF9w
aWNrZXJfY29sb3JfcmVxdWVzdCA9IHNob3dDb2xvclBpY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwYzJjMjIyMTI4NTc2NzAz
NDE0MzlmNjRhZjk3YWZmNTAxZjJiOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKLQotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi17Ci19
Ci0KLVdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJQcm94eSgpCi17Ci19Ci0KLXZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5OjppbnZhbGlkYXRlKCkKLXsKLSAgICBtX3BhZ2UgPSAwOwotfQotCi12b2lkIFdl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IoY29uc3QgU3RyaW5nJiBj
b2xvcikKLXsKLSAgICBpZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdl
LT5zZXRDb2xvclBpY2tlckNvbG9yKFdlYkNvcmU6OkNvbG9yKGNvbG9yKSk7Ci0gICAgbV9wYWdl
LT5lbmRDb2xvclBpY2tlcigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODI2OGM2Y2NlMGI5M2Q0N2NiNTYzYTkxMTlmNTg5
MWFjNjU1ZmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKLSNkZWZpbmUgV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlUHJveHk7Ci0KLWNs
YXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI+IHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShwYWdlKSk7Ci0g
ICAgfQotCi0gICAgdmlydHVhbCB+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7
Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmlu
ZyYpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eShXZWJQYWdlUHJveHkqKTsKLQotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFn
ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi0KLSNlbmRpZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiZjU5
ZWM2N2Y0N2E1ZjVjNGIyOTliOGFiYmFhYmQ5ZWQzMzMyZjY5Li4yMTg5MWM0YmIwNWRmZjVmMDk0
MTJkMjZiZjhkZTljZDcxOTc3NGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNTcsNyArNTcsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlz
dC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJD
ZXJ0aWZpY2F0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1l
bnVQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDhlZmZhYmYzZTUxNDg2ZGVj
MzRjOGVmNDE2YTVhNjBiMzFlZDJjOTMuLmQ5Zjk4MjQ5ZDBmNWUwOTFhYzc2N2RkMTI0MTZhN2M2
ODAyNTQ2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0
Myw3ICsxNDMsNiBAQCBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogY2xh
c3MgU3RyaW5nUGFpclZlY3RvcjsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW07Ci1jbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk7CiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQ
cm94eTsKIGNsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk7CkBAIC0xMzIzLDcgKzEzMjIs
NiBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAg
UmVmUHRyPFdlYkNvbG9yUGlja2VyPiBtX2NvbG9yUGlja2VyOwotICAgIFJlZlB0cjxXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsK
ICNlbmRpZgogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVJQ2xpZW50LmNwcAppbmRleCA1MTM4ODljM2ZkZTIxZmFhZjU3MGFiMWZkYmU1NjgwMTZm
MjlkMzk0Li4xMTNlMzc4OTQ5MzQ1NDFhNzFmZWFlZWE5NjFiOWIxZDg1YjMxZjFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsdWdp
bkluZm9ybWF0aW9uLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CkBAIC00MzYsMjQgKzQzNSw0IEBAIGJvb2wgV2ViVUlDbGll
bnQ6OnNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJl
dHVybiBtX2NsaWVudC5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Ci1ib29sIFdlYlVJQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBj
b25zdCBTdHJpbmcmIGluaXRpYWxDb2xvciwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5KiBsaXN0ZW5lcikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tlcikKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKHRvQVBJ
KHBhZ2UpLCB0b0FQSShpbml0aWFsQ29sb3IuaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlVJ
Q2xpZW50OjpoaWRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlKQotewotICAgIGlmICgh
bV9jbGllbnQuaGlkZUNvbG9yUGlja2VyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBt
X2NsaWVudC5oaWRlQ29sb3JQaWNrZXIodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDI3YzZiZGU0OTAz
MWZhMGI1Yzk5OWQ4OTc4NmEyM2UzNWFmZDQ5OTIuLjcyMDk4NjA4NTRlZTE1NTliNzMzMTY3Y2Ji
YWY0NjYyYzAxYzQ2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBA
IC01Niw3ICs1Niw2IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNs
YXNzIFdlYlNlY3VyaXR5T3JpZ2luOwpAQCAtMTI1LDExICsxMjQsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0
IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIEFQSTo6RGF0YSopOwogCiAgICAgYm9vbCBz
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KFdlYlBhZ2VQcm94eSopOwotCi0jaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCi0gICAgYm9vbCBzaG93Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgU3RyaW5nJiwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Kik7Ci0gICAg
Ym9vbCBoaWRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kik7Ci0jZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdl
VUlDbGllbnRFZmwuY3BwCmluZGV4IDZiYWIyM2E3NDM4ODA4ZTY1ZWIwZDEzM2M4NjhjZDMxZTM2
ZWY2ZTIuLmZlMTE2ZTk3ZDYzOTJlZDMwMmFlNGEzNDQxZDlmNmMxNWFlYjQzMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKQEAgLTM1
LDcgKzM1LDYgQEAKICNpbmNsdWRlICJld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcHJpdmF0ZS5o
IgogI2luY2x1ZGUgImV3a193aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVj
b3JlX0V2YXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBFd2tWaWV3Q2FsbGJhY2tzOwogCkBAIC03OSwxMCArNzgsNiBAQCBQYWdlVUlDbGllbnRFZmw6
OlBhZ2VVSUNsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAgICAgdWlDbGllbnQucnVu
T3BlblBhbmVsID0gcnVuT3BlblBhbmVsOwogICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBj
cmVhdGVOZXdQYWdlOwotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHVpQ2xpZW50
LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKLSAgICB1aUNsaWVudC5oaWRlQ29s
b3JQaWNrZXIgPSBoaWRlQ29sb3JQaWNrZXI7Ci0jZW5kaWYKIAogICAgIFdLUGFnZVNldFBhZ2VV
SUNsaWVudChwYWdlUmVmLCAmdWlDbGllbnQuYmFzZSk7CiAKQEAgLTIyNiwyMSArMjIxLDYgQEAg
V0tQYWdlUmVmIFBhZ2VVSUNsaWVudEVmbDo6Y3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLVVJM
UmVxdWVzdFJlZiB3a1JlcXVlc3QsIFcKICAgICByZXR1cm4gdG9QYWdlVUlDbGllbnRFZmwoY2xp
ZW50SW5mbyktPm1fdmlldy0+Y3JlYXRlTmV3UGFnZShyZXF1ZXN0LCB3a1dpbmRvd0ZlYXR1cmVz
KTsKIH0KIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotdm9pZCBQYWdlVUlDbGllbnRF
Zmw6OnNob3dDb2xvclBpY2tlcihXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwg
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQotewotICAgIFBhZ2VVSUNsaWVudEVmbCogcGFnZVVJQ2xpZW50ID0gdG9QYWdlVUlD
bGllbnRFZmwoY2xpZW50SW5mbyk7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3Jl
OjpDb2xvcihXZWJLaXQ6OnRvV1RGU3RyaW5nKGluaXRpYWxDb2xvcikpOwotICAgIHBhZ2VVSUNs
aWVudC0+bV92aWV3LT5yZXF1ZXN0Q29sb3JQaWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKLX0KLQot
dm9pZCBQYWdlVUlDbGllbnRFZmw6OmhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCi17Ci0gICAgUGFnZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0
b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKTsKLSAgICBwYWdlVUlDbGllbnQtPm1fdmlldy0+
ZGlzbWlzc0NvbG9yUGlja2VyKCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBQYWdlVUlDbGllbnRFZmw6
OnNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVmIG1lbnVMaXN0
ZW5lclJlZiwgV0tSZWN0IHJlY3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0
aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQzMl90
IHNlbGVjdGVkSW5kZXgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHRv
UGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXctPnJlcXVlc3RQb3B1cE1lbnUobWVu
dUxpc3RlbmVyUmVmLCByZWN0LCB0ZXh0RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IsIGl0ZW1z
UmVmLCBzZWxlY3RlZEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZVVJQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VVSUNsaWVudEVmbC5oCmluZGV4IDcwNDFlMWUxOGNkY2QzZDhjZjgyYTIzNTJkNzM5NzVjM2Uy
ZTgyYzcuLmJmMDUwNGRhNjZlNTllNjJjYWIwMmIyNDczMTUwNjhjYzFlMjZkZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaApAQCAtNjMsMTAg
KzYzLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIHJ1bk9wZW5QYW5lbChX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyBXS1BhZ2VSZWYg
Y3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVm
LCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKLSNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNr
ZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCopOwotICAgIHN0YXRpYyB2b2lkIGhpZGVDb2xvclBp
Y2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQg
c2hvd1BvcHVwTWVudShXS1BhZ2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYsIFdLUmVjdCwg
V0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBXS0FycmF5
UmVmIGl0ZW1zUmVmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwogICAgIHN0YXRpYyB2b2lkIGhpZGVQb3B1cE1lbnUoV0tQYWdlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
Vmlld0NsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGll
bnRFZmwuY3BwCmluZGV4IDY3OTAzNGQ0ZTI1ODE2ZTAxOGI2MWJiNDEzNTA1Nzg4YTgwMzBhY2Qu
LjIzYWM1ZGIzMWVkYWRjZWY1MzViZjFkM2RiZTNlOTFjNWQ1ZTdkM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcApAQCAtMTU4LDYgKzE1OCwx
OSBAQCB2b2lkIFZpZXdDbGllbnRFZmw6OmRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdL
VG91Y2hFdmVudFJlZiBldmVudCwgYm9vbCB3YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKK3ZvaWQgVmlld0NsaWVudEVmbDo6c2hvd0NvbG9yUGlja2VyKFdLVmll
d1JlZiwgV0tTdHJpbmdSZWYgY29sb3JTdHJpbmcsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJDb3JlOjpD
b2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoY29sb3JTdHJp
bmcpKTsKKyAgICB0b0V3a1ZpZXcoY2xpZW50SW5mbyktPnJlcXVlc3RDb2xvclBpY2tlcihsaXN0
ZW5lciwgY29sb3IpOworfQorCit2b2lkIFZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKFdL
Vmlld1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB0b0V3a1ZpZXcoY2xpZW50
SW5mbyktPmRpc21pc3NDb2xvclBpY2tlcigpOworfQorI2VuZGlmCisKIFZpZXdDbGllbnRFZmw6
OlZpZXdDbGllbnRFZmwoRXdrVmlldyogdmlldykKICAgICA6IG1fdmlldyh2aWV3KQogewpAQCAt
MTgyLDExICsxOTUsMjUgQEAgVmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbChFd2tWaWV3KiB2
aWV3KQogI2VuZGlmCiAKICAgICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmlldy0+d2tWaWV3KCks
ICZ2aWV3Q2xpZW50LmJhc2UpOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAg
V0tDb2xvclBpY2tlckNsaWVudFYwIGNvbG9yUGlja2VyQ2xpZW50OworICAgIG1lbXNldCgmY29s
b3JQaWNrZXJDbGllbnQsIDAsIHNpemVvZihXS0NvbG9yUGlja2VyQ2xpZW50VjApKTsKKyAgICBj
b2xvclBpY2tlckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIGNvbG9yUGlja2VyQ2xpZW50
LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgY29sb3JQaWNrZXJDbGllbnQuc2hvd0NvbG9y
UGlja2VyID0gc2hvd0NvbG9yUGlja2VyOworICAgIGNvbG9yUGlja2VyQ2xpZW50LmVuZENvbG9y
UGlja2VyID0gZW5kQ29sb3JQaWNrZXI7CisgICAgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQo
bV92aWV3LT53a1ZpZXcoKSwgJmNvbG9yUGlja2VyQ2xpZW50LmJhc2UpOworI2VuZGlmCiB9CiAK
IFZpZXdDbGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKCkKIHsKICAgICBXS1ZpZXdTZXRWaWV3Q2xp
ZW50KG1fdmlldy0+d2tWaWV3KCksIDApOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CisgICAgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgMCk7Cisj
ZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCmluZGV4IDNiOGMyNDdiN2JjMmM5ZWM1ZTY0Y2Y3NmMy
N2QyOTg0YTM3NTI5OTYuLjdkOGUzOGE1MjQ1YmI2NWQ5NjNlZTZlOGVjNDAzNjk4NWUwMjQzZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCkBAIC01
Myw2ICs1MywxMCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3Rh
dGljIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KFdLVmlld1JlZiwgV0tUb3VjaEV2ZW50UmVmLCBi
b29sLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICNlbmRpZgorI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCisgICAgc3RhdGljIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJp
bmdSZWYsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZW5kQ29sb3JQaWNrZXIoV0tWaWV3UmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKKyNlbmRpZgogCiAgICAgRXdrVmlldyogbV92aWV3OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjlhOWNjODZhMTc2ZTMzMTQ5ZGI4MGQ5MjBhNGNjNTBmOGRlZWZj
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgor
CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCBXZWJDb2xvclBpY2tlckNsaWVudDo6c2hvd0NvbG9yUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcs
IGNvbnN0IFN0cmluZyYgY29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0
ZW5lcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKHRvQVBJKHdlYlZpZXcpLCB0b0FQ
SShjb2xvci5pbXBsKCkpLCBsaXN0ZW5lciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30K
Kwordm9pZCBXZWJDb2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcp
Cit7CisgICAgaWYgKCFtX2NsaWVudC5lbmRDb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jbGllbnQuZW5kQ29sb3JQaWNrZXIodG9BUEkod2ViVmlldyksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZGMyMDUw
OGIyM2RmZDI2YWU5MmZhOTdlY2VlZTk0NDY0NjAzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBpY2tlckNsaWVu
dF9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyQ2xpZW50X2gKKworI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLVmlld0VmbC5o
IgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBDbGllbnRUcmFpdHM8V0tDb2xvclBpY2tlckNsaWVudEJhc2U+IHsKKyAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8V0tDb2xvclBpY2tlckNsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBpY2tlckNsaWVudDogcHVibGljIEFQ
STo6Q2xpZW50PFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBz
aG93Q29sb3JQaWNrZXIoV2ViVmlldyosIGNvbnN0IFN0cmluZyYsIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclJlZik7CisgICAgdm9pZCBlbmRQaWNrZXIoV2ViVmlldyopOworfTsKKworfQor
I2VuZGlmCisKKyNlbmRpZiAvKiBXZWJDb2xvclBpY2tlckNsaWVudF9oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA1ZDE2ZGQ0NzA1N2Y2Y2E2ODEyNmFhYzNkZDdlMTk1YWZjYmRmNzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNw
cApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKworI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiZXdrX2Nv
bG9yX3BpY2tlcl9wcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvclBp
Y2tlckVmbDo6V2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQ
aWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpCisgICAgOiBXZWJD
b2xvclBpY2tlcihjbGllbnQpCisgICAgLCBtX3dlYlZpZXcod2ViVmlldykKK3sKKyAgICBBU1NF
UlQobV93ZWJWaWV3KTsKKyAgICBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgPSBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKK30KKwordm9pZCBXZWJD
b2xvclBpY2tlckVmbDo6ZW5kUGlja2VyKCkKK3sKKyAgICBtX3dlYlZpZXctPmNvbG9yUGlja2Vy
Q2xpZW50KCkuZW5kUGlja2VyKG1fd2ViVmlldyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJF
Zmw6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAg
bV93ZWJWaWV3LT5jb2xvclBpY2tlckNsaWVudCgpLnNob3dDb2xvclBpY2tlcihtX3dlYlZpZXcs
IGNvbG9yLnNlcmlhbGl6ZWQoKSwgdG9BUEkobV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmdl
dCgpKSk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IoY29u
c3QgV2ViQ29yZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViQ29sb3JQaWNrZXJFZmw6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBj
b2xvcikKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Ns
aWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworICAgIG1fY2xpZW50LT5kaWRFbmRDb2xvclBp
Y2tlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMx
Yjk4ZWIwMDMwNWFjOGNmYjcyNjdmZjMyMjM2NWQyOWQ4MDg5NTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmgKQEAgLTAs
MCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBpY2tlckVm
bF9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyRWZsX2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViVmlld0VmbC5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmwgOiBwdWJsaWMgV2Vi
Q29sb3JQaWNrZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlj
a2VyRWZsPiBjcmVhdGUoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQaWNrZXI6OkNsaWVu
dCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlckVmbCh3ZWJWaWV3LCBjbGll
bnQsIGluaXRpYWxDb2xvcikpOworICAgIH0KKyAgICB+V2ViQ29sb3JQaWNrZXJFZmwoKSB7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
K3ByaXZhdGU6CisgICAgV2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCosIFdlYkNvbG9yUGlj
a2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworCisgICAgV2ViVmlld0VmbCog
bV93ZWJWaWV3OworICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+
IG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsKK307CisKK30KKyNlbmRpZgorCisjZW5kaWYg
Ly8gV2ViQ29sb3JQaWNrZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE0N2YwZDBhNDAwNGRmOWQ2ZWE2OWE1MjkzODY5NzEzMGM2MDE2ZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
KyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3Iu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eTo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYkNvbG9yUGlja2VyRWZs
KiBjb2xvclBpY2tlcikKKyAgICA6IG1fY29sb3JQaWNrZXIoY29sb3JQaWNrZXIpCit7CisgICAg
QVNTRVJUKG1fY29sb3JQaWNrZXIpOworfQorCitXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKQoreworfQorCit2b2lk
IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAg
bV9jb2xvclBpY2tlciA9IDA7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQoreworICAgIGlmICghbV9jb2xv
clBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb2xvclBpY2tlci0+ZGlkQ2hvb3Nl
Q29sb3IoV2ViQ29yZTo6Q29sb3IoY29sb3IpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YjVjM2ExOGY3ZDk1NjcwNGU5ZTQ0OWRmZWZkOWQy
NGE2NjQyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5X2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKKworI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJDb2xvclBpY2tlckVmbDsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Q29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eT4gY3JlYXRlKFdlYkNvbG9yUGlja2VyRWZsKiBj
b2xvclBpY2tlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KGNvbG9yUGlja2VyKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7CisKKyAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKKyAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJDb2xv
clBpY2tlckVmbCopOworCisgICAgV2ViQ29sb3JQaWNrZXJFZmwqIG1fY29sb3JQaWNrZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQorCisjZW5kaWYgLy8gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCmluZGV4IGM0OWVl
MThiNWE1NjQwMTg2MWFkNDk5NjY1NmYxYzQ4MThmNTZkYTkuLmJhM2U2NWNiZjczYzFlZjMxZmZl
YTg3MjdjODVmNzZiMDk1YmM5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlld0VmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJWaWV3RWZsLmNwcApAQCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlICJFd2tUb3VjaEV2ZW50
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldl
YkNvbG9yUGlja2VyRWZsLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIEV3a1ZpZXdDYWxs
YmFja3M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTc4LDQgKzE4MiwxNiBAQCB2
b2lkIFdlYlZpZXdFZmw6OmV4aXRGdWxsU2NyZWVuKCkKIAogI2VuZGlmIC8vIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQordm9pZCBXZWJWaWV3
RWZsOjppbml0aWFsaXplQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgV0tDb2xvclBpY2tlckNsaWVu
dEJhc2UqIGNsaWVudCkKK3sKKyAgICBtX2NvbG9yUGlja2VyQ2xpZW50LmluaXRpYWxpemUoY2xp
ZW50KTsKK30KKworUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gV2ViVmlld0VmbDo6Y3JlYXRl
Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29s
b3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQoreworICAgIHJldHVybiBXZWJDb2xvclBpY2tl
ckVmbDo6Y3JlYXRlKHRoaXMsIHBhZ2UsIGNvbG9yKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
Vmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKaW5k
ZXggMWNiYmNmM2VlZjQyNGUxMDdmNDAwM2M2Mjg3NDViMWZlNjU4MjA3OS4uMDc0MWNlZjJlNjFl
YWUzYzcyMjEyMzA1ZGM0YjNiZjIwY2JjMmIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJWaWV3RWZsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViVmlld0VmbF9o
CiAjZGVmaW5lIFdlYlZpZXdFZmxfaAogCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAKIGNsYXNzIEV3a1ZpZXc7CkBAIC01Miw2ICs1Mywx
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01v
dXNlX1VwKik7CiAgICAgdm9pZCBzZW5kTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNl
X01vdmUqKTsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQgaW5pdGlh
bGl6ZUNvbG9yUGlja2VyQ2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKik7CisK
KyAgICBXZWJDb2xvclBpY2tlckNsaWVudCYgY29sb3JQaWNrZXJDbGllbnQoKSB7IHJldHVybiBt
X2NvbG9yUGlja2VyQ2xpZW50OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlj
a2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIFdlYlZpZXdFZmwoV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogCkBAIC03OCw2
ICs4NiwxMCBAQCBwcml2YXRlOgogICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKICAgICBib29sIG1f
aGFzUmVxdWVzdGVkRnVsbFNjcmVlbjsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
ICAgIFdlYkNvbG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7CisjZW5kaWYKKwog
ICAgIGZyaWVuZCBjbGFzcyBXZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDlhNTBjMWVhOGYwZWFlYzkyYmEx
ZTRhM2ZhMjYxMzRjN2FlZDcyZTYuLjI4YzIxMTkwMDIxZWM2NTQ5OGE0ZGNmN2Q0ZmY4MjMwMmI2
ZDM5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0MjAsOCArMTQyMCw2IEBACiAJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi87IH07CiAJCUVEODJBN0YyMTI4
QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyog
V0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUVEQ0E3MUI3MTI4RERBOEMwMDIwMUIyNiAvKiBXS0J1bmRsZVBhZ2VP
dmVybGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBMjJGMTAwMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCAqLzsg
fTsKLQkJRjAzNjk3ODUxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
MDM2OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNw
cCAqLzsgfTsKLQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjAzNjk3ODQxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oICovOyB9OwogCQlGMDM2OTc4ODE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3
ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLzsgfTsKIAkJRjAzNjk3
OEIxNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4
OTE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cCAqLzsgfTsKIAkJRjYxMTNFMjUxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJM
UGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICov
OyB9OwpAQCAtMzE4MywxMSArMzE4MSw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGMDM2OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5
Nzg0MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgw
RSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYw
MzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RjAzNjk3OEExNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNF
MjQxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdL
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTgxLDggKzQ5NzUsNiBA
QAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAq
LywKIAkJCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICov
LAogCQkJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovLAot
CQkJCUYwMzY5Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkuY3BwICovLAotCQkJCUYwMzY5NzhBMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKIAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2
QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYx
NDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQlC
Q0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC01MTA5LDgg
KzUxMDEsNiBAQAogCQkJCUJDNjQ2QzE5MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1SZWYuaCAqLywKIAkJCQlCQzY0NkMxNjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNr
Rm9yd2FyZExpc3RSZWYuY3BwICovLAogCQkJCUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAvKiBX
S0JhY2tGb3J3YXJkTGlzdFJlZi5oICovLAotCQkJCUYwMzY5NzgzMTVGNEJFNkIwMEMzQTgwRSAv
KiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwICovLAotCQkJCUYwMzY5Nzg0MTVGNEJF
NkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLywKIAkJCQlCQ0I5
RTI0QTExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCAqLywKIAkJCQlCQ0I5RTI0OTEx
MjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmggKi8sCiAJCQkJMUE0NDVCQTQxODRENUZEQTAw
NEIzNDE0IC8qIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCAqLywKQEAgLTY2ODIsNyArNjY3
Miw2IEBACiAJCQkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29y
bGQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NUY2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Nl
cnRpZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MjcxMjRGRjA0MDAwNjhG
MjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQlGMDM2OTc4
NjE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzNzJDQUYwQjE4MzNGRDkxMDA0MEFDMjcgLyogV0tOU0Vycm9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVDNzVDODE0OTU0REE2MDBCQzQ3NzUgLyogV0tDb25uZWN0aW9u
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE2Mjk3MTQ3MzEzQTAwMDZDNjgxQSAv
KiBXS0Nvbm5lY3Rpb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNzg1MSw3ICs3ODQwLDYgQEAK
IAkJCQk4NjgxNjBEMDE4NzY0NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjAzNjk3ODgxNUY0QkYwNTAwQzNBODBF
IC8qIFdlYkNvbG9yUGlja2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYwMzY5NzhCMTVGNEJG
MTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM0QTYyOEYxNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyOTExNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNv
bm5lY3Rpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRkVDMUMxNjI3QjQ1NzAw
NzAwRjZEIC8qIFdlYkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC04MDc4LDcgKzgwNjYsNiBAQAogCQkJCUJDNDA3NUY1MTI0RkYwMjcwMDY4RjIwQSAvKiBX
S0NlcnRpZmljYXRlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYyODEyNEZGMDQw
MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MTVFNzcyNzE4M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUYwMzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8q
IFdLQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZD
NjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4NzEwMTYx
ODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBpbiBTb3Vy
Y2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223209</attachid>
            <date>2014-02-04 21:48:26 -0800</date>
            <delta_ts>2014-02-04 21:50:18 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-119120-20140205144824.patch</filename>
            <type>text/plain</type>
            <size>58020</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzY0OTAwOTlkMjM5NDVh
MjE2YzQ3MGIzMTZhMTVkZjg1NjUwMGE4Ny4uZTJmYTllMzM5YWY1NTU5ZDVhYjYxZTBlYTY1MjE0
NDQ1NzEwNzlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAyLTA0ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1v
dmUgYW5kIG1ha2UgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHRvIEVGTCBzcGVjaWZpYyBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTEyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciBhbmQgcmVsYXRlZCBmaWxlcyBhcmUgb25seSB1
c2VkIGluIEVGTCBzaW5jZSBhZGRlZC4KKyAgICAgICAgSW5kZWVkLCBpdCBkb2VzIG5vdCB3b3Jr
IHNpbmNlIHJlZmFjdG9yZWQgY29tbW9uIGxvZ2ljIGZvciBDb2xvclBpY2tlciBpbiBXZWJQYWdl
UHJveHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlZCB0aGVtIHRvIEVGTCBzcGVjZmljIGFu
ZCByZWZhY3RvciB0byB3b3JrIHdlbGwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogTW92
ZWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCB0byBQbGF0Zm9ybUVmbC5j
bWFrZS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIENvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3IgRWZsIGZyb20g
c291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eSByZWxhdGVkIGZpbGVzIGFuZCBuZXdseSBhZGRlZCBmaWxl
cyBpbnRvIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwLgorICAgICAgICAo
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcDogSW50cm9kdWNlZCBXS0Nv
bG9yUGlja2VyQ2xpZW50IGFuZCBzZXR0ZXIuCisgICAgICAgIChXS1ZpZXdTZXRDb2xvclBpY2tl
ckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29sb3JfcGlja2VyLmNw
cDogRW5hYmxlZCB0ZXN0IGNhc2UgZm9yIGNvbG9yIHBpY2tlci4KKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6IFJlbW92ZWQgdW5uZWNlc3Nh
cnkgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IGRlcGVuZGVuY3kuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQu
aDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwOiBS
ZW1vdmVkIGNvbG9yIHBpY2tlciBjYWxsYmFja3Mgb2YgUGFnZVVJQ2xpZW50LgorICAgICAgICAo
V2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Zp
ZXdDbGllbnRFZmwuY3BwOiBSZWdpc3RlcmVkIGNhbGxiYWNrcyBvZiBXS0NvbG9yUGlja2VyQ2xp
ZW50LgorICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjplbmRDb2xvclBpY2tlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwpOgorICAgICAgICAoV2ViS2l0
OjpWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
ckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmll
d0NsaWVudEVmbC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckNsaWVudDo6c2hv
d0NvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJDbGllbnQ6OmVu
ZFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmguCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyRWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVm
bDo6fldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OnNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0Vm
bDo6aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmll
d0VmbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpjb2xvclBpY2tlckNsaWVudCk6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmVkIENv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3Ig
RWZsIGZyb20gc291cmNlIGxpc3QuCisKIDIwMTQtMDItMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSA8aWZyYW1lIHNlYW1sZXNzPiBzdXBwb3J0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA2NzE4MWM4NGZmYjE2MTUzZjZjM2U0ODk4NWYwOTNl
ZWI0ODVhZThjLi5jZTVjYzZkMDkwZGM3ZWJlYjFjZTU1OWIzNmE0MmZlNWY5MTFlOTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtMzExLDcgKzMxMSw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMK
ICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeVByb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAK
LSAgICBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtMzY1
LDcgKzM2NCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RJdGVtUmVmLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwCi0gICAg
VUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU0N2EyOGI0MWQwNDhiOTBmYWI3NjNlZWYwYTc4MjY2
MzU2YWM4Y2QuLmNkNDc1M2RiNzQzMWIzZWMyMjAxZTkyMTAxYzljMGEzZTVmY2M3YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTM3LDggKzUzNyw2IEBAIHdlYmtpdDJfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFn
ZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0YXR1cy5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuaCBc
Ci0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCkBA
IC04OTUsOCArODkzLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb2xvclBpY2tlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xv
clBpY2tlci5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDA3MjhiNTUz
NWU3ZTQ5ODhhMjVlMTRmNDJjMzFmYTE5ZDYzZjBhMDQuLmNhZTU5NzE0ZjBjYTZjY2Q1ZGIxOTY4
MTkyNGEwMWIxMDAyNmI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01Nyw2ICs1
Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9D
L2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCiAKKyAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLRXZlbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BhZ2VFZmwuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwSXRlbS5jcHAKQEAgLTE0NCw2ICsxNDUsOSBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZsL1RleHRDaGVj
a2VyRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0aW9uQ2xpZW50RWZsLmNwcAogICAg
IFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyQ2xpZW50LmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwu
Y3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9l
ZmwvV2ViQ29udGV4dE1lbnVQcm94eUVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkluc3Bl
Y3RvclByb3h5RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDdiZmUzYzllNTk2ODQ0MGJiYzcxMjdhM2VhMzI2MTU0M2U2YzI2
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIK
LQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5cGVJRCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKQotewotI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQotICAgIHJldHVybiB0b0FQSShXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHk6OkFQSVR5cGUpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi12
b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJpbmdSZWYgY29sb3IpCi17Ci0j
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0
Q29sb3IodG9XVEZTdHJpbmcoY29sb3IpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxpc3Rl
bmVyUmVmKTsKLSAgICBVTlVTRURfUEFSQU0oY29sb3IpOwotI2VuZGlmCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmZDQ3MzJjOTE1MmRi
ODY1ZTNkZjcxZjdlY2RlOWZmN2NhMjNkYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaAot
I2RlZmluZSBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaAotCi0jaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgot
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyR2V0VHlwZUlE
KCk7Ci0KLVdLX0VYUE9SVCB2b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9y
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJp
bmdSZWYgY29sb3IpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYg
LyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JmZTNjOWU1OTY4NDQwYmJjNzEyN2EzZWEzMjYx
NTQzZTZjMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRU
eXBlSUQoKQoreworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHJldHVybiB0b0FQ
SShXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29u
c3QgV0tTdHJpbmdSZWYgY29sb3IpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0Q29sb3IodG9XVEZTdHJpbmcoY29sb3IpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGxpc3RlbmVyUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oY29s
b3IpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlmZjdjYTIzZGFlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisjZGVmaW5lIFdLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQg
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcik7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S1ZpZXdFZmwuY3BwCmluZGV4IDViYmQ5OWU5OTY5ZWYzNzZkZDJiZGU5MTRlMmJiMWJjM2NhMGNm
NTQuLjYzMWU5ZTMzM2UwMzQ5NTY5NTRmZjk2MDgxYmU1MGQyYWE4MThlODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAKQEAgLTM0LDYg
KzM0LDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKK3ZvaWQgV0tWaWV3U2V0Q29s
b3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLQ29sb3JQaWNrZXJDbGll
bnRCYXNlKiB3a0NsaWVudCkKK3sKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBz
dGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYpKS0+aW5pdGlhbGl6ZUNvbG9y
UGlja2VyQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZpZXdSZWYp
OworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYKK30KKwogdm9pZCBXS1ZpZXdQ
YWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiB2aWV3UmVmLCBjYWlyb19zdXJmYWNlX3QqIHN1
cmZhY2UpCiB7CiAgICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSkt
PnBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAppbmRleCBmZWYxOTM3YmM0MGUwNzYwMzlkMGQ1OTA3
NGIzNjM5YWQ5OGQ0Y2ZjLi44NmZjMWY0NTlhOWU5MWUxZTNmODdjMjM0M2Q4ZTZhYjIwM2MxY2Nh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0Vm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmgK
QEAgLTM3LDYgKzM3LDI0IEBAIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1
cmZhY2VfdDsKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK3R5cGVkZWYgdm9pZCAoKldLU2hvd0Nv
bG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBXS1N0cmluZ1JlZiBpbml0aWFsQ29s
b3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0hpZGVDb2xvclBpY2tlckNhbGxiYWNrKShX
S1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0
IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlIHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0NvbG9yUGlja2VyQ2xp
ZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tDb2xvclBpY2tlckNsaWVudFYwIHsKKyAgICBX
S0NvbG9yUGlja2VyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisgICAg
V0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQ
aWNrZXI7CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICBlbmRDb2xvclBpY2tlcjsKK30gV0tDb2xvclBpY2tlckNsaWVudFYwOworCitlbnVtIHsga1dL
Q29sb3JQaWNrZXJDbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIHZvaWQg
V0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHBhZ2UsIGNvbnN0IFdLQ29sb3JQ
aWNrZXJDbGllbnRCYXNlKiBjbGllbnQpOworCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdQYWludFRv
Q2Fpcm9TdXJmYWNlKFdLVmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90Kik7CiAKIFdLX0VYUE9SVCBX
S0ltYWdlUmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29sb3JfcGlj
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9jb2xvcl9waWNrZXIuY3BwCmluZGV4IDNlNzI5NGUyMWI5YWE5YTA0NGYwMDM3YzhjZGZlNDc3
NzYwMzE3ZDYuLjNiODk4MzUwMTM5N2Q0NDEwNGNjZDAyZDlkYmNjZWI0Njc1ZjE2MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9j
b2xvcl9waWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl9jb2xvcl9waWNrZXIuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJvdGVj
dGVkOgogICAgIH0KIH07CiAKLVRFU1RfRihFV0syQ29sb3JQaWNrZXJUZXN0LCBESVNBQkxFRF9l
d2tfY29sb3JfcGlja2VyX2NvbG9yX3NldCkKK1RFU1RfRihFV0syQ29sb3JQaWNrZXJUZXN0LCBl
d2tfY29sb3JfcGlja2VyX2NvbG9yX3NldCkKIHsKICAgICBFd2tfVmlld19TbWFydF9DbGFzcyog
YXBpID0gZXdrVmlld0NsYXNzKCk7CiAgICAgYXBpLT5pbnB1dF9waWNrZXJfY29sb3JfcmVxdWVz
dCA9IHNob3dDb2xvclBpY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwYzJjMjIyMTI4NTc2NzAzNDE0MzlmNjRhZjk3YWZmNTAx
ZjJiOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLQotI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2ViUGFn
ZVByb3h5KiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi17Ci19Ci0KLVdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eTo6fldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgp
Ci17Ci19Ci0KLXZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjppbnZhbGlk
YXRlKCkKLXsKLSAgICBtX3BhZ2UgPSAwOwotfQotCi12b2lkIFdlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvcikKLXsKLSAgICBpZiAo
IW1fcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLT5zZXRDb2xvclBpY2tlckNv
bG9yKFdlYkNvcmU6OkNvbG9yKGNvbG9yKSk7Ci0gICAgbV9wYWdlLT5lbmRDb2xvclBpY2tlcigp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ODI2OGM2Y2NlMGI5M2Q0N2NiNTYzYTkxMTlmNTg5MWFjNjU1ZmUzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKLSNkZWZpbmUgV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5X2gKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0jaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlUHJveHk7Ci0KLWNsYXNzIFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJQ
YWdlUHJveHkqIHBhZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShwYWdlKSk7Ci0gICAgfQotCi0gICAgdmlydHVh
bCB+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7Ci0KLSAgICB2b2lkIGludmFs
aWRhdGUoKTsKLSAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOwotCi1wcml2YXRlOgot
ICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJQYWdlUHJv
eHkqKTsKLQotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNl
bmRpZiAvLyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiZjU5ZWM2N2Y0N2E1ZjVjNGIyOTli
OGFiYmFhYmQ5ZWQzMzMyZjY5Li4yMTg5MWM0YmIwNWRmZjVmMDk0MTJkMjZiZjhkZTljZDcxOTc3
NGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTcs
NyArNTcsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIK
LSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDhlZmZhYmYzZTUxNDg2ZGVjMzRjOGVmNDE2YTVhNjBiMzFl
ZDJjOTMuLmQ5Zjk4MjQ5ZDBmNWUwOTFhYzc2N2RkMTI0MTZhN2M2ODAyNTQ2NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0Myw3ICsxNDMsNiBAQCBjbGFz
cyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogY2xhc3MgU3RyaW5nUGFpclZlY3Rv
cjsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW07Ci1jbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJD
b250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk7CkBAIC0xMzIzLDcgKzEzMjIsNiBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgUmVmUHRyPFdlYkNvbG9yUGlj
a2VyPiBtX2NvbG9yUGlja2VyOwotICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHk+IG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcjsKICNlbmRpZgogCiAgICAgdWlu
dDY0X3QgbV9wYWdlSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApp
bmRleCA1MTM4ODljM2ZkZTIxZmFhZjU3MGFiMWZkYmU1NjgwMTZmMjlkMzk0Li4xMTNlMzc4OTQ5
MzQ1NDFhNzFmZWFlZWE5NjFiOWIxZDg1YjMxZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9ybWF0aW9uLmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CkBAIC00MzYsMjQgKzQzNSw0IEBAIGJvb2wgV2ViVUlDbGllbnQ6OnNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVybiBtX2NsaWVudC5zaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1ib29sIFdlYlVJQ2xpZW50
OjpzaG93Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIGluaXRp
YWxDb2xvciwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KiBsaXN0ZW5lcikKLXsK
LSAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tlcikKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKHRvQVBJKHBhZ2UpLCB0b0FQSShpbml0
aWFsQ29sb3IuaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlVJQ2xpZW50OjpoaWRlQ29sb3JQ
aWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlKQotewotICAgIGlmICghbV9jbGllbnQuaGlkZUNvbG9y
UGlja2VyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX2NsaWVudC5oaWRlQ29sb3JQ
aWNrZXIodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDI3YzZiZGU0OTAzMWZhMGI1Yzk5OWQ4OTc4NmEy
M2UzNWFmZDQ5OTIuLjcyMDk4NjA4NTRlZTE1NTliNzMzMTY3Y2JiYWY0NjYyYzAxYzQ2MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC01Niw3ICs1Niw2IEBAIGNs
YXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Owog
Y2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OwotY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3Mg
V2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlNlY3VyaXR5T3Jp
Z2luOwpAQCAtMTI1LDExICsxMjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYXRp
bmdVUkxTdHJpbmcsIEFQSTo6RGF0YSopOwogCiAgICAgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KFdlYlBhZ2VQcm94eSopOwotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0g
ICAgYm9vbCBzaG93Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Kik7Ci0gICAgYm9vbCBoaWRlQ29sb3JQaWNr
ZXIoV2ViUGFnZVByb3h5Kik7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCmlu
ZGV4IDZiYWIyM2E3NDM4ODA4ZTY1ZWIwZDEzM2M4NjhjZDMxZTM2ZWY2ZTIuLmZlMTE2ZTk3ZDYz
OTJlZDMwMmFlNGEzNDQxZDlmNmMxNWFlYjQzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNs
dWRlICJld2tfZmlsZV9jaG9vc2VyX3JlcXVlc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193
aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tz
OwogCkBAIC03OSwxMCArNzgsNiBAQCBQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbChF
d2tWaWV3KiB2aWV3KQogI2VuZGlmCiAgICAgdWlDbGllbnQucnVuT3BlblBhbmVsID0gcnVuT3Bl
blBhbmVsOwogICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwotI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHVpQ2xpZW50LnNob3dDb2xvclBpY2tlciA9
IHNob3dDb2xvclBpY2tlcjsKLSAgICB1aUNsaWVudC5oaWRlQ29sb3JQaWNrZXIgPSBoaWRlQ29s
b3JQaWNrZXI7Ci0jZW5kaWYKIAogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAm
dWlDbGllbnQuYmFzZSk7CiAKQEAgLTIyNiwyMSArMjIxLDYgQEAgV0tQYWdlUmVmIFBhZ2VVSUNs
aWVudEVmbDo6Y3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVl
c3QsIFcKICAgICByZXR1cm4gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldy0+
Y3JlYXRlTmV3UGFnZShyZXF1ZXN0LCB3a1dpbmRvd0ZlYXR1cmVzKTsKIH0KIAotI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQotdm9pZCBQYWdlVUlDbGllbnRFZmw6OnNob3dDb2xvclBpY2tl
cihXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBh
Z2VVSUNsaWVudEVmbCogcGFnZVVJQ2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5m
byk7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRv
V1RGU3RyaW5nKGluaXRpYWxDb2xvcikpOwotICAgIHBhZ2VVSUNsaWVudC0+bV92aWV3LT5yZXF1
ZXN0Q29sb3JQaWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKLX0KLQotdm9pZCBQYWdlVUlDbGllbnRF
Zmw6OmhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgUGFnZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0b1BhZ2VVSUNsaWVudEVmbChj
bGllbnRJbmZvKTsKLSAgICBwYWdlVUlDbGllbnQtPm1fdmlldy0+ZGlzbWlzc0NvbG9yUGlja2Vy
KCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBQYWdlVUlDbGllbnRFZmw6OnNob3dQb3B1cE1lbnUoV0tQ
YWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVmIG1lbnVMaXN0ZW5lclJlZiwgV0tSZWN0IHJl
Y3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNj
YWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xpZW50RWZsKGNs
aWVudEluZm8pLT5tX3ZpZXctPnJlcXVlc3RQb3B1cE1lbnUobWVudUxpc3RlbmVyUmVmLCByZWN0
LCB0ZXh0RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IsIGl0ZW1zUmVmLCBzZWxlY3RlZEluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCmlu
ZGV4IDcwNDFlMWUxOGNkY2QzZDhjZjgyYTIzNTJkNzM5NzVjM2UyZTgyYzcuLmJmMDUwNGRhNjZl
NTllNjJjYWIwMmIyNDczMTUwNjhjYzFlMjZkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaApAQCAtNjMsMTAgKzYzLDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJl
ZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShXS1Bh
Z2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKLSAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0
cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29u
c3Qgdm9pZCopOwotICAgIHN0YXRpYyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNv
bnN0IHZvaWQqKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgc2hvd1BvcHVwTWVudShXS1Bh
Z2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYsIFdLUmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGly
ZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBXS0FycmF5UmVmIGl0ZW1zUmVmLCBpbnQz
Ml90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIGhpZGVQb3B1cE1lbnUoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCmluZGV4IDY3
OTAzNGQ0ZTI1ODE2ZTAxOGI2MWJiNDEzNTA1Nzg4YTgwMzBhY2QuLjIzYWM1ZGIzMWVkYWRjZWY1
MzViZjFkM2RiZTNlOTFjNWQ1ZTdkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9WaWV3Q2xpZW50RWZsLmNwcApAQCAtMTU4LDYgKzE1OCwxOSBAQCB2b2lkIFZpZXdDbGll
bnRFZmw6OmRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hFdmVudFJlZiBldmVu
dCwgYm9vbCB3YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3Zv
aWQgVmlld0NsaWVudEVmbDo6c2hvd0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYg
Y29sb3JTdHJpbmcsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNv
cmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoY29sb3JTdHJpbmcpKTsKKyAgICB0b0V3a1Zp
ZXcoY2xpZW50SW5mbyktPnJlcXVlc3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3IpOworfQor
Cit2b2lkIFZpZXdDbGllbnRFZmw6OmVuZENvbG9yUGlja2VyKFdLVmlld1JlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICB0b0V3a1ZpZXcoY2xpZW50SW5mbyktPmRpc21pc3NDb2xv
clBpY2tlcigpOworfQorI2VuZGlmCisKIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwoRXdr
VmlldyogdmlldykKICAgICA6IG1fdmlldyh2aWV3KQogewpAQCAtMTgyLDExICsxOTUsMjUgQEAg
Vmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVmbChFd2tWaWV3KiB2aWV3KQogI2VuZGlmCiAKICAg
ICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmlldy0+d2tWaWV3KCksICZ2aWV3Q2xpZW50LmJhc2Up
OworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV0tDb2xvclBpY2tlckNsaWVu
dFYwIGNvbG9yUGlja2VyQ2xpZW50OworICAgIG1lbXNldCgmY29sb3JQaWNrZXJDbGllbnQsIDAs
IHNpemVvZihXS0NvbG9yUGlja2VyQ2xpZW50VjApKTsKKyAgICBjb2xvclBpY2tlckNsaWVudC5i
YXNlLnZlcnNpb24gPSAwOworICAgIGNvbG9yUGlja2VyQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9
IHRoaXM7CisgICAgY29sb3JQaWNrZXJDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9y
UGlja2VyOworICAgIGNvbG9yUGlja2VyQ2xpZW50LmVuZENvbG9yUGlja2VyID0gZW5kQ29sb3JQ
aWNrZXI7CisgICAgV0tWaWV3U2V0Q29sb3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwg
JmNvbG9yUGlja2VyQ2xpZW50LmJhc2UpOworI2VuZGlmCiB9CiAKIFZpZXdDbGllbnRFZmw6On5W
aWV3Q2xpZW50RWZsKCkKIHsKICAgICBXS1ZpZXdTZXRWaWV3Q2xpZW50KG1fdmlldy0+d2tWaWV3
KCksIDApOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgV0tWaWV3U2V0Q29s
b3JQaWNrZXJDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgMCk7CisjZW5kaWYKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1ZpZXdDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVu
dEVmbC5oCmluZGV4IDNiOGMyNDdiN2JjMmM5ZWM1ZTY0Y2Y3NmMyN2QyOTg0YTM3NTI5OTYuLjk0
M2JmOTVlY2UzNDJkYTg3NjNlNGU2OTYwODdhMTFmYTY3NWNhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oCkBAIC01Myw2ICs1MywxMCBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RhdGljIHZvaWQgZG9uZVdpdGhU
b3VjaEV2ZW50KFdLVmlld1JlZiwgV0tUb3VjaEV2ZW50UmVmLCBib29sLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHN0
YXRpYyB2b2lkIHNob3dDb2xvclBpY2tlcihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmLCBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0
YXRpYyB2b2lkIGVuZENvbG9yUGlja2VyKFdLVmlld1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CisjZW5kaWYKIAogICAgIEV3a1ZpZXcqIG1fdmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5YTljYzg2YTE3NmUzMzE0OWRiODBkOTIwYTRjYzUwZjhkZWVmYzkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50
LmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQorbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29sb3JQaWNr
ZXJDbGllbnQ6OnNob3dDb2xvclBpY2tlcihXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBTdHJpbmcm
IGNvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIpCit7CisgICAg
aWYgKCFtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
Y2xpZW50LnNob3dDb2xvclBpY2tlcih0b0FQSSh3ZWJWaWV3KSwgdG9BUEkoY29sb3IuaW1wbCgp
KSwgbGlzdGVuZXIsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViQ29s
b3JQaWNrZXJDbGllbnQ6OmVuZFBpY2tlcihXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGlmICgh
bV9jbGllbnQuZW5kQ29sb3JQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50
LmVuZENvbG9yUGlja2VyKHRvQVBJKHdlYlZpZXcpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29sb3JQaWNrZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGRjMjA1MDhiMjNkZmQyNmFlOTJm
YTk3ZWNlZWU5NDQ2NDYwM2VhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJDbGllbnRfaAorI2RlZmluZSBX
ZWJDb2xvclBpY2tlckNsaWVudF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNp
bmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS1ZpZXdFZmwuaCIKKyNpbmNsdWRlICJX
ZWJWaWV3LmgiCisKK25hbWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdL
Q29sb3JQaWNrZXJDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJDbGllbnQ6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0Nv
bG9yUGlja2VyQ2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgc2hvd0NvbG9yUGlja2Vy
KFdlYlZpZXcqLCBjb25zdCBTdHJpbmcmLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYp
OworICAgIHZvaWQgZW5kUGlja2VyKFdlYlZpZXcqKTsKK307CisKK30KKyNlbmRpZgorCisjZW5k
aWYgLyogV2ViQ29sb3JQaWNrZXJDbGllbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWQxNmRkNDcw
NTdmNmNhNjgxMjZhYWMzZGQ3ZTE5NWFmY2JkZjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkNvbG9yUGlja2VyRWZsLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgImV3a19jb2xvcl9waWNrZXJfcHJp
dmF0ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29sb3JQaWNrZXJFZmw6OldlYkNv
bG9yUGlja2VyRWZsKFdlYlZpZXdFZmwqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQq
IGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKQorICAgIDogV2ViQ29sb3JQaWNrZXIoY2xp
ZW50KQorICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCit7CisgICAgQVNTRVJUKG1fd2ViVmlldyk7
CisgICAgbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6
OmVuZFBpY2tlcigpCit7CisgICAgbV93ZWJWaWV3LT5jb2xvclBpY2tlckNsaWVudCgpLmVuZFBp
Y2tlcihtX3dlYlZpZXcpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpzaG93Q29sb3JQ
aWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fd2ViVmlldy0+Y29s
b3JQaWNrZXJDbGllbnQoKS5zaG93Q29sb3JQaWNrZXIobV93ZWJWaWV3LCBjb2xvci5zZXJpYWxp
emVkKCksIHRvQVBJKG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5nZXQoKSkpOworfQorCit2
b2lkIFdlYkNvbG9yUGlja2VyRWZsOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbG9yUGlja2Vy
RWZsOjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAg
aWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQtPmRpZENob29z
ZUNvbG9yKGNvbG9yKTsKKyAgICBtX2NsaWVudC0+ZGlkRW5kQ29sb3JQaWNrZXIoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWI5OGViMDAzMDVhYzhj
ZmI3MjY3ZmYzMjIzNjVkMjlkODA4OTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJFZmxfaAorI2RlZmluZSBX
ZWJDb2xvclBpY2tlckVmbF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNs
dWRlICJXZWJDb2xvclBpY2tlci5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZXdFZmwuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyRWZsIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlckVmbD4gY3JlYXRl
KFdlYlZpZXdFZmwqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJFZmwod2ViVmlldywgY2xpZW50LCBpbml0aWFsQ29s
b3IpKTsKKyAgICB9CisgICAgfldlYkNvbG9yUGlja2VyRWZsKCkgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgZW5kUGlja2VyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVk
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisKKyAgICB2
b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7Citwcml2YXRlOgorICAg
IFdlYkNvbG9yUGlja2VyRWZsKFdlYlZpZXdFZmwqLCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKworICAgIFdlYlZpZXdFZmwqIG1fd2ViVmlldzsKKyAg
ICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5PiBtX2NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXI7Cit9OworCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdlYkNvbG9yUGlj
a2VyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NDdmMGQwYTQwMDRkZjlkNmVhNjlhNTI5Mzg2OTcxMzBjNjAxNmY3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2Vi
Q29sb3JQaWNrZXJFZmwuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJDb2xvclBpY2tlckVmbCogY29sb3JQaWNrZXIp
CisgICAgOiBtX2NvbG9yUGlja2VyKGNvbG9yUGlja2VyKQoreworICAgIEFTU0VSVChtX2NvbG9y
UGlja2VyKTsKK30KKworV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp+V2ViQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fY29sb3JQaWNrZXIg
PSAwOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29s
b3IoY29uc3QgU3RyaW5nJiBjb2xvcikKK3sKKyAgICBpZiAoIW1fY29sb3JQaWNrZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fY29sb3JQaWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6
OkNvbG9yKGNvbG9yKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xOWI1YzNhMThmN2Q5NTY3MDRlOWU0NDlkZmVmZDlkMjRhNjY0MjljCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCisjZGVmaW5l
IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJF
Zmw7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBB
UEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJDb2xvclBpY2tlckVmbCogY29sb3JQaWNrZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJQcm94eShjb2xvclBpY2tlcikpOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7Cisg
ICAgdm9pZCBzZXRDb2xvcihjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNp
dCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoV2ViQ29sb3JQaWNrZXJFZmwqKTsK
KworICAgIFdlYkNvbG9yUGlja2VyRWZsKiBtX2NvbG9yUGlja2VyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2Vu
ZGlmIC8vIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcAppbmRleCBjNDllZTE4YjVhNTY0MDE4NjFh
ZDQ5OTY2NTZmMWM0ODE4ZjU2ZGE5Li5iYTNlNjVjYmY3M2MxZWYzMWZmZWE4NzI3Yzg1Zjc2YjA5
NWJjOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAK
QEAgLTQ0LDYgKzQ0LDEwIEBACiAjaW5jbHVkZSAiRXdrVG91Y2hFdmVudC5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVm
bC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE3OCw0ICsxODIsMTYgQEAgdm9pZCBXZWJWaWV3RWZs
OjpleGl0RnVsbFNjcmVlbigpCiAKICNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgV2ViVmlld0VmbDo6aW5pdGlhbGl6
ZUNvbG9yUGlja2VyQ2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKiBjbGllbnQp
Cit7CisgICAgbV9jb2xvclBpY2tlckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK1Bh
c3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFdlYlZpZXdFZmw6OmNyZWF0ZUNvbG9yUGlja2VyKFdl
YlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikKK3sKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSh0
aGlzLCBwYWdlLCBjb2xvcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCmluZGV4IDFjYmJjZjNlZWY0
MjRlMTA3ZjQwMDNjNjI4NzQ1YjFmZTY1ODIwNzkuLjA3NDFjZWYyZTYxZWFlM2M3MjIxMjMwNWRj
NGIzYmYyMGNiYzJiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlld0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0Vm
bC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYlZpZXdFZmxfaAogI2RlZmluZSBXZWJW
aWV3RWZsX2gKIAorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViVmlldy5oIgogCiBjbGFzcyBFd2tWaWV3OwpAQCAtNTIsNiArNTMsMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgc2VuZE1vdXNlRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9VcCopOwogICAg
IHZvaWQgc2VuZE1vdXNlRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlKik7CiAKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIGluaXRpYWxpemVDb2xvclBpY2tl
ckNsaWVudChjb25zdCBXS0NvbG9yUGlja2VyQ2xpZW50QmFzZSopOworCisgICAgV2ViQ29sb3JQ
aWNrZXJDbGllbnQmIGNvbG9yUGlja2VyQ2xpZW50KCkgeyByZXR1cm4gbV9jb2xvclBpY2tlckNs
aWVudDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29s
b3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3
RWZsKFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqKTsKIApAQCAtNzgsNiArODYsMTAgQEAgcHJp
dmF0ZToKICAgICBFd2tWaWV3KiBtX2V3a1ZpZXc7CiAgICAgYm9vbCBtX2hhc1JlcXVlc3RlZEZ1
bGxTY3JlZW47CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvclBp
Y2tlckNsaWVudCBtX2NvbG9yUGlja2VyQ2xpZW50OworI2VuZGlmCisKICAgICBmcmllbmQgY2xh
c3MgV2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAyOGFmZDAxMmM0YzhhOGRlZDc1OTg1NzM0Nzk0NTE5NGFl
N2ZlNDliLi40ZGJiMDBhYThjMGI5OGRlMmUwY2RlMDFlMGMwOWFhNTAxY2M4Zjg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDIwLDggKzE0MjAsNiBAQAogCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovOyB9OwogCQlFRDgyQTdGMjEyOEM2RkFGMDA0NDc3QjMg
LyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92
ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFRENBNzFCNzEyOEREQThDMDAyMDFCMjYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjEwMDEyODlG
Q0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgKi87IH07Ci0JCUYwMzY5Nzg1
MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODMxNUY0QkU2
QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgKi87IH07Ci0JCUYw
MzY5Nzg2MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg0MTVG
NEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLzsgfTsKIAkJ
RjAzNjk3ODgxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg3MTVGNEJGMDUwMEMz
QTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi87IH07CiAJCUYwMzY5NzhCMTVGNEJGMTMwMEMz
QTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODkxNUY0QkYxMzAwQzNB
ODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi87IH07CiAJCUY2
MTEzRTI1MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0Ux
ODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKQEAgLTMxODUs
MTEgKzMxODMsNyBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1
M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3ODMx
NUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMDM2OTc4NDE1RjRCRTZCMDBD
M0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQ
aWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQ
aWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMDM2OTc4OTE1RjRCRjEz
MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5NzhBMTVGNEJG
MTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI0MTI2Q0UxODIwMDU3
RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJD
b250ZW50VVJMUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEz
RTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk4Myw4ICs0OTc3LDYgQEAKIAkJCQlCQzcyQkEx
QzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmggKi8sCiAJCQkJRjAzNjk3
ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLywKIAkJCQkzRjg3QjlC
RjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLywKLQkJCQlGMDM2OTc4OTE1
RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAq
LywKLQkJCQlGMDM2OTc4QTE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5LmggKi8sCiAJCQkJQkM0QTYyQTUxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCUJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgx
QSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFD
QTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3BwICovLApAQCAtNTExMSw4ICs1MTAzLDYgQEAKIAkJ
CQlCQzY0NkMxOTExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgg
Ki8sCiAJCQkJQkM2NDZDMTYxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0UmVm
LmNwcCAqLywKIAkJCQlCQzY0NkMxNzExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExp
c3RSZWYuaCAqLywKLQkJCQlGMDM2OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyLmNwcCAqLywKLQkJCQlGMDM2OTc4NDE1RjRCRTZCMDBDM0E4MEUgLyog
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggKi8sCiAJCQkJQkNCOUUyNEExMTIwRTE1QzAw
QTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgKi8sCiAJCQkJQkNCOUUyNDkxMTIwRTE1QzAwQTEzN0Uw
IC8qIFdLQ29udGV4dC5oICovLAogCQkJCTFBNDQ1QkE0MTg0RDVGREEwMDRCMzQxNCAvKiBXS0Nv
bnRleHRDb25uZWN0aW9uQ2xpZW50LmggKi8sCkBAIC02Njg2LDcgKzY2NzYsNiBAQAogCQkJCUJD
MTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjI3MTI0RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRp
ZmljYXRlSW5mb01hYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNB
ODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzcyQ0FGMEIxODMzRkQ5MTAwNDBBQzI3IC8qIFdLTlNFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9u
UmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTc4NTUsNyArNzg0NCw2IEBACiAJCQkJODY4MTYwRDAx
ODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUYwMzY5Nzg4MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBp
Y2tlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMDM2OTc4QjE1RjRCRjEzMDBDM0E4MEUgLyog
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNEE2MjhGMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNEE2MjkxMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODA4Miw3ICs4
MDcwLDYgQEAKIAkJCQlCQzQwNzVGNTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdL
Q2VydGlmaWNhdGVJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZG
NjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGMDM2OTc4
NTE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQTI4NEQ2MTQ5MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25u
ZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODcxMDE2MTgyODQxNUQwMDE4RkEw
MSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223210</attachid>
            <date>2014-02-04 21:50:27 -0800</date>
            <delta_ts>2014-02-17 19:21:56 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-119120-20140205145025.patch</filename>
            <type>text/plain</type>
            <size>57968</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzY0OTAwOTlkMjM5NDVh
MjE2YzQ3MGIzMTZhMTVkZjg1NjUwMGE4Ny4uZTJmYTllMzM5YWY1NTU5ZDVhYjYxZTBlYTY1MjE0
NDQ1NzEwNzlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAyLTA0ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1v
dmUgYW5kIG1ha2UgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHRvIEVGTCBzcGVjaWZpYyBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTEyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciBhbmQgcmVsYXRlZCBmaWxlcyBhcmUgb25seSB1
c2VkIGluIEVGTCBzaW5jZSBhZGRlZC4KKyAgICAgICAgSW5kZWVkLCBpdCBkb2VzIG5vdCB3b3Jr
IHNpbmNlIHJlZmFjdG9yZWQgY29tbW9uIGxvZ2ljIGZvciBDb2xvclBpY2tlciBpbiBXZWJQYWdl
UHJveHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlZCB0aGVtIHRvIEVGTCBzcGVjZmljIGFu
ZCByZWZhY3RvciB0byB3b3JrIHdlbGwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogTW92
ZWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCB0byBQbGF0Zm9ybUVmbC5j
bWFrZS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIENvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3IgRWZsIGZyb20g
c291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eSByZWxhdGVkIGZpbGVzIGFuZCBuZXdseSBhZGRlZCBmaWxl
cyBpbnRvIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwLgorICAgICAgICAo
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcDogSW50cm9kdWNlZCBXS0Nv
bG9yUGlja2VyQ2xpZW50IGFuZCBzZXR0ZXIuCisgICAgICAgIChXS1ZpZXdTZXRDb2xvclBpY2tl
ckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29sb3JfcGlja2VyLmNw
cDogRW5hYmxlZCB0ZXN0IGNhc2UgZm9yIGNvbG9yIHBpY2tlci4KKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6IFJlbW92ZWQgdW5uZWNlc3Nh
cnkgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IGRlcGVuZGVuY3kuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQu
aDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwOiBS
ZW1vdmVkIGNvbG9yIHBpY2tlciBjYWxsYmFja3Mgb2YgUGFnZVVJQ2xpZW50LgorICAgICAgICAo
V2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Zp
ZXdDbGllbnRFZmwuY3BwOiBSZWdpc3RlcmVkIGNhbGxiYWNrcyBvZiBXS0NvbG9yUGlja2VyQ2xp
ZW50LgorICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjplbmRDb2xvclBpY2tlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwpOgorICAgICAgICAoV2ViS2l0
OjpWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tl
ckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmll
d0NsaWVudEVmbC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckNsaWVudDo6c2hv
d0NvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJDbGllbnQ6OmVu
ZFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmguCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yUGlja2VyRWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVm
bDo6fldlYkNvbG9yUGlja2VyRWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6On5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHk6OnNldENvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0Vm
bDo6aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmll
d0VmbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3RWZsOjpjb2xvclBpY2tlckNsaWVudCk6
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmVkIENv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3Ig
RWZsIGZyb20gc291cmNlIGxpc3QuCisKIDIwMTQtMDItMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSA8aWZyYW1lIHNlYW1sZXNzPiBzdXBwb3J0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA2NzE4MWM4NGZmYjE2MTUzZjZjM2U0ODk4NWYwOTNl
ZWI0ODVhZThjLi5jZTVjYzZkMDkwZGM3ZWJlYjFjZTU1OWIzNmE0MmZlNWY5MTFlOTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtMzExLDcgKzMxMSw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMK
ICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeVByb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAK
LSAgICBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAg
IFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtMzY1
LDcgKzM2NCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RJdGVtUmVmLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3BwCi0gICAg
VUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1h
bmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU0N2EyOGI0MWQwNDhiOTBmYWI3NjNlZWYwYTc4MjY2
MzU2YWM4Y2QuLmNkNDc1M2RiNzQzMWIzZWMyMjAxZTkyMTAxYzljMGEzZTVmY2M3YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTM3LDggKzUzNyw2IEBAIHdlYmtpdDJfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFn
ZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeVN0YXR1cy5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuaCBc
Ci0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCkBA
IC04OTUsOCArODkzLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb2xvclBpY2tlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xv
clBpY2tlci5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDA3MjhiNTUz
NWU3ZTQ5ODhhMjVlMTRmNDJjMzFmYTE5ZDYzZjBhMDQuLmNhZTU5NzE0ZjBjYTZjY2Q1ZGIxOTY4
MTkyNGEwMWIxMDAyNmI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01Nyw2ICs1
Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9D
L2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCiAKKyAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLRXZlbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BhZ2VFZmwuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwSXRlbS5jcHAKQEAgLTE0NCw2ICsxNDUsOSBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZsL1RleHRDaGVj
a2VyRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVmlicmF0aW9uQ2xpZW50RWZsLmNwcAogICAg
IFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyQ2xpZW50LmNwcAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwu
Y3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
Y3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9l
ZmwvV2ViQ29udGV4dE1lbnVQcm94eUVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkluc3Bl
Y3RvclByb3h5RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDdiZmUzYzllNTk2ODQ0MGJiYzcxMjdhM2VhMzI2MTU0M2U2YzI2
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIK
LQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5cGVJRCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKQotewotI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQotICAgIHJldHVybiB0b0FQSShXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHk6OkFQSVR5cGUpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi12
b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJpbmdSZWYgY29sb3IpCi17Ci0j
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0
Q29sb3IodG9XVEZTdHJpbmcoY29sb3IpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxpc3Rl
bmVyUmVmKTsKLSAgICBVTlVTRURfUEFSQU0oY29sb3IpOwotI2VuZGlmCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmZDQ3MzJjOTE1MmRi
ODY1ZTNkZjcxZjdlY2RlOWZmN2NhMjNkYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaAot
I2RlZmluZSBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJfaAotCi0jaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgot
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyR2V0VHlwZUlE
KCk7Ci0KLVdLX0VYUE9SVCB2b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclNldENvbG9y
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgV0tTdHJp
bmdSZWYgY29sb3IpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYg
LyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JmZTNjOWU1OTY4NDQwYmJjNzEyN2EzZWEzMjYx
NTQzZTZjMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRU
eXBlSUQoKQoreworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHJldHVybiB0b0FQ
SShXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29u
c3QgV0tTdHJpbmdSZWYgY29sb3IpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0Q29sb3IodG9XVEZTdHJpbmcoY29sb3IpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGxpc3RlbmVyUmVmKTsKKyAgICBVTlVTRURfUEFSQU0oY29s
b3IpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlmZjdjYTIzZGFlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisjZGVmaW5lIFdLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQg
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcik7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S1ZpZXdFZmwuY3BwCmluZGV4IDViYmQ5OWU5OTY5ZWYzNzZkZDJiZGU5MTRlMmJiMWJjM2NhMGNm
NTQuLjYzMWU5ZTMzM2UwMzQ5NTY5NTRmZjk2MDgxYmU1MGQyYWE4MThlODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAKQEAgLTM0LDYg
KzM0LDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKK3ZvaWQgV0tWaWV3U2V0Q29s
b3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLQ29sb3JQaWNrZXJDbGll
bnRCYXNlKiB3a0NsaWVudCkKK3sKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBz
dGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYpKS0+aW5pdGlhbGl6ZUNvbG9y
UGlja2VyQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZpZXdSZWYp
OworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYKK30KKwogdm9pZCBXS1ZpZXdQ
YWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiB2aWV3UmVmLCBjYWlyb19zdXJmYWNlX3QqIHN1
cmZhY2UpCiB7CiAgICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSkt
PnBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAppbmRleCBmZWYxOTM3YmM0MGUwNzYwMzlkMGQ1OTA3
NGIzNjM5YWQ5OGQ0Y2ZjLi5iOTdjZGM3NTE2Mjc4M2E1NjVjNDQ2NmI0MmY4ZGRkNzc0ZDkxNmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0Vm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmgK
QEAgLTM3LDYgKzM3LDIyIEBAIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1
cmZhY2VfdDsKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK3R5cGVkZWYgdm9pZCAoKldLU2hvd0Nv
bG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBXS1N0cmluZ1JlZiBpbml0aWFsQ29s
b3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0hpZGVDb2xvclBpY2tlckNhbGxiYWNrKShX
S1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0
IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlIHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0NvbG9yUGlja2VyQ2xp
ZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tDb2xvclBpY2tlckNsaWVudFYwIHsKKyAgICBX
S0NvbG9yUGlja2VyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisgICAg
V0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQ
aWNrZXI7CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICBlbmRDb2xvclBpY2tlcjsKK30gV0tDb2xvclBpY2tlckNsaWVudFYwOworCitXS19FWFBPUlQg
dm9pZCBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChXS1ZpZXdSZWYgcGFnZSwgY29uc3QgV0tD
b2xvclBpY2tlckNsaWVudEJhc2UqIGNsaWVudCk7CisKIFdLX0VYUE9SVCB2b2lkIFdLVmlld1Bh
aW50VG9DYWlyb1N1cmZhY2UoV0tWaWV3UmVmLCBjYWlyb19zdXJmYWNlX3QqKTsKIAogV0tfRVhQ
T1JUIFdLSW1hZ2VSZWYgV0tWaWV3Q3JlYXRlU25hcHNob3QoV0tWaWV3UmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb2xv
cl9waWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX2NvbG9yX3BpY2tlci5jcHAKaW5kZXggM2U3Mjk0ZTIxYjlhYTlhMDQ0ZjAwMzdjOGNk
ZmU0Nzc3NjAzMTdkNi4uM2I4OTgzNTAxMzk3ZDQ0MTA0Y2NkMDJkOWRiY2NlYjQ2NzVmMTYwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX2NvbG9yX3BpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvdGVzdF9ld2syX2NvbG9yX3BpY2tlci5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotVEVTVF9GKEVXSzJDb2xvclBpY2tlclRlc3QsIERJU0FC
TEVEX2V3a19jb2xvcl9waWNrZXJfY29sb3Jfc2V0KQorVEVTVF9GKEVXSzJDb2xvclBpY2tlclRl
c3QsIGV3a19jb2xvcl9waWNrZXJfY29sb3Jfc2V0KQogewogICAgIEV3a19WaWV3X1NtYXJ0X0Ns
YXNzKiBhcGkgPSBld2tWaWV3Q2xhc3MoKTsKICAgICBhcGktPmlucHV0X3BpY2tlcl9jb2xvcl9y
ZXF1ZXN0ID0gc2hvd0NvbG9yUGlja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjMmMyMjIxMjg1NzY3MDM0MTQzOWY2NGFmOTdh
ZmY1MDFmMmI5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0jaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShX
ZWJQYWdlUHJveHkqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLXsKLX0KLQotV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5KCkKLXsKLX0KLQotdm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6Omlu
dmFsaWRhdGUoKQotewotICAgIG1fcGFnZSA9IDA7Ci19Ci0KLXZvaWQgV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQotewotICAg
IGlmICghbV9wYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPnNldENvbG9yUGlj
a2VyQ29sb3IoV2ViQ29yZTo6Q29sb3IoY29sb3IpKTsKLSAgICBtX3BhZ2UtPmVuZENvbG9yUGlj
a2VyKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU4MjY4YzZjY2UwYjkzZDQ3Y2I1NjNhOTExOWY1ODkxYWM2NTVmZTMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaAotI2RlZmluZSBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHlfaAotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0KLSNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlBhZ2VQcm94eTsKLQotY2xhc3MgV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcj4gewotcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eT4gY3JlYXRl
KFdlYlBhZ2VQcm94eSogcGFnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KHBhZ2UpKTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIH5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKTsKLQotICAgIHZvaWQg
aW52YWxpZGF0ZSgpOwotICAgIHZvaWQgc2V0Q29sb3IoY29uc3QgU3RyaW5nJik7Ci0KLXByaXZh
dGU6Ci0gICAgZXhwbGljaXQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYlBh
Z2VQcm94eSopOwotCi0gICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
LQotI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJmNTllYzY3ZjQ3YTVmNWM0
YjI5OWI4YWJiYWFiZDllZDMzMzJmNjkuLjIxODkxYzRiYjA1ZGZmNWYwOTQxMmQyNmJmOGRlOWNk
NzE5Nzc0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC01Nyw3ICs1Nyw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5m
by5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOGVmZmFiZjNlNTE0ODZkZWMzNGM4ZWY0MTZhNWE2
MGIzMWVkMmM5My4uZDlmOTgyNDlkMGY1ZTA5MWFjNzY3ZGQxMjQxNmE3YzY4MDI1NDY1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQzLDcgKzE0Myw2IEBA
IGNsYXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBTdHJpbmdQYWly
VmVjdG9yOwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbTsKLWNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNz
IFdlYkNvbnRleHRNZW51UHJveHk7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3Mg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTsKQEAgLTEzMjMsNyArMTMyMiw2IEBAIHByaXZhdGU6
CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBSZWZQdHI8V2ViQ29s
b3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7Ci0gICAgUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwogI2VuZGlmCiAKICAg
ICB1aW50NjRfdCBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQu
Y3BwCmluZGV4IDUxMzg4OWMzZmRlMjFmYWFmNTcwYWIxZmRiZTU2ODAxNmYyOWQzOTQuLjExM2Uz
Nzg5NDkzNDU0MWE3MWZlYWVlYTk2MWI5YjFkODViMzFmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24u
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KQEAgLTQzNiwyNCArNDM1LDQgQEAgYm9vbCBXZWJVSUNsaWVudDo6c2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdChXZWJQYWdlUHJveHkqIHBhZ2UpCiAgICAgcmV0dXJuIG1fY2xpZW50
LnNob3VsZEludGVycnVwdEphdmFTY3JpcHQodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLWJvb2wgV2ViVUlD
bGllbnQ6OnNob3dDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
aW5pdGlhbENvbG9yLCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqIGxpc3RlbmVy
KQotewotICAgIGlmICghbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIodG9BUEkocGFnZSksIHRvQVBJ
KGluaXRpYWxDb2xvci5pbXBsKCkpLCB0b0FQSShsaXN0ZW5lciksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVUlDbGllbnQ6OmhpZGVD
b2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5oaWRl
Q29sb3JQaWNrZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fY2xpZW50LmhpZGVD
b2xvclBpY2tlcih0b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggMjdjNmJkZTQ5MDMxZmEwYjVjOTk5ZDg5
Nzg2YTIzZTM1YWZkNDk5Mi4uNzIwOTg2MDg1NGVlMTU1OWI3MzMxNjdjYmJhZjQ2NjJjMDFjNDYy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTU2LDcgKzU2LDYg
QEAgY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q7Ci1jbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBj
bGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViU2VjdXJp
dHlPcmlnaW47CkBAIC0xMjUsMTEgKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBvcmln
aW5hdGluZ1VSTFN0cmluZywgQVBJOjpEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoV2ViUGFnZVByb3h5Kik7Ci0KLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKLSAgICBib29sIHNob3dDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcm
LCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqKTsKLSAgICBib29sIGhpZGVDb2xv
clBpY2tlcihXZWJQYWdlUHJveHkqKTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5j
cHAKaW5kZXggNmJhYjIzYTc0Mzg4MDhlNjVlYjBkMTMzYzg2OGNkMzFlMzZlZjZlMi4uZmUxMTZl
OTdkNjM5MmVkMzAyYWU0YTM0NDFkOWY2YzE1YWViNDMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgImV3a19maWxlX2Nob29zZXJfcmVxdWVzdF9wcml2YXRlLmgiCiAjaW5jbHVkZSAi
ZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEV3a1ZpZXdDYWxs
YmFja3M7CiAKQEAgLTc5LDEwICs3OCw2IEBAIFBhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50
RWZsKEV3a1ZpZXcqIHZpZXcpCiAjZW5kaWYKICAgICB1aUNsaWVudC5ydW5PcGVuUGFuZWwgPSBy
dW5PcGVuUGFuZWw7CiAgICAgdWlDbGllbnQuY3JlYXRlTmV3UGFnZSA9IGNyZWF0ZU5ld1BhZ2U7
Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdWlDbGllbnQuc2hvd0NvbG9yUGlj
a2VyID0gc2hvd0NvbG9yUGlja2VyOwotICAgIHVpQ2xpZW50LmhpZGVDb2xvclBpY2tlciA9IGhp
ZGVDb2xvclBpY2tlcjsKLSNlbmRpZgogCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VS
ZWYsICZ1aUNsaWVudC5iYXNlKTsKIApAQCAtMjI2LDIxICsyMjEsNiBAQCBXS1BhZ2VSZWYgUGFn
ZVVJQ2xpZW50RWZsOjpjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmIHdr
UmVxdWVzdCwgVwogICAgIHJldHVybiB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92
aWV3LT5jcmVhdGVOZXdQYWdlKHJlcXVlc3QsIHdrV2luZG93RmVhdHVyZXMpOwogfQogCi0jaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi12b2lkIFBhZ2VVSUNsaWVudEVmbDo6c2hvd0NvbG9y
UGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0g
ICAgUGFnZVVJQ2xpZW50RWZsKiBwYWdlVUlDbGllbnQgPSB0b1BhZ2VVSUNsaWVudEVmbChjbGll
bnRJbmZvKTsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yKFdlYktp
dDo6dG9XVEZTdHJpbmcoaW5pdGlhbENvbG9yKSk7Ci0gICAgcGFnZVVJQ2xpZW50LT5tX3ZpZXct
PnJlcXVlc3RDb2xvclBpY2tlcihsaXN0ZW5lciwgY29sb3IpOwotfQotCi12b2lkIFBhZ2VVSUNs
aWVudEVmbDo6aGlkZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNsaWVudCA9IHRvUGFnZVVJQ2xpZW50
RWZsKGNsaWVudEluZm8pOwotICAgIHBhZ2VVSUNsaWVudC0+bV92aWV3LT5kaXNtaXNzQ29sb3JQ
aWNrZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lkIFBhZ2VVSUNsaWVudEVmbDo6c2hvd1BvcHVwTWVu
dShXS1BhZ2VSZWYsIFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgbWVudUxpc3RlbmVyUmVmLCBXS1Jl
Y3QgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYsIGludDMyX3Qgc2VsZWN0ZWRJbmRl
eCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gdG9QYWdlVUlDbGllbnRF
ZmwoY2xpZW50SW5mbyktPm1fdmlldy0+cmVxdWVzdFBvcHVwTWVudShtZW51TGlzdGVuZXJSZWYs
IHJlY3QsIHRleHREaXJlY3Rpb24sIHBhZ2VTY2FsZUZhY3RvciwgaXRlbXNSZWYsIHNlbGVjdGVk
SW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZs
LmgKaW5kZXggNzA0MWUxZTE4Y2RjZDNkOGNmODJhMjM1MmQ3Mzk3NWMzZTJlODJjNy4uYmYwNTA0
ZGE2NmU1OWU2MmNhYjAyYjI0NzMxNTA2OGNjMWUyNmRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oCkBAIC02MywxMCArNjMsNiBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdl
KFdLUGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopOwotI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQotICAgIHN0YXRpYyB2b2lkIHNob3dDb2xvclBpY2tlcihXS1BhZ2VSZWYs
IFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVm
LCBjb25zdCB2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgaGlkZUNvbG9yUGlja2VyKFdLUGFnZVJl
ZiwgY29uc3Qgdm9pZCopOwotI2VuZGlmCiAKICAgICBzdGF0aWMgdm9pZCBzaG93UG9wdXBNZW51
KFdLUGFnZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiwgV0tSZWN0LCBXS1BvcHVwSXRlbVRl
eHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXNSZWYs
IGludDMyX3Qgc2VsZWN0ZWRJbmRleCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3Rh
dGljIHZvaWQgaGlkZVBvcHVwTWVudShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKaW5k
ZXggNjc5MDM0ZDRlMjU4MTZlMDE4YjYxYmI0MTM1MDU3ODhhODAzMGFjZC4uMjNhYzVkYjMxZWRh
ZGNlZjUzNWJmMWQzZGJlM2U5MWM1ZDVlN2QzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCkBAIC0xNTgsNiArMTU4LDE5IEBAIHZvaWQgVmll
d0NsaWVudEVmbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KFdLVmlld1JlZiwgV0tUb3VjaEV2ZW50UmVm
IGV2ZW50LCBib29sIHdhCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQordm9pZCBWaWV3Q2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIoV0tWaWV3UmVmLCBXS1N0cmlu
Z1JlZiBjb2xvclN0cmluZywgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yID0g
V2ViQ29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhjb2xvclN0cmluZykpOworICAgIHRv
RXdrVmlldyhjbGllbnRJbmZvKS0+cmVxdWVzdENvbG9yUGlja2VyKGxpc3RlbmVyLCBjb2xvcik7
Cit9CisKK3ZvaWQgVmlld0NsaWVudEVmbDo6ZW5kQ29sb3JQaWNrZXIoV0tWaWV3UmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRvRXdrVmlldyhjbGllbnRJbmZvKS0+ZGlzbWlz
c0NvbG9yUGlja2VyKCk7Cit9CisjZW5kaWYKKwogVmlld0NsaWVudEVmbDo6Vmlld0NsaWVudEVm
bChFd2tWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcpCiB7CkBAIC0xODIsMTEgKzE5NSwy
NSBAQCBWaWV3Q2xpZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAjZW5kaWYK
IAogICAgIFdLVmlld1NldFZpZXdDbGllbnQobV92aWV3LT53a1ZpZXcoKSwgJnZpZXdDbGllbnQu
YmFzZSk7CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXS0NvbG9yUGlja2Vy
Q2xpZW50VjAgY29sb3JQaWNrZXJDbGllbnQ7CisgICAgbWVtc2V0KCZjb2xvclBpY2tlckNsaWVu
dCwgMCwgc2l6ZW9mKFdLQ29sb3JQaWNrZXJDbGllbnRWMCkpOworICAgIGNvbG9yUGlja2VyQ2xp
ZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgY29sb3JQaWNrZXJDbGllbnQuYmFzZS5jbGllbnRJ
bmZvID0gdGhpczsKKyAgICBjb2xvclBpY2tlckNsaWVudC5zaG93Q29sb3JQaWNrZXIgPSBzaG93
Q29sb3JQaWNrZXI7CisgICAgY29sb3JQaWNrZXJDbGllbnQuZW5kQ29sb3JQaWNrZXIgPSBlbmRD
b2xvclBpY2tlcjsKKyAgICBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChtX3ZpZXctPndrVmll
dygpLCAmY29sb3JQaWNrZXJDbGllbnQuYmFzZSk7CisjZW5kaWYKIH0KIAogVmlld0NsaWVudEVm
bDo6flZpZXdDbGllbnRFZmwoKQogewogICAgIFdLVmlld1NldFZpZXdDbGllbnQobV92aWV3LT53
a1ZpZXcoKSwgMCk7CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXS1ZpZXdT
ZXRDb2xvclBpY2tlckNsaWVudChtX3ZpZXctPndrVmlldygpLCAwKTsKKyNlbmRpZgogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvVmlld0NsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3
Q2xpZW50RWZsLmgKaW5kZXggM2I4YzI0N2I3YmMyYzllYzVlNjRjZjc2YzI3ZDI5ODRhMzc1Mjk5
Ni4uOTQzYmY5NWVjZTM0MmRhODc2M2U0ZTY5NjA4N2ExMWZhNjc1Y2EzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmgKQEAgLTUzLDYgKzUzLDEwIEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGF0aWMgdm9pZCBkb25l
V2l0aFRvdWNoRXZlbnQoV0tWaWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYsIGJvb2wsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisg
ICAgc3RhdGljIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdLVmlld1JlZiwgV0tTdHJpbmdSZWYsIFdL
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cisg
ICAgc3RhdGljIHZvaWQgZW5kQ29sb3JQaWNrZXIoV0tWaWV3UmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKKyNlbmRpZgogCiAgICAgRXdrVmlldyogbV92aWV3OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjlhOWNjODZhMTc2ZTMzMTQ5ZGI4MGQ5MjBhNGNjNTBmOGRlZWZjOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJD
bGllbnQuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgorCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb2xv
clBpY2tlckNsaWVudDo6c2hvd0NvbG9yUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFN0
cmluZyYgY29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lcikKK3sK
KyAgICBpZiAoIW1fY2xpZW50LnNob3dDb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKHRvQVBJKHdlYlZpZXcpLCB0b0FQSShjb2xvci5p
bXBsKCkpLCBsaXN0ZW5lciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwordm9pZCBX
ZWJDb2xvclBpY2tlckNsaWVudDo6ZW5kUGlja2VyKFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAg
aWYgKCFtX2NsaWVudC5lbmRDb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
bGllbnQuZW5kQ29sb3JQaWNrZXIodG9BUEkod2ViVmlldyksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZGMyMDUwOGIyM2RmZDI2
YWU5MmZhOTdlY2VlZTk0NDY0NjAzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBpY2tlckNsaWVudF9oCisjZGVm
aW5lIFdlYkNvbG9yUGlja2VyQ2xpZW50X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQorI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLVmlld0VmbC5oIgorI2luY2x1
ZGUgIldlYlZpZXcuaCIKKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tDb2xvclBpY2tlckNsaWVudEJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVw
bGU8V0tDb2xvclBpY2tlckNsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBpY2tlckNsaWVudDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBzaG93Q29sb3JQ
aWNrZXIoV2ViVmlldyosIGNvbnN0IFN0cmluZyYsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clJlZik7CisgICAgdm9pZCBlbmRQaWNrZXIoV2ViVmlldyopOworfTsKKworfQorI2VuZGlmCisK
KyNlbmRpZiAvKiBXZWJDb2xvclBpY2tlckNsaWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZDE2
ZGQ0NzA1N2Y2Y2E2ODEyNmFhYzNkZDdlMTk1YWZjYmRmNzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3Mu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiZXdrX2NvbG9yX3BpY2tl
cl9wcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvclBpY2tlckVmbDo6
V2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQaWNrZXI6OkNs
aWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpCisgICAgOiBXZWJDb2xvclBpY2tl
cihjbGllbnQpCisgICAgLCBtX3dlYlZpZXcod2ViVmlldykKK3sKKyAgICBBU1NFUlQobV93ZWJW
aWV3KTsKKyAgICBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIgPSBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHk6OmNyZWF0ZSh0aGlzKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tl
ckVmbDo6ZW5kUGlja2VyKCkKK3sKKyAgICBtX3dlYlZpZXctPmNvbG9yUGlja2VyQ2xpZW50KCku
ZW5kUGlja2VyKG1fd2ViVmlldyk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OnNob3dD
b2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgbV93ZWJWaWV3
LT5jb2xvclBpY2tlckNsaWVudCgpLnNob3dDb2xvclBpY2tlcihtX3dlYlZpZXcsIGNvbG9yLnNl
cmlhbGl6ZWQoKSwgdG9BUEkobV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmdldCgpKSk7Cit9
CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViQ29sb3JQ
aWNrZXJFZmw6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sK
KyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC0+ZGlk
Q2hvb3NlQ29sb3IoY29sb3IpOworICAgIG1fY2xpZW50LT5kaWRFbmRDb2xvclBpY2tlcigpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYjk4ZWIwMDMw
NWFjOGNmYjcyNjdmZjMyMjM2NWQyOWQ4MDg5NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmgKQEAgLTAsMCArMSw1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvclBpY2tlckVmbF9oCisjZGVm
aW5lIFdlYkNvbG9yUGlja2VyRWZsX2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
I2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViVmlld0VmbC5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmwgOiBwdWJsaWMgV2ViQ29sb3JQaWNr
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyRWZsPiBj
cmVhdGUoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlckVmbCh3ZWJWaWV3LCBjbGllbnQsIGluaXRp
YWxDb2xvcikpOworICAgIH0KKyAgICB+V2ViQ29sb3JQaWNrZXJFZmwoKSB7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vs
ZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKK3ByaXZhdGU6
CisgICAgV2ViQ29sb3JQaWNrZXJFZmwoV2ViVmlld0VmbCosIFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworCisgICAgV2ViVmlld0VmbCogbV93ZWJWaWV3
OworICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IG1fY29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lcjsKK307CisKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV2ViQ29s
b3JQaWNrZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE0N2YwZDBhNDAwNGRmOWQ2ZWE2OWE1MjkzODY5NzEzMGM2MDE2ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyNpbmNsdWRl
ICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6V2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KFdlYkNvbG9yUGlja2VyRWZsKiBjb2xvclBp
Y2tlcikKKyAgICA6IG1fY29sb3JQaWNrZXIoY29sb3JQaWNrZXIpCit7CisgICAgQVNTRVJUKG1f
Y29sb3JQaWNrZXIpOworfQorCitXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6On5X
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKQoreworfQorCit2b2lkIFdlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9jb2xvclBp
Y2tlciA9IDA7Cit9CisKK3ZvaWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojpz
ZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQoreworICAgIGlmICghbV9jb2xvclBpY2tlcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb2xvclBpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoV2Vi
Q29yZTo6Q29sb3IoY29sb3IpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE5YjVjM2ExOGY3ZDk1NjcwNGU5ZTQ0OWRmZWZkOWQyNGE2NjQyOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKKyNk
ZWZpbmUgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKKworI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBp
Y2tlckVmbDsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Q29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eT4gY3JlYXRlKFdlYkNvbG9yUGlja2VyRWZsKiBjb2xvclBpY2tl
cikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5KGNvbG9yUGlja2VyKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUo
KTsKKyAgICB2b2lkIHNldENvbG9yKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShXZWJDb2xvclBpY2tlckVm
bCopOworCisgICAgV2ViQ29sb3JQaWNrZXJFZmwqIG1fY29sb3JQaWNrZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
CisjZW5kaWYgLy8gV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCmluZGV4IGM0OWVlMThiNWE1NjQw
MTg2MWFkNDk5NjY1NmYxYzQ4MThmNTZkYTkuLmJhM2U2NWNiZjczYzFlZjMxZmZlYTg3MjdjODVm
NzZiMDk1YmM5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
Vmlld0VmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcApAQCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlICJFd2tUb3VjaEV2ZW50LmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yUGlj
a2VyRWZsLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIEV3a1ZpZXdDYWxsYmFja3M7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTc4LDQgKzE4MiwxNiBAQCB2b2lkIFdlYlZp
ZXdFZmw6OmV4aXRGdWxsU2NyZWVuKCkKIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQordm9pZCBXZWJWaWV3RWZsOjppbml0
aWFsaXplQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgV0tDb2xvclBpY2tlckNsaWVudEJhc2UqIGNs
aWVudCkKK3sKKyAgICBtX2NvbG9yUGlja2VyQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30K
KworUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gV2ViVmlld0VmbDo6Y3JlYXRlQ29sb3JQaWNr
ZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKQoreworICAgIHJldHVybiBXZWJDb2xvclBpY2tlckVmbDo6Y3Jl
YXRlKHRoaXMsIHBhZ2UsIGNvbG9yKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKaW5kZXggMWNiYmNm
M2VlZjQyNGUxMDdmNDAwM2M2Mjg3NDViMWZlNjU4MjA3OS4uMDc0MWNlZjJlNjFlYWUzYzcyMjEy
MzA1ZGM0YjNiZjIwY2JjMmIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJW
aWV3RWZsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViVmlld0VmbF9oCiAjZGVmaW5l
IFdlYlZpZXdFZmxfaAogCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJWaWV3LmgiCiAKIGNsYXNzIEV3a1ZpZXc7CkBAIC01Miw2ICs1MywxMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZW5kTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKik7
CiAgICAgdm9pZCBzZW5kTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX01vdmUqKTsK
IAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHZvaWQgaW5pdGlhbGl6ZUNvbG9y
UGlja2VyQ2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKik7CisKKyAgICBXZWJD
b2xvclBpY2tlckNsaWVudCYgY29sb3JQaWNrZXJDbGllbnQoKSB7IHJldHVybiBtX2NvbG9yUGlj
a2VyQ2xpZW50OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBjcmVh
dGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdl
YlZpZXdFZmwoV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogCkBAIC03OCw2ICs4NiwxMCBA
QCBwcml2YXRlOgogICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKICAgICBib29sIG1faGFzUmVxdWVz
dGVkRnVsbFNjcmVlbjsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdlYkNv
bG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7CisjZW5kaWYKKwogICAgIGZyaWVu
ZCBjbGFzcyBXZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI4YWZkMDEyYzRjOGE4ZGVkNzU5ODU3MzQ3OTQ1
MTk0YWU3ZmU0OWIuLjRkYmIwMGFhOGMwYjk4ZGUyZTBjZGUwMWUwYzA5YWE1MDFjYzhmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE0MjAsOCArMTQyMCw2IEBACiAJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVFNCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0
NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQ
YWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUVEQ0E3MUI3MTI4RERBOEMwMDIwMUIyNiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjJGMTAw
MTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCAqLzsgfTsKLQkJRjAz
Njk3ODUxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4MzE1
RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAqLzsgfTsK
LQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3
ODQxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oICovOyB9
OwogCQlGMDM2OTc4ODE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODcxNUY0QkYw
NTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLzsgfTsKIAkJRjAzNjk3OEIxNUY0QkYx
MzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4OTE1RjRCRjEz
MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsK
IAkJRjYxMTNFMjUxMjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjQx
MjZDRTE4MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9OwpAQCAt
MzE4NSwxMSArMzE4Myw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGMDM2
OTc4MzE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5Nzg0MTVGNEJF
NkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJD
b2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYwMzY5Nzg5MTVG
NEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3OEEx
NUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjQxMjZDRTE4
MjAwNTdEMEE3IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTgzLDggKzQ5NzcsNiBAQAogCQkJCUJD
NzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJCQlG
MDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovLAogCQkJCTNG
ODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovLAotCQkJCUYwMzY5
Nzg5MTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHku
Y3BwICovLAotCQkJCUYwMzY5NzhBMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuaCAqLywKIAkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4MUEgLyog
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJQkM0QTYyQTYxNDc0NEVDNjAw
NkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQlCQ0I5RTI0MjEx
MjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC01MTExLDggKzUxMDMsNiBA
QAogCQkJCUJDNjQ2QzE5MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYuaCAqLywKIAkJCQlCQzY0NkMxNjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExp
c3RSZWYuY3BwICovLAogCQkJCUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3
YXJkTGlzdFJlZi5oICovLAotCQkJCUYwMzY5NzgzMTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwICovLAotCQkJCUYwMzY5Nzg0MTVGNEJFNkIwMEMzQTgw
RSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCAqLywKIAkJCQlCQ0I5RTI0QTExMjBF
MTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCAqLywKIAkJCQlCQ0I5RTI0OTExMjBFMTVDMDBB
MTM3RTAgLyogV0tDb250ZXh0LmggKi8sCiAJCQkJMUE0NDVCQTQxODRENUZEQTAwNEIzNDE0IC8q
IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCAqLywKQEAgLTY2ODYsNyArNjY3Niw2IEBACiAJ
CQkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNDA3NUY2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRl
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MjcxMjRGRjA0MDAwNjhGMjBBIC8qIFdL
Q2VydGlmaWNhdGVJbmZvTWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQlGMDM2OTc4NjE1RjRCRTZC
MDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzJDQUYwQjE4MzNGRDkxMDA0MEFDMjcgLyogV0tOU0Vycm9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzVDNzVDODE0OTU0REE2MDBCQzQ3NzUgLyogV0tDb25uZWN0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE2Mjk3MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5l
Y3Rpb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNzg1NSw3ICs3ODQ0LDYgQEAKIAkJCQk4Njgx
NjBEMDE4NzY0NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjAzNjk3ODgxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYwMzY5NzhCMTVGNEJGMTMwMEMzQTgw
RSAvKiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM0QTYyOEYxNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM0QTYyOTExNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25D
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRkVDMUMxNjI3QjQ1NzAwNzAwRjZEIC8q
IFdlYkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MDgy
LDcgKzgwNzAsNiBAQAogCQkJCUJDNDA3NUY1MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0NlcnRpZmlj
YXRlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYyODEyNEZGMDQwMDA2OEYyMEEg
LyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTVFNzcyNzE4
M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUYw
MzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMjg0RDYxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVj
dGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBX
S0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4NzEwMTYxODI4NDE1RDAw
MThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224459</attachid>
            <date>2014-02-17 19:22:05 -0800</date>
            <delta_ts>2014-02-17 21:08:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119120-20140218122204.patch</filename>
            <type>text/plain</type>
            <size>57879</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTg2MzM0MzZkMzg3M2Jm
ODNkNjFiZDYxNjA4NWI4NzQxMGRiMGVjMC4uNGFhOTQ4OWExZTA4NDJjMjk4NTgwZDI0ODA2OWUy
MjJhZjM1MDY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE0LTAyLTE3ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1v
dmUgYW5kIG1ha2UgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHRvIEVGTCBzcGVjaWZpYyBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTEyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lciBhbmQgcmVsYXRlZCBmaWxlcyBhcmUgb25seSB1
c2VkIGluIEVGTCBzaW5jZSBhZGRlZC4KKyAgICAgICAgSW5kZWVkLCBpdCBkb2VzIG5vdCB3b3Jr
IHNpbmNlIHJlZmFjdG9yZWQgY29tbW9uIGxvZ2ljIGZvciBDb2xvclBpY2tlciBpbiBXZWJQYWdl
UHJveHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlZCB0aGVtIHRvIEVGTCBzcGVjZmljIGFu
ZCByZWZhY3RvciB0byB3b3JrIHdlbGwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogTW92
ZWQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCB0byBQbGF0Zm9ybUVmbC5j
bWFrZS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIENvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXIgcmVsYXRlZCBmaWxlcyB3aGljaCBhcmUgb25seSBmb3IgRWZsIGZyb20g
c291cmNlIGxpc3QuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIENvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eSByZWxhdGVkIGZpbGVzIGFuZCBuZXdseSBhZGRlZCBmaWxl
cyBpbnRvIHNvdXJjZSBsaXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFn
ZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAuCisgICAgICAgIChX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmguCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwOiBJbnRyb2R1Y2VkIFdLQ29s
b3JQaWNrZXJDbGllbnQgYW5kIHNldHRlci4KKyAgICAgICAgKFdLVmlld1NldENvbG9yUGlja2Vy
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb2xvcl9waWNrZXIuY3Bw
OiBFbmFibGVkIHRlc3QgY2FzZSBmb3IgY29sb3IgcGlja2VyLgorICAgICAgICAoVEVTVF9GKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogUmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkgZGVwZW5kZW5jeS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvUGFnZVVJQ2xpZW50RWZsLmNwcDogUmVtb3ZlZCBjb2xvciBwaWNrZXIgY2FsbGJhY2tzIG9m
IFBhZ2VVSUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpQYWdlVUlD
bGllbnRFZmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcDogUmVnaXN0ZXJlZCBjYWxs
YmFja3Mgb2YgV0tDb2xvclBpY2tlckNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVu
dEVmbDo6c2hvd0NvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6
ZW5kQ29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpWaWV3Q2xp
ZW50RWZsKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6flZpZXdDbGllbnRFZmwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JQaWNrZXJDbGllbnQ6OnNob3dDb2xvclBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyQ2xpZW50OjplbmRQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9XZWJDb2xvclBpY2tlckVmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvVmlld0NsaWVudEVmbC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
ckVmbDo6V2ViQ29sb3JQaWNrZXJFZmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tl
ckVmbDo6ZW5kUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OnNo
b3dDb2xvclBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyRWZsOjpzZXRT
ZWxlY3RlZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6OmRpZENo
b29zZUNvbG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlckVmbDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJFZmw6On5XZWJDb2xvclBpY2tlckVmbCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eTo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp+V2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpzZXRDb2xvcik6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdFZmw6OmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdFZmw6OmNyZWF0ZUNvbG9yUGlja2VyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0VmbDo6Y29sb3JQaWNrZXJDbGllbnQpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogUmVtb3ZlZCBDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyIHJlbGF0ZWQg
ZmlsZXMgd2hpY2ggYXJlIG9ubHkgZm9yIEVmbCBmcm9tIHNvdXJjZSBsaXN0LgorCiAyMDE0LTAy
LTE3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0Nvb3JkaW5hdGVkR3JhcGhpY3NdW0VGTF0gUmVtb3ZlIHZpZXdfc291cmNlIGZ1bmN0aW9ucy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggM2UyZmRkZTg5OWUxZjkwNzBkZGI2MmUwYmViZDY2Yzcx
Y2FkNTY2MS4uYTNiMjBmOTYxOTM4NTM0ZjZjNTllZWFkYmVhNjVlMmMzNzVkZTMyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKQEAgLTMxMSw3ICszMTEsNiBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkJhdHRlcnlQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuY3BwCi0g
ICAgVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKICAgICBVSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTM2Myw3
ICszNjIsNiBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFu
YWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmNwcAotICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5h
Z2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCAzOGVjZTdiZjA2NjM1MTZhNjBiNWQxMTFmM2FhMjZjMjkz
ZWFlNjMyLi4yN2IzZDdjMGVhYzNmMjY4MzQ1YmMxMmZjMDRjZmVlOTc0MTkxNjY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUzOCw4ICs1MzgsNiBAQCB3ZWJraXQyX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2Vy
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlTdGF0dXMuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5U3RhdHVzLmggXAot
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXIuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAog
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXApAQCAt
ODk2LDggKzg5NCw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQ
aWNrZXIuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAwNzI4YjU1MzVl
N2U0OTg4YTI1ZTE0ZjQyYzMxZmExOWQ2M2YwYTA0Li5jYWU1OTcxNGYwY2E2Y2NkNWRiMTk2ODE5
MjRhMDFiMTAwMjZiNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTcsNiArNTcs
NyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkvQy9j
YWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAogCisgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S0V2ZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQYWdlRWZsLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cEl0ZW0uY3BwCkBAIC0xNDQsNiArMTQ1LDkgQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tl
ckVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAKICAgICBV
SVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9XZWJDb2xv
clBpY2tlckNsaWVudC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNw
cAorICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZs
L1dlYkNvbnRleHRNZW51UHJveHlFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJJbnNwZWN0
b3JQcm94eUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAppbmRleCA4ODJiMWM3OWU4ZTYzZjM3MGM0NzI4YmFjZGUyZTMxMDk2OTM4M2UwLi5mZGRhNmU4
ZGNiNDY0NjkzZTIzNDQ0NWFmN2NlOTZlMWFiZmQ3OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xMjEsMTEgKzEyMSw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXVEY6OlN0cmluZyYgb3JpZ2luYXRpbmdVUkxT
dHJpbmcsIEFQSTo6RGF0YSopIHsgfQogCiAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQotCi0j
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBib29sIHNob3dDb2xvclBp
Y2tlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpX
ZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBoaWRlQ29sb3JQaWNrZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IHJl
dHVybiBmYWxzZTsgfQotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YmZlM2M5
ZTU5Njg0NDBiYmM3MTI3YTNlYTMyNjE1NDNlNmMyNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmgiCi0KLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIK
LSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKLQotdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
R2V0VHlwZUlEKCkKLXsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICByZXR1cm4g
dG9BUEkoV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpBUElUeXBlKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotdm9pZCBXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJTZXRDb2xvcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXJSZWYs
IGNvbnN0IFdLU3RyaW5nUmVmIGNvbG9yKQotewotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotICAgIHRvSW1wbChsaXN0ZW5lclJlZiktPnNldENvbG9yKHRvV1RGU3RyaW5nKGNvbG9yKSk7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShsaXN0ZW5lclJlZik7Ci0gICAgVU5VU0VEX1BBUkFN
KGNvbG9yKTsKLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlmZjdjYTIzZGFl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
V0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyX2gKLSNkZWZpbmUgV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyX2gKLQotI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0KLSNpZmRlZiBfX2Nw
bHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29s
b3JQaWNrZXJSZXN1bHRMaXN0ZW5lckdldFR5cGVJRCgpOwotCi1XS19FWFBPUlQgdm9pZCBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJTZXRDb2xvcihXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJSZWYgbGlzdGVuZXJSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIGNvbG9yKTsKLQotI2lmZGVmIF9f
Y3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IGM0MGY0OGVlMDI2MWYxNzgxNGI0NDY1OGVlOTU2ZDM1MmJlM2Q5MjYuLmFlMDQzOTZhMmY4MGM4
NTRhYjlkNGQyYTIwYWVjYzRhMWJmNTljMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC0xNDYwLDI2ICsxNDYwLDYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
VUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tD
bGllbnQKIAogICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZEludGVycnVwdEphdmFT
Y3JpcHQodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0K
LQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hv
d0NvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBpbml0aWFsQ29s
b3IsIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSogbGlzdGVuZXIpIG92ZXJyaWRl
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQuc2hvd0NvbG9yUGlja2VyKQot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgbV9jbGllbnQuc2hv
d0NvbG9yUGlja2VyKHRvQVBJKHBhZ2UpLCB0b0FQSShpbml0aWFsQ29sb3IuaW1wbCgpKSwgdG9B
UEkobGlzdGVuZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXJ0dWFsIGJvb2wgaGlkZUNvbG9yUGlj
a2VyKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKCFtX2NsaWVudC5oaWRlQ29sb3JQaWNrZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgICAgICAgICBtX2NsaWVudC5oaWRlQ29sb3JQaWNrZXIodG9BUEkocGFnZSks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQotI2VuZGlmCiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGll
bnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JmZTNjOWU1OTY4NDQwYmJjNzEyN2Ez
ZWEzMjYxNTQzZTZjMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIHJldHVy
biB0b0FQSShXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OkFQSVR5cGUpOworI2Vs
c2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclNldENvbG9yKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJl
ZiwgY29uc3QgV0tTdHJpbmdSZWYgY29sb3IpCit7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisgICAgdG9JbXBsKGxpc3RlbmVyUmVmKS0+c2V0Q29sb3IodG9XVEZTdHJpbmcoY29sb3Ip
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxpc3RlbmVyUmVmKTsKKyAgICBVTlVTRURfUEFS
QU0oY29sb3IpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZWZsL1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZmQ0NzMyYzkxNTJkYjg2NWUzZGY3MWY3ZWNkZTlmZjdjYTIzZGFlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisjZGVmaW5lIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisj
aWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5
cGVJRCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JU
IHZvaWQgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyU2V0Q29sb3IoV0tDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBjb2xvcik7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXdFZmwuY3BwCmluZGV4IDViYmQ5OWU5OTY5ZWYzNzZkZDJiZGU5MTRlMmJiMWJj
M2NhMGNmNTQuLjYzMWU5ZTMzM2UwMzQ5NTY5NTRmZjk2MDgxYmU1MGQyYWE4MThlODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAKQEAg
LTM0LDYgKzM0LDE2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKK3ZvaWQgV0tWaWV3
U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLQ29sb3JQaWNr
ZXJDbGllbnRCYXNlKiB3a0NsaWVudCkKK3sKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
KyAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYpKS0+aW5pdGlhbGl6
ZUNvbG9yUGlja2VyQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZp
ZXdSZWYpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYKK30KKwogdm9pZCBX
S1ZpZXdQYWludFRvQ2Fpcm9TdXJmYWNlKFdLVmlld1JlZiB2aWV3UmVmLCBjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UpCiB7CiAgICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3
UmVmKSktPnBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuaAppbmRleCBmZWYxOTM3YmM0MGUwNzYwMzlk
MGQ1OTA3NGIzNjM5YWQ5OGQ0Y2ZjLi5iOTdjZGM3NTE2Mjc4M2E1NjVjNDQ2NmI0MmY4ZGRkNzc0
ZDkxNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlld0VmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
RWZsLmgKQEAgLTM3LDYgKzM3LDIyIEBAIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNh
aXJvX3N1cmZhY2VfdDsKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK3R5cGVkZWYgdm9pZCAoKldL
U2hvd0NvbG9yUGlja2VyQ2FsbGJhY2spKFdLVmlld1JlZiB2aWV3LCBXS1N0cmluZ1JlZiBpbml0
aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0hpZGVDb2xvclBpY2tlckNhbGxi
YWNrKShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYg
c3RydWN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlIHsKKyAgICBpbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0NvbG9yUGlj
a2VyQ2xpZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tDb2xvclBpY2tlckNsaWVudFYwIHsK
KyAgICBXS0NvbG9yUGlja2VyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisgICAgV0tTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBzaG93
Q29sb3JQaWNrZXI7CisgICAgV0tIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICBlbmRDb2xvclBpY2tlcjsKK30gV0tDb2xvclBpY2tlckNsaWVudFYwOworCitXS19F
WFBPUlQgdm9pZCBXS1ZpZXdTZXRDb2xvclBpY2tlckNsaWVudChXS1ZpZXdSZWYgcGFnZSwgY29u
c3QgV0tDb2xvclBpY2tlckNsaWVudEJhc2UqIGNsaWVudCk7CisKIFdLX0VYUE9SVCB2b2lkIFdL
Vmlld1BhaW50VG9DYWlyb1N1cmZhY2UoV0tWaWV3UmVmLCBjYWlyb19zdXJmYWNlX3QqKTsKIAog
V0tfRVhQT1JUIFdLSW1hZ2VSZWYgV0tWaWV3Q3JlYXRlU25hcHNob3QoV0tWaWV3UmVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9jb2xvcl9waWNrZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVz
dHMvdGVzdF9ld2syX2NvbG9yX3BpY2tlci5jcHAKaW5kZXggM2U3Mjk0ZTIxYjlhYTlhMDQ0ZjAw
MzdjOGNkZmU0Nzc3NjAzMTdkNi4uM2I4OTgzNTAxMzk3ZDQ0MTA0Y2NkMDJkOWRiY2NlYjQ2NzVm
MTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX2NvbG9yX3BpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbG9yX3BpY2tlci5jcHAKQEAgLTEyNCw3ICsxMjQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotVEVTVF9GKEVXSzJDb2xvclBpY2tlclRlc3Qs
IERJU0FCTEVEX2V3a19jb2xvcl9waWNrZXJfY29sb3Jfc2V0KQorVEVTVF9GKEVXSzJDb2xvclBp
Y2tlclRlc3QsIGV3a19jb2xvcl9waWNrZXJfY29sb3Jfc2V0KQogewogICAgIEV3a19WaWV3X1Nt
YXJ0X0NsYXNzKiBhcGkgPSBld2tWaWV3Q2xhc3MoKTsKICAgICBhcGktPmlucHV0X3BpY2tlcl9j
b2xvcl9yZXF1ZXN0ID0gc2hvd0NvbG9yUGlja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjMmMyMjIxMjg1NzY3MDM0MTQzOWY2
NGFmOTdhZmY1MDFmMmI5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJl
c3VsdExpc3RlbmVyUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0j
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQ
cm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLXsKLX0KLQotV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5KCkKLXsKLX0KLQotdm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHk6OmludmFsaWRhdGUoKQotewotICAgIG1fcGFnZSA9IDA7Ci19Ci0KLXZvaWQgV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5OjpzZXRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yKQot
ewotICAgIGlmICghbV9wYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UtPnNldENv
bG9yUGlja2VyQ29sb3IoV2ViQ29yZTo6Q29sb3IoY29sb3IpKTsKLSAgICBtX3BhZ2UtPmVuZENv
bG9yUGlja2VyKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU4MjY4YzZjY2UwYjkzZDQ3Y2I1NjNhOTExOWY1ODkxYWM2NTVm
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oCisr
KyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHlfaAotI2RlZmluZSBXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHlfaAotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Ci0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlBhZ2VQcm94eTsKLQotY2xhc3MgV2Vi
Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6Q29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcj4gewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eT4g
Y3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5KHBhZ2UpKTsKLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIH5XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkoKTsKLQotICAg
IHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIHZvaWQgc2V0Q29sb3IoY29uc3QgU3RyaW5nJik7Ci0K
LXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
KFdlYlBhZ2VQcm94eSopOwotCi0gICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLQotI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDFlYjhjNDYzN2Vl
OGEyMGUxZGJkOWY1MzVmZDNjOTc5YzAxNmZkMjQuLjczMzhiNzI4MTA4YTYxZTg0Mzg1ZDc3Y2Q5
YzRkN2FjNzZhZmMzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAj
aW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmlj
YXRlSW5mby5oIgotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjU3NDMwMzUyMDIyYTYxN2M3MWYzY2U3
NzExZjg0NTdmYzhiNjI0YS4uYWI2OTQ3NjZiNzY2OTIwMmQ2YmM4YzNlNGI0ZDRkMDU2YTMzNWM4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ0LDcgKzE0
NCw2IEBAIGNsYXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBTdHJp
bmdQYWlyVmVjdG9yOwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0Zv
cndhcmRMaXN0SXRlbTsKLWNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsK
IGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHk7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5Owog
Y2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTsKQEAgLTEzNDUsNyArMTM0NCw2IEBAIHBy
aXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBSZWZQdHI8
V2ViQ29sb3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7Ci0gICAgUmVmUHRyPFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eT4gbV9jb2xvclBpY2tlclJlc3VsdExpc3RlbmVyOwogI2VuZGlm
CiAKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAppbmRleCA2YmFiMjNhNzQzODgwOGU2NWViMGQxMzNj
ODY4Y2QzMWUzNmVmNmUyLi5mZTExNmU5N2Q2MzkyZWQzMDJhZTRhMzQ0MWQ5ZjZjMTVhZWI0MzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwu
Y3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiZXdrX2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0
X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaCIKICNp
bmNsdWRlIDxFY29yZV9FdmFzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIApAQCAtNzksMTAgKzc4LDYgQEAgUGFnZVVJ
Q2xpZW50RWZsOjpQYWdlVUlDbGllbnRFZmwoRXdrVmlldyogdmlldykKICNlbmRpZgogICAgIHVp
Q2xpZW50LnJ1bk9wZW5QYW5lbCA9IHJ1bk9wZW5QYW5lbDsKICAgICB1aUNsaWVudC5jcmVhdGVO
ZXdQYWdlID0gY3JlYXRlTmV3UGFnZTsKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICB1aUNsaWVudC5zaG93Q29sb3JQaWNrZXIgPSBzaG93Q29sb3JQaWNrZXI7Ci0gICAgdWlDbGll
bnQuaGlkZUNvbG9yUGlja2VyID0gaGlkZUNvbG9yUGlja2VyOwotI2VuZGlmCiAKICAgICBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZiwgJnVpQ2xpZW50LmJhc2UpOwogCkBAIC0yMjYsMjEg
KzIyMSw2IEBAIFdLUGFnZVJlZiBQYWdlVUlDbGllbnRFZmw6OmNyZWF0ZU5ld1BhZ2UoV0tQYWdl
UmVmLCBXS1VSTFJlcXVlc3RSZWYgd2tSZXF1ZXN0LCBXCiAgICAgcmV0dXJuIHRvUGFnZVVJQ2xp
ZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXctPmNyZWF0ZU5ld1BhZ2UocmVxdWVzdCwgd2tXaW5k
b3dGZWF0dXJlcyk7CiB9CiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXZvaWQgUGFn
ZVVJQ2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0
aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBQYWdlVUlDbGllbnRFZmwqIHBhZ2VVSUNsaWVudCA9
IHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pOwotICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9y
ID0gV2ViQ29yZTo6Q29sb3IoV2ViS2l0Ojp0b1dURlN0cmluZyhpbml0aWFsQ29sb3IpKTsKLSAg
ICBwYWdlVUlDbGllbnQtPm1fdmlldy0+cmVxdWVzdENvbG9yUGlja2VyKGxpc3RlbmVyLCBjb2xv
cik7Ci19Ci0KLXZvaWQgUGFnZVVJQ2xpZW50RWZsOjpoaWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFBhZ2VVSUNsaWVudEVmbCogcGFnZVVJ
Q2xpZW50ID0gdG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0gICAgcGFnZVVJQ2xpZW50
LT5tX3ZpZXctPmRpc21pc3NDb2xvclBpY2tlcigpOwotfQotI2VuZGlmCi0KIHZvaWQgUGFnZVVJ
Q2xpZW50RWZsOjpzaG93UG9wdXBNZW51KFdLUGFnZVJlZiwgV0tQb3B1cE1lbnVMaXN0ZW5lclJl
ZiBtZW51TGlzdGVuZXJSZWYsIFdLUmVjdCByZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24g
dGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtc1Jl
ZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IHJldHVybiB0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LT5yZXF1ZXN0UG9w
dXBNZW51KG1lbnVMaXN0ZW5lclJlZiwgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFj
dG9yLCBpdGVtc1JlZiwgc2VsZWN0ZWRJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuaAppbmRleCA3MDQxZTFlMThjZGNkM2Q4Y2Y4MmEyMzUy
ZDczOTc1YzNlMmU4MmM3Li5iZjA1MDRkYTY2ZTU5ZTYyY2FiMDJiMjQ3MzE1MDY4Y2MxZTI2ZGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNsaWVudEVm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmgK
QEAgLTYzLDEwICs2Myw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBydW5P
cGVuUGFuZWwoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYs
IFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMg
V0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGlj
dGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2
b2lkKik7Ci0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RhdGljIHZvaWQgc2hv
d0NvbG9yUGlja2VyKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJSZWYsIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBo
aWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7Ci0jZW5kaWYKIAogICAgIHN0
YXRpYyB2b2lkIHNob3dQb3B1cE1lbnUoV0tQYWdlUmVmLCBXS1BvcHVwTWVudUxpc3RlbmVyUmVm
LCBXS1JlY3QsIFdLUG9wdXBJdGVtVGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3Rv
ciwgV0tBcnJheVJlZiBpdGVtc1JlZiwgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBoaWRlUG9wdXBNZW51KFdLUGFnZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9WaWV3Q2xpZW50RWZsLmNwcAppbmRleCA2NzkwMzRkNGUyNTgxNmUwMThiNjFiYjQxMzUwNTc4
OGE4MDMwYWNkLi4yM2FjNWRiMzFlZGFkY2VmNTM1YmYxZDNkYmUzZTkxYzVkNWU3ZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKQEAgLTE1
OCw2ICsxNTgsMTkgQEAgdm9pZCBWaWV3Q2xpZW50RWZsOjpkb25lV2l0aFRvdWNoRXZlbnQoV0tW
aWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYgZXZlbnQsIGJvb2wgd2EKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFZpZXdDbGllbnRFZmw6OnNob3dDb2xvclBp
Y2tlcihXS1ZpZXdSZWYsIFdLU3RyaW5nUmVmIGNvbG9yU3RyaW5nLCBXS0NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAg
V2ViQ29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRvV1RGU3RyaW5n
KGNvbG9yU3RyaW5nKSk7CisgICAgdG9Fd2tWaWV3KGNsaWVudEluZm8pLT5yZXF1ZXN0Q29sb3JQ
aWNrZXIobGlzdGVuZXIsIGNvbG9yKTsKK30KKwordm9pZCBWaWV3Q2xpZW50RWZsOjplbmRDb2xv
clBpY2tlcihXS1ZpZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9Fd2tW
aWV3KGNsaWVudEluZm8pLT5kaXNtaXNzQ29sb3JQaWNrZXIoKTsKK30KKyNlbmRpZgorCiBWaWV3
Q2xpZW50RWZsOjpWaWV3Q2xpZW50RWZsKEV3a1ZpZXcqIHZpZXcpCiAgICAgOiBtX3ZpZXcodmll
dykKIHsKQEAgLTE4MiwxMSArMTk1LDI1IEBAIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRFZmwo
RXdrVmlldyogdmlldykKICNlbmRpZgogCiAgICAgV0tWaWV3U2V0Vmlld0NsaWVudChtX3ZpZXct
PndrVmlldygpLCAmdmlld0NsaWVudC5iYXNlKTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorICAgIFdLQ29sb3JQaWNrZXJDbGllbnRWMCBjb2xvclBpY2tlckNsaWVudDsKKyAgICBt
ZW1zZXQoJmNvbG9yUGlja2VyQ2xpZW50LCAwLCBzaXplb2YoV0tDb2xvclBpY2tlckNsaWVudFYw
KSk7CisgICAgY29sb3JQaWNrZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBjb2xvclBp
Y2tlckNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlzOworICAgIGNvbG9yUGlja2VyQ2xpZW50
LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKKyAgICBjb2xvclBpY2tlckNsaWVu
dC5lbmRDb2xvclBpY2tlciA9IGVuZENvbG9yUGlja2VyOworICAgIFdLVmlld1NldENvbG9yUGlj
a2VyQ2xpZW50KG1fdmlldy0+d2tWaWV3KCksICZjb2xvclBpY2tlckNsaWVudC5iYXNlKTsKKyNl
bmRpZgogfQogCiBWaWV3Q2xpZW50RWZsOjp+Vmlld0NsaWVudEVmbCgpCiB7CiAgICAgV0tWaWV3
U2V0Vmlld0NsaWVudChtX3ZpZXctPndrVmlldygpLCAwKTsKKworI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQorICAgIFdLVmlld1NldENvbG9yUGlja2VyQ2xpZW50KG1fdmlldy0+d2tWaWV3
KCksIDApOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuaAppbmRleCAzYjhjMjQ3YjdiYzJjOWVj
NWU2NGNmNzZjMjdkMjk4NGEzNzUyOTk2Li45NDNiZjk1ZWNlMzQyZGE4NzYzZTRlNjk2MDg3YTEx
ZmE2NzVjYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdD
bGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRF
ZmwuaApAQCAtNTMsNiArNTMsMTAgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogICAgIHN0YXRpYyB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChXS1ZpZXdSZWYsIFdLVG91Y2hF
dmVudFJlZiwgYm9vbCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tW
aWV3UmVmLCBXS1N0cmluZ1JlZiwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDb2xvclBpY2tlcihXS1Zp
ZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworI2VuZGlmCiAKICAgICBFd2tWaWV3KiBt
X3ZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJD
b2xvclBpY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWE5Y2M4NmExNzZlMzMxNDlkYjgwZDky
MGE0Y2M1MGY4ZGVlZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yUGlj
a2VyQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFdlYkNvbG9yUGlja2VyQ2xpZW50OjpzaG93Q29sb3JQaWNrZXIoV2Vi
Vmlldyogd2ViVmlldywgY29uc3QgU3RyaW5nJiBjb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUmVmIGxpc3RlbmVyKQoreworICAgIGlmICghbV9jbGllbnQuc2hvd0NvbG9yUGlja2Vy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5zaG93Q29sb3JQaWNrZXIodG9BUEko
d2ViVmlldyksIHRvQVBJKGNvbG9yLmltcGwoKSksIGxpc3RlbmVyLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworfQorCit2b2lkIFdlYkNvbG9yUGlja2VyQ2xpZW50OjplbmRQaWNrZXIoV2Vi
Vmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIW1fY2xpZW50LmVuZENvbG9yUGlja2VyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5lbmRDb2xvclBpY2tlcih0b0FQSSh3ZWJWaWV3
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKworfQorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDhkYzIwNTA4YjIzZGZkMjZhZTkyZmE5N2VjZWVlOTQ0NjQ2MDNlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGll
bnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNv
bG9yUGlja2VyQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJDbGllbnRfaAorCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVk
ZSAiV0tWaWV3RWZsLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgorCituYW1lc3BhY2UgQVBJIHsK
K3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0NvbG9yUGlja2VyQ2xpZW50QmFzZT4g
eworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0NvbG9yUGlja2VyQ2xpZW50VjA+IFZlcnNpb25z
OworfTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yUGlja2VyQ2xp
ZW50OiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb2xvclBpY2tlckNsaWVudEJhc2U+IHsKK3B1Ymxp
YzoKKyAgICB2b2lkIHNob3dDb2xvclBpY2tlcihXZWJWaWV3KiwgY29uc3QgU3RyaW5nJiwgV0tD
b2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmKTsKKyAgICB2b2lkIGVuZFBpY2tlcihXZWJWaWV3
Kik7Cit9OworCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdlYkNvbG9yUGlja2VyQ2xpZW50X2gg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNr
ZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDVkMTZkZDQ3MDU3ZjZjYTY4MTI2YWFjM2RkN2UxOTVhZmNiZGY3
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29s
b3JQaWNrZXJFZmwuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJld2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbChXZWJWaWV3RWZsKiB3ZWJW
aWV3LCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikKKyAgICA6IFdlYkNvbG9yUGlja2VyKGNsaWVudCkKKyAgICAsIG1fd2ViVmlldyh3ZWJWaWV3
KQoreworICAgIEFTU0VSVChtX3dlYlZpZXcpOworICAgIG1fY29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lciA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwor
fQorCit2b2lkIFdlYkNvbG9yUGlja2VyRWZsOjplbmRQaWNrZXIoKQoreworICAgIG1fd2ViVmll
dy0+Y29sb3JQaWNrZXJDbGllbnQoKS5lbmRQaWNrZXIobV93ZWJWaWV3KTsKK30KKwordm9pZCBX
ZWJDb2xvclBpY2tlckVmbDo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBj
b2xvcikKK3sKKyAgICBtX3dlYlZpZXctPmNvbG9yUGlja2VyQ2xpZW50KCkuc2hvd0NvbG9yUGlj
a2VyKG1fd2ViVmlldywgY29sb3Iuc2VyaWFsaXplZCgpLCB0b0FQSShtX2NvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXIuZ2V0KCkpKTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6c2V0U2Vs
ZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJDb2xvclBpY2tlckVmbDo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CisgICAgbV9jbGllbnQt
PmRpZEVuZENvbG9yUGlja2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2Vy
RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTdjMjkxNGMyZmRmOTJkNzRiNGIwN2Y3YzMwNjkzNTU0NDk2MWFhOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNr
ZXJFZmwuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1
bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkNvbG9yUGlja2VyRWZsX2gKKyNkZWZpbmUgV2ViQ29sb3JQaWNrZXJFZmxfaAorCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIuaCIKKyNpbmNs
dWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJW
aWV3RWZsLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvclBpY2tlckVm
bCA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQ29sb3JQaWNrZXJFZmw+IGNyZWF0ZShXZWJWaWV3RWZsKiB3ZWJWaWV3LCBXZWJDb2xv
clBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29s
b3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyRWZs
KHdlYlZpZXcsIGNsaWVudCwgaW5pdGlhbENvbG9yKSk7CisgICAgfQorICAgIH5XZWJDb2xvclBp
Y2tlckVmbCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYpOworCitwcml2YXRlOgorICAgIFdlYkNvbG9yUGlja2VyRWZsKFdlYlZpZXdF
ZmwqLCBXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKwor
ICAgIFdlYlZpZXdFZmwqIG1fd2ViVmlldzsKKyAgICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1
bHRMaXN0ZW5lclByb3h5PiBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7Cit9OworCit9Cisj
ZW5kaWYKKworI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDdmMGQwYTQwMDRkZjlkNmVhNjlhNTI5Mzg2
OTcxMzBjNjAxNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHk6OldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShX
ZWJDb2xvclBpY2tlckVmbCogY29sb3JQaWNrZXIpCisgICAgOiBtX2NvbG9yUGlja2VyKGNvbG9y
UGlja2VyKQoreworICAgIEFTU0VSVChtX2NvbG9yUGlja2VyKTsKK30KKworV2ViQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lclByb3h5Ojp+V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5
KCkKK3sKK30KKwordm9pZCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk6OmludmFs
aWRhdGUoKQoreworICAgIG1fY29sb3JQaWNrZXIgPSAwOworfQorCit2b2lkIFdlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eTo6c2V0Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvcikKK3sK
KyAgICBpZiAoIW1fY29sb3JQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29sb3JQ
aWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yKGNvbG9yKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyUmVz
dWx0TGlzdGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWI1YzNhMThmN2Q5NTY3
MDRlOWU0NDlkZmVmZDlkMjRhNjY0MjljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkuaApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eV9oCisjZGVmaW5lIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmw7CisKK2NsYXNzIFdlYkNvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJD
b2xvclBpY2tlckVmbCogY29sb3JQaWNrZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eShjb2xvclBpY2tlcikpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgfldlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eSgp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBzZXRDb2xvcihjb25zdCBTdHJp
bmcmKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUHJveHkoV2ViQ29sb3JQaWNrZXJFZmwqKTsKKworICAgIFdlYkNvbG9yUGlja2VyRWZsKiBt
X2NvbG9yUGlja2VyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYlZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcAppbmRleCBjNDllZTE4YjVhNTY0MDE4NjFhZDQ5OTY2NTZmMWM0ODE4ZjU2ZGE5Li5iYTNl
NjVjYmY3M2MxZWYzMWZmZWE4NzI3Yzg1Zjc2YjA5NWJjOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5jcHAKQEAgLTQ0LDYgKzQ0LDEwIEBACiAjaW5jbHVk
ZSAiRXdrVG91Y2hFdmVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKKyNpbmNsdWRlICJXZWJDb2xvclBpY2tlckVmbC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVz
cGFjZSBFd2tWaWV3Q2FsbGJhY2tzOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE3
OCw0ICsxODIsMTYgQEAgdm9pZCBXZWJWaWV3RWZsOjpleGl0RnVsbFNjcmVlbigpCiAKICNlbmRp
ZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKK3ZvaWQgV2ViVmlld0VmbDo6aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KGNvbnN0IFdL
Q29sb3JQaWNrZXJDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jb2xvclBpY2tlckNsaWVu
dC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFdl
YlZpZXdFZmw6OmNyZWF0ZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKK3sKKyAgICByZXR1
cm4gV2ViQ29sb3JQaWNrZXJFZmw6OmNyZWF0ZSh0aGlzLCBwYWdlLCBjb2xvcik7Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlld0VmbC5oCmluZGV4IDFjYmJjZjNlZWY0MjRlMTA3ZjQwMDNjNjI4NzQ1YjFmZTY1ODIw
NzkuLjA3NDFjZWYyZTYxZWFlM2M3MjIxMjMwNWRjNGIzYmYyMGNiYzJiMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFdlYlZpZXdFZmxfaAogI2RlZmluZSBXZWJWaWV3RWZsX2gKIAorI2luY2x1ZGUgIldlYkNv
bG9yUGlja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogCiBjbGFzcyBFd2tWaWV3
OwpAQCAtNTIsNiArNTMsMTMgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZE1vdXNlRXZlbnQoY29u
c3QgRXZhc19FdmVudF9Nb3VzZV9VcCopOwogICAgIHZvaWQgc2VuZE1vdXNlRXZlbnQoY29uc3Qg
RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKik7CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
KyAgICB2b2lkIGluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudChjb25zdCBXS0NvbG9yUGlja2Vy
Q2xpZW50QmFzZSopOworCisgICAgV2ViQ29sb3JQaWNrZXJDbGllbnQmIGNvbG9yUGlja2VyQ2xp
ZW50KCkgeyByZXR1cm4gbV9jb2xvclBpY2tlckNsaWVudDsgfQorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3RWZsKFdlYkNvbnRleHQqLCBXZWJQYWdlR3Jv
dXAqKTsKIApAQCAtNzgsNiArODYsMTAgQEAgcHJpdmF0ZToKICAgICBFd2tWaWV3KiBtX2V3a1Zp
ZXc7CiAgICAgYm9vbCBtX2hhc1JlcXVlc3RlZEZ1bGxTY3JlZW47CiAKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvclBpY2tlckNsaWVudCBtX2NvbG9yUGlja2VyQ2xp
ZW50OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV2ViVmlldzsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYjQy
YzE1NDBmZDRiMGZhNTAyOTlkMWMzY2ExNDNmOGEzOTUyY2Y1Li42OTczNGYzZmJiYzJhN2QyZGEx
MTFhN2ZlNjI4NTljMzkxMDY3ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDQxLDggKzE0NDEsNiBAQAogCQlFMUVFNTNF
NzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0U2MTFG
OENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovOyB9
OwogCQlFRDgyQTdGMjEyOEM2RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5
RkNEOTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFRENBNzFCNzEyOEREQThDMDAyMDFCMjYg
LyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjEwMDEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdl
T3ZlcmxheS5jcHAgKi87IH07Ci0JCUYwMzY5Nzg1MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjAzNjk3ODMxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lci5jcHAgKi87IH07Ci0JCUYwMzY5Nzg2MTVGNEJFNkIwMEMzQTgwRSAvKiBX
S0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEYwMzY5Nzg0MTVGNEJFNkIwMEMzQTgwRSAvKiBXS0NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXIuaCAqLzsgfTsKIAkJRjAzNjk3ODgxNUY0QkYwNTAwQzNBODBFIC8q
IFdlYkNvbG9yUGlja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAg
Ki87IH07CiAJCUYwMzY5NzhCMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjAzNjk3ODkxNUY0QkYxMzAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJQcm94eS5jcHAgKi87IH07CiAJCUY2MTEzRTI1MTI2Q0UxODIwMDU3RDBBNyAvKiBX
ZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCAqLzsgfTsKQEAgLTMyMzIsMTEgKzMyMzAsNyBAQAogCQlFMUU1NTJDMzE2
QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0RDMTFGOENGOUYwMEND
QkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjAzNjk3ODMxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlGMDM2OTc4NDE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29sb3JQaWNr
ZXJSZXN1bHRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMDM2OTc4
NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlGMDM2OTc4OTE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJS
ZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUYwMzY5NzhBMTVGNEJGMTMwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI2MTI2Q0Ux
OUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTA3OCw4ICs1MDcyLDYgQEAKIAkJCQlCQzcyQkExQzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFj
a0ZvcndhcmRMaXN0LmggKi8sCiAJCQkJRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCAqLywKIAkJCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29s
b3JQaWNrZXIuaCAqLywKLQkJCQlGMDM2OTc4OTE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQ
aWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKLQkJCQlGMDM2OTc4QTE1RjRCRjEzMDBD
M0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCiAJCQkJQkM0
QTYyQTUxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICov
LAogCQkJCUJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3Bw
ICovLApAQCAtNTIwNCw4ICs1MTk2LDYgQEAKIAkJCQlCQzY0NkMxOTExREQzOTlGMDA2NDU1QjAg
LyogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmggKi8sCiAJCQkJQkM2NDZDMTYxMUREMzk5RjAw
NjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0UmVmLmNwcCAqLywKIAkJCQlCQzY0NkMxNzExREQz
OTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3RSZWYuaCAqLywKLQkJCQlGMDM2OTc4MzE1
RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCAqLywKLQkJ
CQlGMDM2OTc4NDE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
LmggKi8sCiAJCQkJQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgKi8s
CiAJCQkJQkNCOUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5oICovLAogCQkJCTFB
NDQ1QkE0MTg0RDVGREEwMDRCMzQxNCAvKiBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggKi8s
CkBAIC02Nzk1LDcgKzY3ODUsNiBAQAogCQkJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBX
S0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3
MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3
NjI3MTI0RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRjAzNjk3ODYxNUY0QkU2QjAwQzNBODBFIC8qIFdLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQ0FGMEIxODMzRkQ5MTAwNDBBQzI3IC8q
IFdLTlNFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1
IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0
NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTc5
NzIsNyArNzk2MSw2IEBACiAJCQkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1Nl
cnZlckNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRjg3QjlCRDE1ODk0MDEyMDA5
MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYwMzY5Nzg4
MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlGMDM2OTc4QjE1RjRCRjEzMDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5l
clByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MjhGMTQ3MzEyQkUwMDZDNjgxQSAv
KiBXZWJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MjkxMTQ3MzEyQkUw
MDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
MUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtODE5OSw3ICs4MTg3LDYgQEAKIAkJCQlCQzQwNzVGNTEyNEZG
MDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc2MjgxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlGMDM2OTc4NTE1RjRCRTZCMDBDM0E4MEUgLyogV0tDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTI4NEQ2MTQ5
MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzRB
NjI5NjE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEODcxMDE2MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVD
dXN0b20ubW0gaW4gU291cmNlcyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>